我需要一种方法来同时录制来自我的相机的视频和来自我的麦克风的音频,以便将它们保存在一个文件中。
目前,我知道如何录制视频......
gst-launch-1.0 -e autovideosrc ! videoconvert ! matroskamux ! filesink location=recording.mkv
和音频...
gst-launch-1.0 -e autoaudiosrc ! audioconvert ! wavenc ! filesink location=recording.wav
...分别地。
我需要的是一个包含来自的视频recording.mkv
和来自的音频的文件recording.wav
。
我发现了一个只要稍微调整一下就能起作用的东西。
gst-launch-1.0 -e autovideosrc ! queue ! videoconvert ! mkv. autoaudiosrc ! queue ! audioconvert ! mkv. matroskamux name=mkv ! filesink location=test.mkv sync=false
它只能录制视频,不能录制音频,不过正如我所说,我认为只需要稍微调整一下就可以录制音频。
答案1
这里是:
gst-launch-1.0 -e autovideosrc ! queue ! videoconvert ! mkv. autoaudiosrc ! queue ! audioconvert ! mkv. matroskamux name=mkv ! filesink location=test.mkv sync=false
工作原理如下:
- 我们使用 从网络摄像头获取视频源
autovideosrc
。 - 接下来,我们将该 feed 输出到它自己的线程中
queue
。 - 视频源
queue
转到videoconvert
转换地点(我不确定这一步是否必要)。 - 最后,视频源进入名为 的元素
mkv
,其类型为matroskamux
。此元素将视频源转换为 Matroska。 - 之后我们使用获取音频反馈
autoaudiosrc
。 autoaudiosrc
我们使用 在另一个线程中放置 feedqueue
。- 从
queue
音频到audioconvert
转换的地方(也不确定是否有必要)。 - 转换后的音频进入同一
matroskamux
元素mkv
。此处音频源被转换为 Matroska。 - 由于音频和视频源都发往同一元素,因此它们被合并为一个 Matroska 源。
- 最后,使用 将该 Matroska 源保存到文件中。如果您的计算机不是一台强大的计算机,
filesink
您可能需要进行设置。sync=false
就是这样。另外,如果有人想知道为什么我在问题中写道此命令不录制音频,那是因为我忘了打开麦克风。