Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1646907
  • 博文数量: 268
  • 博客积分: 8708
  • 博客等级: 中将
  • 技术积分: 3764
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-06 15:58
文章分类

全部博文(268)

文章存档

2014年(1)

2013年(15)

2012年(23)

2011年(60)

2010年(51)

2009年(12)

2008年(59)

2007年(47)

分类:

2011-05-18 17:00:07

简单的入门说明。
    音频视频编码及文件格式(容器)是一个很庞大的知识领域,完整的说清楚,那就需要些写成一本教材了。这

里先就几个简单的概念问题作以介绍: 
    首先要分清楚媒体文件和编码的区别:
 文件是既包括视频又包括音频、甚至还带有脚本的一个集合,也可以叫容器;
 文件当中的视频和音频的压缩算法才是具体的编码。
    也就是说一个.avi文件,当中的视频可能是编码a,也可能是编码b,音频可能是编码5,也可能是编码6,具体

的用那种编码的解码器,则由播放器按照avi文件格式读取信息去调用了。
 编码介绍:
     音频视频编码方案有很多,用百家争鸣形容不算过分,目前常见的音频视频编码有以下几类
 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-4 AAC等等。 注意: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:不详述啦。

特殊说明的,是DVD这种媒介的音频编码,采用了相对独立的几种,就列2个常见的吧:AC3(杜比公司开发)、DTS文件格式(容器):
 AVI 
     音视频交互存储,最常见的音频视频容器。支持的视频音频编码也是最多的。 
 MPG 
MPEG编码采用的音频视频容器,具有流的特性。里面又分为 PS,TS 等,PS 主要用于 DVD 存储,TS 主要用

于 HDTV。 
 VOB 
DVD采用的音频视频容器格式(即视频MPEG-2,音频用AC3或者DTS),支持多视频多音轨多字幕章节等。 
 MP4 
MPEG-4编码采用的音频视频容器,基于QuickTime MOV开发,具有许多先进特性。 
 3GP 
    3GPP视频采用的格式,主要用于流媒体传送。 
 ASF 
     Windows Media 采用的音频视频容器,能够用于流传送,还能包容脚本等。 
 RM 
     RealMedia 采用的音频视频容器,用于流传送。 
  注意:RMVB,是视频编码部分采用可变码率压缩的文件格式(容器)
 MOV 
QuickTime 的音频视频容器,恐怕也是现今最强大的容器,甚至支持虚拟现实技术,Java 等,它的变种 MP4,

3GP都没有这么厉害。 
 MKV 
MKV 它能把 Windows Media Video,RealVideo,MPEG-4 等视频音频融为一个文件,而且支持多音轨,支持章节字幕等。 
 WAV 
一种音频容器(注意:只是音频),大家常说的 WAV 就是没有压缩的 PCM 编码,其实 WAV 里面还可以包括 MP3 等其他 ACM 压缩编码。 
 MP3
  如前所述,不用多说了吧?就是MPEG Audio Layer 3(Mpeg 1 的音频编码的一种)
文件转换(实际上也是编码转换)


多媒体容器文件格式
多媒体容器文件格式一般都包括文件头部分索引部分多媒体数据部分(如图1所示)。                 

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

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

视频数据存储位置索引音频数据存储位置索引
         offset1        offset1
         offset2        offset2
            ......          ......
         offsetN        offsetN

阅读(918) | 评论(0) | 转发(0) |
0

上一篇:内存文件映射(MMAP)

下一篇:gdb 处理 SIGPIPE

给主人留下些什么吧!~~