[汉语] [英语] [匈牙利语] [德语] [法语] [波兰语] [意大利语]
如果你是首次安装:请一定要阅读从这里到安装部分结束的所有内容,并且追踪你所遇到的链接。 如果你有任何其它问题,返回到目录并搜索主题,读取FAQ,或者尝试用grep搜索整个文件。
这个文件的主要原则:如果一个功能没有被编入文档,那么它不存在。如果我没有说你能 用电视选台器音频编码,你就不能。不过健康程度的综合能力还是受欢迎的。祝你好运。你将需要它的:), 让我引用mplayer-users邮件列表中 Chris Phillips的话作为另一个好的建议:
“我以前说过新手和白痴之间的区别在于:无论,你实际上对一个系统(Linux,汽车,女孩:D) 了解多少,你应该总能够退一步想想并且保持客观,否则,恕我直言你是公认的白痴。跟我住在一起的女孩认定吸 尘器坏了因为它不吸进东西,而从不想更换袋子,因为她以前从来没有做过...那就是愚蠢,而不仅仅是不 知道做什么...仅仅因为不是那么熟悉你的环境不是你的a)懒惰和b)忽视的借口。如此多人们似乎看到“error” 就停止...只有极少数真正读取了冒号另一边的东西”。
MPlayer是Linux 上的电影播放器(也能跑在许多其它Unices上,甚至非x86CPU上, 参见移植部分)。它能使用众多的本地的,XAnim,RealPlayer,和Win32 DLL编解码器, 播放大多数MPEG,VOB,AVI,OGG,VIVO,ASF/WMV,QT/MOV,FLI,RM,NuppelVideo,yuv4mpeg,FILM,RoQ文件。 你还能观看VideoCD,SVCD,DVD,3ivx,RealMedia,和DivX格式 的电影(你根本不需要avifile库)。mplayer的另一个大的特色是广泛的输出设备支持。它可以在X11,Xv,DGA, OpenGL,SVGAlib,fbdev,AAlib,DirectFB下工作,而且你也能使用GGI和SDL(由此可以使用他们支持的各种驱动模式) 和一些低级的硬件相关的驱动模式(比如Matrox,3Dfx和Radeon,Mach64,Permedia3)!他们大多数支持软件或者硬件缩放, 因此你能在全屏下观赏电影。MPlayer还支持通过硬件MPEG解码卡显示,诸如DVB 和DXR3与Hollywood+。可以使用European/ISO 8859-1,2(匈牙利语,英语,捷克语等等), 西里尔语,韩语的字体的清晰放大并且反锯齿的字幕(支持10种格式),和on screen display(OSD)你又觉得如何?
这个播放器能够稳如泰山的播放被破坏的MPEG文件(对一些VCD有用),而它能播放著名的windows media player
都打不开的的坏的AVI文件。甚至,没有索引部分的AVI文件可播放,你能暂时由重建他们的索引-idx
选择,
或者用MEncoder永久重建,使你能够在影片中搜索!如你所见,稳定和质量是最重要的事情,而且他的速度是也惊人的。
MEncoder(MPlayer's Movie Encoder)是一个简单的电影编码器,设计用来把MPlayer可以播放的电影 (AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA)编码成别的MPlayer可以播放的格式(具体列表见下面)。 它可以使用各种编解码器进行编码,例如 DivX4(1或2 passes),libavcodec, PCM/MP3/VBR MP3音频。同时也有强大的插件系统用于控制视频。
-ofps
选项进行FPS修正(当把29.97fps的VOB编码成24fps的AVI的时候有用)MPlayer和MEncoder按照GNU General Public License Version 2发布。
这一年以前开始的... 我(A'rpi)已尝试Linux下的许多播放器(mtv,xmps,dvdview,livid/oms,videolan,xine,xanim,avifile,xmmp), 但是他们全都有一些问题。多半与特殊的文件或音频与视频的同步有关。他们中大多数不能同时播放MPEG1,MPEG2和AVI(DivX)文件。 许多播放器也有图象质量或者速度的问题。因此,我已决定自己写/修改一个...
在这章中我将试图指引你通过编译和配置MPlayer的过程,它不大容易的,不过也见得一定很难的。 如果你遇到不同于我所解释的现象,请的通过搜索这篇文件来查找你的回答。如果你遇到链接,请跟踪他们并且细心读取他们包含的内容。 它将花费一些时间,但是它确实是值得的。
你需要一个相当新的系统。在Linux上,推荐2.4.x的内核。
libvorbis
。如果可能的话尽量使用deb/rpm包装,
或者用源代码编译(这是Vorbis CVS的每天最新的tarball)。一般地显卡可分为两种。一种(较新的显卡)支持硬件缩放和YUV加速,另一种卡没有。
他们能在他们显存可以的范围中用任何分辨率显示和缩放(zoom)图像,只占用很少的CPU(即使在放大的时候),所以你能得到清晰而且飞快的全屏播放。
可以通过使用软件缩放(使用-zoom
或者-vf scale
参数,但是我先警告你:
这会比较慢),或者通过切换成较小的的分辨率来实现全屏播放,例如352x288。如果你没有YUV加速,我们推荐使用后一种方法。视频模式切换通过-vm
选项打开,它能用于下列驱动:
-bpp 8
可以使用但很慢接着编译MPlayer:
./configure make make install
到此为止,MPlayer就可以使用了。$PREFIX/share/mplayer
目录下包含了codecs.conf
文件,
程序通过它来了解所有的编解码器和他们的能兼容的格式。该文件应该与主程序一起更新!
检查在你的home目录(~/.mplayer/codecs.conf)中是否有旧的MPlayer版本留下的codecs.conf,如果有就删掉它!
Debian的用户能自己制作.deb
安装包,这十分简单。直接在MPlayer的根目录下执行fakeroot debian/rules binary
。
详尽的步骤请看Debian安装包的制作。
./configure
的输出请务必一定阅读,还有configure.log
文件,其中的信息会告诉你将什么将被编译,什么将不编译。
你也可能需要查看config.h
和config.mak
文件。
如果你已经安装一些库文件,却没有被./configure
发现,那么检查你是否也安装了正确的头文件(通常在-dev包中)以及他们的版本符合要求。
configure.log
通常会告诉你缺什么。
尽管并非必需,你确实应该安装字体以使用OSD和字幕功能。推荐的方法是安装一个TTF字体文件并让MPlayer使用它。 阅读字幕和OSD一节来了解其细节。
GUI需要GTK 1.2.x(它不是GTK的,但是面板是的)。skin被保存为PNG格式,因此你需要安装gtk,libpng(和他们的devel包,一般是gtk-dev和libpng-dev)。
你必须在运行./configure
时使用--enable-gui
来编译它的代码。然后,你可以用下列方法之一打开GUI方式
gui=yes
ln -s $PREFIX/bin/mplayer $PREFIX/bin/gmplayer
,然后运行gmplayer
。
目前由于技术原因,目前你不能在命令行下使用-gui
选项。
因为MPlayer不自带skin,所以如果你想要使用GUI,你必须自己下载它们。参见下载页。
他们应该被解压到系统通用的目录($PREFIX/share/mplayer/skins/
),或者解压到$HOME/.mplayer/skins/
。
MPlayer在默认情况下会在这些的目录里寻找一个叫default的目录,
但是你能使用-skin newskin
选项或在config文件中添加skin=newskin
来强制使用*/skins/newskin
目录下的skin。
MPlayer能在播放电影的同时显示字幕。目前支持下列格式:
MPlaye可以把上面列出的字幕格式(除了前三个)转换成下列的格式,使用下列选项:
-dumpmpsub
-dumpsrtsub
-dumpmicrodvdsub
-dumpjacosub
-dumpsami
使用不同格式的命令行选项稍有不同:
VobSub字幕包括一个大的(几兆).sub文件,和可选的.idx和/或者.ifo文件。
用法: 如果你有类似sample.sub
,sample.ifo
,sample.idx
之类的文件
-- 你必需使用-vobsub sample -vobsubid <id>
的参数(当然必要时加上路径)。
-vobsubid
选择类似于播放DVD时的-sid
,用它你可以选择不同的字幕轨道(语言)。当省略-vobsubid
选项时,
MPlayer将尝试使用-slang
中指定的语言,如果没有找到将使用.idx文件中的langidx
项指定的语言,如果这些尝试都失败了,
那就将没有字幕显示。
其它格式由一个单一的包含时间,位置和正文信息的文本文件组成。
用法: 如果你有类似sample.txt
之类的文件,你必须使用-sub sample.txt
(可以加上完整路径)。
-subdelay<sec>
-subfps<rate>
-subpos<0-100>
如果你使用MicroDVD字幕文件时遇到电影和字幕之间的延迟不断增加的问题,很有可能你的电影文件和字幕文件的帧速度不同。
请注意,MicroDVD字幕格式用绝对帧数来计时,因此-subfps
选项不能用于这种格式。因为MPlayer没法猜测
字幕文件的帧速度,你必须手工修改它。在MPlayer的FTP站点的contrib
目录中有一个小的perl脚本可以替你做这种转化。
当你播放一个电影时MPlayer将尝试猜测你想要使用的字幕文件,在大多数情况下,字幕文件和电影文件在同一个目录下,并且有相同的名字, 你不需要设置有关字幕的选项,只要正常播放电影就可以了,MPlayer会自动播放字幕。
关于DVD字幕,请看DVD一节。
MPlayer引入一种称为MPsub的新的字幕格式。它由Gabucino设计。基本上,其主要的特性是基于动态时间 (虽然它有基于帧的模式)。例如(引自DOCS/tech/mpsub.sub):
# first number : wait this much after previous subtitle disappeared
# second number : display the current subtitle for this many seconds
15 3
A long long, time ago...
0 3
in a galaxy far away...
0 3
Naboo was under an attack.
因此如你所见,主要的目标是使字幕的编辑/计时/合并/分割变得容易。同时,如果你 -- 比方说 -- 有一个SSA字幕但是它
与你的电影却有严重的时间/延迟问题,你只要简单运行mplayer dummy.avi -sub source.ssa -dumpmpsub
。
在当前目录中将生成一个dump.mpsub
文件,它包含源字幕的正文,但是使用MPsub格式。
然后,你就能字幕中自由地添加或减去任意秒。
字幕的显示使用一种称为'OSD', On Screen Display的技术。OSD被用来显示当前的时间,音量条,进度条等等。
你需要一个MPlayer字体包来使用OSD和字幕功能。有许多方法获得它:
-font /path/to/arial.ttf
选项来在每次播放时指定一个TrueType字体文件/LI>
ln -s /path/to/arial.ttf ~/.mplayer/subfont.ttf
如果你使用非TTF字体,把你下载的文件UNZIP到~/.mplayer
或者$PREFIX/share/mplayer
。
然后将其中之一改名或者符合链接为font
(例如:ln -s ~/.mplayer/arial-24 ~/.mplayer/font
)。
你现在应该在电影的左上角看见一个计时器(用"o"键可以关上它)。
OSD有4种状态:(用'o'键切换)
你能通过在config文件中设置osdlevel=
变量,或者用命令行选项-osdlevel
来改变默认行为。
MPlayer有一个完全用户自定义的OSD菜单接口。
注意:Preferences菜单目前不能使用!
./configure
时加上--enable-menu
参数etc/menu.conf
复制到你的.mplayer
目录etc/input.conf
复制到你的.mplayer
目录,或者系统通用的MPlayer配置目录(默认为:/usr/local/etc/mplayer
)input.conf
来启用菜单控制键(在那里有描述).$ mplayer -menu file.avi
usleep()
调整A/V同步,达到+/-10ms的准确性。
但有些情况下同步应该调整的更精确。/proc
文件系统来调整普通用户的最大RTC频率。使用下列命令来允许普通用户使用RTC:
echo 1024 > /proc/sys/dev/rtc/max-user-freq
drivers/char/rtc.c
中的一行并且重新编译你的内核。找到下面这一段
* We don't really want Joe User enabling more * than 64Hz of interrupts on a multi-user machine. */ if ((rtc_freq > 64) && (!capable(CAP_SYS_RESOURCE)))把64改成1024。当然你应该确实明白你做了什么。
-nortc
选项关闭RTC支持。一些硬件连接器(在ALi1541主板上使用非DMA的DVD光驱上)RTC定时器的使用会造成跳跃的播放。
在这些情况下,推荐使用下面的方法。-softsleep
选项打开。它有RTC的效果,但是它不使用RTC。另一方面,它要使用更多的CPU。这段将要如何能够使用V4L兼容的电视选台器观看与截取。电视相关的选项和键盘控制的描述请看man page。
./configure
将自动检测v4l的内核头文件和/dev/video*
输入的存在。如果他们存在,电视支持将被编译(检查./configure
的输出)。channels
选项。例如:-tv on:channels=26-MTV1,23-TV2
-vf pp=DEINT_TYPE
打开非交错选项。一般来说pp=lb
工作的不错,但这可能取决于个人的设定。查看manual中的别的
非交错算法,都尝试一下。crop
选项的参数
使所有边缘的废物都被切割掉。同时,别忘了保持完整的输出图像的分辨率。outfmt
除非你知道你在干什么或者你的芯片/驱动确实不支持默认值(YV12色彩空间)。在老版本的MPlayer/MEncoder
中必须指定输出格式。这个问题在现在的发行版中应该被修正而不再需要指定outfmt
,默认值适合大多数应用目的。例如,你用libavcodec把
截取的内容编码成DivX并指定outfmt=RGB24
希望提高截取图像的质量, 所截取的图像在其后的过程中将重新转换回YV12,所以你获得的唯一
效果就是消耗了大量的CPU。
outfmt=i420
),由于与Intel Indeo video编解码器的fourcc冲突,你必须增加一个选项-vc rawi420
linux/Documentation/sound/btaudio
文件(在内核的源码树中,不是MPlayer的)来了解使用
这个驱动的方法。伪输出,到AAlib:)
mplayer -tv on:driver=dummy:width=640:height=480 -vo aa
从标准的V4L输入
mplayer -tv on:driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv
一个更复杂的例子。它使用MEncoder截取完整的PAL图像,切掉边缘的空白,输出非交错图像使用线性混合算法。音频使用LAME编解码器按固定比特率
64kbps压缩。这个设置适合用来截取电影。
mencoder -tv on:driver=v4l:width=768:height=576 \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \
-oac mp3lame -lameopts cbr:br=64 \
-vf crop=720:544:24:16,pp=lb -o output.avi
这个加上了重新缩放图像到384x288并把视频用高质量模式压缩到350kbps的比特率。vqmax选项放宽量化器从而允许视频压缩器在牺牲质量的前提下达到
如此低的比特率。这可以用来截取长的电视连续剧,在那种用途下视频质量并不非常重要。
mencoder -tv on:driver=v4l:width=768:height=576 \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
-oac mp3lame -lameopts cbr:br=48 \
-vf crop=720:540:24:18,pp=tn/lb,scale=384:288 -sws 1 -o output.avi
也可以在-tv
选项中设置一个较小的分辨率而忽略软件缩放选项但是上面的方法使用最大的可用信息而且对噪音更有抵抗力。bt8x8芯片
由于硬件的限制只能在水平方向上作点平均。
编辑决定列表(EDL)系统允许你在播放的时候自动在视频的一部分跳过或者静音,基于一个电影相关的EDL配置文件。
这对那些想用"家庭友好"模式观赏电影的人有用。你可以根据你个人的设定从一部电影里切掉任何暴力,亵渎,Jar-Jar Binks ..的内容。 除了这之外,它还有别的用途,比如自动跳过你正在观看的视频文件中的广告。
EDL文件的格式相当简陋。当EDL达到一定的成熟度的时候,可能会使用一个基于XML的文件格式(保持对原来的EDL格式的向下兼容)。
在目前的EDL实现中最大的EDL输入限制为1000。如果你碰巧需要更多,修改edl.h
文件中的#define MAX_EDL_ENTRIES
。
在你运行MPlayer的时候加上-edl <filename>
参数,filename是你希望应用在视频上的EDL文件的文件名。
目前EDL文件的格式为:
[begin second] [end second] [action]
seconds是浮点数而action可以是0
代表跳过或者1
代表静音。例如:
5.3 7.1 0 15 16.7 1 420 422 0
这将跳过视频的5.3秒到7.1秒的部分,然后在15秒时静音,在16.7秒处取消静音跳过视频的从420秒到422秒的部分。这些动作将在播放计时器达到 文件中指定的时间时被执行。
要创建一个用来工作的EDL文件,使用-edlout <filename>
选项,在播放过程中,当你想标记将前两秒跳过时,按i
。
一个相应的输入将写入文件。你可以回头调整生成的EDL文件。
MPlayer使用一个复杂playtree格式。它包括写在最前面作为全局设置的选项(例如mplayer -vfm 5
),和写在文件名之后,
仅仅作用于给定的文件名或者URL或者随便什么的选项(例如mplayer -vfm 5 movie1.avi movie2.avi -vfm 4
)。
你能使用{和}给文件名与URL分组。它对-loop选项很有用:mplayer { 1.avi -loop 2 2.avi } -loop 3
命令将按以下顺序播放文件:
1 1 2 1 1 2 1 1 2
单一文件 | mplayer [options] [path/]filename | ||
多个文件 | mplayer [default options] [path/]filename1 [options for filename1] filename2 [options for filename2] ... | ||
VCD | mplayer [options] vcd://trackno [-cdrom-device /dev/cdrom] | ||
DVD | mplayer [options] dvd://titleno [-dvd-device /dev/dvd] | ||
WWW | mplayer [options] http://site.com/file.asf(也可以使用playlist) | ||
RTSP | mplayer [options] rtsp://server.example.com/streamName |
最新版本的MPlayer也可以象Xine一样接受URL风格的VCD和DVD轨道: mplayer dvd://1
或者mplayer vcd://1
mplayer -vo x11 /mnt/Films/Contact/contact2.mpg mplayer vcd://2 mplayer -afm 3 /mnt/DVDtrailers/alien4.vob mplayer dvd://1 -dvd-device /dev/hdc mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi
MPlayer有一个完全可配置的,命令驱动的控制层使你可以键盘,鼠标,游戏杆或遥控器(使用LIRC)控制MPlayer。完整的键盘控制列表参见man page。
MPlayer允许你使用一个简单的config文件把任何键或按钮绑定为任何一个MPlayer控制命令。
句法是键名后加命令。缺省config文件是$HOME/.mplayer/input.conf
但是-input
conf
选项可以重新指定(相对路径是相对于$HOME/.mplayer
的)。
例子:
## ## MPlayer input control file ## RIGHT seek +10 LEFT seek -10 - audio_delay 0.100 + audio_delay -0.100 q quit > pt_step 1 < pt_step -1 ENTER pt_step 1 1
运行mplayer -input keylist
你将得到一个完整的列表
通过运行"mplayer -input cmdlist"你可以得到一个完整的已知命令的列表
搜索电影中的某处
Type 0 是以+/-val秒搜索。
Type 1 是以电影的val%搜索
音频延迟val秒
退出MPlayer
暂停/继续playback
有人知道?
选择playtree中的下一个/上一个输入。Val的符号决定方向.
如果在要求的方向上没有其他可用entry,除非force非0,否则不会做任何动作。
类似pt_step但它跳转到上一级列表的下一个/上一个。用来跳出playtree的内部循环。
当一种以上的source可用时选择下一个/上一个(只有asx播放列表支持).
字幕延迟+/-val秒或当abs非0时跳到val秒。
切换osd模式或当level>0时把它设为level。
增加/减少音量
设置/调整视频参数。Val范围从-100到100。
切换/设置frame dropping模式。
切换字幕是否可见。
调整字幕位置。
改变VobSub字幕的语言。
切换到全屏
选择下一个/上一个tv频道。
切换TV制式。
切换频道列表。
GUI的行为
Linux红外遥控 -- 使用一个容易制作的home-brewn红外线接收器,(几乎)任意一个的遥控器然后就可以用它来控制你的Linux box了! 更多内容见www.lirc.org。
如果你已安装了lirc-package,configure将自动检测到它。如果一切顺利,MPlayer在启动时将显示 "Setting up lirc support..."之类的信息。如果发生错误它将会显示。如果它不显示关于LIRC的任何信息则对LIRC的支持没有编译。就是这样:-)
MPlayer的程序名是 -- 嗯,让我想想看 -- 'mplayer'。你能使用任何mplayer命令甚至传递超过一种命令只要用\n分开他们。 不要忘记当有意义的时候(搜索,音量等等),在.lircrc中开启repeat标记。这是我的.lircrc的摘录:
begin button = VOLUME_PLUS prog = mplayer config = volume 1 repeat = 1 end begin button = VOLUME_MINUS prog = mplayer config = volume -1 repeat = 1 end begin button = CD_PLAY prog = mplayer config = pause end begin button = CD_STOP prog = mplayer config = seek 0 1\npause end
如果你不喜欢lirc-config文件的标准位置(~/.lircrc)使用-lircconf <filename>选项指定别的文件。
Slave方式把允许你为MPlayer建立简单的frontend。当它开启(用-slave
选项)时MPlayer
将从stdin读取用new line(\n)分开的命令。
MPlayer支持通过HTTP, MMS或者RTSP/RTP协议播放网络上的文件。
只要直接把URL地址加到命令行中就可以进行播放。MPlayer也支持http_proxy环境变量, 并且在可能的情况下使用代理。也可以强行指定使用代理:
mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf
MPlayer能从stdin(不称为管道)输入。例如这样能从FTP上播放:
wget ftp://micorsops.com/something.avi -O - | mplayer -
注意:当使用网络播放功能时推荐打开cache功能:
wget ftp://micorsops.com/something.avi -O - | mplayer -cache 8192 -
主要的开发平台是x86上的Linux,尽管MPlayer可以移植到很多别的Linux上。MPlayer的二进制包在很多地方可以获得。但是我们不对任何 一个负责,有问题去找这些包的制作者,别找我们。
为了制作Debian安装包,在MPlayer的代码的目录下面运行下列命令:
fakeroot debian/rules binary
成为root后你可以像正常情况下一样安装.deb
包:
dpkg -i ../mplayer_0.90-1_i386.deb as root.
Christian Marillat一直在制作非官方的Debian MPlayer, MEncoder和字体的安装包,你可以从他的主页(apt-get)获得。
Dominik Mierzejewski制作并维护MPlayer的官方的Red Hat RPM安装包。他制作了播放器,GUI,字体,skin和一些驱动还有编解码器的安装包。所有这些都可以从他的主页获得。
Mandrake的安装包可以在P.L.F获得,SuSE在他们的发行版中包括了 一个有缺陷的MPlayer版本。如果你想获得全部的功能,你必须从源代码编译。
MPlayer可以工作在使用ARM CPU的PDAs例如Sharp Zaurus, Compaq Ipaq上。最简单的获得MPlayer的方法从Openzaurus的安装包服务器下载。如果你像自己编译它,你应该查看OpenZaurus发行版的buildroot下的mplayer
目录和libavcodec。
那里总有最新的用来编译一个代libavcodec的CVS的MPlayer的Makfile和补丁。
如果你需要一个GUI前端,你可以使用xmms-embedded。
MPlayer可以运行在FreeBSD, OpenBSD, NetBSD, BSD/OS和Darwin上。有ports/pkgsrc/fink等版本的MPlayer可供使用,比直接使用我们的 源代码要容易。
编译MPlayer你需要GNU make(gmake - 本地的BSD的make不能正常工作)和一个比较新的binutils。
如果MPlayer报告找不到/dev/cdrom
或者/dev/dvd
,创建一个适当的符号链接:
ln -s /dev/(your_cdrom_device) /dev/cdrom
.
要在MPlayer中使用Win32 DLLs你需要使用"option USER_LDT
"重新编译内核(除非你用的是FreeBSD -CURRENT,其中这一项是默认的)。
因为gas的版本不同(relocation vs mmx)的限制,你需要分两步编译: 首先确保non-native的汇编程序当前在PATH中并运行gmake -k
,
然后在确保使用native版本情况下运行gmake
。
MPlayer在Solaris 2.6或者更新的系统上应该能够正常运行。
在UltraSPARC上,MPlayer利用他们的VIS扩展(相当于MMX)的优势,目前只应用于libmpeg2, libvo以及libavcodec ,但mp3lib没有。你能在400MHz CPU上观看VOB文件。你需要安装mLib。
为编译它你需要GNU make(gmake,/opt/sfw/gmake),native的Solaris make不能正常工作。你用Solaris的make代替GNU make时的典型的错误信息为:
% /usr/ccs/bin/make make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
在Solaris SPARC上,你需要GNU C/C++编译器;GNU C/C++编译器是否设置使用GNU汇编程序没有什么关系。
在Solaris x86上,你需要GNU汇编程序和GNU C/C++编译器,设置使用GNU的汇编程序!在x86平台上的mplayer代码大量使用MMX,SSE和3DNOW!
指令集,使用Sun的汇编程序/usr/ccs/bin/as
不能编译通过。
configure脚本将试图查找你的"gcc"命令使用的汇编程序(如果自动检测失败,使用"--as=/wherever/you/have/installed/gnu-as" 选项告诉configure脚本你的系统中GNU的"as"在哪里)。
在Solaris x86系统上使用没有GNU汇编程序的GCC时configure的出错信息为:
% configure ... Checking assembler (/usr/ccs/bin/as) ... , failed Please upgrade(downgrade) binutils to 2.10.1...
(解决方法:安装并且使用配置了"--with-as=gas"的gcc)
当不使用GNU as的GNU C编译程序时的典型出错信息是:
% gmake ... gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math -fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c Assembler: mplayer.c "(stdin)", line 3567 : Illegal mnemonic "(stdin)", line 3567 : Syntax error ... more "Illegal mnemonic" and "Syntax error" errors ...
因为Solaris8 x86的两个bug,不能可靠地播放容量>4GB的DVD:
The hsfs problem can be fixed by installing patch 109764-04 (sparc) / 109765-04 (x86).
在使用UltraSPARC CPU的Solaris上,对有些耗时的操作使用CPU的VIS指令能获得额外的速度提升。 在MPlayer中通过Sun的mediaLib中的函数使用VIS加速功能。
mediaLib的VIS加速功能用于mpeg2视频解码和视频输出驱动的颜色转换。
你可以安装GNU的install程序,并且(如果你没有把它放在你的系统路径中)指定它的位置:
./configure --install-path=PATH
或者你可以使用默认的IRIX 6.5提供的install,那你就必须手动修改Makefile文件,把下面两行:
$(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1 $(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf
改成:
$(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/ $(INSTALL) -m 644 codecs.conf $(CONFDIR)/
然后运行(在MPlayer的源代码目录中):
cp DOCS/mplayer.1 . ; cp etc/codecs.conf .
然后继续编译和安装。
能工作。你需要下载SDL for QNX并安装它。然后使用-vo sdl:photon
和-ao sdl:nto
选项运行MPlayer,速度应该很快。
-vo x11
输出将比Linux更加缓慢,因为QNX只有一个十分缓慢的的X仿真。使用SDL。
Cygwin的移植仍然很不成熟。目前还不支持Win32 DLLs和OpenGL。SDL据说会扭曲声音和图像或者在某些系统上导致崩溃。补丁总是欢迎的。最好的效果是使用本地的DirectX视频输出驱动(-vo directx
)
和本地的Windows waveout音频驱动(-ao win32
)。你应该查阅mplayer-cygwin邮件列表来获得帮助和最新信息。
你必须到MPlayer的目录下,拷贝或者symlinketc/cygwin-inttypes.h
到/usr/include/inttypes.h
来使MPlayer顺利编译。
为了获得本地的DirectX视频,下载DirectX 7头文件,把它们解压到/usr/include/
或者/usr/local/include/
下然后重新编译。如果图像发生扭曲,用-vo directx:noaccel
把硬件加速关掉试试。
让SDL在Cygwin下工作的方法和文件可以在libsdl的站点找到。
你可以通过播放Windows显示的VCD上的.DAT
或者.MPG
文件来播放VCD,这样使他工作(改成你
的CD-ROM驱动器的盘符):
mplayer d:/mpegav/avseq01.dat
mplayer /cygdrive/d/MPEG2/AVSEQ01.MPG
DVD同样可以,用下面的命令DVD设备设置成你的CD-ROM驱动器:
mplayer dvd://<title> -dvd-device '\\.\d:'
QuickTime DLL据说也能工作。用--enable-qtx-codecs
编译并把编解码器放到默认的Windows DLL位
置,C:\WINNT\system32
或者C:\Windows\system
取决于你的Windows的版本。
MPlayer有一些公开的邮件列表。除非特别说明否则这些列表的语言是英语。请不要用别的语言或者HTML邮件格式发送 消息!一条消息的大小限制是80k。如果你有更大的东西把它放在可以下载的地方。点击链接就可以订阅。在邮件列表上使用与 与usenet上相同的书写和引用规则。请遵守他们,它使阅读你的邮件的人的生活轻松的多。如果你不知道请阅读编辑消息HOWTO或者(如果你很着急)引用HOWTO。
这个列表是关于mplayer开发的! 谈论接口与API的变化,新的库,代码优化,configure修改,另外补丁也应发送到这里。不要在这里发送bug报告, 用户问题,特性要求,吵架!这张列表应该保持低流量。
在这里只能询问CVS的变化。(如果你不理解为什么要做这样的改动或者你有更好的修正或者你注意到在已经提交的补丁中可能存在的bug或问题)确定你要找的开发者阅读这张列表!
注意:http://www.mplayerhq.hu/cgi-bin/htsearch有可供检索的邮件列表文档。
特殊的系统或CPU相关的bug或问题:
./configure --disable-sse
./configure --disable-sse
等等选项-ac ffmpeg
)各种各样A-V同步和其它音频问题:
一般的音频延迟或者急跳声音(对所有或者大部分文件存在):视频输出问题:
首先注意: -fs -vm和-zoom选项只是推荐,(目前)不是所有驱动器都支持。因此,如果它不起作用那不是bug。 只有少数驱动支持缩放,对x11或dga不要指望这个。
OSD与字幕闪烁:
-- x11驱动器: 抱歉,它现在不能被修正
-- xv驱动器: 使用-double选项
使用mga_vid时的绿色图象(-vo mga/-vo xmga):
-- mga-vid没有正确检测你的显卡的显存大小,使用mga_ram_size选项重新载入