4.3 使用OpenCV创建视频
对于简单的视频创建工作,可以使用OpenCV内建的
VideoWriter 类来完成。
视频文件的结构:
每个视频文件本质上是一个容器,文件的扩展名(avi,mov,mkv等)表示容器的类型。容器中包含了很多元素,如 视频流,音频流或其他轨道(如字幕)。这些流的存储方式(格式)由每个源对应的编解码器(codec)决定。一般情况下音轨通常用的编解码器是 mp3 或 aac 。而视频格式更多,如 XVID,DIVX,H264,LAGS等等。在一个系统中你可以使用的编解码器依赖于你在系统中是否安装过编解码器。
OpenCV作为一个计算机视觉库而不是视频处理编解码库,力求在这方便精简,所以暂时只支持 avi 扩展名的视频(注意:avi 只是表明了视频文件的类型,具体的视频格式还要根据采用的编解码器类型确定)。不能创建超过2GB的单个视频,每个文件里只能创建一个视频流,不支持音轨和其他轨道。尽管如此,使用任何系统支持的编解码器应该都能工作。如果在视频处理这方面受到了限制,建议使用一些专门的视频处理库如 FFMpeg或更多的编解码器如 HuffYUV,CorePNG 和 LCL。作为替代方案,可以使用OpenCV创建一个原始的视频流,把它和音轨合并起来,或者使用视频处理软件如 VirtualDub 或 AviSynth 用它创建其他视频格式。