使用gstreamer捕获分段音频和视频

问题描述 投票:0回答:1

我正在尝试使用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上一样,用avimux ! filesink替换splitmuxsink也行得通。我确信我只是错过了一些“管道”逻辑,所以任何可以推动我朝着正确方向发展的澄清都会有所帮助。

gstreamer gstreamer-1.0
1个回答
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

当文档清晰但您错过了有关如何解释它的一些基本知识时,就会发生这种情况。

© www.soinside.com 2019 - 2024. All rights reserved.