UbuntuのAMD Radeonでのハードウェアビデオデコード(mplayer)

はじめに



Nvidiaからカードを入手したとき、ビデオの再生に問題はありませんでした。mplayerWebサイトから最新のスナップショットをダウンロードし、独自のドライバーをインストールし、vdpauサポートでビルドし、適切なコーデックと出力デバイスを追加すると、すべてが機能しますディストリビューションサポートvdpauは既にmplayerにあります)。

少し前、AMD Radeonを入手しました。ビデオカードを選択するときに、ハードウェアデコードの設定に関連するものなど、Radeonを使用するための精神的な障壁が存在しました。 しかし、彼らは問題の財政面でうまく壊れたので、UVD3でAMD Radeon HDを手に入れました。

この記事は、「ビデオカードでビデオをデコードする方法+将来のメモとして保存する」というトピックに関する検索の結果として登場しました。 それでは始めましょう。

注:コメントでは、これは廃止されたメソッドであることが示されました。新しいメソッドは参照によって説明され、完成したスクリプトはこちらです。





用語について少し



ユニファイドビデオデコーダー(Rus。ユニファイドビデオデコーダー、以前はUniversal Video Decoderと呼ばれていた-Rus。ユニバーサルビデオデコーダー、略称UVD)-ビデオコーデックによって圧縮されたビデオデータビットストリームのハードウェアデコード用に設計された、アメリカ企業AMDによって製造されたGPUのハードウェアコンポーネント(ブロック) H.264、VC-1、およびMPEG-2 [1]

X-Video Bitstream Acceleration(XvBA)、X Window Systemに相当するDXVA、MPEG-2、H.264、VC-1をサポート[2]



Xvba



Linuxでは、NVIDIA-vdpau、AMD-XvBAなど、さまざまなテクノロジーがビデオのデコードに使用されます。 この記事では、XvBAのインストール方法について説明します。 ソースまたはバイナリから配信できます。 必要なものはすべてサイトにあります: http : //www.splitted-desktop.com/~gbeauchesne/ 以下では、まずバイナリパッケージからのインストール例を示し、次にソースコードからのインストール例を示します。 Ubuntu 11.04(natty)、64ビットで実行したすべてのアクションに注意してください。



バイナリパッケージからのインストール


注1:64ビットバージョンのOSを使用しているため、次の手順は64ビット用です。 32ビットOSの場合、これらのパッケージの対応するバージョンがあります。 (例:libva1_0.32.0-1 + sds2_amd64.debの代わりにlibva1_0.32.0-1 + sds2_i386.deb)

注2:このサイトでは、32ビットOS用に組み立てられたmplayerを紹介しています(現在、最新バージョンはmplayer-vaapi-20110127.i686.tar.bz2です )。 したがって、mplayerをビルドしない場合は、これを利用できますが、いくつかのパッケージをインストールする必要がある可能性があります。



1.パッケージをダウンロードする


wget www.splitted-desktop.com/~gbeauchesne/xvba-video/xvba-video_0.8.0-1_amd64.deb www.splitted-desktop.com/~gbeauchesne/libva/pkgs/amd64/libva1_0.32.0-1+sds2_amd64.deb www.splitted-desktop.com/~gbeauchesne/mplayer-vaapi/mplayer-vaapi-latest-FULL.tar.bz2 www.splitted-desktop.com/~gbeauchesne/libva/pkgs/amd64/libva-dev_0.32.0-1+sds2_amd64.deb





注:mplayerをビルドしない場合、mplayer-vaapi-latest-FULL.tar.bz2ファイルだけでなく、devパッケージも必要ありません。



2.インストール


sudo apt-get install libdrm-dev #

sudo dpkg -i libva1_0.32.0-1+sds2_amd64.deb xvba-video_0.8.0-1_amd64.deb libva-dev_0.32.0-1+sds2_amd64.deb






vainfoコマンドを実行して、xvbaの状態を確認できます。

$ vainfo

libva: libva version 0.32.0-sds2

Xlib: extension "XFree86-DRI" missing on display ":0.0".

libva: va_getDriverName() returns 0

libva: Trying to open /usr/lib/va/drivers/fglrx_drv_video.so

libva: va_openDriver() returns 0

vainfo: VA API version: 0.32

vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA-API - 0.8.0

vainfo: Supported profile and entrypoints

VAProfileH264High : VAEntrypointVLD

VAProfileVC1Advanced : VAEntrypointVLD







次に、MPlayerを配置します。

注:既にアセンブルされたものを使用する場合、それを解凍し、bashがそれを見つけることができるフォルダーにコピーするだけで十分です。そのため、mplayerコマンドを呼び出して、パス全体を指定することはできません(たとえば、/ usr / local / bin、cp mplayerなど) / usr / local / bin)、彼はライブラリも必要になります。ldd$コマンド(mplayer)でその可用性を確認し、必要に応じてインストールできます。

sudo apt-get build-dep mplayer # ,

sudo apt-get install yasm # - c build-dep

tar xf mplayer-vaapi-latest-FULL.tar.bz2 #

cd mplayer-vaapi-20110127 # . -

sh checkout-patch-build.sh #

cd mplayer-vaapi #

sudo make install #







これで、VAAPIをサポートしたmplayerが動作するようになりました!



ソースコードビルド


wget www.splitted-desktop.com/~gbeauchesne/xvba-video/xvba-video-0.8.0.tar.gz www.splitted-desktop.com/~gbeauchesne/libva/libva_0.32.0-1+sds2.tar.gz www.splitted-desktop.com/~gbeauchesne/mplayer-vaapi/mplayer-vaapi-latest-FULL.tar.bz2 #

sudo apt-get build-dep mplayer # ,

sudo apt-get install autoconf libtool libxfixes-dev yasm #

tar xf libva_0.32.0-1+sds2.tar.gz # libva

cd libva-0.32.0/

for p in debian/patches/*.patch; do patch -p1 < $p; done #

autoreconf -vif #

./configure #

make #

sudo make install #

cd .. #



wget developer.amd.com/downloads/xvba-sdk-0.74-404001.tar.gz # xvba-video

tar xf xvba-sdk-0.74-404001.tar.gz include/amdxvba.h #

sudo cp include/amdxvba.h /usr/local/include #

sudo ln -s /usr/lib/fglrx/libXvBAW.so.1 /usr/local/lib/libXvBAW.so #



tar xf xvba-video-0.8.0.tar.gz #

cd xvba-video-0.8.0/

./configure

make

sudo make install #

cd ..



tar xf mplayer-vaapi-latest-FULL.tar.bz2 # MPlayer

cd mplayer-vaapi-20110127/

sed -i 's\/usr/include/va/va.h\/usr/local/include/va/va.h\g' checkout-patch-build.sh # libva /usr/local/include, /usr/include

sh checkout-patch-build.sh #

cd mplayer-vaapi

sudo make install #









さらに


LIBVA_DRIVER_NAME="fglrx"



を/ etc / LIBVA_DRIVER_NAME="fglrx"



追加するか、〜/ .bashrcに追加できます:export LIBVA_DRIVER_NAME = fglrx(この変数がないと、mplayerは起動しません)

コマンドラインで毎回パラメーターを入力しないようにするには、それらを〜/ .mplayer / configに入れます:

va=vaapi

vo=vaapi







GLを使用するには:vo = vaapi:gl



おわりに



この記事では、おそらくテストだけが欠けているので、次の図を考えてみましょう。CPUを使用した同じビデオの場合、負荷の割合は80%に達し、メモリ消費は最大28.2 MB、GPUの場合、CPU負荷は6%、まれに8% (シーンに関係なく安定)、メモリ消費量68-69mb。 GPUをロードしています...うーん...そしてロードしませんでした!

将来的には、Ubuntu XvBAサポートの将来のリリースですぐに使えることを期待しています。



参照資料



  1. en.wikipedia.org/wiki/Unified_Video_Decoder-UVD
  2. en.wikipedia.org/wiki/DirectX_Video_Acceleration-DXVA
  3. help.ubuntu.ru/wiki/hardware_hd_video_hardware_decoding_video_methods_video cards_amd_va - api-サイトubuntu.ruのwikiセクションの指示



All Articles