手元に映像ファイルがなくても単色や、カラーバーを作ることが出来る。

公式wiki:FancyFilteringExamples – FFmpeg

基本コマンド

ffmpeg -f lavfi -i color -vframes 1 color.png
ffmpeg -f lavfi -i color=s=1280x720:r=30:d=10 output.mp4
ffplay -f lavfi -i color=c=black:s=340x240:r=25:sar=1/1:d=60

より正確なテストソース。
ffmpeg -f lavfi -i sws_flags=+accurate_rnd+bitexact;color -sws_flags accurate_rnd+bitexact -flags +bitexact -fflags +bitexact -vframes 1 color.png
ffplay -f lavfi -i sws_flags=+accurate_rnd+bitexact;color=c=black:s=340x240:r=25:sar=1/1:d=60 -sws_flags +accurate_rnd+bitexact -flags +bitexact -fflags +bitexact

音声のテストソースも同時に扱う。
ffmpeg -f lavfi -i smptehdbars=1920x1080:d=10 -f lavfi -i sine=frequency=1000:d=10 output.mp4
ffplay -f lavfi -i smptehdbars=1920x1080[out0];sine=frequency=1000[out1]"

テストシグナルの音声を作る sine

ピクセルフォーマットやビット深度の変更は入力ソースで変更する。
ffmpeg -f lavfi -i yuvtestsrc=d=5,format=yuv422p10le -c:v prores_ks -profile:v 4444xq -pix_fmt yuv422p10le yuvtestsrc.mov

ピクセルフォーマット一覧。
ffmpeg -pix_fmts

各種ソースは-filter_complex内で作ることもできる。d=3で3秒のファイルにshortest=1ですべての出力を時間指定した3秒で止めるようにしている。
ffmpeg -f lavfi -i testsrc2=d=3 -filter_complex "mptestsrc,scale=320x240[1];sierpinski=320x240,[0][1]vstack=3:shortest=1" output

表示サンプル

allrgb を縦横8分の1にした

allyuv を縦横8分の1にした

color。YUVの値は16:128:128

colorchart

colorspectrum

haldclutsrc(正方形)

nullsrc。YUVの値は0:0:0(ダークグリーン)

pal75bars

pal100bars

rgbtestsrc

smptebars

smptehdbars

testsrc。タイマーと横に伸びたカラーバーが変化する

testsrc2。タイマーと4つのオブジェクトが変化する

yuvtestsrc

カラーフォーマットと解像度

ソース フォーマット 解像度
allrgb rgb24 4096×4096
allyuv yuv444p 4096×4096
color yuv420p 340×240
colorchart gbrp 384×256
colorspectrum gbrpf32le 340×240
haldclutsrc rgb24 216×216(正方形)
nullsrc yuv420p 340×240
pal75bars yuv420p 340×240
pal100bars yuv420p 340×240
rgbtestsrc rgba 340×240
smptebars yuv420p 340×240
smptehdbars yuv420p 340×240
testsrc rgb24 340×240
testsrc2 yuv420p 340×240
yuvtestsrc yuv444p 340×240

フォーマットが yuv420p の映像を使うときに奇数解像度の指定は、奇数は切り捨てられるので入力時点でフォーマットを yuv444p や、rgb24 などのフォーマットに変換する。
ffmpeg -f lavfi -i testsrc2=s=321x241:d=10,format=yuv444p -c:v ffv1 output.mkv
ffplay -f lavfi -i testsrc2=s=321x241,format=yuv444p

オプション

  • color, c[color]
    colorソースの色を指定する。色の名前を直接指定する場合と、[0x|#]RRGGBB[AA] 形式が使える。FFmpeg Utilities Documentation : Colorを参照。
    ffmpeg -colorsでも調べられる
    既定値:”black”
  • level[int]
    haldclutsrcのレベルを指定する。指定した値の3乗がCLUTの縦と横のピクセル数になる
    既定値:6
    範囲:2 から 16 まで
  • size, s[image_size]
    出力解像度の指定。横x縦 の指定と、解像度の略語指定が出来る。FFmpeg Utilities Documentation : Video sizeを参照。allrgb, allyuv, haldclutsrcでは使えない
    既定値:入力ソースで異なる
  • rate, r[video_rate]フレームレートの指定。小数点の指定や分数の指定も可能
    既定値:25
  • sar[rational]
    SAR の指定。横/縦
    既定値:1/1
  • alpha[int]
    testsrc2の透過の指定だが、標準のカラーフォーマットは yuv420p なので yuva420p などに変える必要がある
    既定値:255
    範囲:0(透過)から 255(透過しない)まで
  • duration, d[duration]
    動画時間の指定。秒指定、hh:mm:ss 形式や、小数点の指定も可能。FFmpeg Utilities Documentation : Time durationを参照
  • decimals, n[int]
    testsrcの表示時間の小数点以下の表示桁数
    既定値:0
  • type[int]
    colorspectrumの色の指定
    • 0, black:既定値
    • 1, white
    • 2, all
  • patch_size[image_size]
    colorchartで使える。1つの区画、横x縦の解像度指定。同じ値を指定する
    既定値:64×64
  • preset[int]
    colorchartで使える
    • 0, reference:既定値
    • 1, skintones:スキントーン

公式ドキュメント:FFmpeg Filters Documentation : allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc, pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc, testsrc2, yuvtestsrc

そのほかの映像ソースに、cellauto、coreimagesrc、mandelbrot、frei0r_src、life、openclsrcなどがある。

mptestsrc

上のテストソースは主に映像の変化がないが、こちらのテストソースは映像の変化が多い。解像度は512×512のピクセルフォーマットはYUV420p。

基本コマンド

ffmpeg -f lavfi -i mptestsrc=r=30:d=1:t=dc_luma mptestsrc.mp4
ffplay -f lavfi -i mptestsrc=30:1:dc_luma

表示サンプル

dc_luma

dc_chroma

freq_luma

freq_chroma

amp_luma

amp_chroma

cbp

mv

ring1

ring2

オプション

  • rate, r[video_rate]フレームレート
  • duration, d[duration]
    動画時間の指定。秒指定、hh:mm:ss 形式や、小数点の指定も可能。FFmpeg Utilities Documentation : Time durationを参照
  • test, t[int]
    テストソースのパターン指定
    • 0, dc_luma
    • 1, dc_chroma
    • 2, freq_luma
    • 3, freq_chroma
    • 4, amp_luma
    • 5, amp_chroma
    • 6, cbp
    • 7, mv
    • 8, ring1
    • 9, ring2
    • 10, all

公式ドキュメント:FFmpeg Filters Documentation : mptestsrc

sierpinski

シェルピンスキーの四面体。ピクセルフォーマットはRGB0。

基本コマンド

ffmpeg -f lavfi -i sierpinski=s=640x360:seed=-1:jump=100:type=carpet -pix_fmt yuv420p -t 10 sierpinski.mp4
ffplay -f lavfi -i sierpinski

表示サンプル

type=carpet

type=triangle

オプション

  • size, s[image_size]
    出力解像度の指定。横x縦 の指定と、解像度の略語指定が出来る。FFmpeg Utilities Documentation : Video sizeを参照
    既定値:640×480
  • rate, r[video_rate]フレームレートの指定
    既定値:25
  • seed[int64]
    ランダムパンするシードの指定。パンする方向が変わる
    既定値:-1
    範囲:-1からUINT32_MAXまで
  • jump[int]
    パンするときの最大移動距離
    既定値:100
    範囲:1から10000まで
  • type[int]
    フラクタルの種類の指定
    • 0, carpet:カーペット。既定値
    • 1, triangle:三角形

公式ドキュメント:FFmpeg Filters Documentation : sierpinski

gradients

時計回りに回転するグラデーションソース。ピクセルフォーマットはRGBA。手動で色を指定するならgeqフィルタを使う。

数式で線や円、模様が描ける geq

基本コマンド

ffmpeg -f lavfi -i gradients=d=10 -pix_fmt yuv420p gradients.mp4
ffplay -f lavfi -i gradients

表示サンプル

gradients

オプション

  • c0, c1, c2, c3, c4, c5, c6, c7[color]
    最大8種類の色を指定できる
    既定値:”random”
  • x0, y0[int]
    グラデーションの左上の座標指定。負の値はランダム
    既定値:-1
    範囲:-1からINT_MAXまで
  • y0, y1[int]
    グラデーションの右下の座標指定。負の値はランダム
    既定値:-1
    範囲:-1からINT_MAXまで
  • nb_colors, n[int]
    色数の指定
    既定値:2
    範囲:2から8まで
  • seed[int64]
    seedの指定
    既定値:-1
    範囲:-1からUINT32_MAXまで
  • duration, d[duration]
    動画時間の指定。秒指定、hh:mm:ss 形式や、小数点の指定も可能。FFmpeg Utilities Documentation : Time durationを参照
  • speed[float]
    回転速度の指定。大きな値ほど速い
    既定値:0.01
    範囲:0.00001から1まで
  • type, t[int]
    • 0, linear:既定値
    • 1, radial
    • 2, circular
    • 3, spiral

公式ドキュメント:FFmpeg Filters Documentation : gradients

avsynctest

リップシンク検証テストソース。ピクセルフォーマットはYUV420p。

基本コマンド

ffplay -f lavfi -i avsynctest[out0][out1]
ffmpeg -f lavfi -i avsynctest=d=10[out0][out1] avsynctest.mp4

表示サンプル

avsynctest

オプション

  • size, s[image_size]
    出力解像度の指定。横x縦 の指定と、解像度の略語指定が出来る。FFmpeg Utilities Documentation : Video sizeを参照
    既定値:hd720
  • framerate, fr[video_rate]
    出力フレームレート
    既定値:30
  • samplerate, sr[int]
    出力サンプルレート
    既定値:44100
    範囲:8000から384000まで
  • amplitude, a[float]
    ビープ音の振幅。大きな値ほど音量も大きい
    既定値:0.7
    範囲:0から1まで
  • period, p[int]
    ビープが鳴る秒間隔
    既定値:3
    範囲:1から99まで
  • delay, dl[int]
    遅延するフレーム数
    既定値:0
    範囲:-30から30まで
  • cycle, c[boolean]
    遅延周期の有効化。有効にすると遅延が可変になる
    既定値:0
  • duration, d[duration]
    動画時間の指定。秒指定、hh:mm:ss 形式や、小数点の指定も可能。FFmpeg Utilities Documentation : Time durationを参照
  • fg[color]
    前景の色指定。色の名前を直接指定する場合と、[0x|#]RRGGBB[AA] 形式が使える。FFmpeg Utilities Documentation : Colorを参照。
    ffmpeg -colorsでも調べられる
    既定値:”white”
  • bg[color]
    背景の色指定。色の名前を直接指定する場合と、[0x|#]RRGGBB[AA] 形式が使える。FFmpeg Utilities Documentation : Colorを参照。
    ffmpeg -colorsでも調べられる
    既定値:”black”
  • ag[color]
    その他の色指定。色の名前を直接指定する場合と、[0x|#]RRGGBB[AA] 形式が使える。FFmpeg Utilities Documentation : Colorを参照。
    ffmpeg -colorsでも調べられる
    既定値:”gray”

公式ドキュメント:FFmpeg Filters Documentation : avsynctest

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)