2月後半にもなると、各展示施設は卒業展示ラッシュですね。4年間の製作や研究の成果を社会に発信する貴重な機会ですから、できるだけ展示の内容や品質にはこだわりたいものです。
これを読んでいる方の中には、「成果物を映像にまとめて上映する」という人もいると思います。映像を上映する方法として、次のようなものが考えられます。
- ノートPCをどこかから調達してきて、HDMIか何かでディスプレイに出力して再生する。(展示のときには、ノートPCを見えないところに隠す)
- iMacを置いて再生する。
- メディアプレイヤーを購入し、USBで動画データを転送して、再生する。
一見すると、ごく普通のことだと思いますが、それぞれ盗難・破損のリスクや予算とのバランスなどの問題が付きまといます。とくに、メディアプレイヤーはまともな品質のものは滅多にありません。
その問題、Raspberry Piで解決しよう
Raspberry Piは、安価で小型のシングルボードコンピューターです。Amazonや電子部品を取り扱う店舗、最近ではIoTブームで家電量販店でも取り扱われています。
https://www.raspberrypi.org/products/
全部乗せのフルセットでも1万円ちょっとで買えたりします。
https://www.amazon.co.jp/s?k=raspberry+pi
このくらいの価格なら、一気に複数個の購入も現実的で、仮に盗まれても大きな損失にはならないと思います。盗むこと自体は犯罪です。絶対やめましょう。
このRaspberryPiにOSMCというメディアサーバー用のOSをインストールして、動画の自動再生機能を追加して展示用メディアプレイヤーにしたいと思います。
必要なもの
RaspberryPiを動作させるのに必要なものはだいたい次の通りです。RaspberryPi 3 Model B以上の性能があれば十分です。
- RaspberryPi(3B, 3B+, 4B)のいずれか
- 電源アダプター(各モデルに合ったものを選ぶ)
- microSDカード(32GB以上がおすすめ)
- HDMIケーブル(4BはMicroHDMI)
- インストール作業用のPC(Windows, macOS, Linuxのいずれか)
ケーブルをどうやって選べばいいか自信がない方は、セットで購入するのがおすすめです。
OSMCのインストール
OSMCのインストールについては、こちらの記事がいちばんわかりやすいと思います。
第58回「ラズベリーパイでOSMC!インストール~日本語化まで」 | Device Plus - デバプラ
このような詳細な説明を定期的に投稿・更新してくれる方々に敬意を表します。
USB内の動画の自動再生機能を追加する
RaspberryPiと作業用PCとを同じLANに接続し、IPアドレスを調べます。
Buffaloの無線LANであれば、ブラウザやアプリから見られます。
【動画FAQ】Wi-Fiルーターと通信(接続)している機器を確認する方法(iPhone編、Android編、Windows編)
IPアドレスがわかったら、SSHコマンドでRaspberryPiにログインします。
XXX.XXX.XXX.XXXはIPアドレスです。osmcは、デフォルトのユーザー名です。初期パスワードはosmcです。
$ ssh osmc@XXX.XXX.XXX.XXX
ログイン後に、次のコマンドを実行して、autoexec.pyを開きます。
# ユーザーのデータが入っているディレクトリまで移動
$ cd ~/.kodi/userdata
# autoexec.pyという名前のPythonのスクリプトを編集する
$ sudo nano autoexec.py
nanoというエディター上で、Pythonのプログラムを書きます。
WriteOut(保存)するときは、Ctrl + O
です。
Exit(終了)するときはCtrl + X
です。
import xbmc
import glob
# USBドライブは/media以下にマウントされる
# ワイルドカードで/mediaにあるすべてのmp4の動画のパスを取得する
videoFiles = []
for videoFile in glob.iglob("/media/*/*.mp4")
videoFiles.append(videoFile)
# プレイリストを作る
playList = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
playList.clear()
# プレイリストに追加する
for videoFile in videoFiles:
playList.add(url=videoFile)
# 再生する
xbmc.Player().play(playList)
このプログラムは、RaspberryPiを起動したときに、自動で実行されます。これで、RaspberryPiを起動したときに、mp4形式の動画を保存したUSBから、自動で繰り返し再生する機能が追加できました。
念のため、再起動しておきましょう。
$ sudo reboot
コマンドラインが嫌いな人は…
記事を読んでいる人の中には、コマンドなんて打ちたくないという変わった人もいると思います。SSHコマンドでの操作は、WinSCPやCyberduckでSFTPのプロトコルでログインすればリッチなGUIで同じことができます。
再生中のUIを消す
展示の際は、動画再生のUIなど「作品に関係ないものは極力映したくない」ものです。
OSMCはデフォルトの設定だと、動画が再生されたときにシークバーなどが表示されます。これは設定を変更することで消すことができます。
SSHコマンドでログインして、DialogSeekBar.xmlという設定ファイルを編集します。
# ディレクトリに移動
$ cd /usr/share/kodi/addons/skin.osmc/xml
# 編集する
$ sudo nano DialogSeekBar.xml
↑の画像で示されている
<visible>[Player.Seeking | Player.DisplayAfterSeek + !Player.Paused.....]</visible>
<visible>VideoPlayer.IsFullscreen | Window.IsVisible(visualisation)</visible>
と<visible>
タグで囲まれている行を削除して保存しましょう。
ここでも念のため、再起動しておきましょう。
$ sudo reboot
これで、再生したときにシークバーなどが表示されなくなります。「消しちゃっていいの??」と思うかもしれませんが、これで数日の展示期間を乗り切りました。
突っ込まれそうなポイント
どのくらいの画質まで再生できる?
Model BでフルHDかつ60FPSの動画は難なく再生できました。RaspberryPiには、H.264のハードウェアデコーダーが入っているので、安定した再生が可能になっているそうです。
SSHコマンドって何よ
正式な名称はSecure Shellというもので、主に遠隔操作で使われます。SSHで通信して、ログイン先のコンピューターのシェルを操作しているというイメージです。Windows, macOS, Linuxには最初から入っています。
コマンドラインとか意味わかんないし怖い
例え、失敗してOSとかをぶっ壊したとしても、作業用PCにはとくに影響はありませんし、OSは何回でもインストールして作業をやり直せます。安心してください。「隙あらば自分語り」ですが、私はmacOSをGUIからぶっ壊したことがあります。一度ぶっ壊した経験があれば、何も怖くありません。
この作業を何回もやるのつらい
SDカードはクローン出来ます。Win32DiskImagerがおすすめです。
https://sourceforge.net/projects/win32diskimager/
セキュリティとかは大丈夫?
運用時はLANに接続しなければ大丈夫だと思います。ただ、デフォルトのユーザーとパスワードのままだと危険なので、変えましょう。
# ログイン中のユーザーのパスワードを変更する
$ sudo passwd
# 別のユーザーを追加し、sudoできるようにする
$ sudo adduser <ここにユーザー名>
$ sudo gpasswd -a <ここにユーザー名> sudo
# OSMCからadmとsudoを外してもいいと思います
$ sudo gpasswd -d osmc sudo
$ sudo gpasswd -d osmc adm
最後に
以上の作業を行うことで、
- 安価(コスト)
- USBを差して起動だけで再生できる(運用)
- 割と高品質(品質)
なメディアプレイヤーが完成しました。コスト面・運用面・品質面で卒展にはぴったりだと思います。
「全然実際に動いている画像とか図がないじゃないか(怒)」と思う方がいましたら、すみません。実は、これは2020年にまとめたノウハウをずっと忘れたまま放置し、2021年に投稿したものになります…。画像はあるっちゃああるんですが、許可が必要なものが映ってしまっているのです…。
しかし、この記事によって長い間卒展で求められていたメディアプレイヤーを実現できるかもしれません。
質問やご指摘があれば、随時更新・追加していきます。お気軽にコメントにてご連絡ください。