我正在尝试将内部网络摄像头和麦克风的音频和视频录制到带有gstreamer的分段文件中。
通过执行以下操作可以处理单个文件:
gst-launch-1.0 -e avfvideosrc !
video/x-raw ! vtenc_h264 ! h264parse ! queue !
mpegtsmux name=mux ! filesink location=test.mp4 osxaudiosrc !
decodebin ! audioconvert ! faac ! aacparse ! queue ! mux.
执行时不起作用:
gst-launch-1.0 -e avfvideosrc !
video/x-raw ! vtenc_h264 ! h264parse ! queue !
splitmuxsink
muxer=mpegtsmux
location=test%04d.mp4
max-size-time=1000000000
name=mux osxaudiosrc !
decodebin ! audioconvert ! faac ! aacparse ! queue ! mux.
说erroneous pipeline: could not link queue1 to mux
我在Mac OSX Sierra上使用gstreamer 1.12.3
注意:H264 / AAC编码对于我想要实现的目标不是必需的,因此如果有解决方案仅适用于例如无论出于何种原因,avimux都没问题。
编辑:我在Windows机器上尝试过这个错误。
gst-launch-1.0 -ev ksvideosrc ! video/x-raw !
videoconvert ! queue !
splitmuxsink max-size-time=1000000000 muxer=avimux name=mux
location=video%04d.avi autoaudiosrc !
decodebin ! audioconvert ! queue ! mux.
就像在Mac上一样,将splitmuxsink替换为avimux ! filesink
也可以。我确信我只是错过了一些“管道”逻辑,所以任何可以推动我朝着正确方向发展的澄清都会有所帮助。
答案 0 :(得分:0)
我需要将音频流发送到多路复用器的音轨,如下所示: mux.audio_0
gst-launch-1.0 -ev ksvideosrc ! video/x-raw !
videoconvert ! queue !
splitmuxsink max-size-time=1000000000 muxer=avimux name=mux
location=video%04d.avi autoaudiosrc !
decodebin ! audioconvert ! queue ! mux.audio_O
当文档清晰但你错过了一些关于如何解释文档的基本知识时会发生这种情况。