ここ最近はサイネージの関連のエントリを書いていましたが、これまではWebページをサイネージ化して行くことばかりしていました。
過去エントリー参考
サイネージを作ったら動画の再生なども行えるといいなあとは思っていたのですが、随分前にお友達のSeyaさんからScreenly
を使うと動画・画像も簡単にサイネージ化できるよというのは聞いていたので使ってみようと思います。Screenly
はプロ版もあるのですが、OSE(オープンソース版)もあります。今回使用するのはOSE版となります。
Screenly のWebページ
OSEバージョンのページ
Screenly
は2つの方法で導入することができます。基本的には大きく違いがあるわけではありませんが、個人的にはScreenly
のOSイメージを使用するほうが導入は容易ですね(時間的な容易さという意味で)
OSのセットアップが完了すれば、後の操作はほぼ同じなので、両方ともやってみようと思います。
OSのセットアップ
Screenly
のOSイメージを使用する場合
以下から最新のバージョンのOSイメージをダウンロードします。リリースページにおいてはありますが、OSイメージ以外のバージョンのリリースもおいてあるので、ちょっと探す必要はあります。
最新版のリリース情報
20210322現在の最新版OSイメージ
こちらをダウンロード後に、RaspberryPi Imager
を使用してSDカードへ書き込みを行います。書き込みしたSDカードに関してはSSHの設定などの設定は不要です(起動後の設定で後からからできるようになります)
起動後にScreenly
の起動画面がでるのでHDMIなどのディスプレイ接続をしてください。HDMIモニタを接続すると以下のような表示がされます。ここからScreenly
の設定を行っていきます。
RaspberryPi OSをベースにして行う場合
インストールコマンド
RaspberryPi OS
にScreenly
を導入する場合には以下のコマンドを実行することになります。
$ bash <(curl -sL https://www.screenly.io/install-ose.sh)
起動するといくつか質問を受けますが、対応したキー入力(【y】または【n】の入力)を行ってください。最初はテキストでScreenly
が表示されます。
大量のパッケージをインストールすることになるので完了するまでにかなりの時間がかかります。
ドキュメントにはこの作業は15分程度と書いてありましたが、30分以上はかかると思っておくほうがよいと思います。自分が作業を行ったときにはRaspberryPi 3B
上で実行しましたが45分ほどかかってしまいました。あと自分はセットアップが1回必ず失敗してしまいました。再度セットアップすると正常に動作しました。時間がかかりすぎると思ったらCLIを閉じて再セットアップするのがいいかもしれません。
設定が終了すると、再起動をするか尋ねられるので、【y】キーを押すと再起動します。
再起動時後はSSHが接続できなくなるので、必ず別の設定が必要なときには【n】キーを押して再起動しないようにしてください。再起動時はScreenly
の設定が行われるので、HDMIなどのディスプレイの接続を行うようにしてください。
HDMIモニタを接続すると以下のような表示がされます。ここからScreenly
の設定を行っていきます。
Screenly
のネットワーク接続
Screenly
のネットワーク接続画面が表示されたら、以下の手順を行っていきます。
Screenly
の起動しているRaspberryPiがWiFiネットワークのホストになっているので、設定側のPCをそのWiFiネットワークに接続する。- 接続したら、ネットワーク接続画面記載されているURLへブラウザで接続を行う。
- Webインターフェースで素材の設定などを行う。
Screenly
の起動しているWiFiネットワークに接続を行う
起動画面(設定画面?)に記載されているSSIDとパスワードを使用して、設定側のPCのWiFiネットワークを変更します。 以下の部分の情報を使用します。
Windowsであれば以下のように作業を行って接続を変更します。
ちょっと注意しなければならないのはパスワードがそのまま入力するのではなく、【セキュリティーキーを使用して接続】をクリックしてから、
パスワード入力を行ってください。
接続が問題なく行えたら、起動画面(設定画面?)に記載されているアドレスへブラウザからアクセスを行います。
ブラウザでアクセスをすると、もしかしたら以下のような画面が表示されhttpsでアクセスをする可能性があります。以前はhttpだったら警告を出して、接続するかどうか確認をすると思ったのですが、最近は自動的にhttpsに変換してアクセスしてエラーを発生するようになっているようです。
その場合にはブラウザのキャッシュをクリアする、HSTS(chrome://net-internals/#hsts)の設定を変更するなどを行うとアクセスができるようです。(この点では昔のChromeの設定のほうが使いやすかった)
無事にアクセスができると以下のようにWiFi設定の画面になります。ここでローカルに接続するWiFiのSSIDとパスワードを設定します。よく見ると、以前MineCraftサーバ構築でも使用したBalenaのロゴが出ています。通りで同じような操作感がありました。WiFiの設定が終わったら【Connect】ボタンを押します。
すると、残りの設定を行うということで以下の様に表示が変わります。ここは少し時間がかかりますがHDMI側の画面出力が変わるまで待ちましょう。
画面にIPアドレス(ローカルIP)が表示されれば作業は完了です。
表示されたIPアドレスにブラウザからアクセスをすると以下のようなサイネージの管理画面が表示されます。すでにデフォルトで3つのコンテンツが登録されており、10秒ごとに表示が切り替わるようになっています。
デフォルト設定されているコンテンツは以下の様になっています。(天気、時計、ニュース)時計はTimezoneの設定が行われていないので時差があります。これもの後ほど設定変更を行って対応しましょう。
【天気】 【時計】 【ニュース(ハッカーニュース)】
新規に追加するには画面内の【Add Asset】ボタンをクリックして設定を行います。
登録できるのはURLとファイルの選択ができます。ここで使用できるのは静止画と動画ができるようです。細かいフォーマットの動作までは調べてはいませんが、JPG、PNG、MP4あたりは問題なく使用できました。
【URL】タブを使用するとWebページの設定ができます。
【Upload】タブを使用すると画像・動画ファイルを指定してアップロードして設定ができます。
Webページに関しては以下のようにURLを入力すればGoogleのページをサイネージとして表示設定をさせることができます。
ただし、追加後はすぐには表示の有効化はされません。一度【Inactive assets】として登録されるので、ActivityのスライドスイッチをONにすることで表示有効化させることになります。
有効化すると表示のローテーションに入ります。
日本語フォントが文字化けしていますが、後ほどフォントを追加すれば問題なく使用できます。
再起動と終了
Screenly
を導入したRaspberryPiはデフォルトではSSHは使用できません。そのため、Webの管理画面からこれらの操作を行います。画面上部の【Settings】をクリックすることで
システムコントロール用のボタンが出てきます。
WiFiの設定変更もここから行うことができます。また、【System Info】を選択することで、メモリや負荷状況を確認することもできるようになっています。
コンソールの表示と細かい設定
【Ctrl】+ 【Alt】+ 【F1】を押すことで、HDMI画面にコンソールを表示させることができます(ドキュメント参照)。ただし、この判定がかなり鈍いので、結構押し続けないとコンソール表示は行われませんので注意です。また、キー入力をしないでいるとサイネージモードに戻ります。
コンソールが開くとログインネームとパスワードが尋ねられます。RaspberryPi OSのデフォルトの値になっているのでそれでログインを行います。
- username::pi
- password:raspberry
コンソールを開いたらlocaleの設定やタイムゾーンの設定を行っていきます。また、SSHが必要であれば、同様にraspi-config
から有効化することもできます。以下のコマンドで大丈夫かなと思います。日本語フォントはnoto
を入れておきます。sudo
コマンドではパスワードが尋ねられることになります。
$ sudo raspi-config nonint do_change_locale ja_JP.UTF-8 $ sudo raspi-config nonint do_change_timezone Asia/Tokyo $ sudo raspi-config nonint do_wifi_country JP $ sudo raspi-config nonint do_ssh 0 $ sudo apt update $ sudo apt install -y fonts-noto
参考
また、こちらは設定を変更すれば縦向きのサイネージにも対応できます。
/boot/config.txtに以下を追加
display_rotate=3 gpu_mem=128
縦向きの静止画・動画の表示ができるのは割と嬉しいですね。 縦向き設定をしない場合には以下のように黒い余白が多くてもったいないなあと思うのですが。
縦向き設定を行うと、以下のようになり、画面を縦向きにすれば…
ちゃんとWeb側も動画側もちゃんと縦向きに表示されます。
携帯で撮った縦向き動画も問題なく表示されるっていうのはかなりいいと思いますよ!
あと日本語フォントもいれているので先程の文字化けしていたブラウザ表示も日本語が表示されるようになります。(日本語フォントインストール後に要再起動)
おわりに
ここまで3件のエントリを書くことでRaspberryPiのサイネージに関してはかなり使えるようになってきました。縦向きや動画なども取り扱うことができるのでほとんどの場合をカバーすることができるのかなと思います。もしあるとすれば表示するコンテンツが動的な切り替えなどができると更にできるかなと思います。
特に、今回使用したScreenly
は静止画、動画、Webが表示できるだけでなく、スケジューラも装備しているのでかなり高機能で使いやすくなっています。会社入り口のサイネージこれに変えればかなり便利かも。割と簡易サイネージシステムでは縦向きの動画を表示するのが難しい感じなので、これはかなり有用だと思います。
また、パワーポイントも縦向きに作成して出力を画像化すれば、簡単にサイネージにすることもできます。HDMIモニターを強制的に縦向きにしているサイネージの素材を作るのが結構面倒だったのですがもうそんな悩みとはおさらばかなと思います。通常こういうことはサイネージ用のイメージプロセッサーでやったりすることもあるのですが、そんなものはRaspberryPiだけで対応できるようになるので、かなり安く済ませることができますよ。
過去のRaspberryPiのサイネージ化関連エントリ