2.1 支持的格式

首先澄清一个普遍的错误是非常重要的。 当人们看到以.AVI为扩展名的文件时,他们立即得出结论,认定它不是MPEG文件。 那种看法是不对的。至少不完全对。与一般人的看法相反这种文件包含MPEG1视频。

如你所见,一种编码方式与一种文件格式是不一样的。
视频编码格式的例子有:MPEG1,MPEG2,DivX,Indeo5,3ivx。
文件格式的例子有:MPG,AVI,ASF。

在理论上,你能把OpenDivX视频和MP3音频放到MPG格式的文件中。然而,大多数播放器将无法播放它, 由于他们期待的是MPEG1视频和MP2音频(不同于AVI格式,MPG没有必要的区域来描述其视频和音频流)。 或者你可以把MPEG1视频放到AVI文件中。FFmpegMEncoder就能建立这样的文件。

2.1.1 视频格式

2.1.1.1 MPEG文件

MPEG文件会以不同的形式出现:

MPEG文件中的帧序列组成独立的组。这意味着你能用标准的文件工具(像ddcut)切割和合并MPEG文件, 并且得到的文件还是完全可用的。

MPG的一个重要的特性是它们有一个描述视频流长宽比的区域。例如SVCD有480x480的分辨率的视频,而在文件头中的那个区域被置为4:3, 这样它以640x480的分辨率被播放。AVI文件没有这个区域,因此他们必须在编码或者播放时用-aspect重新缩放。

2.1.1.2 AVI文件

由微软设计,AVI(Audio Video Interleaved)是一种普遍的多用途格式,目前被大多数DivX和DivX4视频所使用。 它有许多已知的弊端和缺点(比如在流播放时)。它支持1个视频流和0到99个音频流。文件大小限制是2GB,但是现在存在一种扩展格式 称为OpenDMS允许更大的文件。微软目前强烈反对使用它并鼓励使用ASF与WMV。不过没有什么人在乎。

有一个hack允许AVI文件包含Ogg Vorbis音频流的,但这使他们与标准的AVI不兼容。MPlayer支持播放这种文件。 搜索功能也被植入,但由于编码糟糕的文件的混乱的文件头使这项功能被严重限制了。遗憾地是,目前唯一能建立这种文件的编码器, NanDub,就存在这个问题。

注意:DV照相机建立的未经加工的DV流被DV grabbing utilities转换成两种不同类型的AVI文件。所以AVI将或者包含 MPlayer可以播放的分离的音频与视频流,或者是未经加工的DV流,它的支持正在开发中的。

有两种类型的AVI文件:

MPlayer支持两种AVI文件的计时方式:

任何视频和音频的编码格式都允许使用,但注意大多数播放器对VBR音频的支持都不好。文件格式允许使用VBR音频,但是大多数播放器期待CBR音频, 这样它们无法播放VBR。VBR是常见而且和微软AVI说明仅描述CBR音频。大多数AVI编码器/多路复用器在使用VBR音频时会创建坏的文件。目前已知的 只有两个例外:NanDub和MEncoder

2.1.1.3 ASF与WMV文件

ASF(active streaming format)格式来自微软。他们开发了ASF的两个变种,v1.0和v2.0. v1.0被他们的媒体工具(Windows媒体播放器和 Windows媒体编码器)使用并且是保密的. v2.0被公开并申请专利:)。当然,他们是不同的,完全没有任何兼容性(那只是另一个法律游戏)。 MPlayer只支持v1.0格式因为没有任何人见过v2.0格式的文件:)。注意,ASF文件现在常以.WMA或者.WMV的扩展名出现。

2.1.1.4 QuickTime与MOV文件

这些格式是由苹果设计的,能包含任何编码格式,CBR或者VBR。他们通常使用.QT或者.MOV的扩展名。自从MPEG4组织选择QuickTime作为 MPEG4的推荐文件格式后,他们的MOV文件以.MPG或.MP4的扩展名(有趣的是这些文件的视频和音频流是真正的MPG和AAC文件。你甚至能用 -dumpvideo-dumpaudio选项提取他们。)。

注意:大多数新的QuickTime文件使用Sorenson视频和QDesign Music音频。参见我们的 Sorenson编码格式一节。QDesign Music音频目前不能播放。

2.1.1.5 VIVO文件

MPlayer乐于解码VIVO文件格式。这个格式的最大缺陷在于它没有索引块,也没有一个固定的包大小或者同步字节和大多数文件 甚至缺乏关键帧,所以别想着搜索了!

VIVO/1.0文件的视频编码格式是标准的h.263。VIVO/2.0文件的视频编码格式是一个经过修改的,非标准的h.263v2。 音频也使一样,它可以是g.723(标准的),或Vivo Siren

关于安装指导参见VIVO视频编码格式 VIVO音频编码格式两节。

2.1.1.6 FLI文件

FLI被Autodesk Animator使用的一种很老的文件格式,但是它是网上小动画普遍使用的一种文件格式。MPlayer 能读取并解码FLI电影寻求在它们中搜索(当使用-loop选项循环播放时有用)。FLI文件没有关键帧, 因此图画在搜索后短时间内将是混乱的。

2.1.1.7 RealMedia(RM)文件

是的,MPlayer能读取(demux)RealMedia(.rm)文件。搜索功能能工作,但是你必须明确地指定-forceidx选项 (这种格式支持关键帧)。这里是被支持的RealVideo RealAudio编码格式的列表。

2.1.1.8 NuppelVideo文件

NuppelVideo是电视截取工具(据我所知:)。MPlayer 能读取它的.NUV文件(只能是NuppelVideo 5.0)。那些文件能包含未压缩的YV12,压缩的YV12+RTJpeg,压缩的YV12+lzo和压缩的YV12 RTJpeg+lzo帧。 MPlayer能解码所有这些格式(并且用MEncoder把它们编码成DivX/etc!)。搜索功能能工作。

2.1.1.9 yuv4mpeg文件

yuv4mpeg/yuv4mpeg2是用于mjpegtools programs 的文件格式。你能用这些工具进行这种格式的视频截取,制作,过滤或编码。这种文件格式是一个非压缩的YUV 4:2:0图象序列。

2.1.1.10 FILM文件

这种格式用于老的世嘉土星CD-ROM游戏。

2.1.1.11 RoQ文件

RoQ文件是用于ID的一些游戏例如Quake III和Return to Castle Wolfenstein的多媒体文件。

2.1.1.12 OGG文件

这是Xiphophorus的一个新的文件格式。它能包含任何视频或者音频编码格式, CBR或者VBR。要想播放它,你需要在编译MPlayer之前安装libogglibvorbis

2.1.2 音频格式

MPlayer是一个电影播放器而不是媒体播放器,虽然它能播放一些音频文件(他们将在下面的 部分中列出)。不推荐这种使用MPlayer的方法,你最好使用xmms

2.1.2.1 MP3文件

你可能在播放有些MP3文件时遇到问题,MPlayer将它们错误的检测为MPEG文件并且不能正常播放或者完全不能播放。 如果要修正这个问题就必须放弃对有些被破坏的MPEG文件的支持,所以在可以预见的将来仍然会是这样。manpage中描述的 -demuxer标签在这些情况下可能会帮助你。

2.1.2.2 WAV文件

2.1.2.3 OGG文件(Vorbis)

要求正确的安装libogglibvorbis

2.1.2.4 WMA与ASF文件

2.1.2.5 MP4文件