min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

RaspberryPi 3 cvlc でハードウェア支援を使って動画再生

 

RaspberryPi 3 のVLCは、ハードウェア動画再生支援で爆速にできるらしい。

signal-flag-z.blogspot.jp

前提としてRaspberryPi は MPEG ライセンスを購入しないとts動画が再生できないので、購入しておく。といっても、300円くらいだし、ネットでポチッ支払うだけ。詳しい手順は以下。

min117.hatenablog.com

ハードウェア動画再生支援を受けられるVLCは、通常のインストールのしかた(apt-get -y install vlc)ではダメ手動で make が必要なようだ。進め方はこのチュートリアルサイト参照。

Raspberry Pi • View topic - Tutorial: Compile VLC with HW acceleration - Jessie, RPi 2/3

まずは、すでに入っているvlcをアンインストールする。

$ sudo apt-get -y purge vlc

f:id:min117:20170610224724p:plain

ダウンロードするファイルをブラウザから確認しておく。

http://download.videolan.org/vlc/

Index of /vlc/

f:id:min117:20170610224832p:plain

最新は 2.2.6 のようだ。拡張子が xz のがダウンロード対象。

f:id:min117:20170610225452p:plain

$ wget http://download.videolan.org/vlc/2.2.6/vlc-2.2.6.tar.xz

f:id:min117:20170610225507p:plain

ダウンロード開始。

f:id:min117:20170610225518p:plain

解凍する。

$ tar Jxfv vlc-2.2.6.tar.xz

f:id:min117:20170610225529p:plain

冒頭のチュートリアルサイトのとおり、インストール前に update を走らせる。

$ sudo apt-get -y update

f:id:min117:20170610225540p:plain

$ cd vlc-2.2.6/

$ ./bootstrap

f:id:min117:20170610231002p:plain

$ make -j3

f:id:min117:20170610231021p:plain

あれ?エラーになる。

f:id:min117:20170610231154p:plain

冒頭チュートリアルサイトには configure が無いから、そのせいか?

$ ./configure

f:id:min117:20170610231231p:plain

f:id:min117:20170610231247p:plain

./configure は終わったので、再度 make してみる。

$ make -j3

f:id:min117:20170610231021p:plain

やはりエラーになる。

f:id:min117:20170610231154p:plain

冒頭チュートリアルサイトをよく見直すと以下のコマンドあり。実行を忘れていた。字が薄くて気づかなかった。

sudo apt-get install autopoint gettext liba52-0.7.4-dev libaa1-dev libasound2-dev libass-dev libavahi-client-dev libavc1394-dev libavcodec-dev libavformat-dev libbluray-dev libcaca-dev libcddb2-dev libcdio-dev libchromaprint-dev libdbus-1-dev libdc1394-22-dev libdca-dev libdirectfb-dev libdvbpsi-dev libdvdnav-dev libdvdread-dev libegl1-mesa-dev libfaad-dev libflac-dev libfluidsynth-dev libfreerdp-dev libfreetype6-dev libfribidi-dev libgl1-mesa-dev libgles1-mesa-dev libgles2-mesa-dev libgnutls28-dev libgtk2.0-dev libidn11-dev libiso9660-dev libjack-jackd2-dev libkate-dev liblircclient-dev liblivemedia-dev liblua5.2-dev libmad0-dev libmatroska-dev libmodplug-dev libmpcdec-dev libmpeg2-4-dev libmtp-dev libncursesw5-dev libnotify-dev libogg-dev libomxil-bellagio-dev libopus-dev libpng12-dev libpulse-dev libqt4-dev libraw1394-dev libresid-builder-dev librsvg2-dev libsamplerate0-dev libschroedinger-dev libsdl-image1.2-dev libsdl1.2-dev libshine-dev libshout3-dev libsidplay2-dev libsmbclient-dev libspeex-dev libspeexdsp-dev libssh2-1-dev libswscale-dev libtag1-dev libtheora-dev libtwolame-dev libudev-dev libupnp-dev libv4l-dev libva-dev libvcdinfo-dev libvdpau-dev libvncserver-dev libvorbis-dev libx11-dev libx264-dev libxcb-composite0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-xv0-dev libxcb1-dev libxext-dev libxinerama-dev libxml2-dev libxpm-dev libzvbi-dev lua5.2 oss4-dev pkg-config zlib1g-dev libtool build-essential autoconf

コピペして一気に実行する。

f:id:min117:20170610233658p:plain

インストール完了。

f:id:min117:20170610233704p:plain

もう一度 make してみる。

f:id:min117:20170610233708p:plain

やはりエラー。

f:id:min117:20170610231154p:plain

./bootstrap をもう一度やればいいのだろうか?

$ ./bootstrap

f:id:min117:20170610233713p:plain

./bootstrap はうまくいった。

f:id:min117:20170610233726p:plain

make する。

$ make -j3

f:id:min117:20170610233734p:plain

 

またしてもエラー。

f:id:min117:20170610231154p:plain

もう一度 ./configure したらどうか。

$ ./configure

f:id:min117:20170610233739p:plain

./configure はうまくいった。makeする。

$ make -j3

f:id:min117:20170610233734p:plain

またしてもエラー。もう何回目か。

f:id:min117:20170610231154p:plain

冒頭チュートリアルサイトを再度見直す。以下のコマンドを忘れていた。ここも字が薄くて見落としてた。

CFLAGS="-I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/mmal -I/opt/vc/include/interface/vchiq_arm -I/opt/vc/include/IL -I/opt/vc/include/GLES2 -mfloat-abi=hard -mcpu=cortex-a7 -mfpu=neon-vfpv4" CXXFLAGS="-I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/mmal -I/opt/vc/include/interface/vchiq_arm -I/opt/vc/include/IL -mfloat-abi=hard -I/opt/vc/include/GLES2 -mcpu=cortex-a7 -mfpu=neon-vfpv4" LDFLAGS="-L/opt/vc/lib" ./configure --prefix=/usr --enable-omxil --enable-omxil-vout --enable-rpi-omxil --disable-mmal-codec --disable-mmal-vout --enable-gles2 

コマンドは正常終了。make する。

$ make -j3

f:id:min117:20170611062304p:plain

やっとうまく make が走った。RaspberryPi 3 はスペックが上がっているが、それでもmakeには一晩かかる。走らせたまま寝る。

ーーー

夜が明けて、make が終わっていた。make install する。

$ sudo make install

f:id:min117:20170611062344p:plain

正常に進む。

f:id:min117:20170611062355p:plain

インストール完了。

f:id:min117:20170611062410p:plain

バージョンを確認したいので、ヘルプから確認方法を調べる。

$ vlc -h | grep version

引数 --version を付けて実行すればいいらしい。

f:id:min117:20170611062421p:plain

$ vlc --version

f:id:min117:20170611062432p:plain

たしかに、バージョン 2.2.6 がインストールされたのを確認。念のため再起動しておく。

$ sudo reboot

f:id:min117:20170611062443p:plain

再起動後、テレビにRaspberryPi 3 を繋いで、vlcでハイビジョンを受信してみる。やりかたはこのへん参照。

min117.hatenablog.com

動画再生支援が働いていれば、ハイビジョン映像くらいは余裕で見られるはずだ。実行してみる。

$ DISPLAY=:0.0 && cvlc -f http://PT3配信サーバアドレス:ポート/チャンネル

f:id:min117:20170611064244j:plain

ダメだった…音は聞こえるけど、映像が来ない。osmcだと受信してテレビが見れるのに…

min117.hatenablog.com

Raspbianでも見れておかしくないはず。もっと調べる。

ーーー

追記

cvlc ではなく、omxplayer でどうか試したが、やはり再生できなかった。

$ omxplayer http://PT3配信サーバアドレス:ポート/チャンネル