動画の冒頭に4秒間静止画を差し込みたいというニーズあり。動画にオーバレイさせるのではなく、単に静止画を4秒間見せた後動画をスタートしたい。ffmpegでこれをやる方法は何通りかありそうだけど、今回は静止画から4秒間のイントロ動画を作成して本編と結合する。以下手順を覚え書き。
無音のサウンドファイルを作成する
冒頭4秒間は無音なのでサウンドトラックは必要ないが、サウンドトラック付きの本編動画と連携する際に結合する動画間でストリーム数に違いがあると面倒なので、事前にイントロ動画にもサウンドトラックを追加しておく。ffmpegで無音トラックを追加する方法が見つからなかったので、安易にAudacityで4秒間無音のサウンドファイルを作成。本編のオーディオトラックと同様のサウンド形式にしておくと後の処理が楽に進むかも。
静止画から動画を作成する
4秒間の動画を作るためには、フレームレートを30fpsとして120フレームの画像が必要となる。オリジナルの静止画をコピーして120枚の画像ファイルを作成する。バッチファイルを工夫してファイル名にフレーム番号が含まれるようにしておくと便利。例えば intro_0001.jpg、intro_0002.jpg、_0003.jpg、… といったように。そうして作成した画像をffmpegを使って動画に変換。その際に予め作成しておいた無音のサウンドファイルも入力として与え、無音の音声トラックを動画に追加する。
1 |
ffmpeg -i "intro_%04d.jpg" -i silent_4secs.mp3 <必要に応じてオプション> intro.mp4 |
イントロ動画と本編動画を連結する
動画連結の方法は以前のエントリで書いた通り。
[ffmpeg] 動画を結合するには
https://www.84kure.com/blog/?p=345