画像デマルチプレクサ
ドキュメント:
image2 – Image File Demuxer | FFmpeg Documentation [Official]
連番画像を扱う
PNG 画像から MP4 動画を作成する。
$ ffmpeg -framerate 30 -i image_%04d.png \
    -vcodec libx264 -pix_fmt yuv420p -r 30 \
    output.mp4
Windows の場合にコマンドプロンプトから実行する。
>"C:\path\to\ffmpeg.exe" ^
    -framerate 30 -i "image_%%04d.png" ^
    -vcodec libx264 -pix_fmt yuv420p -r 30 ^
    output.mp4
参考:
FFmpeg で連番画像から動画生成/動画から連番画像を生成 – Qiita
Using FFmpeg to Convert a Set of Images into a Video | Hammad M
フレームレートを指定する
連番画像を入力する際のフレームレートは、-framerate オプションで -i オプションの前に設定する。
$ ffmpeg -framerate 30 -i image_%04d_png ...
出力する動画のフレームレートはフィルターの最後に -r オプションで指定する。
$ ffmpeg -framerate 30 -i image_%04d_png -vcodec libx264 -pix_fmt yuv420p \
    -r 30 output.mp4
参考:
saveVideo: FFmpeg drops frames (use -framerate on input) · Issue #74 · yihui/animation – GitHub
オプション
入力オプション
入力ファイルの前に指定する。
- -framerate: 入力画像のフレームレートを指定する (デフォルト:- 25)
- -start_number: 開始フレームを指定する (デフォルト:- 0)
- -start_number_range: 開始フレームを探索する範囲を指定する (デフォルト:- 5)
変換オプション
入力ファイルの後に指定する。
- -vframes: 出力フレーム数を指定する (※出力フレームレートで換算)
- -vcodec libx264: H.264 でエンコードする
- -preset: H.264 エンコードのプリセットを指定する (デフォルト:- medium)
- -crf: 固定品質モード (CRF) の品質を指定する (- 18~- 28/デフォルト:- 23)
- -pix_fmt yuv420p: 色情報を YUV420 でエンコードする (一部のプレイヤーは YUV420 でないと再生できない)
- -movflags +faststart: メタ情報を先頭に配置して、再生をすぐに開始できるようにする
- -vf reverse: 再生方向を逆転する
- -r: 出力動画のフレームレートを指定する
ドキュメント:
image2 – Image File Demuxer | FFmpeg Documentation [Official]
Video Options | FFmpeg Documentation [Official]
参考:
FFmpeg で連番画像から動画生成/動画から連番画像を生成 – Qiita
FFmpeg で 0 オリジンの連番ファイルを扱う | かかしのアウトプット練習
sequence starting at frame 1001 – Stack Overflow
sequence start at 30 and adds 30 in each image name – Stack Overflow
How to specify start and end frames when making a video? – Stack Overflow
静止画を表示する
参考:
FFmpeg を利用して1枚の画像と音声ファイルから動画を作成する – Qiita
1秒の無音の音楽ファイル作成/1秒の動画を1枚の静止画から作成 – Qiita
FFmpeg で音声ファイルと画像1枚から動画を作成してみた | DevelopersIO
Creating a video from a single image for a specific duration in FFmpeg – Stack Overflow
透過画像/アルファチャンネルを使う
参考:
Creating transparent video from transparent PNG files using FFmpeg – Video Production Stack Exchange
transparent PNG black outline issue – Stack Overflow
SVG ファイルから動画を作成する
参考:
SVG slideshow with FFmpeg – Stack Overflow
バッチファイルで作成する
参考:
FFmpeg で動画を静止画の連番ファイルにするバッチファイルが意図した動作をしない/「%」のエスケープが必要だった | middledot
OpenEXR を読み込むと色がおかしくなる
-apply_trc オプションに出力伝達特性を指定する。
$ ffmpeg -framerate 30 -apply_trc iec61966_2_1 -i image_%04d.exr -r 30 movie.mp4
出力伝達特性
- bt709: ITU-R BT.709/国際電気通信連合無線通信部門が勧告するハイビジョン放送 (HDTV) の規格
- gamma22: ガンマ値- 2.2
- srgb: sRGB
- iec61966-2-1: 国際電気標準会議 (IEC) が発行する国際標準規格「61966-2-1:1999」 (sRGB と同等)
ドキュメント:
Color Space | FFmpeg Documentation [Official]
Color Space Support | FFmpeg Wiki [Official]
参考:
Getting a dark output when converting .exr sequence to .mp4 – Stack Overflow