非推奨になったが、-/filter、-/filter_complexで代替できる。
fftools/ffmpeg: deprecate -filter_script · FFmpeg/FFmpeg@a8bc79c · GitHub
fftools/ffmpeg: deprecate -filter_complex_script · FFmpeg/FFmpeg@c316c4c · GitHub
ffmpeg が難しいと言われる理由の一つにフィルタの書き方がわからないというのがある。コマンドプロンプトだと改行できないので長くなるほど読みにくくなる。これを解決するのが-filter_script、-filter_complex_scriptである。
-filter_scriptは映像と音声別々に扱い、同じ種類の2番目以降のストリームを扱えない。-filter_complex_scriptは-filter_complexと同じ書き方をする。-filter_script、-filter_complex_scriptどちらもコメントを書き込めない。さらにffplay、ffprobeでは使えない。
基本コマンド
-
ffmpeg -i input -filter_script:v scriptv.txt output
scriptv.txtの内容。
yadif=0:-1:1, decimate, setpts=N/(24000/1001)/TB, scale=1280:-2
ffmpeg -i input -filter_script:v scriptv.txt -filter_script:a scripta.txt output
scripta.txtの内容。
dynaudnorm
ffmpeg -i input -filter_complex_script script.txt output
script.txtの内容。
[0:v:0]yadif=0:-1:1, decimate, setpts=N/(24000/1001)/TB, scale=1280:-2; [0:a:0]dynaudnorm
- 再生確認するときは-f sdl –、-f opengl –を使う。上と同じコマンドだとデコード速度で再生するので-reか
realtime
フィルタで1倍速にする。
ffmpeg -i input -filter_script:v scriptv.txt -f sdl -
scriptv.txtの内容。
yadif=0:-1:1, decimate, setpts=N/(24000/1001)/TB, scale=1280:-2, realtime
-f sdl –、-f opengl –は非推奨になった。
avdevice: deprecate sdl outdev · FFmpeg/FFmpeg@2b17a74 · GitHub
avdevice: deprecate opengl outdev · FFmpeg/FFmpeg@e4c0cdf · GitHub - 音声も再生するなら標準出力する。-fflags nobufferは読み込みバッファをなくしすぐに再生する。
decimate
フィルタを併用すると音ずれするので再生確認では使わない方がよい。
ffmpeg -i input -filter_complex_script script.txt -c:v rawvideo -c:a pcm_s16le -f nut - | ffplay -fflags nobuffer -
How to minimize the delay in a live streaming with ffmpeg – Stack Overflow
公式ドキュメント:ffmpeg Documentation : Main options