Command line Gstreamer管道多个接收器到一个src
寻找如何使用命名元素在一个模块中对两个输入进行muxing的解释。例如,在一个mpegtsmux模块中多路复用音频和视频 gst启动文件rc location=surround.mp4!decodebin name=dmux!队列音频转换!lamemp3enc dmux!队列x264enc!mpegtsmux name=mux!队列filesink location=out.ts 上面的管道提供了插件互连,如下所示 所以它显示音频没有连接到mpegtsum 如何修改命令行以在MPEGTSUM中使用音频和视频muxedupCommand line Gstreamer管道多个接收器到一个src,command-line,gstreamer,pipeline,Command Line,Gstreamer,Pipeline,寻找如何使用命名元素在一个模块中对两个输入进行muxing的解释。例如,在一个mpegtsmux模块中多路复用音频和视频 gst启动文件rc location=surround.mp4!decodebin name=dmux!队列音频转换!lamemp3enc dmux!队列x264enc!mpegtsmux name=mux!队列filesink location=out.ts 上面的管道提供了插件互连,如下所示 所以它显示音频没有连接到mpegtsum 如何修改命令行以在MPEGTSUM中
谢谢 它没有链接,因为您的发布线没有链接。请注意,lamemp3enc元素是如何不链接到下游的 将您的产品线更新为: gst启动文件rc location=surround.mp4!decodebin name=dmux!队列音频转换!瘸子!多路复用器。dmux!队列x264enc!mpegtsmux name=mux!队列filesink location=out.ts 唯一的变化是在lamemp3enc之后的“!mux.”来告诉它链接到mpegtsmux
当您在更新内容时,请注意,您正在使用的gstreamer 0.10已过时多年且未添加任何内容,请升级到1.x系列以获得最新的改进和错误修复。它没有链接,因为您的产品线没有这样做。请注意,lamemp3enc元素是如何不链接到下游的 将您的产品线更新为: gst启动文件rc location=surround.mp4!decodebin name=dmux!队列音频转换!瘸子!多路复用器。dmux!队列x264enc!mpegtsmux name=mux!队列filesink location=out.ts 唯一的变化是在lamemp3enc之后的“!mux.”来告诉它链接到mpegtsmux 当您在更新内容时,请注意,您使用的是过时多年且未添加内容的gstreamer 0.10,请升级到1.x系列,以获得最新的改进和错误修复。我将尝试给出基本想法,尽管我不是那么精通,可能是完全错误的
- 一条管道可以由多个子管道组成。如果某个元素()不是以管道(
)结尾,而是以另一个元素开头,那么它就是一个新的子管道:!
filesrc location=a.mp4!qtdemux name=demp4
demp4!一些东西
- 命名的bin(通常是muxer)或类似的
可以是其他子管道中的源和/或接收器:somedemux.audio\u 00
demp4!队列德克宾!x264enc!多路复用器。
- 通常,子管道以命名的bin/muxer结尾,声明:
或由名称引用:mpegtsmux name=mux
结尾的点是引用的语法mux。
- 然后,命名的muxer可以通过管道传输到另一个子管道中的接收器:
mux!filesink location=out.ts
- 如果您仅使用来自源的唯一音频或视频流,则不必指定类似于
的键盘muxname.audio\u 00
是“muxname中合适的音频/视频键盘”的快捷方式muxname。
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
我会尽量给出基本的想法,虽然我不是那么熟练,可能是完全错误的
- 一条管道可以由多个子管道组成。如果某个元素()不是以管道(
)结尾,而是以另一个元素开头,那么它就是一个新的子管道:!
filesrc location=a.mp4!qtdemux name=demp4
demp4!一些东西
- 命名的bin(通常是muxer)或类似的
可以是其他子管道中的源和/或接收器:somedemux.audio\u 00
demp4!队列德克宾!x264enc!多路复用器。
- 通常,子管道以命名的bin/muxer结尾,声明:
或由名称引用:mpegtsmux name=mux
结尾的点是引用的语法mux。
- 然后,命名的muxer可以通过管道传输到另一个子管道中的接收器:
mux!filesink location=out.ts
- 如果您仅使用来自源的唯一音频或视频流,则不必指定类似于
的键盘muxname.audio\u 00
是“muxname中合适的音频/视频键盘”的快捷方式muxname。
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
谢谢你的解释。只是试过命令,但什么也没发生。谢谢你的解释。只是尝试命令,但什么都没有发生。