mplayer播放问题汇集
- 转载地址:http://blog.csdn.net/willand1981/article/details/5783107
-
Detected audio codec: [divx] afm:4 (DivX audio (WMA)) Requested audio codec family [divx] (afm=4) not available (enable it at compile time!)
- A:可能文件的音频使用了一个不是MPlayer本地支持的解码器。按照README或者 安装部分中的说明安装Win32解码器包。
- Q:...avifile/aviplay能工作但MPlayer不能。
- A:MPlayer不是avifile。它们之间唯一的共同之处Win32 DLL装载器。codecs(DLL)集,同步,信号分离等等完全不同所以不应该被比较。如果什么东西能用aviplay播放并不意味着MPlayer能工作,反之亦然。
- Q:播放AVI文件时音频不同步。
- A:试试
-bps
或-nobps
选项。如果还没有改善,阅读 这个并把文件上载到FTP上。 - Q:MPlayer在使用l3codeca.acm的时候因为一些错误而退出。
- A:检查
ldd /usr/local/bin/mplayer
的输出。如果它包含
libc.so.6 => /lib/libc.so.6 (0x4???????)
"?"可以是任意数字表示没有问题,错误不在这里。如果它是:
libc.so.6 => /lib/libc.so.6 (0x00??????)
那就表示你的内核/libc有问题。可能你使用了一些安全补丁(例如SolarDesigner的OpenWall补丁)强迫把库加载到很低的内存地址。因为l3codeca.acm是不可重新定位的DLL,它必须被加载到0x00400000,我们没法改变它。你应该使用没有打补丁的核心,或者使用MPlayer的-afm 1
选项禁用l3codeca.acm。 - Q:我的电脑播放分辨率640x300而且是立体声的mp3的M$ DivX AVI文件时非常慢。当我使用-nosound选项时,一切正常(但没有声音)。
- A:你的机器太慢或者你的声卡驱动坏了。查阅文档看你是否能提高性能。
- Q:MPlayer由于"MPlayer interrupted by signal 4 in module: decode_video"而崩溃。
- A:尝试在你用来编译MPlayer的机器上运行它。或者重新编译打开运行时CPU检测功能(
./configure --enable-runtime-cpudetection
)。如果没有使用上面提到的特性,不要在与编译它不同的CPU上使用MPlayer。 - Q:我有个关于[your window manager]跟xv/xmga/sdl/x11模式下全屏的问题...
- A:读取我们的bug报告指导并送一个正确的bug报告给我们
- Q:我播放MPEG文件时出现这样的错误: Can't find codec for video format 0x10000001!
- A:你的
~/.mplayer/
下的codecs.conf的版本太旧。用/etc/
下面的文件升级它。
或者你的配置文件中包含vc=
选项或者类似东西。 - Q:当KDE下的运行MPlayer我只看到一个黑色的屏幕什么都没有。在大约一分钟之后才开始播放视频。
- A:KDE的arts守护进程会阻塞声卡设备。你可以一直等到视频开始或者在控制中心中禁用arts。如果你想使用arts的音频,将音频输出指定为我们本地的arts音频驱动
-ao arts
)。如果它失败或者没有被编译进来,尝试SDL (-ao sdl
)并且确保你的SDL能处理arts的音频。还有另一个选择是用artsdsp运行MPlayer。 - Q:我有一个AVI文件,当用
-vc odivx
播放时时,出现灰色屏幕,用-vc divx4
时,出现绿色屏幕。 - A:这不是DivX文件,而是M$ MPEG4v3。更新你的codecs.conf。
- Q:我播放电影时遇到视频音频不同步和/或者MPlayer崩溃并出现下列信息:
DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
- A:这可能有很多原因。
- 你的CPU和/或者显卡和/或者总线太慢。在这种情况下MPlayer会显示信息(并且掉帧数会迅速增加)。
- 如果它是AVI文件,也许它的交错有问题。试试
-ni
选项。 - 你的声卡驱动太buggy,或者你对ALSA 0.5使用了
-ao oss
。 参见声卡部分。 - AVI的文件头有问题,试试
-nobps
选项,和/或者-mc 0
。
- Q:我有个MJPEG文件能用其它播放器播放但是MPlayer只显示一个黑色的图象。
- A:在
codecs.conf
中禁用Windows DLL,或者使用-vc ffmjpeg
选项(为此你需要为MPlayer编译libavcodec支持)。 - Q:当我试图从我的电视选台器截取时,它能工作,但是颜色很奇怪。用其它程序没问题。
- A:你的卡片有可能错误报告了它的色彩空间容量。试试YUY2而不是缺省的YV12(见电视输入文档)。
- Q:每次我开始播放是,都遇到这种信息,但一切似乎都正常:
Linux RTC init: ioctl (rtc_pie_on): Permission denied
- A:你需要root权限或者一个特殊设定的内核使用计时器代码。细节参见文档的RTC部分。
- Q:我的同步有问题。一些AVI我能正常播放,另外一些却是以双倍速度播放!
- A:你的声卡/驱动buggy。很有可能它的固定在44100Hz,而你试图播放22050Hz的音频的文件。试试resample音频滤镜。
- Q:我播放所有WMV (或者其它.. )文件时都只有一个绿色/灰色的窗口和声音! MPlayer报告:
Detected video codec: [null] drv:0 (NULL codec (no decoding))
- A:更新你
codecs.conf
。 - Q:我用我的笔记本播放文件时得到十分奇怪的CPU百分值(太大了)。
- A:这是你的笔记本的电源管理/节能系统(BIOS,不是内核)的影响。起动你的笔记本之前插上外部电源。你也可以试试cpufreq(一个Linux下的SpeedStep界面)对你是否有帮助。
- Q:当我以root权限在我的笔记本上运行MPlayer时,音频与视频完全不同步。当我作为普通用户运行它时,它工作正常。
- A:这还是电源管理的结果(见上面)。起动你的笔记本之前插上外部电源或者使用
-nortc
选项。 - Q: 放一部电影的时候它突然跳跃起来并且出现下列信息:
Badly interleaved AVI file detected - switching to -ni mode...
- A: 糟糕的交错文件不能和
-cache
选项协同工作. 试试-nocache
.
5.4 视频与音频驱动问题(vo/ao)
- Q:我播放视频的时候没有声音并且得到类似这样的出错信息:
AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) audio_setup: Can't open audio device /dev/dsp: Device or resource busy couldn't open/init audio device -> NOSOUND Audio: no sound!!! Start playing...
- A:你是运行的KDE或者GNOME,并且起动了ARTS或者ESD音频守护进程吗? 试试禁用音频守护进程,或者使用
-ao arts
或-ao esd
选项让MPlayer使用ARTS或ESD。 - Q:DGA驱动怎么了? 我找不到它!
- A:
./configure
会自动检测你的DGA驱动。如果-vo help
没有显示DGA,那你的X装的有问题。尝试./configure --enable-dga
并且读取相关文档。或者,使用-vo sdl:dga
选项试试SDL的DGA驱动。 - Q:很好,
-vo help
显示有DGA驱动,但是它抱怨权限。帮帮我! - A:它只能以root权限工作! 这是DGA的限制。你应该成为root(
su -
),然后再试一次。另一个解决方法是为 MPlayerSUID root,但是这种方法不被推荐!
chown root /usr/local/bin/mplayer
chmod 755 /usr/local/bin/mplayer
chmod +s /usr/local/bin/mplayer
警告:安全风险
这是一个很大的安全风险!永远不要在除了你之外还有人可以使用的服务器上这样做,因为他们能通过SUID root的 MPlayer获得root权限。你被警告过了。 - Q:当使用Xvideo时,我的Voodoo 3/Banshee报告说:
X Error of failed request: BadAccess (attempt to access private resource denied)
Major opcode of failed request: 147 (MIT-SHM)
Minor opcode of failed request: 1 (X_ShmAttach)
Serial number of failed request: 26
Current serial number in output stream:27 - A:XFree86 4.0.2/4.0.3的“tdfx”驱动有这个bug。已经被解决了bugfix #621 of the XFree86 4.1.0 CVS log。因此,升级到XFree86 4.1.0或者更新的版本。或者,要么是从DRI的主页下载(至少)0.6版本的DRI,要么使用CVS的DRI。
- Q:OpenGL(
-vo gl
)输出不工作(锁死/黑色窗口/X11出错/...)。 - A:你的OpenGL驱动不支持动态材质更换(glTexSubImage)。已知的是它在nVidia的二进制的家伙上不工作。同时也知道它在Utah-GLX/DRI 和MatroxG400显卡上能工作。Radeon显卡加DRI也行。其它显卡加DRI不行。它同样不能在3DFX显卡上工作,因为256x256材质大小限制。
- Q:我有一块nVidia TNT/TNT2显卡,而我的电影的下面总有一个颜色奇怪的带子! 这个是什么故障?
- A:这是nVidia二进制X驱动的一个bug。这些bug仅出现在TNT/TNT2显卡上,我们什么也干不了。要解决问题,升级到最新版本的nVidia二进制的驱动。如果仍然不行,对nVidia抱怨去吧!
- Q:我使用nVidia XYZ显卡,当我单击显示GUI的显示窗口来触发GUI面板时,在我单击的地方出现一个黑色方块。我安装了最新的驱动。
- A:没错,nVidia修正了上一个的错误(上面),并且引进了新的bug。让我们祝贺他们。更新:据nVidia说,这已经修正了。
- Q:当我使用GUI时,如果使用SDL视频输出,会创建第二个视频窗口。
- A:知道,目前GUI不能使用SDL。
- Q:啊世界真是残酷...! SDL只有
x11
输出,而不是xv
! - A:再试一次
x11
输出。现在尝试-vo x11 -fs -zoom
。看到区别了?没有?!好,给你点启发:SDL的x11
输出只要xv可用就会使用xv,你不必为它担心...注意:你使用-forcexv
或-noxv
强制/禁用SDL使用xv
5.5 DVD播放
- Q: 有没有DVD导航菜单?
- A: MPlayer中的dvdnav支持目前坏了,但正常的播放可以工作。如果你想要华丽的菜单,你需要使用别的播放器比如xine或者Ogle。如果你确实想要DVD导航,送一个补丁.
- Q:当播放DVD时,我遇到这个错误:
mplayer: ifo_read.c:1143: ifoRead_C_ADT_internal: Assertion nfo_length / sizeof(cell_adr_t) >= c_adt->nr_of_vobs' failed.
- A:这是已知的libdvdread 0.9.1/0.9.2的bug。使用libmpdvdkit2,就在MPlayer的源代码中,并且缺省使用
- Q:我能在我的Solaris下的可爱的SPARC上编译libdvdread和libdvdcss吗?
- A:天知道...据说它能工作,所以请测试它并且提供反馈。也参阅libdvdread的文件及其主页。我们不是libdvdread的作者。使用libmpdvdkit2,就在MPlayer的源代码中,并且缺省使用。
- Q:字幕怎么样? MPlayer能显示他们吗?
- A:是。参见文档的DVD部分。
- Q:我怎么设置我的DVD光驱的地区代码? 我没有Windows!
- A:使用regionset工具。
- Q:我一定需要(setuid) root/setuid fibmap_mplayer来播放DVD吗?
- A:不,这个只用于老式的DVD支持。然而你必须有访问DVD设备适当权限(在
/dev/
里)。 - Q:我在什么地方能找到libdvdread和libdvdcss包?
- A:你不需要。使用libmpdvdkit2,就在MPlayer的源代码中,并且缺省使用。这些包能从Ogle的站点得到。
- Q:可以单独播放/编码选定的chapter吗?
- A:可以,试试
-chapter
选项。 - Q:我的DVD回放慢的要死!
- A:使用
-cache
选项(在man page中介绍)并尝试用hdparm工具为了DVD光驱开启DMA(在文档CD部分有介绍)。
5.6 特性要求
- Q:如果MPlayer暂停之后我试图搜索或者按任意键,MPlayer会停止暂停。我愿意能够在暂停时在电影中搜索。
- A:很难在不失去A/V同步的情况下实现这项功能。迄今为止所有尝试都失败了,但补丁是受欢迎的。
- Q:我想要+/- 1帧来搜索而不是10秒。
- A:这不会被实现。它曾被实现过,但是它弄乱了A/V同步。如果你愿意就实现它,并且发送补丁。不要要求它。
- Q:哪里有Windows版本?
- A:它没有发行,并且将来也不会。看看Windows的情况(开源的ASF分析器,开源的ASF编码器等等)然后你就知道为什么了。我们不想进监狱。顺便说一下,你可以自己编译它,在Cygwin下。
5.7 编码
- Q:我怎么编码?
- A:读取MEncoder的文档。
- Q:我怎么创建VCD?
- A:试试
TOOLS
目录下的mencvcd
脚本。使用它你能把DVD或者其它电影编码成为VCD或者SVCD格式甚至直接把它们刻到CD上。 - Q: 我怎么合并两个视频文件?
- A: 这在mplayer-users上面是永不完结的话题。检索邮件文档来寻找完整的答案。这是个复杂的问题,而且你的操作可能因为你想要合并的文件种类有很大分别。MPEG可以直接连接成一个文件。对于AVI有两个可用的工具avidemux和avimerge(transcode工具集的一部分),可能可以完成这个工作。如果两个文件使用同样的分辨率和编解码器,你也可用试试MEncoder。尝试
cat file1 file2 > file3
mencoder -ovc copy -oac copy -o out.avi -forceidx file3.avi
- Q:我的电视选台器工作,我能用MPlayer听到声音观看视频,但是MEncoder不把音频编码!
- A:Linux的电视音频编码目前还没有实现,我们正在努力。目前它只在BSD上工作。
- Q:我不能把DVD字幕编码成AVI!
- A:你必须正确设定
-sid
选项! - Q:MEncoder启动时出现segfaults!
- A:升级DivX4Linux。
- Q:我如何仅对一张DVD中选定的chapter进行编码?
- A:正确使用
-chapter
选项,像这样:-chapter 5-7
- Q:我试图在VFAT文件系统上处理2GB+的文件。能行吗?
- A:不,VFAT不支持2GB+的文件。
- Q:为什么MEncoder显示的推荐比特率都是负的?
- A:因为你编码的音频的比特率太大,在任何CD上不能用于电影。检查你是否正确安装了libmp3lame。