在centos下使用mplayer看高畫質 DVD,沒想到出奇的卡。在網上搜尋到一篇非常好的解決方案附在最下面。這裡先記錄自己實際的解決方案:
解決方案一:使用mplayer -framedrop參數來播放,效果也不錯。
解
決方法二:按照下文介紹的第2種方法,使用多線程mplayer來播放。由於下文中的連結不可用,另外git的代理配置也麻煩,所以直接去mplayer
官方網站下載最新的mplayer的原始碼包,接著去http:
//src.chromium.org/viewvc/chrome/trunk/deps/third_party/ffmpeg/ffmpeg-mt.tar.gz
下載ffmpeg-mt的原始碼,分別解壓,然後用ffmpeg-mt替換掉mplayer源碼中的ffmpeg,按照./configure
&& make && make
install三步走安裝mplayer。安裝過程出錯說libswcale目錄中沒有makefile,原來ffmpeg-mt的libswcale本
來就是空的,再把mpalyer內建的ffmpeg中的libswcale複製過去,重新安裝。完成以後,用下面命令播放:
mplayer -vfm lavf -lavdopts threads=4 ~/movies/movie.RMVB
下文介紹了在linux下使用mplayer看高畫質 DVD的三種方法,原文連結:http://linuxtoy.org/archives/play-hd-movies-with-mplayer.html
Linux 下使用 MPlayer 觀看高畫質 DVD的三種解決方案
最近,MPlayer 官方網站刊載了一篇名為《Video
Acceleration and You
》的文章,該文簡述了使用 MPlayer 來觀看 1080 H.264
高畫質 DVD的幾種方案,茲摘錄如下,並加以說明。
- VDPAU
VDPAU 即 Video Decode and Presentation API for Unix 的簡稱,它是由 NVIDIA 針對
GeForce 8 及更新的系列所設計的一套 API,既有解碼,也有解碼後處理,可以大幅降低 CPU 的佔用率。
目前,MPlayer 的 SVN 版本已經提供了針對 VDPAU 的支援,你將需要通過 Subversion 版本控制工具來擷取其原始碼
並
自行編譯。同時,在播放時需指定 -vo vdpau -vc ffh264vdpau
選項和參數。
- FFmpeg-mt
FFmpeg-mt
是一個包含多線程實驗性功能的 FFmpeg 新分支,它可以充分利用多核或多個 CPU 的優勢,從而加快視頻解碼過程。
FFmpeg-mt 的原始碼可由 Git 取得,編譯及安裝可使用以下命令:
git clone git://repo.or.cz/mplayer &&
cd mplayer
&& git checkout origin/mt && git
submodule init
&& git submodule update && ./configure
&& make
&& make install
同樣,播放時需指定相應選項和參數:-lavdopts threads=N
,其中 N 即線程數。
- CoreAVC for Linux
CoreAVC
據說是 Windows 平台下最好的 H.264
解碼器,包含多線程、多核(專業版)等支援,其最大的特色是快。通過 CoreAVC for Linux 可以在 Linux 下使用
CoreAVC。之前,該項目曾被 CoreAVC 的開發商要求關閉,後來經過溝通在 Google Code 上得已重新開放。
關於 CoreAVC for MPlayer 的安裝,可以參考這篇安
裝指南
。
得益於好友 Dark 的協助,我目前使用的即是這種方案。我的體驗是,1080P 的片子可以流暢播放,CPU 佔用率在 40%~70%
之間徘徊(我的是 Intel Pentium Dual-Core E2140 CPU);720P 的更低一些,大約在 10%~40%。
綜上,第一種方案針對顯卡的要求要高一些,我的 GeForce 7300GT 目前便無福消受;第三種呢,CoreAVC
需要額外花錢購買,專業版要 15 刀;第二種方案倒是非常值得一試。