你如何建立gstreamer的gst-launch管道?

时间:2014-12-16 03:08:32

标签: linux audio video gstreamer openmax

假设您有一个视频文件 就我搜索而言,您首先需要通过mediainfo命令知道它使用的容器。

$ mediainfo your_path_to_a_video.file

然后你需要找到容器的分离器,所以你做

$ gst-inspect-1.0 | grep your_container_name_such_as_ogg

现在你有一个合适的解复用器,例如oggdemux,你可以分割视频和音频。如果要显示视频,首先需要知道编解码器名称,然后需要将其解码才能输出到屏幕。
回到mediainfo输出,你会看到视频Format,然后你做

$ gst-inspect-1.0 | grep format_name_such_as_theora

您会找到theoradec并通过

查看其详细信息
$ gst-inspect-1.0 | decoder_name_such_as_theoradec

查看sinksrc。您现在发现srcvideo/x-raw,因此您需要找到最终接收器以输出显示的视频,例如xvimagesink

我只是根据web page in Japanese来写这一切,我没有找到任何其他解释超过此的页面(英文或日文)。

我想找到解释如何基于mediainfo等完成管道的页面。即使在我阅读网页后,我仍然不确定如何匹配元素与元素之间的功能。

如何构建管道?
你怎么匹配帽子?

1 个答案:

答案 0 :(得分:1)

如果您只想播放视频文件,则可以执行以下操作:

gst-launch-1.0 playbin uri = file:/// path / to / your / video

如果您需要将其解码为原始视频格式并进行进一步处理,您可以:

gst-launch-1.0 uridecodebin uri=file:///path/to/your/video ! video/x-raw ! further_processing

与音频相同,您甚至可以将您的uridecodebin命名为单独的音频和视频:

gst-launch-1.0 uridecodebin uri=file:///path/to/your/video name=d ! video/x-raw ! further_video_processing d. ! audio/x-raw ! further_audio_processing

如果要查看实际管道的外观,可以设置GST_DEBUG_DUMP_DOT_DIR环境变量以转储点表示:

GST_DEBUG_DUMP_DOT_DIR=$PWD gst-launch-1.0 playbin uri=file:///path/to/your/video

然后:

dot -Tsvg name_of_the_dot_file.dot -o mypipeline.svg

编辑:至于我读过的文件,"应用程序开发手册",gst-launch和gst-inspect的手册页以及各种文档:{{3}应该让你开始。