映像展示の再生デバイスとしてRaspberry Piを使うと最高

この情報は古いOSのものなので、最新版はこちらをご覧ください。
nomolk.hatenablog.com


Maker Faireとか展示会とかに作品を出すとき、映像展示として動画を流しっぱなしにしておきたいケースがよくあります。当初ノートPCにモニタをつないでやっていたのですが、パソコンとして使いたい時に映像を止めなければいけないし、離席中などに盗難にあうリスクもあります。再生環境について何年も模索した末、Raspberry Piを使用するのがベストという結論にたどり着きました。

いいところ

・小さくて軽量(DVDプレーヤは重い)
・比較的、安価
・カスタマイズの自由度が高い
・動画フォーマットを問わない
・モニタとの相性問題が少ない(安物の中国製DVDプレーヤを使っていると、たまにリフレッシュレートの関係で表示できないモニタがありました)
・電源が遮断されても無操作で自動復帰できる(長期の展示会で夜間に電源が遮断される場合に、毎朝わざわざ再生ボタンを押しに行かなくてよい)

悪いところ

・HDMI入力のあるモニタが必要(VGAコンバータを持って行けば解決。コンバータ噛ませたときの設定方法
・準備が多少面倒(DVD等に比べるとさすがに)

あと別解としてタブレットを使うと1台完結で済むのでめちゃくちゃ楽ですが、視野角が狭いのと盗難リスク、あとはやっぱりでかい画面のほうが人目を惹くので、できればモニタを使ったほうがいいと思います。

基本的なセットアップ

※この項目はこちらのエントリを多大に参考にさせていただいております。
http://sakamotoken.sit.ac.jp/blog/2015/08/raspberry-pi-as-digital-signage/

まずomxplayerをインストールします。Raspbian にも最初から入っているのですが、不具合っぽい挙動が多いので最新版を入れます。

wget http://omxplayer.sconde.net/builds/omxplayer_0.3.7~git20160923~dfea8c9_armhf.deb
sudo dpkg -i omxplayer_0.3.7~git20160923~dfea8c9_armhf.deb

/etc/xdg/lxsession/LXDE-pi/autostart に以下を追加します。(追記:左のパスはRaspbian Wheezyの話で、Jessieでは /home/pi/.config/lxsession/LXDE-pi/autostart を書き換えます)

@omxplayer --refresh --loop -o both  再生したい動画ファイル

元記事と違っているのは -o both オプションをつけたところで、これは音声をHDMIとRaspberry Piのオーディオ端子の両方から出力する設定です(オプションの一覧はこちら)。こうしておけばモニタにスピーカーがついていればそれが使えますし、なければスピーカーを持ち込んで接続できます。

あとは別途、raspi-configからRaspberry Piの起動時にGUIが起動する設定にしておく必要があります。

再生したい動画が1本であれば、これだけで設定完了です。起動時に動画を自動再生してくれます。

複数の動画を連続再生する

動画が1本なら上記の方法でいいのですが、複数の動画を順番に流したい場合もあると思います。あいにくomxplayerにはプレイリスト機能がないので、スクリプトを使って1本再生ごとに起動し直します。
下記はこの記事に載っていたスクリプトにオプション設定を足したものです。

#!/bin/sh

setterm -cursor off
VIDEOPATH="動画ファイルのディレクトリ" 
SERVICE="omxplayer"

while true; do
        if ps ax | grep -v grep | grep $SERVICE > /dev/null
        then
                sleep 1;
        else
                for entry in $VIDEOPATH/*
                do
                        clear
                        omxplayer --refresh -o both $entry > /dev/null
                done
        fi
done

これを例えば videoplayer.sh という名前で保存して、/etc/xdg/lxsession/LXDE-pi/autostart (追記:Jessieでは /home/pi/.config/lxsession/LXDE-pi/autostart ) にはomxplayerのかわりに

@bash /home/pi/videoplayer.sh

を追記します。パスはスクリプトを置いたパスに置き換えてください。

上記はディレクトリ内の動画をすべて再生する場合ですが、プレイリストを事前に作っておいてそのとおりに再生する方法もありました。再生順を指定したい場合はこれがよさそうです。
Omxplayer to play a list of files sans GUI - Raspberry Pi Forums

ちなみに連続再生する場合は動画同士のボリュームをきちんと合わせておかないと、動画が切り替わるたびにスピーカーの音量を調節せねばならず非常にだるいことになります。必ず事前にMP3Gain + AACGain等を使ってレベルを合わせておきましょう。

書きながら気がついたのですが、こんなことしなくても全部つなげた動画を1本作っておいて普通にループさせるのが一番楽かもしれません。

機材環境

だいたい下記の3つのどれかを使っています。
1.HDMI入力付きのテレビ
2.適当なモニタ+bluetoothスピーカー(有線でつなぐ)
3.適当なモニタ+モノラルのパワードスピーカー

大きい展示会で会場側にモニタを用意してもらうと1.のパターンになることが多いです。楽ですが、場合によっては追加のスピーカーを検討したほうがいい場合も。

2.の場合はあまり音量が出ないので、展示会場等では雑踏にかき消されがちです。スピーカーの選定に気を遣う必要があります。

僕は最近これを使っています。わりと大きい音も出せますし、長辺20cmで800g超なので手搬入も余裕です。大画面だと音量足りないですが、長机の上に20インチ前後のモニタ置くくらいの規模で使うなら十分だと思います。安定動作優先のためbluetoothは使わず有線でつなぎます。

3.はあまりない状況かもと思いますが、イベントがあったりして簡易PAも兼ねたい場合です。
スピーカーが1本なのでモノラルで再生したいのですが、omxplayerには動画の音声をモノラル再生するオプションが見当たらず、必要に応じてポータブルミキサーを噛ませています。

Roland Cube Monitor 30W CM-30

Roland Cube Monitor 30W CM-30

audio-technica マルチポータブルミキサー AT-PMX5P

audio-technica マルチポータブルミキサー AT-PMX5P

未解決の問題

冒頭に挙げた「電源が遮断されても無操作で自動復帰できる」のは再生機器側だけの問題であって、モニタの電源は別途入れなければいけません。
電子工作をして、画面の輝度が低かったらリモコンのシグナルを送ってテレビをつけるとかサーボでモニタの電源ボタンを押すとかやればいいのですが、面倒だしそれはそれで動作確認が必要になるので、現実的な落としどころとしては会場のスタッフの方にお願いしたりしています。

告知

主催している「技術力の低い人 限定ロボコン(通称:ヘボコン)」という企画で、10/26から開催されるTokyo Design Weekに出展&出演します。

10/26~11/7 展示(メインテント、スーパーロボット展)(11/1のぞく)
10/27 Robot Night出演(プレゼンテーション)
11/ 5 ヘボコン・ペイントエディション開催

f:id:slideglide:20161025013038j:plain

↓前回のイベントの様子です
www.youtube.com