原文链接
https://blog.csdn.net/zhrh0096/article/details/20999291
https://blog.csdn.net/qq_16540387/article/details/93379539
1. 视频结构
一个视频由压缩格式(container, eg. avi, mkv…)和封装格式(codec, eg. H264, DIVX)组成.
详细解释:
For start, you should have an idea of just how a video file looks. Every video file in itself is a container. The type of the container is expressed in the files extension (for example avi, mov or mkv). This contains multiple elements like: video feeds, audio feeds or other tracks (like for example subtitles). How these feeds are stored is determined by the codec used for each one of them. In case of the audio tracks commonly used codecs are mp3 or aac. For the video files the list is somehow longer and includes names such as XVID, DIVX, H264 or LAGS (Lagarith Lossless Codec). The full list of codecs you may use on a system depends on just what one you have installed.
2. Linux下opencv对container和codec的支持
Linux下opencv对codec的支持由系统的FFMpeg库决定, 而container, opencv目前好像只支持avi.
如果出现"[mp4 @ 0xcb0f40] Tag mp4v/0x7634706d incompatible with output codec id ‘13’“等类似错误, 是由于输出视频的后缀不是”.avi"引起.