Gstreamer一起播放音频和视频

时间:2013-03-10 06:16:56

标签: h.264 gstreamer aac

我试图了解gstreamer管道。现在我想播放包含h264编码视频帧和aac编码音频样本的mp4视频。 为了播放视频样本我使用了以下管道

gst-launch-0.10 filesrc location=~/samples/step_up_dance_1080p.mp4 ! qtdemux name=dmux dmux.video_00 ! h264parse ! ffdec_h264 ! autovideosink 

我使用以下管道单独播放音频

gst-launch-0.10 filesrc location=~/samples/step_up_dance_1080p.mp4 ! qtdemux name=dmux dmux.audio_00 ! aacparse ! faad ! autoaudiosink

两者都运行良好,但我希望将音频和视频结合起来。我该怎么做 ? 我试过了

gst-launch-0.10 filesrc location=~/samples/step_up_dance_1080p.mp4 ! qtdemux name=dmux dmux.video_00 ! h264parse ! ffdec_h264 ! autovideosink  dmux.audio_00 ! aacparse ! faad ! autoaudiosink

但它没有用。 我如何一起播放音频和视频?

1 个答案:

答案 0 :(得分:3)

首先,当说某些东西不起作用时,请说明会发生什么。加入管道停顿,你就忘记了为解码器创建新线程的队列元素。

gst-launch-0.10 filesrc location=~/samples/step_up_dance_1080p.mp4 ! qtdemux name=dmux dmux.video_00 ! queue ! h264parse ! ffdec_h264 ! autovideosink  dmux.audio_00 ! queue ! aacparse ! faad ! autoaudiosink

使用playbin更简单。看一下管道布局。

GST_DEBUG_DUMP_DOT_DIR=$PWD gst-launch-0.10 playbin2 uri=file://$HOME/samples/step_up_dance_1080p.mp4

并使用graphviz渲染它创建的点文件(dot -Tsvg xxx.dot -o xxx.svg)。