用 OpenCV 开发经常用到摄像头,从 Camera获取图像后用OpenCV的算法进行处理,但是一般我们处理完图像之后,还需要将视频保存下来,比如保存成avi、mp4等格式。怎么保存呢?其实OpenCV有一个类cv::VideoWriter专门用来把视频保存到文件的,但VideoWriter不仅仅是将原始图像流保存到文件,它还可以对视频编码,然后以某种封装格式(比如AVI/MP4)将视频流写到文件中。其实这个VideoWriter底层也是调用了FFmpeg的多媒体文件处理功能,OpenCV只是借用了FFmpeg的能力,在上面封装多了一层。因为OpenCV的长项是在图像处理,如果要针对多媒体文件做复杂的处理,推荐的还是用FFmpeg 专业库。
VideoWriter使用
用 OpenCV 保存视频非常简单,通过调用它的 VideoWriter 这个类就好了。
cv::VideoWriter::VideoWriter( const String & filename,
int apiPreference,
int fourcc,
double fps,
Size frameSize,
bool isColor = true
)
第一个参数是要保存的文件的路径
fourcc 指定编码器
fps 要保存的视频的帧率
frameSize 要保存的文件的画面尺寸
isColor 指示是黑白画面还是彩色的画面
什么是fourcc?
fourcc 本身是一个 32 位的无符号数值,用 4 个字母表示采用的编码器。
常用的有 “DIVX"、”MJPG"、“XVID”、“X264"。可用的列表在