
テスト目的で、10 fps でフレームごとに黒一色と白一色の間で変化するビデオを生成したいのですが、FFMPEG を使用してこれを実行するにはどうすればよいですか?
答え1
簡単な答えは「ffmpeg フィルターの仕組みを 3 時間かけて勉強する」です。今日は楽しみのためにそれをやったので、この質問をチャレンジとして使いました。
結果を得るにはいくつかの方法があるようですが、私にとってうまくいったのは次の方法です:
黒い画像と白い画像を生成し、それぞれに
img-001.png
とという名前を付けますimg-002.png
。から学んだ の機能
ffmpeg
を使用する-loop
この回答は画像から動画への変換作業にのみ適用されます
画像の生成:
ffmpeg -f lavfi -i color=black:1920x1080:d=3,format=rgb24 -frames:v 1 -y img-001.png
ffmpeg -f lavfi -i color=white:1920x1080:d=3,format=rgb24 -frames:v 1 -y img-002.png
次の画像を 10 fps で 30 秒間ループします。
ffmpeg -loop 1 -i 'img-%03d.png' -r 10 -t 30 -vf format=yuv420p -y out.mp4
ffprobe
このメタデータを報告します:
(edited for clarity)
Duration: 00:00:30.00, start: 0.000000,
Video: h264 (High) yuv420p
1920x1080 [SAR 1:1 DAR 16:9], 20 kb/s, 10 fps
このGISTには別のアプローチがあるを使用しますfilter_complex
。まったく同じことを行っているわけではありませんが、このタスクに適応させることができます。