min117の日記

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

RaspberryPi4 でHDMI映像を生キャプチャする(Auvidea社のB101 HDMI to CSI-2 Bridge 使用)

6月に買ったのになかなかセットアップできなかったpi4に遂に手をつけた。

min117.hatenablog.com

min117.hatenablog.com

セットアップ完了。ケースもつけた。

 

いろいろやりたいことあるけど

min117.hatenablog.com

 

まずはHDMI映像の生キャプチャを試してみる。RaspberryPi3のときにうまく動かなかったのでリベンジ。


以前の記録はこれ。

min117.hatenablog.com

ドイツAuvidea社から17,000円もかけて買ってShipping(船便)してまで取り寄せたが、mmalエラーが出てうまく動かなかった。

 

ハードウェアの不具合かと思ってたけど、あとから考えたら原因は(おそらく)電力不足。RaspberryPiは動作には電圧がシビアに影響するみたいだからちゃんとしたのを買ったほうが良い。

 

 

で、実験に使うブツはこれら。

f:id:min117:20201220012307j:plain

左がAuvidea社HDMI to CSI-2 Bridge(キャプチャデバイスB101

右がRaspberryPi4(8GBモデル)

 

こいつをだな

f:id:min117:20201220012311j:plain

 

こう付ける。

f:id:min117:20201220012315j:plain

 

ちゃんと噛ませてやらないとmmalエラーになる。

f:id:min117:20201220012319j:plain

 

ランプが緑(か?色弱だから分かんない)に光る。

f:id:min117:20201220012324j:plain

 

で、Windowsパソコン(メルカリで7,000円で買ったLetsNoteNX4←安い!)を用意して

f:id:min117:20201220012328j:plain

パソコンから(水色の)HDMIケーブルを伸ばして、B101に繋げる。これ(HDMIケーブル)を繋げたときにPi4が再起動しちゃうようだと電源の電圧が足りていない。要注意。

 

配線はこう。

f:id:min117:20201220013151j:plain

分かるだろうか。パソコンから伸びた水色HDMIケーブルはPi4を経由してテレビに接続されている。

 

つまり中間にいるPi4(のB101)はHDMI画像を生でキャプチャできる(かつmp4ファイルとして保存できる)わけだ。

f:id:min117:20201220013118j:plain

最高。

 

配線したら、パソコンの画像をそのままテレビに映すために、raspividコマンド引数 -t 0(キャプチャしないで垂れ流すだけ)をつけて実行する。

$ ssh pi@pi4のIPアドレス

$ raspivid -t 0

f:id:min117:20201220011406p:plain

パソコンで映像再生→パソコンのHDMIHDMIケーブル→Pi4(のB101)に接続→Pi4に映像が流れる→それをraspividコマンドで受け取る→Piの出力HDMIHDMIケーブル→テレビ

 

キャプチャに使うコマンドは raspivid。

$ raspivid -t 30000 -w 640 -h 480 -fps 25 -b 120000 -o 0,0,640,480 -o pivideo.h264

f:id:min117:20201219181955p:plain

拡張子がh264になってしまっていて、mp4ではないのはヨロシクない。

 

詳しくはこのへん。

www.raspberrypi.org

 

拡張子h264をmp4に変換するにはMP4Boxなるコマンドが良いらしい。インストールする。

$ sudo apt-get -y install gpac

f:id:min117:20201219182023p:plain

 

変換してみる。

$ MP4Box -add pivideo.h264 pivideo.mp4

f:id:min117:20201219182110p:plain

短い動画だと一瞬で変換される。さすがはPi4。強力だ。 

 

今後使えそうなコマンドはaliasしとく。

f:id:min117:20201220014625p:plain

 

コピペ用

pi@pi4 ~/Desktop $ alias | grep pivideo

alias myAuvideaMP4Box='echo "MMP4Box -add pivideo.h264 pivideo.mp4"'

alias myAuvideaRaspivid1='echo "rraspivid -t 30000 -w 640 -h 480 -fps 25 -b 1200000 -p 0,0,640,480 -o pivideo.h264"'

alias myAuvideaRaspivid2='echo "rraspivid -t 0 -w 640 -h 480 -b 10000000 -fps 30 -awb fluorescent -o pivideo_`date +"%Y%m%d_%H%M%S"`.h264'

alias myAuvideaRaspivid3='echo "rraspivid -o - -w 1280 -h 720 -t 0 -fps 30 -b 2000000 | ffmpeg -r 30 -i - -vcodec copy -f segment -strftime 1 -segment_time 60 -segment_format_options movflags=+faststart -segment_format mp4 -reset_timestamps 1 pivideo_ff_`date +"%Y%m%d_%H%M%S"`.mp4"'

 

 

素晴らしい。HDMI経由で録画しまくれる。撮りためたホームビデオをパソコンに(mp4で)落とすことができる。他にもいろいろ試す。

 

参考

f:id:min117:20201219181902p:plain

raspivid -t 30000 -w 640 -h 480 -fps 25 -b 1200000 -p 0,0,640,480 -o pivideo.h264

 

www.raspberrypi.org