2

我试图了解 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

但它不起作用。如何同时播放音频和视频?

4

1 回答 1

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)渲染它创建的点文件。

于 2013-03-11T18:44:48.690 回答