ブログ

DebianでAVコーデックミドルウェア(H.264/AACデコード)を使用する

at_takuya.sasaki
2014年10月5日 20時32分

Armadillo-840のDebianイメージでは、そのままではAVコーデックミドルウェアが使えません。 今回はDebianでAVコーデックミドルウェアを使ったH.264/AACデコードを試してみます。

<***注意***>
本ブログの内容はArmadillo-840のフラッシュメモリに書き込まれているファームウェアが <squashfs-a800-firmware-v3.00.img>の場合でのみ動作します。 それ以外のファームウェアでは動作しませんのでご注意ください。

本文中に出てくる3つのファイルは、以下からダウンロードしてください。
acm_file.zip

1. DebianをインストールしたSDブートディスクを作成して、Armadillo-840をSDブートします

http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.1.0/ch15.html

2. 時刻を設定して、パッケージのアップデートをします。

root@debian:~# date --set="2014/10/04 10:00"
root@debian:~# apt-get update
root@debian:~# apt-get upgrade

3. パッケージインストール中にページキャッシュ周りエラーが出ることがあったので、以下のコマンドを実行しました

(参考: http://za.toypark.in/html/2010/06-17.html)

root@debian:~# echo 4096 > /proc/sys/vm/min_free_kbytes

4. ethの設定を行いインターネットに接続できる環境にした後、必要なパッケージをインストールします。

インストール中に以下のメッセージが出る場合には、[y]としてください。 Install these packages without verification [y/N]?

root@debian:~# apt-get install gstreamer1.0-tools
root@debian:~# apt-get install gstreamer1.0-plugins-good
root@debian:~# apt-get install gstreamer1.0-plugins-bad
root@debian:~# apt-get install gstreamer1.0-plugins-at-acm
root@debian:~# apt-get install gstreamer1.0-libav
root@debian:~# apt-get install gstreamer1.0-alsa
root@debian:~# apt-get install qtgstreamer-plugins

5. 2つのファイルをコピーします

root@debian:~# cp /mnt/60-acm-cert.rules /lib/udev/rules.d/
root@debian:~# mkdir /etc/acm
root@debian:~# cp /mnt/acm-cert.sh /etc/acm/
root@debian:~# chmod +x /etc/acm/acm-cert.sh

6. convert_pubkeyをコピーします

root@debian:~# cp /mnt/convert_pubkey /usr/bin/
root@debian:~# chmod +x /usr/bin/convert_pubkey

7. シンボリックリンクを作成します

root@debian:~# ln -s /opt/firmware/acm/acm-decoder-1.0.0.fw /lib/firmware/acm-decoder.fw

8. /etc/rc.localに以下の行を追加します

root@debian:~# vi /etc/rc.local
 
echo decoder > /sys/devices/platform/acm.0/codec

9. JP1/JP2をショートして再起動します

root@debian:~# reboot

10. 以下のパラメータを指定し、JP1をオープンにしてArmadillo-840を起動します

hermit> setenv console=ttySC2,115200 noinitrd rootwait root=/dev/mmcblk0p2 mem=384M
hermit> boot

11. デコードする動画をダウンロードします

root@debian:~# wget http://download.atmark-techno.com/sample/bbb/big-buck-bunny-30sec-800x480.mp4

12. 以下のコマンドで動画を再生します.

今回はビデオはLCDに、オーディオはArmadillo-840拡張ボードのHP OUTに出力します

root@debian:~# gst-launch-1.0 filesrc location=./big-buck-bunny-30sec-800x480.mp4 \
 ! qtdemux name=demux0 \
 demux0.audio_0 ! queue ! acmaacdec ! alsasink device=hw:1 \
 demux0.video_0 ! queue ! acmh264dec ! acmfbdevsink device=/dev/fb1

*音量の調整をしたい場合は以下のブログを参照してください。
https://users.atmark-techno.com/blog/750/729

以上