2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RaspberryPiで卒展にぴったりなメディアプレイヤーを作った話

Last updated at Posted at 2021-02-09

2月後半にもなると、各展示施設は卒業展示ラッシュですね。4年間の製作や研究の成果を社会に発信する貴重な機会ですから、できるだけ展示の内容や品質にはこだわりたいものです。
これを読んでいる方の中には、「成果物を映像にまとめて上映する」という人もいると思います。映像を上映する方法として、次のようなものが考えられます。

  • ノートPCをどこかから調達してきて、HDMIか何かでディスプレイに出力して再生する。(展示のときには、ノートPCを見えないところに隠す)
  • iMacを置いて再生する。
  • メディアプレイヤーを購入し、USBで動画データを転送して、再生する。

一見すると、ごく普通のことだと思いますが、それぞれ盗難・破損のリスクや予算とのバランスなどの問題が付きまといます。とくに、メディアプレイヤーはまともな品質のものは滅多にありません。

その問題、Raspberry Piで解決しよう

Raspberry Piは、安価で小型のシングルボードコンピューターです。Amazonや電子部品を取り扱う店舗、最近ではIoTブームで家電量販店でも取り扱われています。

https://www.raspberrypi.org/products/
RaspberryPi

全部乗せのフルセットでも1万円ちょっとで買えたりします。
https://www.amazon.co.jp/s?k=raspberry+pi

amazon


このくらいの価格なら、一気に複数個の購入も現実的で、仮に盗まれても大きな損失にはならないと思います。盗むこと自体は犯罪です。絶対やめましょう。

この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コマンドでの操作は、WinSCPCyberduckでSFTPのプロトコルでログインすればリッチなGUIで同じことができます。
_2020-01-21_20.55.19.png

再生中のUIを消す

展示の際は、動画再生のUIなど「作品に関係ないものは極力映したくない」ものです。
OSMCはデフォルトの設定だと、動画が再生されたときにシークバーなどが表示されます。これは設定を変更することで消すことができます。

SSHコマンドでログインして、DialogSeekBar.xmlという設定ファイルを編集します。

# ディレクトリに移動
$ cd /usr/share/kodi/addons/skin.osmc/xml
# 編集する
$ sudo nano DialogSeekBar.xml

WinSCPなどのソフトウェアでも同様に編集できます。
_usr_share_kodi_addons_skin.osmc_xml_DialogSeekBar.png

↑の画像で示されている

<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年に投稿したものになります…。画像はあるっちゃああるんですが、許可が必要なものが映ってしまっているのです…。
しかし、この記事によって長い間卒展で求められていたメディアプレイヤーを実現できるかもしれません。

質問やご指摘があれば、随時更新・追加していきます。お気軽にコメントにてご連絡ください。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?