使用 ffmpeg 实时结合视频和音频的最有效方法是什么?

使用 ffmpeg 实时结合视频和音频的最有效方法是什么?

我正在尝试在一台速度不是很快的机器(Raspberry Pi 4B)上捕获并合并网络摄像头视频和(单独的)USB 麦克风音频。如果我单独捕获,一切都会顺利进行,而且我只使用一小部分可用的 CPU。但是当我尝试将两个输入流合并为一个文件时,我收到许多“非单调 DTS”和“ALSA 缓冲区 xrun”警告,并且输出音频在几秒钟后丢失。

什么是有效的 ffmpeg 调用来执行此操作?

这是我尝试过的众多命令之一:

ffmpeg -hide_banner -f alsa -i default:CARD=Elf -f v4l2 -framerate 4 -i /dev/video0 -r 4 t26.avi

我是一名经验丰富的程序员,但是对 ffmpeg 还不熟悉,所以也许我犯了一些明显的错误。

我的目标是每秒 4 帧以节省空间,并且(希望)还能减少 CPU 负载。不过,我希望保持较高的音频质量。

也许将两个输入流合并会强制进行一些格式转换/重新编码,也许一些中间步骤的帧速率很高?如果是这样,有没有办法将视频和音频流合并起来以避免这种情况?

相关内容