min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

RaspberryPi3 fbiコマンドでテレビ画面に画像を表示する

sshで接続した先のRaspberryPiからHDMIで繋がったテレビ画像を表示したい。fbi(Frame Buffer Imageviewer)コマンドを使えばできる。こうなる。

$ sudo fbi -T 1 -d /dev/fb0 -noverbose Alexandros_ワタリドリ.mkv.mp3.jpg

f:id:min117:20191109225739j:plain

なんて便利。サイネージに使えそう。

 

RaspberryPi3で動かすまでの手順を残しておく。まずはこのへんの記事を参考にコマンド「fbi」をインストールする。

qiita.com

www.kuzuore.com

iot-plus.net

www7390uo.sakura.ne.jp

 

# sudo apt-get -y install fbi

f:id:min117:20191109222110p:plain

インストール完了。

f:id:min117:20191109222101p:plain

 

動くか確認。

# fbi

f:id:min117:20191109222156p:plain

よし。

 

画像を表示させてみる。

$ sudo fbi -T 1 -d /dev/fb0 -noverbose Alexandros_ワタリドリ.mkv.mp3.jpg

f:id:min117:20191109225739j:plain

素晴らしい。

 

ただ、fbiで表示した画像を消すには、プロセスをkillするだけじゃ足りないようで(プロセスは死んでも画像は表示されたままになる)、kill後に別の画像を表示してやる必要があるみたい。

・fbiで画像表示

・プロセスをkill

・次の画像を表示(または真っ黒な画像を表示)で消える

 

 

 

ということは、例えばこういう3枚の画像があるとして

f:id:min117:20191109231517p:plain

forループで回してやれば順番にテレビに表示することができるわけだ。

 

for i in aimyon*jpg Alex*jpg; do echo "$i"; sudo kill -9 $(ps aux | grep -v grep | grep fbi | awk '{print $2}'); sudo fbi -T 1 -d /dev/fb0 -noverbose "$i"; sleep 5; done 

f:id:min117:20191109231454p:plain

実行すると

 

1枚目が表示され

f:id:min117:20191109232507j:plain

5秒経つと

 

2枚目が表示され

f:id:min117:20191109232513j:plain

さらに5秒経つと

 

3枚目が表示されて

f:id:min117:20191109232516j:plain

画面にはその画像が残ったままになる、という動作をする。

 

実行結果

f:id:min117:20191109231735p:plain

最高すぎ。

 

このforループにomxplayerで音楽再生のコードを入れてやればテレビで観賞できるカバー画像付き簡易音楽プレイヤーになるわけだ。

 

bashスクリプトにすればすぐ作れそう。次回試す。

 

コピペ用

for i in aimyon*jpg Alex*jpg; do echo "$i";  sudo kill -9 $(ps aux | grep -v grep | grep fbi | awk '{print $2}');  sudo fbi -T 1 -d /dev/fb0 -noverbose "$i";  sleep 5; done

aimyon_MG.mp3.jpg