Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7632681 建立时间:2006年5月29日 |

| |
[视频处理]讓 MPlayer 支援原生WMV9 软件技术
lhwork 发表于 2007/2/6 9:37:03 |
[MPlayer] 的功能強大,而且支援的媒體檔案與平台數量都是一流的,對於
Microsoft 專屬的 mpeg-4 與 wmv1/2/3 (這三者分別對應我們常稱呼的 WMV 7/8/9,小寫表示 video coding 的
algorithm,大寫表示 Window Media Player 支援格式),[MPlayer] 跟 Xine 或 VLC 一樣,都透過 Win32 DLL
loader 強制載入修改過的 win32 codec (用惡行對付 Microsoft 的惡行 :P)。VLC 已初步支援 WMV9 (VC-1),可參考
[Instructions for
compiling VLC with VC-1 (WMV9) support under Ubuntu
Breezy],而我在想,是否能夠將這些成果移植到 [MPlayer]
呢?剛剛 hacking 一段時間,完成了 :-)以下是參考的編譯流程:(1) 取得 cvs tarball 與我做的 patch:
# wget http://jserv.sayya.org/mplayer/mplayer-cvs-snapshot-20060228.tar.bz2# wget http://jserv.sayya.org/mplayer/wmv3-support-via-vc1.diff.gz(2) 解壓縮並施加 patch:
# tar jxvf mplayer-cvs-snapshot-20060228.tar.bz2 # cd mplayer-cvs-snapshot-20060228# zcat ../wmv3-support-via-vc1.diff.gz | patch -p1(3) 組態配置,以下是我的組態,可作為參考 (請記得把 pentium-m 換成您的 machine):
CFLAGS="-O5 -march=pentium-m \-mmmx -msse -msse2 -mfpmath=sse,387 \-fomit-frame-pointer -fforce-mem -fforce-addr \-finline-functions -freorder-functions \-frename-registers -ftracer -fweb -funit-at-a-time \-fbranch-target-load-optimize2" \sh configure \ --prefix=/usr \ --confdir=/etc/mplayer \ --disable-gui \ --enable-menu \ --disable-inet6 \ --language=en \ --enable-sse2 \ --enable-i18n \ --disable-gl \ --disable-win32 \ --enable-dynamic-plugins上面的 "--disable-win32" 就是告訴 MPlayer 我不需要邪惡的 win32 dll loader,我用 native
WMV9 codec。(4) 開始漫長的等待:
make這個 hacking 很有趣,在我的電腦運作的畫面如下:500)this.width=500'>所以現在不需要帶有罪惡感的
win32 codecs,也可以播放了,並且 [MPlayer]
支援的平台眾多,或許在 64-bit 的硬體也可以運作 (?)。 |
|
|