GStreamer: Play mpeg2

ⅰ亾dé卋堺 提交于 2019-12-11 17:49:32

问题


I'm trying to play a local mpeg2 TS file with gstreamer with this:

gst-launch  filesrc location=open_season.mpg ! mpeg2dec ! xvimagesink

The first frame appears as big blocks of color and then stops. Any thoughts about what I'm doing wrong here? Does a -TS file need to be handled differently than this?

Here's the log:

$ gst-launch  filesrc location=open_season.mpg ! mpeg2dec ! xvimagesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ....
WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: Internal data flow problem..
Additional debug info:.
gstbasesink.c(3492): gst_base_sink_chain_unlocked (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
Received buffer without a new-segment. Assuming timestamps start from 0.
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 6866757291 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ..

回答1:


I think first you should first try to play the file with the help of playbin2. If you are able to play it then u should use decodebin2 ,debug its output and construct your pipeline accordingly.

The syntax for playbin2 is as follows :-

gst-launch playbin2 uri = file:///home/user1031040/Desktop/file.mpg

The syntax for decodebin2 is as follows:-

gst-launch filesrc location = file.mpg ! decodebin2 ! autovideosink


来源:https://stackoverflow.com/questions/7843212/gstreamer-play-mpeg2

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!