我正在使用IP摄像头,并且我已经从摄像头获得Jpeg帧和音频数据(PCM)。如何制作带有jpeg帧的.avi,.mp4文件?
现在,我想创建一个从以上数据.AVI下的视频文件(包括音频和视频)或.MP4格式。
我搜索,我知道ffmpeg库可以做到这一点。但我不知道如何使用ffmpeg来做到这一点。
你能告诉我一些示例代码或ffmpeg的功能吗?
我正在使用IP摄像头,并且我已经从摄像头获得Jpeg帧和音频数据(PCM)。如何制作带有jpeg帧的.avi,.mp4文件?
现在,我想创建一个从以上数据.AVI下的视频文件(包括音频和视频)或.MP4格式。
我搜索,我知道ffmpeg库可以做到这一点。但我不知道如何使用ffmpeg来做到这一点。
你能告诉我一些示例代码或ffmpeg的功能吗?
如果你的目标是编写一个C++应用程序来为你做这个,请忽略这个答案,我就离开这里以供将来参考。如果不是,这里是你如何能在bash做到这一点:
首先,确保你的图像是在一个不错的格式,便于通过ffmpeg的处理。您可以将图像复制到不同的目录:
mkdir tmp
x=1; for i in *jpg; do counter=$(printf %03d $x); cp "$i" tmp/img"$counter".jpg; x=$(($x+1)); done
将您的音频数据复制到tmp目录并对视频进行编码。比方说,你的相机拍了一张照片每十秒钟:
cd tmp
ffmpeg -i audio.wav -f image2 -i img%03d.jpg -vcodec msmpeg4v2 -r 0.1 -intra out.avi
凡-r 0.1
表示0.1帧速率是每10秒一帧。
可能这里的问题是:除非你事先仔细计算你所期望的帧率
grep
魔法的长度。即使如此,同步可能是更长的剪辑的问题。%03d
格式是不够的,请务必将3
更改为指数视频所需的长度将继承流的较长的长度,你可以使用-t
开关限制它:
-t duration
- Restrict the transcoded/captured video sequence to the duration specified in seconds. "hh:mm:ss[.xxx]" syntax is also supported.
使用'与'MF mencoder'://'源。 – 2012-03-25 16:03:35