常见音视频的编码方式和封装格式

视频格式标准http://jingyan.baidu.com/article/fc07f98905797d12ffe519d6.html

视频编码标准只有 h.26x和mpegx。大多听书格式都是对他们的实现。例如divx xvid。

数字视频技术广泛应用于通信、计算机、广播电视等领域,带来了会议电视、可视电话及数字电视、媒体存储等一系列应用,促使了许多视频编码标准的产生。ITU-T与ISO/IEC是制定视频编码标准的两大组织,ITU-T的标准包括H.261、H.263、H.264,主要应用于实时视频通信领域,如会议电视;MPEG系列标准是由ISO/IEC制定的,主要应用于视频存储(DVD)、广播电视、因特网或无线网上的流媒体等。两个组织也共同制定了一些标准,H.262标准等同于MPEG-2的视频编码标准,而最新的H.264标准则被纳入MPEG-4的第10部分。

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

音频编码标准

LPC(Linear Predictive Coding,线性预测编码)

 

瑞典Global IP Sound公司

GIPS

 

Audio Processing Technology 公司

Apt-X

 

英国BBC广播公司

NICAM(Near Instantaneous Companded Audio Multiplex 准瞬时压扩音频复用)

 

欧洲通信标准协会(ETSI)

CELP(Code Excited Linear Prediction,码激励线性预测编码)

 

飞利浦

HR

FR

EFR

GSM-AMR(Adaptive Multi-Rate)

 

AT&T

ASPEC(Audio Spectral Perceptual Entropy Coding)

PAC(Perceptual Audio Coder)

 

美国杜比公司

Dolby AC-3

 

美国Qualcomm通信公司(即高通)

EVRC(Enhanced Variable Rate Coder,增强型可变速率编码器)

QCELP(QualComm Code Excited Linear Predictive,受激线性预测编码)

 

微软公司

WMA(Windows Media Audio)

 

ITU-T

PCM编码(原始数字音频信号流)

ADPCM(自适应差分PCM)

PCMU(G.711U)

PCMA(G.711A)

G.711

G.721

G.722

G.723(低码率语音编码算法)

G.723.1(双速率语音编码算法)

G.728

G.729

G.729A

 

MPEG

MPEG-1 audio layer 1

MUSICAM(MPEG-1 audio layer 2,即MP2)

MP3(MPEG-1 audio layer 3)

MPEG-2 audio layer

AAC(Advanced Audio Coding,先进音频编码)

 

 

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

Advanced Video Coding 高级视频编码

视频编解码技术有两套标准,H.261、国际电联(ITU-T)的标准H.263、H.263+等;还有ISO 的MPEG标准Mpeg1、Mpeg2、Mpeg4等等。H.264/AVC是两大组织集合H.263+和Mpeg4的优点联合推出的最新标准,最具价值的部分无疑是更高的数据压缩比。在同等的图像质量条件下,H.264的数据压缩比能比H.263高2倍,比MPEG-4高1.5倍。

H.264/AVC标准是由ITU-T和ISO/IEC联合开发的,定位于覆盖整个视频应用领域,包括:低码率的无线应用、标准清晰度和高清晰度的电视广播应用、Internet上的视频流应用,传输高清晰度的DVD视频以及应用于数码相机的高质量视频应用等等。

ITU-T给这个标准命名为H.264(以前叫做H.26L),而ISO/IEC称它为MPEG-4 高级视频编码(Advanced Video Coding,AVC),并且它将成为MPEG-4标准的第10部分。既然AVC是当前MPEG-4标准的拓展,那么它必然将受益于MPEG-4开发良好的基础结构(比如系统分层和音频等)。很明显,作为MPEG-4高级简洁框架(Advanced Simple Profile,ASP)的MPEG-4 AVC将会优于当前的MPEG-4视频压缩标准,它将主要应用在具有高压缩率和分层次质量需求的方向。

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

常见的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等文件其实只能算是一种封装标准。ASF是流媒体封装

一个完整的视频文件是由音频和视频2 部分组成的。H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式。

         例如:将一个Xvid视频编码文件和一个MP3视频编码文件按AVI封装标准封装以后,就得到一个AVI后缀的视频文件,这个就是我们常见的AVI视频文件了。

         由于很多种视频编码文件、音频编码文件都符合AVI封装要求,则意味着即使是AVI后缀,也可能里面的具体编码格式不同。因此出现在一些设备上,同是AVI后缀文件,一些能正常播放,还有一些支付宝线下收单无法播放。

        同样的情况也存在于其他容器格式。即使RMVB、WMV等也不例外。部分技术先进的容器还可以同时封装多个视频、音频编码文件,甚至同时封装进字幕,如MKV封装格式。MKV文件可以做到一个文件包括多语种发音、多语种字幕,适合不同人的需要。

         例如:MKV文件只要制作的时候同时加入国语和粤语发音的音轨和对应的简体、繁体字幕,播放的时候,你可以独立选择国语或粤语发音,并根据自己需要选择简体或繁体字幕,也可以选择不显示字幕。相当方便。

         因此,视频转换需要设置的本质就是:A设置需要的视频编码、B设置需要的音频编码、C选择需要的容器封装。一个完整的视频转换设置都至少包括了上面3个步骤。

常用的有Xvid,H264,MPEG1,MPEG2。

Xvid:与RMVB格式差不多的压缩率,通用性很强,特别是用于家用DVD和便携式MP4等设备。

 

H264:面前压缩率最高的视频压缩格式,与其他编码格式相比,同等画面质量,文件体积最小,远远超过RMVB编码格式,电脑都可以播放,部分便携式视频设备也支持,如苹果播放器。PDA/PPC等设备也可以使用。

 

MPEG1:其实就是VCD编码格式。

 

MPEG2:DVD编码格式。比MPEG1强,与MPEG1一样,已经落后的企业文件加密系统压缩率都不高,编码后的文件体积大,多用于希望把网上下载的文件转换为VCD或DVD碟的时候。

 

常见的组合方式

封装容器

视频流编码格式

音频流编码格式

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

 

Xvid(旧称为XviD)是一个开放源代码的MPEG-4视频编解码器

Divx也是Mpeg-4数字视频编解码技术

他们算是mpeg-4的实现

 

事实上,很多封装容器对音频编码和视频编码的组合方式放的很开,如AVI还可以使用H264+AAC组合,可以在具体使用中自己体会。尤其是MKV封装容器,基本无论什么样的组合都可以!但一般MKV用的最多的就是H264+AAC组合,此组合文件体积最小,清晰度最高。因此网上很多MKV视频都是高清晰度的。

         从上表格可以看出,真正设置的重点在于音频编码和视频编码,封装容器多数时候只是关系到最后的文件后缀而已。起码初学者可以就这么理解。

 

 

 

1) 什么是MP4?听闻它是一种“容器格式”,那是什么?

容器格式允许你将不同种类的多媒体数据流(多为视频流和音频流)合并在一个单一的文件内。

多媒体容器格式,就是我们熟知的AVI(.avi), MPEG(.mpg, .mpeg), Matroska(.mkv, .mka), OGM(.ogm), Quicktime(.mov),或Realmedia(.rm, .rmvb).

      

MP4是遵循MPEG-4(ISO 14496-14)的官方容器格式定义的广义文件扩展名。它可以流媒体化并支持众多多媒体的内容(多音轨(multiple audio)、视频流(video)、字幕(subtitlestreams)、图片(pictures)、可变桢率(variable-framerates)、码率(bitrates)、采样率(samplerates)等)和高级内容(advanced content)(官方称之为“Richmedia”(超媒体)或“BIFS”(Binary Format for Scenes/二进制格式场景),类似2D和3D图形,动画、用户界面、类DVD菜单,上述这些AVI搞不定的东西。

 

2) MP4文件的扩展名用什么?

-.mp4:唯一的官方扩展名,支持所有音频和视频以及高级内容(或它们的混合) 

 

其他相关的扩展名:

- .m4v:是.mp4文件的错误扩展名,由apple提出,支持视频+音频,m4v扩展名可以安全地更名为.mp4

- .m4a:是.mp4文件的错误扩展名,由apple提出,只支持音频,m4a扩展名可以安全地更名为.mp4

- .m4p:随iTunes发售的DRM(Digital Rights Management/数字版权保护技术)产权保护的文件,使用Apple开发的DRM sheme

- .m4e:由.sdp修改扩展名的来的文件,Envivio用其于流媒体播放。

- .m4v, -.mp4v, -.cmp, -.divx, .-xvid, .264:raw的mpeg-4视频流(并非内含于mp4)。

- .3gp, -.3g2:手机中使用的格式,其中储存的内容同样在.mp4未被定义(H.263, AMR(Adaptive Multi Rate/自适应多码率))。

 

3) 如何创建标准的MP4文件?

简单的回答:参考doom9的MP4指南或NERO Recode2指南。

 

详细解答:

1) 为了制作MP4文件,你应该优先使用MPEG-4标准下的音频/视频格式:

- MP4视频格式包括:MPEG-4 SP(Simple Profile/简单类)/ASP(Advanced Simple Profile/高级简单类):xvid, divx5, 3ivx,ffmpeg/ffdshow, NeroDigital ASP...及MPEG-4 AVC/H.264:x264, NeroDigital AVC, Apple...还有MPEG-2, MPEG-1(不含Divx3/M$ MPEG4, WM9, RV9或VP6).-doom9的质量比较测评:1 2

- MP4音频格式包括:Advanced Audio Coding(AAC FAQ):Quicktime/iTunes, Nero, Psytel, FAAC(binary)...(rjamorim的质量比较测评:1 2)和mp3, mp2, mp1, celp(语音), TwinVQ(非常低的码率), SAOL(midi), ALS(无损)

- MP4字幕/文本格式:MPEG-4时标文本(见Q7)

- MP4图片格式:JPEG, PNG

 

2) 使用下列的软件可以将遵循MPEG-4的内容Mux进MP4容器:

- GPAC的MP4box,命令行界面,支持AVC(Advanced Video Coding/进阶视频编码),packed B-frames(打包B桢),高级内容/BIFS,TTXT和章节(Doom9指南)

- MPEG4IP的mp4creator,命令行界面,能够混合AVC,但不要用于AVI及(packed) B-frames!

- 3ivx mp4 muxer,dshow滤镜,可以在GraphEdit中使用,支持使用packed B-frames的avi,但不支持AVC(3ivx 指南)

- mp4UI,操作简单,软件基于MPEG4IP,不支持AVC,AVI及(packed) B-frames!(doom9指南)

- VideoLAN Client,支持AVC,不能用于packed B-frames

- ffmpeg,问题多,命令行界面,尤其不能用于AVC,AVI及(packed) B-frames!

- IBM的Toolkit for MPEG-4,含基于Java的XMTBatch和/或AVGen(也是一个简易的版本)

- dvd2mp4GUI,mp4tool的GUI,可以简单的将多音轨及字幕(作为高级内容)混合进MP4

- mp4tool/mp4edit,来自于ENST,类似于mp4box。mp4edit是mp4tool命令行软件的简易GUI版本

 

3) 下面有一些“all-in-one”的MP4编码工具:

- Nero Recode2,使用ASP、AVC或AAC来编码MP4(Doom9指南),字幕是dvd的vob subs(图形字幕),包含dshow muxer

- Doom9的MeGUI,支持ASP(xvid, libavcodec), AVC(xvid)和AAC(Besweet - Nero)编码

- HDX4支持ASP和AAC

- Dicas的mpegable X4 live,操作简单,用dicas的MPEG-4的编码直接编码为mp4

- Envivio的4coder支持MPEG-4 AAC, ASP/SP和AVC

 

4) 以下工具可用来编辑MP4文件(如分割、追加合并):

- MP4Box可以按照时间和尺寸分割MP4(AAC, ASP, AVC, TTXT, MPEG-1/2, 专用媒体流),提取部分及合并mp4

- ulead的VideoStudio 8+ MPEG-4插件

- Quicktime/Pro能够创建(编码,混合)和编辑(分割、合并)mp4文件,支持MPEG-4 Simple Profile, AAC, AVC

 

4) 有没有可能将非MPEG-4标准的数据流放进MP4?

可以,虽然我不认为这是个好主意。MPEG-4标准定义了如何将数据流放入MP4的方式。类似于AVI,数据流根据专用的FourCCs方式被放入AVI中;在MP4中,每一个数据流有一个“专用的轨道ID(private track ID)”。记住,没有一个播放器能够支持MP4中此类的数据流,只会简单地把它们忽略。除非你非常明确地要这样做。

以下的数据流,不遵循MPEG-4标准,但已经能够被放入MP4中了。

- Ogg Vorbis和Ogg Theora,使用MP4Box

- Ogg Vorbis,使用修订版的mp4creator

- Apple 的无损音频(ALAC/ALE - 不兼容MPEG-4 ALS),使用iTunes

- DVD图形字幕(Vobsubs),使用Nero Recode2

- AMR语音,使用NEC e808/e616手机

唯有等到了将来,我们才能知道此类的非公开数据流能否被广泛的接受和支持。。。

 

5) 当我从avi中将MPEG-4视频混合进MP4时,有哪些事项是必须特别注意的?

在做AVIs混合至MP4处理时,有一些潜在的问题。特别是编码中使用了B桢(b-frames/B-VOPs/bi-directional)。

1)“delay frames(桢延迟)”:由于一些编码(Xvid, Divx5)仍然使用旧的VFW界面会导致此问题。只有当使用VirtualDub/Mod编码且用了B桢时,就会自动丢桢。

2)“packed bitstream(打包的数据流)” :因旧有容器格式AVI不支持储存B桢而产生。在DivX5中会用到PB(只有在一个连续B桢的设定情况下),以及新版本的XviD默认设置是使用PB的(处理时要确认PB选项没有被勾选),还有使用其他桢来打包B桢(点击这里了解更多关于B桢的详细介绍)。

 

3)“ctts”atom(节点):当混合b桢进入MP4中必须写入的信息。

4)“vol(音量)”:在avi的每个关键桢(keyframe)中都要写入,但现在在MP4中已和影片数据分离开了。

 

现在,只有3ivx mp4 muxer和GPAC的MP4Box可以正确的搞定上述问题。推荐只使用它们进行avi的转换,特别是那些使用packed bitstreams或者那种你不能确定是否使用了b桢设定/编码的avi。否则,你很可能不能够得到100%完全遵循标准的MP4文件!

 

6) transmux(转换并混合)时是否会对文件内容进行重编码?

不会,这是个无损的处理过程,只是将媒体流从一个容器搬到MP4里。

 

7) 我怎样才能将字幕混合进MP4?

这里有三种方法可以实现:

- 相对于MPEG-1/2,MPEG-4标准定义有自己的文本流/字幕标准(基于ISO14496-17的MPEG-4的时标文本)。MP4的字幕格式是基于文本的(不是像DVD字幕那种基于图形),遵循UTF-8/16标准(含古斯拉夫语、阿拉伯语、中文字符等)。它支持所有的动态效果(滚动、色彩、卡拉ok效果等),且支持附加字体及流媒体化。

MPEG-4 TTXT的制作,已被MP4box和Quicktime支持。

回放时,可以使用Haali的MP4 dshow Parser, Osmo4, Realplayer和Quicktime(仅当放入.3gp文件中)。同样时VideoLan也支持。

- Nero的Recode2可以用来在MP4中储存专用数据流(Q4),且可以轻易的、不加修改的将DVD中的图形字幕(vobsubs)提出并存入MP4中。

回放此类的媒体流,可以使用Nero的滤镜、Haali的Parser、VideoLan(问题多)和一些硬件支持MP4的DVD播放器。

- 另一个基于MPEG-4标准储存字幕进MP4的方法是将字幕转换为XMT/BT文本格式,然后将它们编码为“高级内容”(BIFS binary格式)存入MP4中。这一方法可适用于任何字幕(使用mp4box或dvd2mp4gui,例如转换SRT字幕)。

回放这些高级内容,你需要可以支持此类内容的滤镜/播放器(见Q12)。

 

8) 我如何将章节放入MP4文件中?

章节的存储也可以使用高级内容实现(例如创建一个目录菜单),但Nero使用了另一个方法。它使用了MP4中的一个特性:称为“用户空间”(user space/udta atom)。它允许在MP4中附加任何你想的东西。(例如,iTunes使用udta atom在mp4中储存标签和CD/DVD封面(“coverart”))。

你可以使用Nero Recode2在编码mp4过程中自动插入章节信息,或者用MP4Box和record2的MP4 directshow muxer filter在已存在的mp4文件中添加章节信息。(例如在GraohEdit中使用此滤镜)。

关于播放器,如果不能识别在udta中储存的章节信息,则会简单的忽略掉。你需要一个可以搞定此特殊章节信息的播放器或滤镜。(例如,Gabest, Haali, Nero或3ivx)。

 

9) 我如何对MP4文件进行编排创作(例如创建类DVD的菜单)?有没有例子?

基本上编排创作应“手动”编写一个文本的语言格式,称为XMT或bt(基于VRML(Virtual Reality Modeling Language/虚拟现实建模语言),就像我们熟知的Flash),一种能够把它作为binary格式(称为BIFS)编码/编译入mp4(免费的编码器为mp4box, mp4tool或XMTBatch)。

现在已经有一些面向MP4编排创作的GUI了,使得这一过程变得很方便。例如IBM, AVIPIX, Envivio, Mindego, iVAST, Digimax或Etri,但都未向大众开放。

 

所以,如果你想亲自编排创作MP4,除了编辑一个BT/XMT的脚本外没有别的办法。

感谢GPAC的家伙们,现在已经有了关于这个处理方法的指南(英文版、法文版),这将对你有不小的帮助。

为了使这个过程更简单,我创作了一个简单的脚本工具,命名为MP4menu,现在已经支持DVD菜单可以提供的所有特性。你可以按照自己的需求使用(指南)。

 

如果你想看一下实例以了解有什么别的可以放入MP4中,看一下这个小的含视频的菜单样本。但是MPEG-4系统还能提供2D和3D的动画效果(想一下玩具总动员和海底总动员这些影片),看一下这个小的2d动画样本(不含视频流)。

确认你使用的是MPEG-4系统支持的播放器,如GPAC Osmo4 player,来观看这些样本。

 

10) 我如何才能在MP4文件中使用可变形重设尺寸(anamorphic resize)?

MPEG-4标准崇尚“多才能”,能够满足大众的各种需求。它提供了三种可能性:

1) 码流方面:这可能是最具可行性且最大众化的方法。

使用可以设定PAR(pixel aspect ratio/像素宽高比)的编码(例如3ivx, ffmpeg/ffvfw, xvid)。然后使用任一种MP4的Muxer工具(例如3ivx mp4 mixer, MP4Box, mp4UI)将得到的AVI Mux至mp4。对于已存在的码流,你可以使用Moitah的MPEG4 Modifier对MPEG-4 ASP进行修改PAR;使用hhanh的ARChange对AVC进行修改PAR。

下列工具可自动在回放中支持可变形重设尺寸:VideoLan, Mplayer或者带有3ivx, nero或haali parser加上XviD(xvid decode设置AR为auto), 3ivx(打开“force overlay”), Nero或ffdshow(打开“overlay mixer”)解码滤镜的dshow播放器。

2) 容器方面:MP4提供了一种“合成矩阵(Composition Matrix)”,能够修改AR、画面旋转、支持多层数据、回放时将两条音轨混音(例:将影片的语音和音乐分离)等功能。

Quicktime/Pro提供了很好的合成方法,通过:Movie -> Get Movie Properties -> Video/Sound Track -> Size/Layer/Volume/... ,还能够正确回放此类经合成编辑的MP4文件。

3) BIFS方面:提供了最广泛的编排创作的可能(Q9),同样还能够修改AR(例:通过改变2d缩放(Transform2D.scale))。你可以使用GPAC的工程软件:MP4box和Osmo4来创建和回放此类BIFS控制的数据流。

 

11) 有没有可能在MP4中创建VFR(Variable Framerate/可变帧率)内容?

可以。察看下面的帖子。

 

12) 我如何播放MP4文件?

由于MP4的互用性这一巨大优势及开源标准(授权免费!)这些特性,现在已有众多工具可以在不同系统包括Mac, Linux, PocketPC当然还有windows中支持MP4。

 

1) 如果你想用基于dshow的播放器(例如media player classic, bsplayer, zoomplayer或者蹩脚的windows media player)来回放任何此类的媒体文件,首先你需要用到下面两个东西:

-- 一个分离滤镜(splitter/parser filter):它能够在回放时将容器中包含的数据流(音频流、视频流、字幕流)分离开。

-- 一个解码滤镜(decode filter):它(例如:ffdshow, 3ivx, CoreAAC)能够将编码的数据流解码。

顺便说一下,我们在播放AVI时不需要安装分离滤镜的唯一原因是windows系统已经默认安装了这个东西。

 

这里有一些组件包,包含了这些滤镜:

-- Gabest's MP4 Splitter支持AAC, ASP, AVC, MPEG-1/2音频(如MP2/MP3)与视频, 先进TTXT, MP4中的VobSubs和章节, 开源(Gabest的MPC播放器已经内建此滤镜)

-- Haali's Media Splitter支持MP4中的AAC, ASP, AVC, MPEG-1/2音频(例:mp2/mp3)和视频,TTXT,vobsubs和章节,并支持地切换音频、视频、字幕,是无限制的,部分开源的,免费的

-- 3ivx支持MP2, MP3, AAC, ASP, 章节但不支持MP4里的AVC!使用ffdshow或CoreAAC这样的解码器时请确定“allow unsupport decoders” 选项已勾选

-- Elecard提供了支持AAC, ASP, AVC的MP4 splitter,并附带ASP/AVC解码器

-- Nero支持AAC, ASP, AVC, vobsubs和章节(Nero7下只限Nero Showtime!Nero6下仅Nero Showtime支持字幕/章节/多音轨!)

-- HDX4支持MP4中的AAC和ASP

-- EnvivioTV 支持MP4中的高级内容/BIFS(样本), AAC, ASP和AVC

-- Moonlight提供了支持MP3, AAC, ASP, AVC的MP4 splitter,并附带ASP/AVC解码器

-- Dicas的mpegable,支持RTP(Real-Time Transport Protocol/实时传输协议)流媒体,AAC, ASP和AMR(.3gp音频)的解码

-- Ligos的LSX-MPEG,仅支持Simple Profile视频,30天预览版本

 

2) 如果你不能/不想使用基于windows dshow的播放器,你也可以使用下列的播放器来播放MP4:

-- Apple的Quicktime,广泛使用,支持MPEG-4 SP, AVC和AAC

-- Realnetworks的RealPlayer10,支持MPEG-4 SP + b桢(仅plus版本)和AAC

-- GPAC的Osmo4,开源(GPL),支持BIFS(字幕,用户互动,类dvd目录...)和TTXT

-- MPlayer,开源(GPL),支持ASP和AVC,支持众多系统,象Win, Linux, Mac OS...

-- Videolan,开源(GPL),支持ASP和AVC,多系统支持

-- MPEG4IP的WMP4Player,开源(LGPL(Lesser General Public

License/GNU较宽松公共许可证)/MPL(Mozilla Public License)),支持ASP和AVC

-- xine,开源(GPL),多系统支持

-- TCPMP,用于PalmOS/WindowsCE

-- Philips的Platform4 Player支持PocketPC

-- ENST的Osmo4(基于参考源),支持高级内容/BIFS

-- IBM的M4Play含Toolkit for MPEG-4,基于Java,支持高级内容/BIFS

 

3) 硬件/独立播放器:由于最流行的MPEG-4 ASP执行者(DivX5/XviD)经常被放入AVI中,那也成为了现在播放器最广泛支持的格式。同样是nero的那些家伙,也是为了满足消费者日益增长的需求,他们尝试将MP4容器格式能够被硬件播放器支持,并逐步取得了成功:

支持MP4的硬件播放器如下:

-- Avayon的DXP-1000支持MP4的AAC, ASP, VobSubs和章节

-- elta的8815 MP4支持MP4的AAC, ASP, VobSubs和章节

-- Gowell的AS 602支持MP4的AAC, ASP, VobSubs和章节

-- Kiss的DP-558支持AAC, ASP(不支持QPel(Quarter-Pixel/1/4象素预测)/GMC(Global Motion Compensation/全局动态补偿)),支持VobSubs和章节(Sigma Designs EM8560)

-- Packard Bell的DVD-DivX 450 pro支持MP4的AAC, ASP, VobSubs和章节

-- Philips的DVP630/632/642播放器支持MP4的ASP(不支持QPel/1WP GMC), MP3(非AAC)(ESS Vibratto-II)

-- RJTech的RJ 1500DVX II支持MP4的AAC(5.1), MP3, ASP (QPel/1WP GMC/CQM), VobSubs, 章节(ESS Vibratto-II)

-- Siemssen的SCO 5000ND支持MP4的AAC(不支持MP3/MP2),ASP (QPel/1WP GMC), VobSubs, 章节(Zoran Vaddis 776)。 

-- Targa的DR-5200x支持MP4的AAC, ASP, VobSubs和章节

-- Tevion DR 2004,支持MP4的AAC, ASP (QPel/1WP GMC?)和VobSubs。

-- Tevion DVD-4000,最新的固件(firmware)支持MP4的ASP(不支持QPel/1WP GMC?)和MP3(非AAC)(ESS Vibratto-II)

-- Xoro的HSD 415/310播放器支持MP4的AAC, ASP(不支持QPel/1WP GMC?), VobSubs, 章节(ESS Vibratto-II)。 

-- M$的Xbox的Xbox Media Center支持MP4的MP2, MP3, AAC和AVC。

-- Sony的Playstation Portable(PSP)支持MP4的AAC, SP和AVC,保存在记忆棒(Memory Stick)中

-- Apple的iPod支持MP4的AAC,iPod video还支持AVC

-- Sigma Designs的Xcard支持在PC上硬体解码MPEG-4包括MP4容器

 

13) 如何直播/收看实时(live-)的MP4流媒体?

Apple和MPEG4IP提供了不错的、免费的工具以将MP4流媒体化:

想要做流媒体服务器,你可以使用Apple's Darwin Streaming Server,这是everwiked与linuxjornal里提供的操作指南。

要直播流媒体你可以使用MPEG4IP的mp4live(仅Linux支持),这是everwiked及MPEG4IP的指南;在Windows系统中,你可以使用MPEGRecorder(看上去像mp4live的一个端口)。

同样,你可以看一下ViTooKi的工具包(开源的流媒体服务器、播放器和其他相关工具)。

另一个免费、开源的mp4流媒体服务器是Cata提供的。

如果是MAC系统,你可以看一下Live Channel。

 

要播放广播/直播式的流媒体,你可以用Apple的Quicktime, Real的RealPlayer 10, MPEG4IP的WMP4Player, Dica的mpegable和EnvivioTV(都运作在dshow播放器下)和GPAC的Osmo4(最后两个也可以支持高级内容/用户互动)(Envivio的互动演示)。

通过MediaFrame(演示)和IBM(互动演示)的java applets你也可以在不支持安装播放器情况下来播放流媒体的MP4。

 

流媒体样本:1 2

 

14) 那里可以找到mp4码率计算工具?为什么由源AVI制作得到的MP4文件体积要比源AVI文件体积小一点?

MP4需要的overhead的容量远小于AVI容器(特别是VBR-mp3音轨)。勿需质疑,与AVI容器相反,MP4容器就是为MPEG-4视频和MP3设计的。

这里有一个计算式,你可以这样说:AVI中的视频流文件体积=最终输出的含视频音频的MP4文件体积(像700MB) - MP4的音频体积 + 3MB。

3ivx在它的主页上也提供了一个MP4码率计算工具,但它看上去不是十分精确。

 

15) MP4支持CRC(Cyclic Redundancy Check)/循环冗余码校验)/EDC(Error Detection Code/错误校验)或ECC(Error Correction Code/自纠错)吗?

不支持。MP4容器本身,乃至MPEG-4标准都不希望支持码流中的错误检测/纠正(Error Detection/Correction)(它们该用在该用的地方)。

点击这里,了解更多有关MPEG-4码流中的差错恢复(Error Resilience)。

 

16) 有没有可能得知一个MP4文件是用何种编码创建的?

是的。对于MPEG-4 ASP的视频流和MP3音频流(现在还没有一个真正的方法来确认是否用了AAC音频编码)来说,是可以的。

点击这里,了解更多。

 

17) MP4是MP3的继承者吗?

是,也不是。说它不是,因为MP3是一种特别的音频格式,而MP4是一种容器格式并非是音频编码。说它是的,因为MP4是MPEG-4标准的一部分,MPEG-4标准是MPEG-1/2的继承者,而mp3亦是它的一部分。

MPEG-4还包括AAC,一种比MP3更好的音频编码,也被用于MP4中。

 

18) MP4和MOV/3GP是一样的吗?

Apple的MOV容器格式确实与MP4的出发点相同(主要在moov atom方面),但它们之间还是有不少区别的。

从另一方面来说,MP4的出发点是3GP格式(通常用于手机中)的开发。3GP格式普遍用于MP4中,就像用于MOV中一样。然而,这仍是另一种格式。

 

19) 我还想了解更多关于MP4!在哪里能够找到更多信息?

在网络上有不少此类的信息:

MP4的说明文件可在这里找到。MPEG-4系统标准的草案可在这里找到。

有一些关于MP4的文档:1 2 3。

MPEG Industry Forum或Motion Picture Experts Group(MPEG)的主页上也有许多信息。

关于MPEG-4标准和MPEG-4系统(非常有技术价值)的FAQs是很有用的。

另外可以在audiocoding wiki找到许多信息(也有许多关于AAC的信息)。

关于MP4的创建, 编译成果MPEG4IP有不少指南,同样他们的CVS服务器和everwicked.com上也有指南。 

你可能感兴趣的:(常见音视频的编码方式和封装格式)