Quantcast
Channel: FFmpeg | ニコラボ
Viewing all articles
Browse latest Browse all 311

Zライブラリを使ったリサイズフィルタ zscale

$
0
0

scale と同じようにリサイズ出来るフィルタだが、それとは別のリサイズ方法 point, spline16, spline36 が使える。ただし scale と比べ処理が速くないのでリアルタイムエンコード、つまり配信用途なら処理が遅くても問題ない。scale と違ってインターレース保持のリサイズは出来ない。現時点では ffmpeg の master で使える。

ffmpeg の scale で使えるリサイズ方法:FFmpeg Scaler Documentation :: Scaler Options

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

続きを読む

インストール方法

releases では v2.0 以上を使う。

$ git clone git://github.com/sekrit-twc/zimg zimg
$ cd zimg
$ autogen.sh
$ ./configure --prefix="/mingw/i686-w64-mingw32"  --build="i686-w64-mingw32" --host="i686-w64-mingw32"
$ make -j 2 && make install

ffmpeg には --enable-libzimg をつけて、実行には bin にインストールされた libzimg-2.dll が必要。

libzimg-2.dll を個別にしない場合は zimg の configure に
--disable-shared --enable-static をつけて、
zimg.pc の Libs: に -lstdc++ を追加する。

Libs: -L${libdir} -lzimg -lstdc++

オプション

  • width, w
    出力解像度の横幅
    0 は入力と同じ。-1 はアスペクト比を揃えて縦解像度に合わせる
  • height, h
    出力解像度の縦幅
    0 は入力と同じ。-1 はアスペクト比を揃えて横解像度に合わせる
  • size, s
    横幅x縦幅。使える書式
  • dither, d
    ディザーオプション
    • none。規定値
    • ordered
    • random
    • error_diffusion
  • filter, f
    リサイズアルゴリズム
    • point
    • bilinear。規定値
    • bicubic
    • spline16
    • spline36
    • lanczos
  • range, r
    カラーレンジ
    • input。規定値
    • limited
    • full
  • primaries, p
    カラープライマリー
    • input。規定値
    • 709
    • unspecified
    • 170m
    • 240m
    • 2020
  • transfer, t
    トランスファー
    • input。規定値
    • 709
    • unspecified
    • 601
    • linear
    • 2020_10
    • 2020_12
  • matrix, m
    色空間マトリクス
    • input。規定値
    • 709
    • unspecified
    • 470bg
    • 170m
    • 2020_ncl
    • 2020_cl

縦横幅に使える書式

  • in_w, iw
    入力横幅
  • in_h, ih
    入力縦幅
  • out_w, ow
    出力横幅
  • out_h, oh
    出力縦幅
  • a
    iw / ih
  • sar
    サンプルアスペクト比
  • dar
    (iw / ih) * sar
  • hsub, vsub
    入力クロマサブサンプル値。yuv422p だと hsub は 2、vsub は 1
  • ohsub, ovsub
    出力クロマサブサンプル値。yuv422p だと hsub は 2、vsub は 1

基本コマンド

横幅640に縦幅はアスペクト比を揃えて bilinear のディザーなしにリサイズ
ffmpeg -i input -vf zscale=640:-1 -c:a copy output

横幅を半分に縦幅はアスペクト比を揃えて spline16 のディザーなしにリサイズ
配信用途では指定解像度に spline16 のディザーなしがおすすめ
ffmpeg -i input -vf zscale=iw/2:-1:f=spline16 -c:a copy output


Viewing all articles
Browse latest Browse all 311

Trending Articles