gstreamer 的音乐可视化错误

Posted

技术标签:

【中文标题】gstreamer 的音乐可视化错误【英文标题】:music visualization error with gstreamer 【发布时间】:2010-02-26 04:29:39 【问题描述】:

您好,我正在尝试使用以下命令在 gstreamer 中可视化音乐文件:

gst-launch filesrc location=file.mp3 ! decodebin ! audioconvert ! 
tee name=myT myT. ! queue ! autoaudiosink myT. ! queue ! goom ! 
colorspace ! autovideosink

但我收到此错误:“可能存在时间戳问题,或者这台计算机太慢了。”

Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstDshowVideoSink:autovideosink0-actual-sink-dshowvideo: A lot of buffers are being dropped.
Additional debug info:
..\Source\gstreamer\libs\gst\base\gstbasesink.c(2572): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstDshowVideoSink:autovideosink0-actual-sink-dshowvideo:
There may be a timestamping problem, or this computer is too slow.
ERROR: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0

假设这与线程有关,我尝试了以下命令:

gst-launch filesrc location=file.mp3 ! decodebin ! audioconvert ! tee name=myT 
 ! queue ! autoaudiosink   tee. ! queue ! goom ! colorspace ! autovideosink 

然后它给出了以下链接错误:

** (gst-launch-0.10:5308): WARNING **: Trying to connect elements that don't share a common ancestor: tee and queue1
0:00:00.125000000  5308   003342F0 ERROR           GST_PIPELINE grammar.tab.c:656:gst_parse_perform_link: could not link tee to queue1
WARNING: erroneous pipeline: could not link tee to queue1

谁能告诉我哪里错了?谢谢

【问题讨论】:

【参考方案1】:

因为我没有安装windows,所以无法给你准确的答案。

为了调试这个使用你的第一个管道(在 linux 中工作)。将参数 -v 与 gst-launch 一起使用,并将元素标识放在 autovideosink 之前。这将打印通过元素标识的缓冲区信息,寻找任何奇怪的东西。

您也可以尝试使用 directdrawsink 而不是 autovideosink。我要做的另一个测试是使用 audiotestsrc 生成音频。

请记住,如果您发现错误,您可以在 gnome bugzilla 中打开错误报告,以便 GStreamer 开发人员知道存在问题。甚至您可以自己修复它并发送补丁。

【讨论】:

【参考方案2】:

对于There may be a timestamping problem, or this computer is too slow. 错误 试试sync=false 喜欢

`gst-launch filesrc location=file.mp3 ! decodebin ! audioconvert ! tee name=myT myT. ! queue ! autoaudiosink myT. ! queue ! goom ! colorspace ! autovideosink sync=false`

或者您可能需要在 Tee 的两个水槽端尝试

`gst-launch filesrc location=file.mp3 ! decodebin ! audioconvert ! tee name=myT myT. ! queue ! autoaudiosink sync=false myT. ! queue ! goom ! colorspace ! autovideosink sync=false`

我还观察到,如果您将autovideosink 替换为xvimagesinkximagesink,时间戳问题显然似乎得到了解决。

【讨论】:

以上是关于gstreamer 的音乐可视化错误的主要内容,如果未能解决你的问题,请参考以下文章

Python数据可视化:网易云音乐歌单

如何使用 openFrameworks 开发音乐可视化工具

创建音乐可视化工具[关闭]

音乐可视化

H5音乐可视化

H5音乐可视化