個別に QSV のフィルタがあるが vpp_qsv フィルタは輝度、彩度、色相やデノイズ、クロップ、リサイズ、インターレース解除など複数のフィルタが含まれる。

QSV の基本設定は以下を参照。
qsv 対応の ffmpeg をつくる

基本コマンド

いろいろな種類のフィルタが含まれるので目的に合わせて使い分けたり複数を組み合わせたりする。コマンド例は2つあり1行目が QSV デコード、フィルタ、エンコードし、2行目が QSV フィルタだけ当てている。

インターレースを解除し30pの映像の場合24pにする。
ffmpeg -hwaccel qsv -c:v mpeg2_qsv -analyzeduration 30M -probesize 30M -fflags +discardcorrupt -i input.ts -vf hwupload=extra_hw_frames=10,vpp_qsv=deinterlace=2,decimate -c:v h264_qsv -c:a copy output.mp4
ffmpeg -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -analyzeduration 30M -probesize 30M -fflags +discardcorrupt -i input.ts -vf hwupload=extra_hw_frames=10,vpp_qsv=deinterlace=2,decimate -c:v libx264 -c:a copy output.mp4

unsharp フィルタのように輪郭が先鋭化する。
ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=detail=50 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=detail=50 -c:v libx264 -c:a copy output.mp4

hue フィルタのように色相を調整する。
ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=procamp=1:hue=10 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=procamp=1:hue=10 -c:v libx264 -c:a copy output.mp4

hue フィルタのように彩度を調整する。
ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=procamp=1:saturation=3 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=procamp=1:saturation=3 -c:v libx264 -c:a copy output.mp4

eq フィルタのようにコントラストを調整する。
ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=procamp=1:contrast=3 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=procamp=1:contrast=3 -c:v libx264 -c:a copy output.mp4

eq フィルタのように輝度を調整する。
ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=procamp=1:brightness=10 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=procamp=1:brightness=10 -c:v libx264 -c:a copy output.mp4

crop フィルタのように一部を切り取る。縦横100x100にオフセットは0x0の位置。
ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=cw=100:ch=100:cx=0:cy=0 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=cw=100:ch=100:cx=0:cy=0 -c:v libx264 -c:a copy output.mp4

scale フィルタのようにリサイズする。
ffmpeg -hwaccel qsv -c:v h264_qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=w=320:h=180 -c:v h264_qsv -c:a copy output.mp4
ffmpeg -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -i input -vf hwupload=extra_hw_frames=10,vpp_qsv=w=320:h=180 -c:v libx264 -c:a copy output.mp4

関連記事

公式ドキュメントはまだない。

オプション

ffmpeg -h filter=vpp_qsv > vpp_qsv.txt で一覧をテキストで見られる。

  • deinterlace[int]
    • 0:インターレース解除しない。既定値
    • 1, bob
    • 2, advanced:通常はこちらを使う
  • denoise[int]
    デノイズ強度の指定
    既定値:0
    範囲:0 から 100 まで
  • detail[int]
    輪郭の先鋭レベルの指定
    既定値:0
    範囲:0 から 100 まで
  • framerate[rational]
    出力フレームレートの指定。挙動不明
    既定値:0/1
    範囲:0 から DBL_MAX まで
  • procamp[int]
    hue, saturation, contrast, brightness を利用する
    既定値:0(利用しない)
    範囲:0 と 1
  • hue[float]
    色相の角度指定
    既定値:0
    範囲:-180 から 180 まで
  • saturation[float]
    彩度の指定
    既定値:1
    範囲:0 から 10 まで
  • contrast[float]
    コントラストの指定
    既定値:1
    範囲:0 から 10 まで
  • brightness[float]
    輝度の指定
    既定値:0
    範囲:-100 から 100 まで
  • cw[string]
    出力解像度の横幅。評価式が使える
    既定値:iw
  • ch[string]
    出力解像度の縦幅。評価式が使える
    既定値:ih
  • cx[string]
    クロップする場所の横座標の指定。評価式が使える
    既定値:”(in_w-out_w)/2″
  • cy[string]
    クロップする場所の縦座標の指定。評価式が使える
    既定値:”(in_h-out_h)/2″
  • w, width[string]
    出力解像度の横幅。-n が使えない。評価式が使える
    既定値:cw
  • h, height[string]
    出力解像度の縦幅。-n が使えない。評価式が使える
    既定値:”w*ch/cw”
  • format[string]
    出力フォーマットの指定
    既定値:”same”

cw, ch, cx, cy, w, h に使える関数

ffmpeg で使える評価式 を使って複雑な計算ができる。

  • in_w, iw:入力横幅
  • in_h, ih:入力縦幅
  • out_w, ow:横幅(cw)で指定した値。w, h には使えない
  • out_h, oh:縦幅(ch)で指定した値。w, h には使えない
  • cw:クロップした後の横幅
  • ch:クロップした後の縦幅
  • w:w で指定した値。w=h などと使うが、w=h:h=w の併用はできない。cw, ch, cx, cy には使えない
  • h:h で指定した値。h=w などと使うが、w=h:h=w の併用はできない。cw, ch, cx, cy には使えない

コメントを残す

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

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