2012-03-25 61 views
1

我正在使用IP摄像头,并且我已经从摄像头获得Jpeg帧和音频数据(PCM)。如何制作带有jpeg帧的.avi,.mp4文件?

现在,我想创建一个从以上数据.AVI下的视频文件(包括音频和视频)或.MP4格式。

我搜索,我知道ffmpeg库可以做到这一点。但我不知道如何使用ffmpeg来做到这一点。

你能告诉我一些示例代码或ffmpeg的功能吗?

+0

使用'与'MF mencoder'://'源。 – 2012-03-25 16:03:35

回答

1

如果你的目标是编写一个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秒一帧。

可能这里的问题是:除非你事先仔细计算你所期望的帧率

  • 你的音频/视频可能稍有不同步。你应该能够得到的音频(或视频)使用ffmpeg的一些grep魔法的长度。即使如此,同步可能是更长的剪辑的问题。
  • ,如果你有超过999张图像的%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.

相关问题