向OpenCV生成的视频添加音频

4 投票
2 回答
4767 浏览
提问于 2025-04-16 04:53

我一直在用OpenCV库在Python中从捕捉设备录制视频。每小时会生成两个AVI格式的视频文件,每到整点文件名就会改变。其中一个是原始录制的视频,另一个则是使用了OpenCV的一些检测功能处理过的视频。

不过,事情总是会有变化,现在需要录制音频,而这之前并不是我的考虑范围。我在想有没有人能给我一些建议,怎么才能最好地做到这一点。目前的想法是用pyaudio单独录制音轨,然后在录制结束后用ffmpeg把它们合在一起,但我有点担心这样会导致音画不同步。

我想知道有没有人有更好的主意,能准确地做到这一点,并且在录制中没有明显的空档?

2 个回答

0

因为没有更好的解决方案出现,所以如果对其他人有帮助的话,我还是按照最初的计划,用PyAudio来录音。

我实际上是使用mencoder这个工具,通过POpen来调用它,并且用管道来处理标准输出和错误输出。然后我用了一点正则表达式来检查这个任务是否成功。虽然有时候音频会有一两帧的延迟,但对于我的应用来说,结果还是不错的。

1

pyaudio模块可能正好符合你的需求,它是一个围绕portaudio的封装工具。在MacOsX上,可以通过这个方法来安装portaudio库:

svn co https://www.portaudio.com/repos/portaudio/trunk portaudio
cd portaudio/
./configure
make
sudo make install
sudo /usr/bin/install -c -m 644 -m 644 ./include/pa_mac_core.h /usr/local/include/pa_mac_core.h
sudo easy_install pyaudio

你可以查看他们的网站:http://people.csail.mit.edu/hubert/pyaudio/

撰写回答