简体   繁体   English

gstreamer音乐可视化错误

[英]music visualization error with gstreamer

hi I am trying to visualize a music file in gstreamer using the following command: 嗨,我正在尝试使用以下命令在gstreamer中可视化音乐文件:

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

But I get this error : "There may be a timestamping problem, or this computer is too slow." 但是我收到此错误消息:“可能存在时间戳记问题,或者这台计算机速度太慢。”

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

Assuming this is something to do with the thread, I tried the following command: 假设这与线程有关,我尝试了以下命令:

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

But then it gives the folloiwng link error: 但是然后它给出了folloiwng链接错误:

** (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

Can anyone tell what is wrong? 谁能说出什么错了? Thanks 谢谢

I cannot give you an exact answer because i don't have windows installed. 我无法给您确切的答案,因为我没有安装Windows。

For debugging this use your first pipeline (in linux works). 要进行调试,请使用第一个管道(在Linux中工作)。 Use parameter -v with gst-launch and put element identity just before autovideosink. 将参数-v与gst-launch一起使用,并将元素标识放在autovideosink之前。 This will print buffer information that passes through element identity, look for anything strange. 这将打印通过元素标识传递的缓冲区信息,寻找任何奇怪的东西。

Also you could try to use directdrawsink instead of autovideosink. 您也可以尝试使用directdrawsink代替autovideosink。 Another test that i will do is to generate the audio with audiotestsrc. 我要做的另一项测试是使用audiotestsrc生成音频。

Remember that if you find a bug you can open a bug report in gnome bugzilla so GStreamer developers are aware that there is a problem. 请记住,如果找到错误,则可以在gnome bugzilla中打开错误报告,以便GStreamer开发人员意识到存在问题。 Even you could fix it yourself and send a patch. 即使您可以自己修复它并发送补丁。

For There may be a timestamping problem, or this computer is too slow. 对于There may be a timestamping problem, or this computer is too slow. Error Try sync=false like 错误尝试sync=false

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

or you may have to try at both sink ends of the Tee like 否则您可能需要尝试在T形的两个水槽末端尝试

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

I also observed that if you replace autovideosink with xvimagesink or ximagesink the timestamping problem apparently seems to be solved. 我还观察到,如果将autovideosink替换为xvimagesinkximagesink则似乎可以解决时间戳问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM