• 音​视​频​编​码​格​式​汇​总及入门


    http://zhongcong386.blog.163.com/blog/static/134727804201110212336271/

    视频封装格式(容器)详解

    http://lxw423.blog.163.com/blog/static/2692652010101532417206/

    区分音视频文件的容器格式和编码格式 

    所谓封装格式就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,也就是说仅仅是一个外壳,或者大家把它当成一个放视频轨和音频轨的文件夹也可以。说得通俗点,视频轨相当于饭,而音频轨相当于菜,封装格式就是一个碗,或者一个锅,用来盛放饭菜的容器。

    比较常用的有以下封装格式

    1 AVI

    AVI容器-成熟的老技术

            AVI是微软1992年推出用于对抗苹果Quicktime的技术,尽管国际学术界公认AVI已经属于被淘汰的技术,但是由于windows的通用性,和简单易懂的开发API,还在被广泛使用。

           AVI的文件结构、分为头部, 主体和索引三部分. 主体中图像数据和声音数据是交互存放的。从尾部的索引可以索引跳到自己想放的位置。

            AVI本身只是提供了这么一个框架,内部的图像数据和声音顺据格式可以是任意的编码形式。因为索引放在了文件尾部,所以在播internet流媒体时已属 力不从心。很简单的例子,从网络上下载的片子,如果没有下载完成,是很难正常播放出来。另外一个问题是AVI对高码率VBR音频文件支持不好。

           VBR全称是Variable BitRate,就是动态比特率,可以根据当前的需要定义不同的比特率,避免了浪费,并且提高了利用率。随之问题也就来了,因为容器里的图像和声音是分开 的,所以播放时需要一个图像和声音的同步过程,如果CBR音轨的话因为码率是定值,同步不成为问题,可是VBR音轨是不断的在变换,而AVI没有时间戳去 让VBR音轨和图像同步,这样就会产生图像声音不同步的问题。后来VirtualDub提出了一种新的方法扩充了AVI对VBR音频的兼容,但是在高码率 时会产生丢失数据的问题,从而导致有损音效,这一点问题到现在都没有比较完美的解决方法。并且更加令人遗憾的是,对TrueHD, DTS-HD等音效更是完全不能支持。

    2 ts和ps封装

    因 为HDDVD以及BD之争,尽管两家在编码上都统一采用MPEG2/VC-1/H.264,可在封装格式上又有所分岐。DVD论坛官方所认可的HDDVD 使用的是PS封装,即Program Stream(程序流),这和之前DVD所采用的MPEG2 Program Stream封装是一样的,PS流的后缀名是VOB以及EVO等。而BD在没有DVD论坛官方认证的情况下,自然不是PS封装,而是使用了MPEG2的另 一封装TS封装,即Transport Stream(传输流),TS流的后缀名为TS。它们都是MPEG2系统部分的两个不同的语法结构,而在现在仅仅在作为封装使用。TS流对于PS流来说更 易传输,不过由于其性质,也更易出错,所以在以前一般存储方面都是使用PS流,当然现在随着容错/纠错技术的提高,TS的适用范围越来越广。
    现在网上大多流传以TS封装的HDTV remux版,PS封装只能在HDDVD原版才看到,所以我们来着重分析一下TS封装格式。
    电 视节目是你任何时候打开电视机都能解码(收看)的,所以,MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。从结构上来 说,TS是由头文件和主体所组成的,扩充过的TS流还包括时间戳。这样不管是什么格式的VBR音轨,都很容易通过时间戳来同步图像。当然,对新的声音格式 来说,需要新的分离器,解码器来实现解码。目前在不断改进开发中。
    TS不像AVI,从诞生那天起,就考虑到了网络播放,所以很快成为了世界标准并广泛应用于电视台数字播放,手机等各个领域。

    REMUX版本

           Remux的意思是无损的提取出HD-DVD 和 BluRay-DVD里面的视频数据和音频数据,封装到我们熟悉的TS或者AVI文件中

    3 MOV封装

          不少HDRIP使用的封装格式一般是AVI,MKV和MOV。MOV是Quicktime封装,这一封装和AVI几乎是同一时代的,缺陷也不少,现在很少有人使用。

    HDRIP:重新编码,即有损压缩过之后的视频。

    4 MKV封装

            MKV是Matroska的简称,它是一种新的多媒体封装格式,比较常见的搭配是X264+MKV。MKV封装十分新颖,而且也非常开放,它对比AVI的优势体现在以下几点:

    1:可变帧率:这需要编码的配合,试想一下在回放变化比较慢(比如说静物)时以比较低的FPS来代替,可以节省不少资源。
    2:错误检测以及修复:这无疑提供了纠错和容错性,在网络传输的今天尤为需要。
    3:软字幕:经常看DVDrip以及HDrip的朋友了解到,字幕一般都是以其它文件形式存在,在MKV里它可以内嵌在封装里,但不会和视频混淆,也可以多字幕随意选择。这样在传输保存时比较方便。
    4:流式传输:这和TS流的原因基本一致,通过时间戳来管理视频以及音频的同步问题,做到即下即看。
    5:菜单:交互式的操作使得MKV更加人性化。
    6:强大的兼容性:MKV最大的特点就是能容纳多种不同类型编码的视频、音频及字幕流,即使是非常封闭的RealMedia及QuickTime也被它包括进去了,堪称万能的媒体容器。
    7:开放性和跨平台性:Matroska使用的是一种开放的架构,拥有众多的先进特性,并且能跨平台使用。
    不 过Matroska相对于以上我们介绍的缺点也是显而易见的,它没有深厚的背景可以依托,这决定了它不可能在商业领域里有所作为。不过从DVDrip里我 们看到并非标准才是唯一,真正先进的技术在标准化商业化的道路上碰到很多非技术壁垒,而在网上而言,根本不存在这样那样的顾虑,所以MKV可以网上快速流 行起来。

           不过MKV的缺点也是显而易见的,分离器方面比较好的仅有HAALI分离器,再加上民间标准的缘故,我们很难在PC以外的地方见到它的存在。

    为什么有这么多的格式以及规范呢?


    其 实不然,试想一下,有的菜,例如排骨,比较大,碗放不下,得换锅。有的饭比较烫,也不能放在塑料的容器里,当然个人喜好也有一定关系。所以容器的选择,基 本在于,其对视频/音频兼容性,以及适合范围。这下大家应该明白了,很多人一直把封装格式当成前面介绍的视频编码,而这两者之间没有必然的直接联系。
    +++编码方式:目前有mpeg1:早期vcd使用,分辨率是352*288,压缩比低
                    mpeg2:一般DVD使用,有NTSC(720*480)和PAL (720*576) 
                           压缩比高于mpeg1
                    mpeg4 :目前使用最多的技术,avi文件始祖,大大提高压缩
                              比,而质量堪比DVD
                    divx:基于mpeg4开发的,有一定算法优化
                    xvid:divx技术封锁之后被人破解开发的,也是基于mpeg4的
                          编码技术更先进,采用开放源码,画质更好
                    h.261:早期的低码率编码,应用于352x288和176x144,现在
                           已不用
                    h.263:在低码率下能够提供比H.261更好的图像效果,改进一
                           些算法
                    h.263+:h.263的改进型
                    h.264 :H.264集中了以往标准的优点,高效压缩,与H.263+
                         和MPEG4 SP相比,减小50%比特率,高质量应用等
                   rm/rmvb:real 公司推出的应用于网络的高压缩编码,rm是固定
                       码率,rmvb是动态码率(就是静态画面采用低码率,动态
                         采用高码率)
             h.263  和mpeg是不同的国际标准
    封 装格式(也叫容器):所谓封装格式就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,也就是说仅仅是一个外壳,或者大家把它当成一个放 视频轨和音频轨的文件夹也可以。说得通俗点,视频轨相当于饭,而音频轨相当于菜,封装格式就是一个碗,或者一个锅,用来盛放饭菜的容器。
                   AVI:微软在90年代初创立的封装标准,是当时为对抗
                        quicktime格式(mov)而推出的,只能支持固定CBR恒定
                        比特率编码的声音文件。
                   ts和ps:PS封装只能在HDDVD原版,
                    mov:    MOV是Quicktime封装
                    WMV:微软推出的,作为市场竞争
                    mkv:万能封装器,有良好的兼容和跨平台性、纠错性,可带
                         外挂字幕。
                   flv:h针对于h.263家族的格式
                   rmvb/rm:Real Video,由RealNetworks开发的应用于rmvb和rm
                   MP4:主要应用于mpeg4的封装
    h.264的压缩比是最高的,主要应用于低码率下的实时在线播放,rmvb压缩比相对低一些,但质量要好很多

    +++++一个完整的多媒体文件是由音频和视频2部分组成的。H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式。字幕文件只是其中附带部分。 
       把视频编码和音频编码打包成一个完整的多媒体文件,可以有不同的方式,这种方式便是所谓的封装方式,不同的封装方式有不同的后缀。由于有些封装方式具有很 强的灵活性,它可以把各种不同的音视频文件打包成一个文件,因此会出现这么一种情况,虽然文件的后缀是相同的,但有些可以正常播放,而有些不能播放,毕竟 任何一种播放软件都不是万能的。部分先进的封装方式还可以同时封装多个音频编码文件,甚至同时封装进字幕文件,如MKV封装方式。MKV文件可以做到一个 文件包括多种语种发音,多语字幕以适合不同的人观看。

    ----------------------------------------------------------------------------------------------

    目前有最常见的编码方式:

     

        mpeg1:vcd使用的就是这种编码格式,分辨率是352*288,压缩比低

        mpeg2:一般DVD使用,有NTSC(720*480)和PAL (720*576),和mpeg1一样属于即将被淘汰的编码格式。

        mpeg4 :目前使用最多的技术,avi文件始祖,大大提高压缩比,而质量堪比DVD

        divx:基于mpeg4开发的,有一定算法优化

        xvid:divx技术封锁之后被人破解开发的,也是基于mpeg4的编码技术更先进,采用开放源码,画质更好

        h.261:早期的低码率编码,应用于352x288和176x144,现在已不用

        h.263:在低码率下能够提供比H.261更好的图像效果,改进一些算法

        h.263+:h.263的改进型

        h.264 :H.264集中了以往标准的优点,高效压缩,

        RV.10 RV.13 RV.20 RV.30 RV40: real 公司推出的应用于网络的高压缩编码,是不同时期rm和rmvb的编码

     -----------------------------------------------------------------------------------------

       封 装格式(也叫容器):所谓封装格式就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,也就是说仅仅是一个外壳,或者大家把它当成一个放 视频轨和音频轨的文件夹也可以。说得通俗点,视频轨相当于饭,而音频轨相当于菜,封装格式就是一个碗,或者一个锅,用来盛放饭菜的容器。

     

      AVI:微软在90年代初创立的封装标准,是当时为对抗quicktime格式(mov)而推出的,只能支持固定CBR恒定

          定比特率编码的声音文件。

      ts和ps:PS封装只能在HDDVD原版,

      mov: MOV是Quicktime封装

      WMV:微软推出的,作为市场竞争

      mkv:万能封装器,有良好的兼容和跨平台性、纠错性,可带外挂字幕。

      flv: 这种封装方式可以很好的保护原始地址,不容易被下载到,目前一些视频分享网站都采用这种封装方式

      rmvb/rm:Real Video,由RealNetworks开发的应用于rmvb和rm的不同封装方式。rm是固定码率,rmvb是动态

               码率(就是静态画面采用用低码率,动态采用高码率)

      MP4:主要应用于mpeg4的封装,主要在手机上使用。

      3GP:目前主要应用于H.263的封装,主要在3G手机上使用

    ----------------------------------------------------------------------------------------------

      理论上可以把任意一个视频文件和一个音频文件打包成一个完整的多媒体文件,但不同的封装方式有其不同的计算方式,它所要求的是在高压缩率的同时又要兼顾高 的清晰度效果。所以无论哪种封装方式都不会把任意的一个视频文件和一个音频文件打包在一起。例如MKV封装容器,基本无论什么样的组合都可以!但一般 MKV用的最多的就是H264+AAC组合,此组合文件体积最小,清晰度最高。因此网上很多MKV视频都是高清晰度的。


    下面是一些常见的组合方式:
    封装容器 视频流编码格式 音频流编码格式
    AVI Xvid MP3
    AVI Divx MP3
    Matroska(后缀就是MKV) Xvid MP3
    Matroska(后缀就是MKV) Xvid AAC
    Matroska(后缀就是MKV) H264 AAC
    MP4 Xvid MP3
    MP4 H264 AAC
    3GP H.263 AAC

    --------------------------------------------------------------------------------------------

    各种编码对应的最佳码率

       编码规范和封装格式多种多样,是因为它们对应的最佳码率不同。640x272低分辨率的主要是Real Video,最佳码率在350-600Kbps,封装文件格式为RM或者RMVB,我们经常在网上下载的300M左右的电影基本都是RealVideo规 范的RMVB文件;分辨率提升为1024x438时,一般就开始使用Xvid编码了,码率也在800-1300Kbps不等,封装文件经常是AVI,文件 体积在700MB左右;而720P影片,我们经常下载的X264/AVC编码MKV封装文件,码率5-6MB,音频部分可以达到5.1音效,影音效果很不 错,但文件体积都在4.3GB上下,一张DVD碟的容量,网上下载往往需要数天;1080P影片经常采用的有H.264编码和VC1编码,码率 30Mbps上下,体积达到22-40GB,虽然效果震撼,但是不方便网络共享。对于容量8GB左右的MP4,综合视频来源以及体积,最适合的是Xvid 编码、码率在1300Kbps左右、文件体积700MB-1.4GB的AVI,以及同样码率和体积的RV40编码RMVB,还有码率 350-600Kbps的RMVB。

     

     

     

     

     

    一、音频编解码格式
    *MPEG Audio Layer 1/2
    *MPEG Audio Layer 3(MP3)
    *MPEG2 AAC
    *MPEG4 AAC
    *Windows Media audeo v1/v2/7/8/9
    *RealAudio cook/sipro(real media series)
    *RealAudio AAC/AACPlus(real media series)
    *QDesign Music 2(apple series)
    是QDesign 公司开发的用于高保真高压缩率的编码方式,类似于MP3,不过比MP3要先进。支持流式播放.
    *Apple MPEG-4 AAC(apple series)
    *ogg(ogg vorbis音频)
    *AC3(DVD 专用音频编码)
    *DTS(DVD 专用音频编码)
    *APE(monkey’s 音频)
    *AU(sun 格式)
    *FLAC(fress lossless 音频)
    *M4A(mpeg-4音频)(苹果改用的名字,可以改成.mp4)
    *MP2(mpeg audio layer2音频)
    *WMA
    二、视频编解码格式
    *MPEG1(VCD)
    *MPEG2(DVD)
    *MPEG4(divx,xvid)
    *MPEG4 AVC/h.264
    *h.261
    *h.262
    *h.263
    *h.263+
    *h.263++
    *MPEG-4 v1/v2/v3(微软windows media系列)
    *Windows Media Video 7/8/9/10
    *Sorenson Video 3(用于QT5,成标准了)(apple series)
    *RealVideo G2(real media series)
    *RealVideo 8/9/10(real media series)
    *Apple MPEG-4(apple series)
    *Apple H.264(apple series)
    *flash video
    三、音视频文件格式
            首先要分清楚媒体文件和编码的区别:文件是既包括视频又包括音频、甚至还带有脚本的一个集合,也可以叫容器;文件当中的视频和音频的压缩算法才是具体的编码。
    *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 采用的音频视频容器,用于流传送。
    *MOV
    QuickTime 的音频视频容器,恐怕也是现今最强大的容器,甚至支持虚拟现实技术,Java 等,它的变种 MP4,3GP都没有这么厉害。
    *MKV
    MKV 它能把 Windows Media Video,RealVideo,MPEG-4 等视频音频融为一个文件,而且支持多音轨,支持章节字幕等。
    *WAV
    一种音频容器(注意:只是音频),大家常说的 WAV 就是没有压缩的 PCM 编码,其实 WAV 里面还可以包括 MP3 等其他 ACM 压缩编码。
    四、音视频技术
    VCD
    DVD
    DVD目录是如何工作的
    Audio CD
    *标准CD格式也就是44.1K的采样频率,速率88K/秒,16位量化位数
    **.cda格式,这就是CD音轨了,一个CD音频文件是一个*.cda文件,这只是一个索引信息,并不是真正的包含声音信息,所以不论CD音乐的长短,在电脑上看到的“*.cda文件”都是44字节长
    MP3
    *MPEG音频文件的压缩是一种有损压缩,MPEG3音频编码具有10:1~12:1的高压缩率,同时基本保持低音频部分不失真,但是牺牲了声音文件中12KHz到16KHz高音频这部分的质量来换取文件的尺寸,相同长度的音乐文件,用*.mp3格式来储存,一般只有*.wav文件的1/10,而音质要次于CD格式或WAV格式的声音文件
    *MP3格式压缩音乐的采样频率有很多种,可以用64Kbps或更低的采样频率节省空间,也可以用320Kbps的标准达到极高的音质
    *每分钟音乐的MP3格式只有1MB左右大小
    MIDI:
    经常玩音乐的人应该常听到MIDI(Musical Instrument Digital Interface)这个词,MIDI允许数字合成器和其他设备交换数据。MID文件格式由MIDI继承而来。MID文件并不是一段录制好的声音,而是记录声音的信息,然后在告诉声卡如何再现音乐的一组指令。这样一个MIDI文件每存1分钟的音乐只用大约5~10KB。今天,MID文件主要用于原始乐器作品,流行歌曲的业余表演,游戏音轨以及电子贺卡等。*.mid文件重放的效果完全依赖声卡的档次。*.mid格式的最大用处是在电脑作曲领域。*.mid文件可以用作曲软件写出,也可以通过声卡的MIDI口把外接音序器演奏的乐曲输入电脑里,制成*.mid文件。
    WMA:
    *WMA的压缩率一般都可以达到1:18左右,WMA的另一个优点是内容提供商可以通过DRM(Digital Rights Management)方案如Windows Media Rights Manager 7加入防拷贝保护。这种内置了版权保护技术可以限制播放时间和播放次数甚至于播放的机器等等,这对被盗版搅得焦头乱额的音乐公司来说可是一个福音,另外WMA还支持音频流(Stream)技术,适合在网络上在线播放
    * WMA这种格式在录制时可以对音质进行调节。同一格式,音质好的可与CD媲美,压缩率较高的可用于网络广播
    五、以文件名标识识别音频编码格式
    *.aac
    音频编码:aac
    *.ac3
    音频编码:ac3
    *.ape
    *.au
    音频编码:pcm_s16be
    *.m4a
    音频编码:mpeg4 aac
    *.mp2
    *.mp3
    *.ogg
    音频编码:vorbis
    *.wav
    音频编码:pcm_s16le
    *.flav
    *.wma
    音频编码:wma7x
    以文件名标识识别音频编码格式
    1.*.MP4 (MP4 MPEG-4视频)
    视频编码:mpeg4
    音频编码:mpeg4 aac
    2.*.3gp (3GPP 第三代合作项目)
    视频编码:mpeg4
    音频编码:amr_nb((mono, 8000 Hz, Sample Depth 16 bit, bitrate 12 kbps)
    3.*.3g2 (3GPP 第三代合作项目2)
    视频编码:mpeg4
    音频编码:mpeg4 aac
    4.*.asf (ASF 高级流格式)
    视频编码:msmpeg4
    音频编码:mp3
    5.*.avi (AVI 音视频交错格式)
    视频编码:mpeg4
    音频编码:pcm_s161e
    6.*.avi (divx 影片)
    视频编码:mpeg4
    音频编码:mp3
    7.*.avi(xvid 视频)
    视频编码:Xvid
    音频编码:mp3
    8.*.vob (DVD)
    视频编码:mpeg2 video
    音频编码:ac3
    9.*.flv (flash 视频格式)
    视频编码:
    音频编码:mp3
    10.*.mp4 (iPod 320*240 MPEG-4 视频格式)
    视频编码:mpeg4
    音频编码:mpeg4 aac
    11.*.mp4(iPod video2 640*480 MPEG-4 视频格式)
    视频编码:mpeg4
    音频编码:mpeg4 aac
    12.*.mov (MOV 苹果quicktime 格式)
    视频编码:mpeg4_qt
    音频编码:mpeg4 aac_qt
    13.*.mpg (mpeg1影片)
    视频编码:mpeg1 video
    音频编码:mp2
    14.*.mpg (mpeg2 影片)
    视频编码:mpeg2 video
    音频编码:mp2
    15.*.mp4 (mpeg4 avc 视频格式)
    视频编码:h.264
    音频编码:mpeg4 aac
    16.*.mp4 (PSP mpeg4 影片)
    视频编码:Xvid
    音频编码:mpeg4 aac
    17.*.mp4 (PSP AVC 视频格式)
    视频编码:h.264
    音频编码:mpeg4 aac
    18.*.rm (RM realvideo)
    视频编码:rv10
    音频编码:ac3
    19.*.mpg (超级VCD)
    视频编码:mpeg2 video
    音频编码:mp2
    20.*.swf (SWF 格式)
    视频编码:
    音频编码:mp3
    21.*.mpg (video CD 格式)
    视频编码:mpeg1 video
    音频编码:mp2
    22.*.vob (mpeg2 ps格式)
    视频编码:mpeg2 video
    音频编码:ac3
    23.*.wmv(windows 视频格式)
    视频编码:wmv3x
    音频编码:wma7x

  • 相关阅读:
    2019.6.20刷题统计
    36 线程 队列 守护线程 互斥锁 死锁 可重入锁 信号量
    35 守护进程 互斥锁 IPC 共享内存 的方式 生产者消费者模型
    34 进程 pid ppid 并发与并行,阻塞与非阻塞 join函数 process对象 孤儿进程与僵尸进程
    33 udp 域名 进程
    32 粘包 文件传输
    31 socket客户端. 服务器 异常 语法
    30 网络编程
    29 元类 异常
    26 封装 反射 常用内置函数
  • 原文地址:https://www.cnblogs.com/jingzhishen/p/3653732.html
Copyright © 2020-2023  润新知