GStreamer: Play mpeg2

2019-08-29 18:04发布

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条回答
走好不送
2楼-- · 2019-08-29 18:21

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
查看更多
登录 后发表回答