ffmpeg学习3

容器和协议

文件是既包括视频又包括音频、甚至还带有脚本的一个集合,也可以叫容器;

文件当中的视频和音频的压缩算法才是具体的编码

音频视频编码方案有很多,用百家争鸣形容不算过分,目前常见的音频视频编码有以下几类:

MPEG系列:(由ISO[国际标准组织机构]下属的MPEG[运动图象专家组]开发 )视频编码方面主要是Mpeg1(vcd用的就是它)、Mpeg2(DVD使用)、Mpeg4(现在的DVDRIP使用的都是它的变种,如:divx,xvid等)、Mpeg4 AVC(现在正热门);

音频编码方面主要是MPEG Audio Layer 1/2、MPEG Audio Layer 3(大名鼎鼎的mp3)、MPEG-2 AAC、MPEG-4AAC等等。 注意:DVD音频没有采用Mpeg的;

H.26X系列:(由ITU[国际电传视讯联盟]主导,侧重网络传输,注意:只是视频编码)包括H261、H262、H263、H263+、H263++、H264(就是MPEG4 AVC-合作的结晶)

微软windows media系列:(公司牛,能自己定标准啊...)视频编码有Mpeg-4 v1/v2/v3(基于MPEG4,DIVX3的来源,呵呵)、Windows Media Video 7/8/9/10音频编码有Windows Media audeo v1/v2/7/8/9

Real Media系列:(注意,这里说的Real的编码,可不是rm、rmvb文件,呵呵)视频编码有RealVideo G2(早期)、RealVideo 8/9/10音频编码有RealAudio cook/sipro(早期)、RealAudio AAC/AACPlus等

QuickTime系列:(是一个平台,有很多编码器)视频编码有Sorenson Video 3(用于QT5,成标准了)、Apple MPEG-4、Apple H.264音频编码有QDesign Music 2、Apple MPEG-4 AAC(这个不错)其它,如:Ogg、On2-vpx、flash vidio:不详述啦。

多媒体容器文件格式

多媒体容器文件格式一般都包括文件头部分索引部分多媒体数据部分

文件头部分说明了多媒体数据符合的压缩标准及规范信息,多媒体数据符合的规范信息可以包括视频的分辨率、帧率,音频的采样率等。

索引部分:由于多媒体数据通常会被分成若干块,各块数据之间也可能是不连续存储的,因此需要再索引部分建立多媒体数据的存储位置索引(如图2所示),其详细显示了视频数据存储位置索引,用来记录相应数据块的存储位置的偏移量,由于各数据块的大小可能不同,因此也可能需要在索引部分建立各种多媒体数据块的尺寸大小索引,用来记录相应数据块的尺寸大小。此外在索引部分还建立了其他索引,比如音视频同步索引等等。PC上播放这些多媒体容器文件时,一般是将索引一次性的全部放到内存中,然后在播放中根据操作(快进、快退等)来通过数据索引得到所需的数据。这个貌似和项目里面的视频信息文件的作用类似~~~多媒体数据部分就是经过压缩的多媒体数据,包括视频数据、音频数据、文本数据及其他多媒体数据。

视频协议

从应用的角度看,mpeg系列在消费类应用更广些,大家也更熟悉些,我们熟悉的vcd格式视频主要是mpeg-1,dvd的视频则是mpeg-2,早期大家看的电影在电脑上存盘文 件格式都是*.mpg,基本上也都是mpeg做的压缩了。在行业上,国内的监控行业,也是从mpeg-1到mpeg-2,到前两三年的mpeg-4,再到 最近的h.264。而h系列的标准,用得最多的是视频会议,从h.261到h.263,再到h.263+、h.263++等,再到现在的h.264。

从技术角度说,h系列的协议对网络的支持更好些,这点mpeg系列要差一些,但是,mpeg它每一代都比h系列同一代的协议要出得晚些,算法也相对更先进 些,因此,它用来做存储协议是很合适的,这也就是为什么普通消费类产品用户很少了解到h系列协议的原因。

h.264是两大组织最新的算法成果,它在算法层面应该说是非常先进了,有人评价,h.264是视频压缩技术的一个里程碑,在可预见的5到10年内,出现新的视频压缩协议可能性很小,除非压缩理论有重大突破。

媒体播放器三大底层框架

媒体播放工具,这里主要指视频播放,因为要面临庞大的兼容性和纷繁复杂的算法,从架构上看,能脱颖而出的体系屈指可数。大体来说业界主要有3大架构:MPC、MPlayer和VLC。这3大架构及其衍生品占领了90%的市场,凡是用户能看到的免费媒体播放软件,无一不是源自这3大架构。

你可能感兴趣的:(ffmpeg学习3)