スマートフォンのビデオをRaspberry Piを使ってテレビで簡単に再生するアプリRaspicast

Raspberry Piで使えそうなマルチメディア関連のプログラムを試してます。何かおもしろいのはないかなぁ。

そんな中でChromecastっぽいアプリRaspicastがとても気に入りました。
Raspberry Piに何も特別なプログラムを入れなくとも動くのです。





最近はRaspberry Piで遊んでます。元々は3Dプリンタのサーバとして買ったのですが、いつも3Dプリンタを動かしてるわけではありません。何か他に使い道はないのか?

超小型PCっぽい方向性で遊んでいましたが、これではRPiの性能が低すぎて満足できるわけがありません。汎用的な使い方はお手軽にいろいろ試せますが便利だと思う事は無いですね。機能を特化したプログラムの方が便利に感じそうです。

もう少しマルチメディア関連で遊べないかとも思っています。
Kodiとかを動かしました。どんなファイルでも再生できる感じは良いのですが、操作が面倒くさいです。テレビ内蔵のDLNAに慣れてしまったので、テレビとリモコン操作方法が変わるとかテレビの入力切替が必要なだけで煩わしく感じます。

スマートフォンと連携して何か再生できないのかな?と思っていました。画面だけ転送するMiracastみたなのとか? Chromecastっぽいのとか?
探すとそれっぽいのはありますが数年前から放置されてる感じですね。あまりメリットが無かったのだと思われます。

目についたプログラムを次々と試していくとRaspicastにたどり着きました。

Raspicast

Raspicast / Google Play
• Cast YouTube videos
• Cast media content from your android device
• Play local media files on your Raspberry Pi
• Play streams from playlists (m3u, pls) on your Raspberry Pi
スマートフォンにあるマルチメディアをRaspberry Piへキャストできるようです。
あぁ、何か専用のプログラムを入れさせて使うやつでしょう・・・そういうのいらないから・・・と思ってましたが、
なんとRPi側には何も特別なプログラムを入れておく必要が無いというのです。
スマートフォン側にRaspicastを入れるだけ。

えっ? 凝り固まった私の頭はすぐに仕組みを理解する事ができませんでした。
あらためて説明を読むと、
Requirements:
You just need a Raspberry Pi with a running SSH-Server, the omxplayer and optional a little image viewer. I only tested it with Raspbian, but there is no reason why it shouldn't work on other distributions.
SSH-Server , omxplayer ! あぁ、なるほど・・・久しぶりに目からうろこが落ちる思いをしました。

omxplayerはネットワーク上にあるファイルをURL指定でほとんど再生してくれます。そして、SSH端末からコマンドを打つようにスマートフォンからomxplayerを動かすコマンドを送れば、RPiはフルスクリーンで再生してくれます。

最近のRaspbianならばomxplayerは最初から入っています。SSHもデフォルトで機能します。RPi側はHDMIをテレビにつないでRaspbianのイメージを焼いたSDカードで動かすだけです。ネットワークをつなぐ以外、何も特別な設定をする必要がありません。
omxplayerは静止画を再生できないので静止画用プログラムは別にインストールする必要があるようです。

説明にもあるように、SSHサーバが動いてomxplayerがインストールされていればRaspberry Piに限らずどんなコンピュータもキャスト先として機能してしまいますね。

OpenMax image viewer for the Raspberry Piのインストール

静止画を見ない方はインストールの必要はありません。
試しにやってみても良いのではないでしょうか。

説明書きにイメージビュアーのリンクがあります。

https://omxiv.bplaced.com/

ここにビルドされたファイルがあります。しかし、ちょっとこのページの管理者が何者なのか情報が少なすぎですね。Raspicastの作者さんのページなのかもわかりません。

イメージビュアーはGitHubで公開されています。
HaarigerHarald/omxiv
ここのReleasesに実行ファイルはありません。上のページへのリンクもありません。

さすがにこの状態ではビルドされたファイルをインストールする気になりません。
GitHubのソースからビルドしてみます。
sudo apt-get update
sudo apt-get install -y libjpeg8-dev libpng12-dev

cd ~/Downloads
git clone https://github.com/HaarigerHarald/omxiv.git
cd omxiv
make ilclient

make
sudo make install
これで完了。すぐにできると思います。

Raspicastを使ってみる

Raspberry Piをネットとテレビにつないでおきます。
RaspicastをGoogle Playストアからインストールしたら早速実行してみましょう。

Raspicast SSH settings

最初はSSH接続の設定をします。
Raspberry PiのIPアドレスを入れます。ユーザIDもいれます。Raspicastで一番難しい設定かもしれません。
RPiにユーザ専用アカウントを作って使う事をお薦めます。sudoが使えるアカウントは避けましょう。

Raspicast用ユーザをRaspberry Piへ追加する

piアカウントのまま使うのは危険なのでRaspicast用のユーザをRPiに追加します。ルート権限を持てないユーザを追加する方法が意外と見つかりません。

追加するユーザー名を "raspicast" とします。好きに読み替えて設定してください。
sudo adduser raspicast
新しいユーザーのパスワードを聞かれるので設定してください。
これだけでは何もできないユーザになっています。キャストしても何も表示されないでしょう。
グループへ所属させます。
sudo adduser raspicast users
sudo adduser raspicast audio
sudo adduser raspicast video
sudo adduser raspicast netdev
sudo adduser raspicast plugdev
これで表示できるようになりました。
デフォルトのグループ権限が書かれているドキュメントはどこかにないのでしょうか?見つけられませんでした。
audioとvideoは想像つきますね。追加しないと音と映像が出せません。netdevはLAN端子が使えないでしょう。plugdevはWiFiを使うために必要でした。外付けUSBドライブにも必要かも。

Raspicastの画面

アプリの面画を見てみましょう。


最初に現れるのはRPi上のホームディレクトリのようです。スマホのではありません。
これはつまり、RPiにハードディスクをつないでおけばハードディスク内のメディアファイルを再生できるという事です。

次はCastをクリックしてみましょう。



するとスマートフォン内のメディアフォルダが表示されます。VIDEO、MUSIC、ALBUMS 、IMAGESと選択できます。
表示されているファイルをタップするとすぐにRPiで再生されます。
ビデオと音楽はスマホ画面の下にシークバーが表示されます。簡単にシークできます。
マルチトラック音声のファイルでは音声トラックの選択もできました。右上のメニューを押しましょう。
フルHDのビデオでは再生ができないものもありました。ネットの帯域不足か、ファイルのフォーマットが悪いのか原因はわかりませんでした。


IMAGESを見てみます。


スマホ内の写真が一覧で出てきます。OpenMax image viewer for the Raspberry Piをインストールしていればタップすればすぐに表示されます。
Raspicast内ではメディアフォルダ以外の表示ができないようです。少し残念。

しかし他のファイルブラウザアプリを使えば好きなフォルダのメディアもキャストできるでしょう。アプリで"共有"を選択するとRaspicastが選択できます。



YoutubeをブラウザかYoutubeアプリで開いて共有からRaspicastを選択すればすぐに再生されます。

playlistファイルも読み込めるようです。ファイルの置き場所はルートになっていますが適切に設定すればアプリ左側一覧に表示されるでしょう。

まとめ

Chromecastを使っている方には必要ないと思いますが、Chromecastを持っておらずRaspberry Piが使い道もなく転がっている方にはとても良いアプリだと思います。

RPiの操作が目的のアプリはありますが、Raspicastのような類似アプリはまだないようです。
スマートフォンからomxplayerを叩くだけと思われる極めて簡単なアプリですが、とても使い勝手が良い事に驚きます。

再生はomxplayerに依存するという事で、mpeg2ビデオはライセンスを買わないと再生できないでしょう。
これはもしや・・・VLCやffmpegを叩くようにしたら・・・
と考えるきっかけを与えてくれれます。
RPi側に専用プログラムを用意したくなりますが、これはダメな発想なのかも。このアプリの良い点は素のRaspbianで動いちゃうというところにありますね。

ただし、セキュリティ的には大問題がありそうです。RPiのすべての操作をアプリに丸投げするようなものです。悪意のある類似アプリが出そう。
RPiにsudo権限の無いユーザアカウントを作って使うのが良いでしょう。デフォルトのpiアカウントはsudoグループから外すか少なくともパスワードを変えましょう。

使いどころは自宅よりもやはり外出時でしょう。友人と旅行先で写真を大きなテレビで見たいとか、簡易プレゼンに使いたいとか。モバイルバッテリーでRaspberry Piを余裕で動かせます。LAN環境がない前提なので手間が少しかかります。事前にスマホのテザリングが使えるようにしておきます。

私の場合、Youtubeをテレビで見るのに便利だと思いました。スマホの軽快な操作ですぐにテレビで見れます。広告も出ないし。
LAN上のビデオを見るのに使う事はないかもです。DLNAの方が便利です。リモコンを握った手の親指が届く範囲で操作が完結するんですよ。
DLNAに興味がある方はこちらもご覧ください。BMS2用Luaスクリプト

コメント

最近のコメント

Threaded Recent Comments will be here.