1.5 开源的视频CODEC
由于编解码逐渐形成了规范的统一标准,制定组织通常提供了视频算法的参考软件、校验模型等,但一般并不实用。而那些专业爱好者基于视频编码协议,开发了快速且实用的算法工程。常用的开源视频编解码CODEC(Coding and Decoding)工程如表1-1所示,通常采用通用的C语言编程。这些CODEC中多数一直在持续更新,读者可根据自己的需求关注CODEC的功能升级。
表1-1 常用开源视频编解码CODEC
(1)ffdshow
ffdshow是一个支持多种音视频格式的基于DirectShow及VFW的CODEC集合,包含:H.264、MPEG-4、MPEG-2、H.263、VP3、VP6、Theora、MJPEG、SVQ3、MP3、AC3、DTS、E-AC3、AAC和Vorbis。
(2)ffmpeg
ffmpeg是一个完整的跨平台音视频解决方案,能记录、转换和流处理音视频,并包含领先的音视频CODEC库——libavcodec。
(3)VLC
VLC是一个免费、开源的跨平台多媒体播放器和框架,能够播放大部分多媒体文件,包括DVD、音频CD、VCD和各种流媒体。
(4)Xvid
Xvid是一个开源的MPEG-4视频编码和解码CODEC,实现了MPEG-4的SP(Simple Profile)和ASP(Advanced Simple Profile)等档级。
(5)T264
T264是一个实现H.264视频编码和解码的开源算法,但是码流与H.264标准协议略有不同,编程风格类似Xvid。
(6)x264
x264是一个免费的H.264视频编码开源算法,编码后的码流符合H.264/AVC格式,很多H.264视频编码方案几乎都基于该蓝本。它与VLC同属于一个组织VideoLAN。
(7)JM
JVT提供的H.264协议的参考校验模型,包括视频编码和解码两部分。目前,该模型的最新版本为JM17.2。
MPEG-1和MPEG-2编解码源码从MPEG的主页http://www.mpeg.org上可直接获取。
本书的MPEG-4视频编解码开发案例就是基于Xvid的,而H.264视频编码开发案例基于x264,H.264视频解码开发案例基于ffmpeg。