如何使用GStreamer播放AVI视频?

10

我想编写一个目标跟踪程序,需要播放跟踪结果。由于gstreamer是一个很好的多媒体框架,所以我想在我的演示程序中使用它。但我不知道如何实现视频显示的细节。有人能帮忙吗?

Avidemux插件可以从AVI文件中分离音频和视频部分,但接下来该怎么做呢?

如果我打开一个未压缩的AVI文件,如果我直接将avidemux插件的输出端口链接到一个视频输出端口,是否有效?

顺便问一下,哪个视频输出端口在效率方面更好? 我查了插件参考手册,发现有很多视频输出端口:glimagesink,osxvideosink,sdlvideosink,ximagesink,xvimagesink,dfbvideosink,fbdevsink,gconfvideosink。autovideosink总是工作良好吗? 我的平台是ubuntu 9.04。

TIA ~

2个回答

13

正如Nick Hadded所建议的那样,playbin或decodebin是一个很好的起点。对于实验,我建议使用gst-launch,例如:

gst-launch filesrc location=video.avi !
decodebin2 name=dec ! queue ! ffmpegcolorspace ! autovideosink
dec. ! queue ! audioconvert ! audioresample ! autoaudiosink

我使用autoaudiosink和autovideosink,因为它们通常有效。当您找到一个可行的管道后,请尝试使用代码构建相同的管道。如果您不需要音频,则可以跳过管道的音频部分。对于视频显示,至少在UNIX上,您最好选择xvimagesink。


问题:其他人可能会问“如何使用Gstreamer显示MPEG2/MPEG4视频?”答案是:gst-launch filesrc location=/tmp/filmfr2.mpg ! decodebin2 name=dec ! queue ! ffmpegcolorspace ! autovideosink dec. ! queue ! audioconvert ! audioresample ! autoaudiosink。 - user285594

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接