hack のためのネタ帳, etc,,,

公式ページ等

使い方

非連番 JPEG 画像を動画に変換する
mkdir tmp
N=1; for i in `cat list.txt`; do ln $i tmp/input_$(printf %06d $N).jpg; N=$[ $N + 1 ]; done 
ffmpeg -i tmp/input_%06d.jpg -vcodec libx264 -sameq -threads 0 -s 600x800 output.mp4
bash による例なので Windows だと cygwin 等で作業すれば良い。
手順としては
  • 下準備としてあらかじめ list.txt にファイル名を結合する順番で列挙しておく
  • 次に ln で tmp/ 以下に連番ハードリンクを作成
  • 最後に ffmpeg で 600x800 の h264 形式のビデオに変換して mpeg4 コンテナに格納

Tips

音ずれ対策

TS で音がずれる場合などは -filter_complex 'asyncts=max_comp=44100' を付けておくと改善する場合があるらしい。
参考:
連番で与える場合は printf 形式で以下のように連番の桁数を与える。
ffmpeg -i hoge%04d.jpg
連番でない場合は pattern_type を glob にしすると以下のようにワイルドカードを使用可能になる。
ffmpeg -pattern_type glob -i '*.jpg'
pipe で与える場合は、format を image2pipe にすると共に、UNIX 系の慣例に従い - を与えるて入力を標準入力扱いする。
cat *.jpg | ffmpeg -f image2pipe -i -
バイナリではなくファイルのリストを与えたい場合は、 format を concat にして file PATH_TO_FILE の形式で一覧を与える。
printf "file '%s'\n" *.jpg | ffmpeg -f concat -i -

参考:

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

編集にはIDが必要です