Screenlyを使ってRaspberryPiをサイネージ化!縦向き動画もサイネージ化可能!

ここ最近はサイネージの関連のエントリを書いていましたが、これまではWebページをサイネージ化して行くことばかりしていました。

過去エントリー参考

uepon.hatenadiary.com

uepon.hatenadiary.com

サイネージを作ったら動画の再生なども行えるといいなあとは思っていたのですが、随分前にお友達のSeyaさんからScreenlyを使うと動画・画像も簡単にサイネージ化できるよというのは聞いていたので使ってみようと思います。Screenlyはプロ版もあるのですが、OSEオープンソース版)もあります。今回使用するのはOSE版となります。

f:id:ueponx:20210322225851p:plain

Screenly のWebページ

www.screenly.io

OSEバージョンのページ

github.com

Screenlyは2つの方法で導入することができます。基本的には大きく違いがあるわけではありませんが、個人的にはScreenlyのOSイメージを使用するほうが導入は容易ですね(時間的な容易さという意味で)

OSのセットアップが完了すれば、後の操作はほぼ同じなので、両方ともやってみようと思います。

OSのセットアップ

ScreenlyのOSイメージを使用する場合

以下から最新のバージョンのOSイメージをダウンロードします。リリースページにおいてはありますが、OSイメージ以外のバージョンのリリースもおいてあるので、ちょっと探す必要はあります。

最新版のリリース情報

github.com

20210322現在の最新版OSイメージ

github.com

こちらをダウンロード後に、RaspberryPi Imagerを使用してSDカードへ書き込みを行います。書き込みしたSDカードに関してはSSHの設定などの設定は不要です(起動後の設定で後からからできるようになります)

起動後にScreenlyの起動画面がでるのでHDMIなどのディスプレイ接続をしてください。HDMIモニタを接続すると以下のような表示がされます。ここからScreenlyの設定を行っていきます。

f:id:ueponx:20210321235045p:plain

RaspberryPi OSをベースにして行う場合

インストールコマンド

RaspberryPi OSScreenlyを導入する場合には以下のコマンドを実行することになります。

$ bash <(curl -sL https://www.screenly.io/install-ose.sh)

起動するといくつか質問を受けますが、対応したキー入力(【y】または【n】の入力)を行ってください。最初はテキストでScreenlyが表示されます。

f:id:ueponx:20210321233612p:plain

大量のパッケージをインストールすることになるので完了するまでにかなりの時間がかかります。

f:id:ueponx:20210321233825p:plain

ドキュメントにはこの作業は15分程度と書いてありましたが、30分以上はかかると思っておくほうがよいと思います。自分が作業を行ったときにはRaspberryPi 3B上で実行しましたが45分ほどかかってしまいました。あと自分はセットアップが1回必ず失敗してしまいました。再度セットアップすると正常に動作しました。時間がかかりすぎると思ったらCLIを閉じて再セットアップするのがいいかもしれません。

設定が終了すると、再起動をするか尋ねられるので、【y】キーを押すと再起動します。

再起動時後はSSHが接続できなくなるので、必ず別の設定が必要なときには【n】キーを押して再起動しないようにしてください。再起動時はScreenlyの設定が行われるので、HDMIなどのディスプレイの接続を行うようにしてください。

HDMIモニタを接続すると以下のような表示がされます。ここからScreenlyの設定を行っていきます。

f:id:ueponx:20210321235045p:plain

Screenlyのネットワーク接続

Screenlyのネットワーク接続画面が表示されたら、以下の手順を行っていきます。

  1. Screenlyの起動しているRaspberryPiがWiFiネットワークのホストになっているので、設定側のPCをそのWiFiネットワークに接続する。
  2. 接続したら、ネットワーク接続画面記載されているURLへブラウザで接続を行う。
  3. Webインターフェースで素材の設定などを行う。

Screenlyの起動しているWiFiネットワークに接続を行う

起動画面(設定画面?)に記載されているSSIDとパスワードを使用して、設定側のPCのWiFiネットワークを変更します。 以下の部分の情報を使用します。

f:id:ueponx:20210322214918p:plain

Windowsであれば以下のように作業を行って接続を変更します。

f:id:ueponx:20210322214723p:plain

ちょっと注意しなければならないのはパスワードがそのまま入力するのではなく、【セキュリティーキーを使用して接続】をクリックしてから、

f:id:ueponx:20210322220901p:plain

パスワード入力を行ってください。

f:id:ueponx:20210322220916p:plain

接続が問題なく行えたら、起動画面(設定画面?)に記載されているアドレスへブラウザからアクセスを行います。

http://screenly.io/wifi

f:id:ueponx:20210322214924p:plain

ブラウザでアクセスをすると、もしかしたら以下のような画面が表示されhttpsでアクセスをする可能性があります。以前はhttpだったら警告を出して、接続するかどうか確認をすると思ったのですが、最近は自動的にhttpsに変換してアクセスしてエラーを発生するようになっているようです。

f:id:ueponx:20210323143333p:plain

その場合にはブラウザのキャッシュをクリアする、HSTS(chrome://net-internals/#hsts)の設定を変更するなどを行うとアクセスができるようです。(この点では昔のChromeの設定のほうが使いやすかった)

無事にアクセスができると以下のようにWiFi設定の画面になります。ここでローカルに接続するWiFiSSIDとパスワードを設定します。よく見ると、以前MineCraftサーバ構築でも使用したBalenaのロゴが出ています。通りで同じような操作感がありました。WiFiの設定が終わったら【Connect】ボタンを押します。

f:id:ueponx:20210323004738p:plain

すると、残りの設定を行うということで以下の様に表示が変わります。ここは少し時間がかかりますがHDMI側の画面出力が変わるまで待ちましょう。

f:id:ueponx:20210323004741p:plain

画面にIPアドレス(ローカルIP)が表示されれば作業は完了です。

f:id:ueponx:20210323203128p:plain

表示されたIPアドレスにブラウザからアクセスをすると以下のようなサイネージの管理画面が表示されます。すでにデフォルトで3つのコンテンツが登録されており、10秒ごとに表示が切り替わるようになっています。

f:id:ueponx:20210323004756p:plain

デフォルト設定されているコンテンツは以下の様になっています。(天気、時計、ニュース)時計はTimezoneの設定が行われていないので時差があります。これもの後ほど設定変更を行って対応しましょう。

【天気】 f:id:ueponx:20210323004817p:plain 【時計】 f:id:ueponx:20210323004825p:plain 【ニュース(ハッカーニュース)】 f:id:ueponx:20210323004828p:plain

新規に追加するには画面内の【Add Asset】ボタンをクリックして設定を行います。

f:id:ueponx:20210323144342p:plain

登録できるのはURLとファイルの選択ができます。ここで使用できるのは静止画と動画ができるようです。細かいフォーマットの動作までは調べてはいませんが、JPG、PNG、MP4あたりは問題なく使用できました。

【URL】タブを使用するとWebページの設定ができます。

f:id:ueponx:20210323004759p:plain

【Upload】タブを使用すると画像・動画ファイルを指定してアップロードして設定ができます。

f:id:ueponx:20210323004803p:plain

f:id:ueponx:20210323004806p:plain

Webページに関しては以下のようにURLを入力すればGoogleのページをサイネージとして表示設定をさせることができます。

ただし、追加後はすぐには表示の有効化はされません。一度【Inactive assets】として登録されるので、ActivityのスライドスイッチをONにすることで表示有効化させることになります。

f:id:ueponx:20210323004811p:plain

有効化すると表示のローテーションに入ります。

f:id:ueponx:20210323004821p:plain

日本語フォントが文字化けしていますが、後ほどフォントを追加すれば問題なく使用できます。

再起動と終了

Screenlyを導入したRaspberryPiはデフォルトではSSHは使用できません。そのため、Webの管理画面からこれらの操作を行います。画面上部の【Settings】をクリックすることで システムコントロール用のボタンが出てきます。

f:id:ueponx:20210323144801p:plain

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

参考

uepon.hatenadiary.com

また、こちらは設定を変更すれば縦向きのサイネージにも対応できます。

/boot/config.txtに以下を追加

display_rotate=3
gpu_mem=128

縦向きの静止画・動画の表示ができるのは割と嬉しいですね。 縦向き設定をしない場合には以下のように黒い余白が多くてもったいないなあと思うのですが。

f:id:ueponx:20210323211143p:plain

縦向き設定を行うと、以下のようになり、画面を縦向きにすれば…

f:id:ueponx:20210323211203p:plain

ちゃんとWeb側も動画側もちゃんと縦向きに表示されます。

f:id:ueponx:20210323211347p:plainf:id:ueponx:20210323211353p:plain

携帯で撮った縦向き動画も問題なく表示されるっていうのはかなりいいと思いますよ!

あと日本語フォントもいれているので先程の文字化けしていたブラウザ表示も日本語が表示されるようになります。(日本語フォントインストール後に要再起動)

f:id:ueponx:20210323213904p:plain

おわりに

ここまで3件のエントリを書くことでRaspberryPiのサイネージに関してはかなり使えるようになってきました。縦向きや動画なども取り扱うことができるのでほとんどの場合をカバーすることができるのかなと思います。もしあるとすれば表示するコンテンツが動的な切り替えなどができると更にできるかなと思います。

特に、今回使用したScreenlyは静止画、動画、Webが表示できるだけでなく、スケジューラも装備しているのでかなり高機能で使いやすくなっています。会社入り口のサイネージこれに変えればかなり便利かも。割と簡易サイネージシステムでは縦向きの動画を表示するのが難しい感じなので、これはかなり有用だと思います。

また、パワーポイントも縦向きに作成して出力を画像化すれば、簡単にサイネージにすることもできます。HDMIモニターを強制的に縦向きにしているサイネージの素材を作るのが結構面倒だったのですがもうそんな悩みとはおさらばかなと思います。通常こういうことはサイネージ用のイメージプロセッサーでやったりすることもあるのですが、そんなものはRaspberryPiだけで対応できるようになるので、かなり安く済ませることができますよ。

過去のRaspberryPiのサイネージ化関連エントリ

uepon.hatenadiary.com

uepon.hatenadiary.com

/* -----codeの行番号----- */