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

基本コマンド

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 の値は 0:128:128

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
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の縦と横のピクセル数になる
    範囲:2 から 16 まで
    既定値:6
  • 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 などに変える必要がある
    範囲:0(透過) から 255(透過しない) まで
    既定値:255
  • duration, d[duration]
    動画時間の指定。秒指定、hh:mm:ss 形式や、小数点の指定も可能。FFmpeg Utilities Documentation : Time durationを参照
  • decimals, n[int]
    testsrcの表示時間の小数点以下の表示桁数
    既定値:0

公式ドキュメント:FFmpeg Filters Documentation : allrgb, allyuv, color, 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
    フレームレート
  • duration, d
    秒指定。無指定なら無制限
  • test, t
    テストソースのパターン指定
    • dc_luma
    • dc_chroma
    • freq_luma
    • freq_chroma
    • amp_luma
    • amp_chroma
    • cbp
    • mv
    • ring1
    • ring2
    • 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

コメントを残す

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

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