LoginSignup
8
13

More than 5 years have passed since last update.

ffmpegのコマンド実行例

Posted at

ffmpegは動画を作ったり抽出したり色んなことができるのですが、オプション多すぎてわからなくなるのでメモ

基本

ffmpeg -i input.mp4 output.avi

-iで入力を指定し、最後に出力を指定する。

何にでも付けられるオプション

ffmpeg -y -v error -i input.mp4 output.avi

-y は出力ファイル(output.avi)がすでにある場合に何も聞かずに上書く。
-v error はログレベルがエラー以上のもののみ画面に出力する。(指定しないと色んな情報が画面に出力される)

複数の動画をつなげて1つの動画にする

ffmpeg -f concat -safe 0 -i list.txt -c copy concat.mp4

list.txtファイルには、つなげたい動画を1行に1ファイルずつ頭に『file 』を付けて順番に書く。

list.txt
file /path/to/input/file1.mp4
file /path/to/input/file2.mp4

1枚の静止画から動画を作る

ffmpeg -loop 1 -i pict.jpg -i audio.aac -c:v h264 -profile:v main -t 10 -pix_fmt yuv420p -r 60 out.mp4

-i pict.jpg -i audio.aac で静止画と音声を指定
-c:v h264 で動画のコーデックをh264に指定
-t 10 で動画の時間を10秒に指定
-r 60 でフレームレートを60に指定

複数枚の静止画が5秒ずつ表示されるスライドショー的な動画を作る

ffmpeg -r 0.2 -i %02d.JPG -b:v 3000k -c:v h264 -pix_fmt yuv420p -r 30 out.mp4

-r 0.2 はフレームレート(1秒に何枚静止画を出すか)の指定なので、0.2だと1枚の静止画が5秒間表示されることになる。
-i %02d.JPG で入力静止画のフォーマットを指定。%02dは2桁の数字を意味するので、この場合は01.JPG02.JPG、...、99.JPGが対象となる。連番である必要がある。
-b:v 3000kで動画のビットレートを指定。大きくすると綺麗になるがファイルサイズも大きくなる。
-r 30 動画のフレームレートを指定する。

動画から静止画を抽出する

ffmpeg -ss 10 -t 5 -i input.mp4 -r 2 -f image2 pict%02d.jpg

-ss 10 で抽出位置を開始から10秒の位置に指定(指定しない場合は最初から)
-t 5 で時間を5秒間に指定(指定しない場合はすべてが対象)
-r 2 で1秒に2枚抽出することを指定

1秒に2枚で5秒間なので、pict01.png〜pict10.jpgの10枚ぐらい(多少前後するっぽい?)の連番ファイルができる。
出力ファイル名の拡張子をpngにしたらpngになる。

無音の音声ファイルを作る

ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=48000 -c:a aac -t 1 silence.aac

-t 1 で時間を1秒に指定

8
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
13