Gstreamer管道多个接收器到一个src
寻找解释如何在一个模块中复用两个输入方面使用命名元素。 例如在一个mpegtsmux模块中混合音频和视频
gst-launch filesrc location = surround.mp4! 解码器名称= dmux! 队列! audioconvert! lamemp3enc dmux。 ! 队列! x264enc! mpegtsmux name = mux! 队列! filesink location = out.ts
管道以上给插件互连如下
所以它显示音频不连接到mpegtsmus。
如何修改命令行以在mpegtsmux中混合使用音频和视频?
谢谢!
它没有链接,因为你的发射线没有这样做。 注意lamemp3enc元素没有链接到下游。
将您的发射线更新为:
gst-launch filesrc location = surround.mp4! 解码器名称= dmux! 队列! audioconvert! lamemp3enc! MUX。 DMUX。 ! 队列! x264enc! mpegtsmux name = mux! 队列! filesink location = out.ts
唯一的变化是“!mux”。 在lamemp3enc之后告诉它链接到mpegtsmux。
在更新内容时,请注意,您正在使用已过时且未被宣布的gstreamer 0.10,请升级到1.x系列以获取最新的改进和错误修正。
尽管我没有那么精通,并且可能是错误的,但我会尽量给出基本的想法。
!
)结尾,而是以另一个元素的开始结尾,那么这是一个新的子管道: filesrc location=a.mp4 ! qtdemux name=demp4
filesrc location=a.mp4 ! qtdemux name=demp4
demp4. ! something
demp4. ! something
somedemux.audio_00
)或者像somedemux.audio_00
那样的somedemux.audio_00
可以是其他子管道中的源和/或接收器: demp4. ! queue ! decodebin ! x264enc ! mux.
demp4. ! queue ! decodebin ! x264enc ! mux.
mpegtsmux name=mux
,声明为: mpegtsmux name=mux
或由名称: mux.
引用mux.
最后一点是参考语法。 mux. ! filesink location=out.ts
: mux. ! filesink location=out.ts
mux. ! filesink location=out.ts
muxname.audio_00
这样的muxname.audio_00
垫。 muxname.
是“从muxname
合适的音频/视频板”的捷径。 这个例子
这就是说,我认为你的MP4文件同时具有音频和视频。 在这种情况下,您需要首先将其解码为2个数据流,然后解码,重新编码,然后将其复用回来。
事实上,您的音频没有连接到mpegtsmux
。
如果你真的需要解码流,那就是我会做的。 但是,这对我并不适用,但:
gst-launch-1.0 filesrc location=surround.mp4 !
qtdemux name=demp4
demp4. ! queue ! decodebin ! audioconvert ! lamemp3enc ! mpegtsmux name=mux
demp4. ! queue ! decodebin ! x264enc ! mux.
mux. ! filesink location=out.ts
或者让我们使用decodebin
来神奇地解码两个流:
gst-launch-1.0 filesrc location=surround.mp4 !
decodebin name=demp4
demp4. ! queue ! audioconvert ! lamemp3enc ! mpegtsmux name=mux
demp4. ! queue ! x264enc ! mux.
mux. ! filesink location=out.ts
链接地址: http://www.djcxy.com/p/7639.html
上一篇: Gstreamer pipeline multiple sink to one src
下一篇: Record synchronized video and audio into container file with gstreamer