我在0.10中有一个正在运行的gst-launch管道:
gst-launch-0.10 \
filesrc location=c:/prog4.mpg \
! tsdemux name=dem \
! queue \
! ac3parse \
! a52dec \
! audioconvert \
! audioresample \
! autoaudiosink \
dem. \
! queue \
! mpegvideoparse \
! mpeg2dec \
! autovideosink
但版本1.0中的相同管道会出现错误:
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
ERROR: from element /GstPipeline:pipeline0/GstTSDemux:dem: Internal data stream error.
Additional debug info:
mpegtsbase.c(1639): mpegts_base_loop (): /GstPipeline:pipeline0/GstTSDemux:dem:
stream stopped, reason not-negotiated
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
我也试过使用playbin,奇怪的是,它给出了同样的错误。我该如何解决这个问题?
编辑:好的,所以我发现它是导致问题的视频部分。如果我隔离音频和视频部分,音频工作正常!这就是造成麻烦的一点:
gst-launch-1.0 filesrc location=/home/rubndsouza/prog4.mpg \
! tsdemux ! queue ! mpegvideoparse ! mpeg2dec ! autovideosink
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
我认为这是在较新版本的gstreamer中修复的。 在我的1.2.3版本中,我至少无法重现这一点。