0

我正在尝试使用 gstreamer 播放本地 mpeg2 TS 文件:

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

第一帧显示为大块色块,然后停止。关于我在这里做错了什么有什么想法吗?是否需要以不同方式处理 -TS 文件?

这是日志:

$ 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 ..
4

1 回答 1

3

我认为首先你应该首先尝试在 playbin2 的帮助下播放文件。如果您能够播放它,那么您应该使用 decodebin2 ,调试它的输出并相应地构建您的管道。

playbin2 的语法如下:-

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

decodebin2 的语法如下:-

gst-launch filesrc location = file.mpg ! decodebin2 ! autovideosink
于 2011-11-29T06:26:22.743 回答