首先澄清一个普遍的错误是非常重要的。 当人们看到以.AVI为扩展名的文件时,他们立即得出结论,认定它不是MPEG文件。 那种看法是不对的。至少不完全对。与一般人的看法相反这种文件能包含MPEG1视频。
如你所见,一种编码方式与一种文件格式是不一样的。
视频编码格式的例子有:MPEG1,MPEG2,DivX,Indeo5,3ivx。
文件格式的例子有:MPG,AVI,ASF。
在理论上,你能把OpenDivX视频和MP3音频放到MPG格式的文件中。然而,大多数播放器将无法播放它, 由于他们期待的是MPEG1视频和MP2音频(不同于AVI格式,MPG没有必要的区域来描述其视频和音频流)。 或者你可以把MPEG1视频放到AVI文件中。FFmpeg和MEncoder就能制作这样的文件。
MPEG文件会以不同的形式出现:
-vcd
选项来播放Video CD。MPEG文件中的帧序列组成独立的组。这意味着你能用标准的文件工具(像dd
,cut
)切割和合并MPEG文件,
并且得到的文件还是完全可用的。
MPG的一个重要的特性是它们有一个描述视频流长宽比的区域。例如SVCD有480x480的分辨率的视频,而在文件头中的那个区域被置为4:3,
这样它以640x480的分辨率被播放。AVI文件没有这个区域,因此他们必须在编码或者播放时用-aspect
重新缩放。
由微软设计,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文件:
-ni
选项)。MPlayer支持两种AVI文件的计时方式:
任何视频和音频的编码格式都允许使用,但注意大多数播放器对VBR音频的支持都不好。文件格式允许使用VBR音频,但是大多数播放器期待CBR音频, 这样它们无法播放VBR。VBR是不常见的而且微软的AVI规格仅描述了CBR音频。大多数AVI编码器/多路编排器在使用VBR音频时会创建坏的文件。目前已知的 只有两个例外:NanDub和MEncoder。
ASF(active streaming format)格式来自微软。他们开发了ASF的两个变种,v1.0和v2.0. v1.0被他们的媒体工具(Windows媒体播放器和 Windows媒体编码器)使用并且是保密的. v2.0被公开并申请专利:)。当然,他们是不同的,完全没有任何兼容性(这只是又一个法律游戏)。 MPlayer>只支持v1.0格式因为没有任何人见过v2.0格式的文件:)。注意,ASF文件现在常以.WMA或者.WMV的扩展名出现。
这些格式是由苹果设计的,能包含任何编码格式,CBR或者VBR。他们通常使用.QT或者.MOV的扩展名。自从MPEG4组织选择QuickTime作为
MPEG4的推荐文件格式后,他们的MOV文件以.MPG或.MP4的扩展名(有趣的是这些文件的视频和音频流是真正的MPG和AAC文件。你甚至能用
-dumpvideo
和-dumpaudio
选项提取他们。)。
注意:大多数新的QuickTime文件使用Sorenson的视频和QDesign Music的音频。参见我们的Sorenson编解码器部分。
MPlayer乐于解码VIVO文件格式。这个格式的最大缺陷在于它没有索引块,也没有一个固定的包大小或者同步字节和大多数文件 甚至缺乏关键帧,所以别想着搜索了!
VIVO/1.0文件的视频编码格式是标准的h.263。VIVO/2.0文件的视频编码格式是一个经过修改的,非标准的h.263v2。 音频也使一样,它可以是g.723(标准的),或Vivo Siren。
关于安装指导参见VIVO视频编码格式和VIVO音频编码格式部分。
FLI被Autodesk Animator使用的一种很老的文件格式,但是它是网上小动画普遍使用的一种文件格式。MPlayer
能读取并解码FLI电影寻求在它们中搜索(当使用-loop
选项循环播放时有用)。FLI文件没有关键帧,
因此图画在搜索后短时间内将是混乱的。
是的,MPlayer能读取(demux)RealMedia(.rm)文件。搜索功能能工作,但是你必须明确地指定-forceidx
选项
(这种格式支持关键帧)。这里是被支持的RealVideo和RealAudio编解码器的列表。
NuppelVideo是电视截取工具(据我所知:)。MPlayer 能读取它的.NUV文件(只能是NuppelVideo 5.0)。那些文件能包含未压缩的YV12,压缩的YV12+RTJpeg,压缩的YV12+lzo和压缩的YV12 RTJpeg+lzo帧。 MPlayer能解码所有这些格式(并且用MPlayer把它们编码成DivX/etc!)。搜索功能能工作。
yuv4mpeg/yuv4mpeg2是用于mjpegtools programs 的文件格式。你能用这些工具进行这种格式的视频截取,制作,过滤或编码。这种文件格式是一个非压缩的YUV 4:2:0图象序列。
这种格式用于老的世嘉土星CD-Rom游戏。
RoQ文件是用于ID的一些游戏例如Quake III和Return to Castle Wolfenstein的多媒体文件。
这是Xiphophorus的一个新的文件格式。它能包含任何视频或者音频编码格式,
CBR或者VBR。要想播放它,你需要在编译MPlayer之前安装libogg
和libvorbis
。
SDP是一个IETF标准格式,用来描述视频和/或者音频的RTP流。 (需要"LIVE.COM Streaming Media"库)。
PVA是DVB电视附带的Windows下面的软件(比如:MultiDec,WinTV)使用的类似MPEG的格式。
PVA规格的描述可以在下面地址下载http://www.technotrend.de/download/av_format_v1.pdf
MPlayer是一个电影播放器而不是媒体播放器,虽然它能播放一些音频文件(他们将在下面的 部分中列出)。不推荐这种使用MPlayer的方法,你最好使用xmms。
你可能在播放有些MP3文件时遇到问题,MPlayer将它们错误的检测为MPEG文件并且不能正常播放或者完全不能播放。
如果要修正这个问题就必须放弃对有些被破坏的MPEG文件的支持,所以在可以预见的将来仍然会是这样。man page中描述的
-demuxer
标签在这些情况下可能会帮助你。
要求正确的安装libogg
和libvorbis
。
MPlayer可以使用cdparanoia(的库)播放CDDA(音频CD)。在这部分没有包含cdparanoia的特性的列表。
看man page了解如何通过-cdda
选项向cdparanoia传递参数。
MPlayer可以使用XMMS的输入插件来播放各种格式。现在有用于SNES game tunes, SID tunes(from Commodore 64), 很多Amiga 格式, .xm, .it, VQF, musepack, Bonk, shorten和大量别的插件。你可以在XMMS的输入插件页找到它们。
要使用这个特性你必须安装了XMMS并在编译MPlayer的时候使用./configure --enable-xmms
。
如果这样不起作用,你可能需要用--with-xmmsplugindir
和--withxmmslibdir
开关显式指定XMMS的插件和库的路径。