2018年1月25日木曜日

Raspberry Piを使って複数IPカメラの映像表示レイアウト

Full HDの画面に4画面等倍表示のレイアウトは前に書いた通り。
その後、他のレイアウトを検討して欲しいとの要望があったので、いくつか考えてみた。

1画面全体表示+1画面ワイプ
omxplayer --avdict rtsp_transport:tcp --win "0 0 1920 1080" <rtsp address> --live -n -1 --layer 1 | \
omxplayer --avdict rtsp_transport:tcp --win "1430 800 1910 1070" <rtsp address> --live -n -1 --layer 2

-layerオプションを付ける事で、映像の上に映像を重ねる事ができる。数字が大きい方が上のレイヤーになる。


1画面大きめ表示+3画面小さ目表示
omxplayer --avdict rtsp_transport:tcp --win "0 0 1280 720" <rtsp address> --live -n -1 | \
omxplayer --avdict rtsp_transport:tcp --win "1280 0 1920 360" <rtsp address> --live -n -1 | \
omxplayer --avdict rtsp_transport:tcp --win "1280 360 1920 720" <rtsp address> --live -n -1 | \
omxplayer --avdict rtsp_transport:tcp --win "1280 720 1920 1080" <rtsp address> --live -n -1

前回書いた6画面表示レイアウトの内、下の2画面を取り除いたレイアウト。
もしかしたら1画面全体表示にして、3画面をワイプ表示にしたほうが見栄えは良いかもしれない。その場合は、

1画面全体表示+3画面ワイプ
omxplayer --avdict rtsp_transport:tcp --win "0 0 1920 1080" <rtsp address> --live -n -1 --layer 1 | \
omxplayer --avdict rtsp_transport:tcp --win "1430 10 1910 280" <rtsp address> --live -n -1 --layer 2 | \
omxplayer --avdict rtsp_transport:tcp --win "10 800 490 1070" <rtsp address> --live -n -1 --layer 2 | \
omxplayer --avdict rtsp_transport:tcp --win "1430 800 1910 1070" <rtsp address> --live -n -1 --layer 2

といった感じだろうか。
これでいくつかのパターンのスクリプトを作って、切替できるようにしてやれば、必要に応じてレイアウトを変更できるようになるだろう。

あれから、色々な条件で動作確認してみたのだが、4台全てのカメラのエンコーディング解像度を1920*1080にしていると、Raspbelly Piでは4画面同時に処理しきれないようで、全く表示されない。
因みに一台を1080p、もう一台を720pにして、1080pをフル画面表示にして720pの方をワイプ表示にする分には、特に問題無く表示された。
IPカメラのプロファイルを複数設定できるのであれば、プロファイル毎に異なる解像度を設定しておいて、表示形態によって表示プロファイルを使い分ける方が良いのかもしれない。

0 件のコメント:

コメントを投稿