Raspberry Pi 4 で ffmpeg の h264_v4l2m2m の出力が壊れた
暫定ですが解決したので備忘録を載せておきます。
環境
- Raspberry Pi 400
- Raspberry Pi OS 32bit
- ffmpeg version 4.3.4-0+deb11u1+rpt2 (更新前)
問題発生までの経過
- apt で各種パッケージを更新 (多分執筆時点まで半年ぐらい更新していなかった)
- ffmpegのRaspberry Pi 4 用ハードウェアエンコーダ
-c:v h264_v4l2m2m
が動かなくなる- 正確には出力映像がすべて真っ黒に
解決策
- ffmpeg を更新
- リサイズオプションを追加
ffmpeg を更新
以下の記事の手順に従って Raspberry Pi用に ffmpeg の最新版 (執筆時点で 54e0971
)をビルドしました。
この記事の手順でビルドしたffmpegは /usr/local/bin/ffmpeg
に配置されるので注意。
自分の環境の更新前のパスは /usr/bin/ffmpeg
でした。
リサイズオプションを追加
ffmpegを更新すると出力動画が真っ黒問題は解決しましたが、今度は映像が斜めにノイズが入った感じに乱れるようになりました。
調べてみると -vf scale=1920:1080
のように-vf
でリサイズすれば乱れも解消するようです。
このオプションを追加したところ、自分の環境でも映像が乱れなく出力されひとまずエンコード自体もできるようになりました。
仕様上-vf
を追加した場合、しない場合に比べてエンコード速度が明らかに落ちるのですが現状では仕方ないみたいです。
参考