MPlayer常見問題解答
2024-07-21 02:36:41
供稿:網友
1 編譯問題
Q:編譯停止并出現類似這樣的出錯信息:
In file included from mplayer.c:34:
mw.h: In function `mplMainDraw':
mw.h:209: Internal compiler error in PRint_rtl_and_abort, at flow.c:6458
Please submit a full bug report,
with preprocessed source if appropriate.
A:這是gcc 3.0.4的一個已知的bug,升級到3.1就可以解決問題。如何安裝gcc參閱gcc 2.96部分。
Q:Configure結束時出現這樣的文字,MPlayer無法編譯!
"Your gcc does not support even i386 for '-march' and '-mcpu'."
A:你的gcc沒有正確的安裝,細節需要查看config.log文件。
Q:"No sUCh file or Directory"是什么意思?
A:有可能真的沒有這樣文件或目錄。
Q:gcc2.96有什么問題?
A:我們強烈反對使用gcc 2.96!
細節參見這個文件了解為什么Red Hat發布gcc 2.96,以及它有什么問題。假如你仍然確實確實確實確實想要使用它,總是使用最新的版本并且在configure的時候加上--disable-gcc-checking選項。記住是你自己選擇這條路的。一定不要報告bug,一定不要到郵件列表上尋求幫助。假如你碰到問題我們將不提供任何支持。
Q:好極了,那么我使用Red Hat/Mandrake的gcc 3.0.1,我沒問題!
A:不,因為那些編譯器同樣有問題。為了了解當前的編譯器對MPlayer的支持狀況,參見安裝部分。
Q:我試圖編譯MPlayer,但是我得到這樣的輸出:
In file included from /usr/include/g++-v3/bits/std_cwchar.h:42,
from /usr/include/g++-v3/bits/fpos.h:40,
from /usr/include/g++-v3/bits/char_traits.h:40,
from /usr/include/g++-v3/bits/std_string.h:41,
from /usr/include/g++-v3/string:31,
from libwin32.h:36,
from DS_AudioDecoder.h:4,
from DS_AudioDec.cpp:5:
/usr/include/wchar.h: In function Long long int wcstoq(const wchar_t*,
wchar_t**, int)':
/usr/include/wchar.h:514: cannot convert `const wchar_t* __restrict' to
`const
A:把你的glibc升級到最新的發行版。對于Mandrake,使用2.2.4-8mdk。
Q:... gcc 2.96 ... (是的,有些人還在為gcc 2.96上火!)
A:我們引用A'rpi發送到mplayer-users郵件列表的一封 郵件('ideg'的意思將在下面解釋):
And we have idegs. And our idegcounter overflowed again and again.
Unfortunately MPlayer is out of our control. It's used by lamers, linux users who can't even use Windows, and never tried to compile a kernel. They installed (with default options) Mandrake or Red Hat or SuSE, and without RTFM'ing they send messages saying 'it doesn't work! help me! please! i'm new to Linux! help! oh! help me!'. We can't stop them, but at least we try to force them to RTFM and to read the messages of ./configure and MPlayer.
And you clever guys come and flame us with gcc 2.96 and binary packages. Instead of helping users or making patches to help solve problems.
Half of our spare/free time is spent by answering silly mails here and making newer tricks and checks to configure to avoid such mails.
And there is a balance. On the one side are you, clever guys, saying we are very bad because we don't like buggy gcc 2.96, and on the other side there are the 'new to Linux' guys who are showing us gcc 2.96 is buggy.
Conclusion: We can't be good. Half the people will always say we are bad.
Maybe we should close the project, make it closed source, commercial, and provide install support for it. then we could leave current work, so development could go faster, and we could earn lots of money with it and buy a big house, etc etc. Do you really want it? It seems.
Q:SDL輸出不能工作或者編譯。
問題在...
A:SDL 1.2.x經過測試能夠工作另外SDL 1.1.7+可能能工作。任何以前的版本肯定不能工作。因此假如你選擇使用這樣的版本,是你自己的責任。
Q:我在編譯SDL支持的時候仍然有問題。gcc說什么"undefined reference to `SDL_EnableKeyRepeat'"。現在怎么辦?
A:你把SDL庫裝在哪里? 假如你裝在/usr/local(默認目錄)中那么編輯頂層的config.mak并在"X_LIBS="之后添加"-L/usr/local/lib"。現在打make。你搞定了!
Q:不能編譯,找不到uint64_t inttypes.h之類的東西...
A:把etc/inttypes.h復制到MPlayer目錄下(cp etc/inttypes.h .)然后再試一次...
Q:我在Pentium III上運行Linux但是./configure 沒有找到SSE...
A:只有2.4.x的內核支持SSE(或者試試2.2.19或更新的版本,但預備好出問題)。
Q:我有G200與G400,我如何編譯使用mga_vid驅動?
A:閱讀mga_vid文檔。
Q:MPlayer有rpm/deb/...之類的安裝包嗎?
A:你能自己制作.deb安裝包,查閱Debian安裝包的制作一節。我們網站的下載頁上有官方的Red Hat的RPM包的下載鏈接。
Q:在'make'時,MPlayer報告沒有X11庫。我不理解,我確實裝了X!?
A:...但是你沒有裝X的開發包。或者沒有正確安裝。Red Hat下面它叫XFree86-devel*,Debian下面是xlibs-dev。也檢查是否存在/usr/X11和/usr/include/X11的符號鏈接(在Mandrake系統上可能有這個問題)。他們用下列命令創建:
$ ln -sf /usr/X11R6 /usr/X11
$ ln -sf /usr/X11R6/include/X11 /usr/include/X11
你的發行版可能不是文件系統層次標準。
Q:我不能編譯SVGAlib。我使用2.3/2.4的內核...
A:你必須編輯SVGAlib的Makefile.cfg把BACKGROUND = y注釋掉。
Q:我的MPlayer編譯了libdvdCSS/libdivxdecore的支持,但是當我試圖起動它時,它說:
> error while loading shared libraries: lib*.so.0: cannot load shared object file: No such file or directory
我檢查了文件,它確實在/usr/local/lib里面...
A:在/etc/ld.so.conf里添加/usr/local/lib然后運行ldconfig。
Q:Hmm,希奇。我加載mga_vid.o內核模塊后在log中找到這個:
Warning: loading mga_vid.o will taint the kernel: no license
A:最新的內核modutils要求一個標明許可證的標記(主要避免內核hackers調試非開源的驅動)。升級你的內核, modutils和MPlayer。
Q:編譯MEncoder過程中,在連接時出現segfaults!
A:這是連接程序的問題。把binutils升級應該有用(2.11.92.*或者更新版本應該不錯)。由于它不是我們的問題,請一定不要報告!
Q:MPlayer在pthread check時因為segmentation fault而崩潰!
A:chmod 644 /usr/lib/libc.so
Q:我想在Minix上編譯MPlayer!
A:我也想。
2 一般問題
Q: 我怎么給MPlayer制作合適的補丁?
A: 我們做了一個短小的文件描述了所有必要的細節。照上面的步驟做。
Q: 我怎么支持MPlayer的開發工作?
A: 我們非常樂于接受你的硬件和軟件的捐贈。它們能幫助我們持續的改進MPlayer。
Q: 我怎么成為MPlayer的開發者?
A: 我們總是歡迎寫程序的和寫文檔的。先閱讀技術文檔來有個大致了解。然后你應該訂閱mplayer-dev-eng郵件列表并開始編程。
Q:我能同時運行多個MPlayer實例嗎?
A:是的。有些視頻輸出的驅動像xv,dga或者(x)mga是唯一的,所以你將不能夠運行超過一個使用這樣的視頻輸出驅動的MPlayer實例。音頻驅動也在不是很嚴重的程度上存在這種問題。并非所有的驅動都答應在同樣的設備上播放多重流。
Q:在左上角中有一個計時器。
我怎么能去掉它?
A:按o或者使用-osdlevel選項。
Q:-xy或者-fs選項對x11驅動(-vo x11)不起作用...
A:它能起作用,但你必須用-zoom選項明確指定使用軟件縮放(十分緩慢)。你最好是使用XF86VidMode支持:你必須指定-vm和-fs選項,然后就搞定了。確保在你的XF86Config文件中有正確設定了modelines,并且嘗試使用DGA驅動以及SDL的DGA驅動。它快得多。假如SDL的DGA能工作就用它,它還要更快。
Q:狀態行上的數字的是什么意思?
A:例如: A: 2.1 V: 2.2 A-V: -0.167 ct: 0.042 57/57 41% 0% 2.6% 0 4 49%
* A:以秒計算的音頻位置
* V:以秒計算的視頻位置
* A-V:以秒計算的音頻視頻位置差(延遲)
* ct:所有完成的A-V同步糾正
* 播放的幀數(從最后一次搜索開始計算)
* 解碼的幀數(從最后一次搜索開始計算)
* 視頻解碼器占用的cpu的百分比(對于slice和DR這包括了視頻輸出的占用)
* 視頻輸出的cpu占用
* 音頻解碼器占用的cpu的百分比
* 為保持A-V同步而丟棄的幀數
* 目前圖像后處理的級別(當使用-autoq時)
* 當前cache使用