FFmpegで偶に使うオプション【WAV抽出・連番画像・切り出し・チャプター】

清親畫帖. [1] コンピュータ
出典:国立国会図書館「NDLイメージバンク」 (https://rnavi.ndl.go.jp/imagebank/)
FFmpegは、たまにしか使わないので、使った用途とオプションを記録しておきたいと思います。

動画から音声(wav)分離

ffmpeg -i "入力ファイル名.mp4" -vn "出力ファイル名.wav"

動画から連番画像出力

ffmpeg -i "入力ファイル名.mp4" -vcodec png img%03d.png
解像度を指定する場合は-s 1280x720

動画を時間を指定して切り出し

動画の開始20秒から40秒間切り出し
ffmpeg -ss 00:00:20 -i "入力ファイル名.avi" -to 00:00:40 -c copy "出力ファイル名.avi"

動画にチャプターを追加

mp4に含まれるメタデータにチャプターを打つことに成ります。まず、mp4ファイルからメタデータをテキストファイルへ出力。任意のテキストエデッタでテキストファイルにチャプターを追加。mp4ファイルにチャプターを含んだメタデータを戻す(追加)。という流れになります。

動画からメタデータを出力

ffmpeg -i "入力ファイル名.mp4" -f ffmetadata ffmetadata.ini

ffmetadata.iniにチャプターを追加

[CHAPTER]
TIMEBASE=1/1000
START=0
END=19999
title=001

テキストエディターでチャプター情報を入力し保存

動画にメタデータを追加

ffmpeg -i "入力ファイル名.mp4" -i ffmetadata.ini -map_metadata 1 -map_chapters 1 -c copy "出力ファイル名.mp4"
チャプターのTIMEBASEが1/1000ですのでSTARTとENDはミリ秒単位の指定だと思われます。
HH:MM:SS.fff形式との変換プログラムがあると便利かもしれません。

連番画像ファイルから動画を作成

ffmpeg -framerate 元のフレームレート -i "入力ファイル名%03d.png" -vcodec libx264 -pix_fmt yuv420p -r 動画のフレームレート "出力ファイル名.mp4"
“入力ファイル名%03d.png”の%03dは000,0001,002…という感じの連番数値
元のフレームレートは連番画像を動画から抽出した場合、元となった動画のフレームレート。

コメント