使用 gstreamer 捕获分段的音频和视频
capture segmented audio and video with gstreamer
我正在尝试使用 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 是可行的。我确定我只是错过了一些 'pipeline' 逻辑,所以任何可以将我推向正确方向的澄清都会有所帮助。
我需要像这样将音频流发送到多路复用器的音轨: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
当文档应该清晰明了但您遗漏了一些关于如何解释它的基本知识时,就会发生这种情况。
我正在尝试使用 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 是可行的。我确定我只是错过了一些 'pipeline' 逻辑,所以任何可以将我推向正确方向的澄清都会有所帮助。
我需要像这样将音频流发送到多路复用器的音轨: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
当文档应该清晰明了但您遗漏了一些关于如何解释它的基本知识时,就会发生这种情况。