免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1244 | 回复: 0
打印 上一主题 下一主题

mplayer :format [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-31 16:47 |只看该作者 |倒序浏览

                                by tangke   2009-07-31
2.1 支持的格式
首先澄清一个普遍的错误是非常重要的。 当人们看到以.AVI为扩展名的文件时,他们立即得出结论,认定它不是MPEG文件。那种看法是不对的。至少不完全对。与一般人的看法相反这种文件能包含MPEG1视频。
如你所见,一种编码方式与一种文件格式是不一样的。
视频编码格式的例子有:MPEG1,MPEG2,DivX,Indeo5,3ivx。
文件格式的例子有:MPG,AVI,ASF。
在理论上,你能把OpenDivX视频和MP3音频放到MPG格式的文件中。然而,大多数播放器将无法播放它,由于他们期待的是MPEG1视频和MP2音频(不同于AVI格式,MPG没有必要的区域来描述其视频和音频流)。或者你可以把MPEG1视频放到AVI文件中。FFmpeg和MEncoder就能制作这样的文件。
2.1.1 视频格式
2.1.1.1 MPEG文件
MPEG文件会以不同的形式出现:
    * MPG:这是MPEG文件格式的最基本形式。它包含MPEG1视频和MP2(MPEG-1 layer 2)或者极少数是MP1音频。
    * DAT:这是与MPG完全相同的格式,只是换了扩展名。它在Video CD上使用。因为制作VCD的方法和Linux的设计, DAT文件不能直接播放>也不能作为普通的文件从VCD上复制下来。你必须使用-vcd选项来播放Video CD。
    * VOB:这是用在DVD上的MPEG文件格式。它与MPG一样,加上能包含字幕或者非MPEG(AC3)音频的能力。它包含编码的MPEG2视频和通常是AC3的音频,但是,MP2和非压缩的LPCM DTS音频也被允许使用。

MPEG文件中的帧序列组成独立的组。这意味着你能用标准的文件工具(像dd,cut)切割和合并MPEG文件,并且得到的文件还是完全可用的。
MPG的一个重要的特性是它们有一个描述视频流长宽比的区域。例如SVCD有480x480的分辨率的视频,而在文件头中的那个区域被置为4:3,这样它以640x480的分辨率被播放。AVI文件没有这个区域,因此他们必须在编码或者播放时用-aspect重新缩放。
2.1.1.2 AVI文件
由微软设计,AVI(Audio Video Interleaved)是一种普遍的多用途格式,目前被大多数DivX和DivX4视频所使用。它有许多已知的弊端和缺点(>比如在流播放时)。它支持1个视频流和0到99个音频流。文件大小限制是2GB,但是现在存在一种扩展格式称为OpenDML允许更大的文件。微软目前强烈反对使用它并鼓励使用ASF与WMV。不是所有人都在乎这一点。
有一个hack允许AVI文件包含Ogg Vorbis音频流的,但这使他们与标准的AVI不兼容。MPlayer支持播放这种文件。搜索功能也被植入,但由于编码低劣的文件的混乱的文件头使这项功能被严重限制了。遗憾地是,目前唯一能建立这种文件的编码器, NanDub,就存在这个问题。
注意:DV照相机建立的未经加工的DV流被DV grabbing utilities转换成两种不同类型的AVI文件。所以AVI将或者包含 MPlayer可以播放的分离的音频与视频流,或者是未经加工的DV流,它的支持正在开发中的。
有两种类型的AVI文件:
    * 交错的:音频和视频内容是交错的。这是标准使用方法。被推荐且多半都使用。一些工具以错误的同步方式建立交错的AVI。 MPlayer认为这些文件是交错的,这会导致A/V不同步,在搜索时最为明显。这些文件应该被当作非交错的文件来播放 (使用-ni选项)。
    * 非交错的:首先是整个视频流,然后是整个音频流。因此这需要大量的搜索,使用网络或者CD-ROM播放变的困难。
MPlayer支持两种AVI文件的计时方式:
    * 基于bps: 它基于视频与音频流的比特率/采样率。这种方法被大多数播放器使用,包括avifile和Windows的媒体播放器。这种方法在遇到文件头损坏的文件,以及文件创建时使用VBR音频却没有使用VBR兼容的编码器的情况时将导致A/V不同步(多半在搜索时)。
    * 基于交错方式: 它不使用文件头的比特率,而是使用交错的音频和视频块的相关位置,使VBR音频的编码低劣的文件可以播放。
任何视频和音频的编码格式都允许使用,但注意大多数播放器对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编解码器部分。
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能解码所有这些格式(并且用MPlayer把它们编码成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/OGM文件
这是Xiphophorus的一个新的文件格式。它能包含任何视频或者音频编码格式, CBR或者VBR。要想播放它,你需要在编译MPlayer之前安装libogg和libvorbis。
2.1.1.13 SDP文件
SDP是一个IETF标准格式,用来描述视频和/或者音频的RTP流。 (需要"LIVE.COM Streaming Media"库)。
2.1.1.14 PVA文件
PVA是DVB电视附带的Windows下面的软件(比如:MultiDec,WinTV)使用的类似MPEG的格式。
PVA规格的描述可以在下面地址下载http://www.technotrend.de/download/av_format_v1.pdf
2.1.1.15 GIF files
GIF格式是网页图象的普遍格式,有两种版本的GIF规格,GIF87a和GIF89a。主要的区别在于GIF89a允许动画。MPlayer通过使用libungif库或者另一个libgif-compatible的库支持这两种规格。非动画的GIF显示为单帧的视频。(使用-loop和-fixed-vo选项来显示更长的时间。)
MPlayer目前不支持在GIF文件中搜索。GIF文件并不一定有一个固定的帧大小,或者帧速率。而且,每一帧都有独立的大小并且应该被放在一个固定的地方并且有固定的尺寸。帧速率是通过使用每一帧前面的一个控制块以百分之一秒为单位控制这一帧显示的时间长短来实现的。
标准的GIF文件包含24-bit的RGB帧和最多8-bit的索引调色板。这些帧大多以LZW格式压缩,但有些GIF编码器生成未压缩的帧以避免LZW压缩的>专利问题。
如果你的发行版没有包含libungif,可以从libungif主页 下载。技术细节你可以参考GIF89a规格.
2.1.2 音频格式
MPlayer是一个电影播放器而不是媒体播放器,虽然它能播放一些音频文件(他们将在下面的部分中列出)。不推荐这种使用MPlayer的方法,你>最好使用xmms。
2.1.2.1 MP3文件
你可能在播放有些MP3文件时遇到问题,MPlayer将它们错误的检测为MPEG文件并且不能正常播放或者完全不能播放。如果要修正这个问题就必>须放弃对有些被破坏的MPEG文件的支持,所以在可以预见的将来仍然会是这样。man page中描述的 -demuxer标签在这些情况下可能会帮助你。
2.1.2.2 WAV文件
2.1.2.3 OGG/OGM文件(Vorbis)
要求正确的安装libogg和libvorbis。
2.1.2.4 WMA与ASF文件
2.1.2.5 MP4文件
2.1.2.6 CD音频
MPlayer可以使用cdparanoia(的库)播放CDDA(音频CD)。在这部分没有包含cdparanoia的特性的列表。
看man page了解如何通过-cdda选项向cdparanoia传递参数。
2.1.2.7 XMMS
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的插件和库的路径。
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/100996/showart_2014463.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP