MJPEG+PCM合成AVI视频格式文件

前段时间将Webcam的MJPEG获得了,也将MJPEG通过硬件解码显示出来了,现在要做的是将MJPEG数据合成视频文件。想到最简单的视频格式就是微软的AVI了,首先我们要对AVI的结构有些认识,下面我们通过结构分析软件,看看简单的AVI结构(AtomicBrowser很不错的分析软件),下面是我合成MJPEG 1280*720 25fps, 150张MJPEG图片,PCM双通道,22050Hz, 16bit位宽,的结构。

‘AVI’ 包涵整个视频文件;

‘hdrl’ 记录avi的全局信息;

‘avih’ 记录了视频格式数据;

‘strl’ 是视频的数据流信息,视频有多少流就有多少‘strl’

‘movi’是存放流信息的,其中视频流的标记是‘00dc’, 音频流是‘01wb’,其中00,01是代表流的编号。

只需要这些信息合成视频就能播放了,我们就没有必要,找麻烦写一些字段,如:‘JUNK’,, ‘INFO’, ‘idx1’

下面我们一步一步的合成AVI,首先写头信息:

‘avih’

microsec/frame每个画面帧的间隔时间,纳秒为单位

max bytes/sec每秒数据流的byte数

frame指示该视频有多少视频帧

sug. bufsize建议解码的缓存

# stream视频流的数目,只有视频流和音频流,所以是2

width,height视频的宽高

视频流‘strh’和‘strf’

这些数据就不用解释了,看英文加数字,再对照我合成AVI的参数就清楚了

音频流‘strh’和‘strf’

同上这些数据就不用解释了。

真实数据存放在‘movi’里面

上面有对应的标记和size,很清晰吧。

有了上面清晰的数据结构,再对应一个一个字段写数据就可以合成AVI文件了,是不是很简单,我这里有用C语言写的,生成AVI视频源码,有需要可以联系我!

坚韧是成功的一大要素,只要在门上敲得够久够大声,终会把人唤醒的。

MJPEG+PCM合成AVI视频格式文件

相关文章:

你感兴趣的文章:

标签云: