先日久々に発見して、嬉々とした「携帯動画変換君のサイト内にあるWikiのffmpegのコマンドオプション一覧のページ」が、このブログからリンクを貼って数日で消えてしまい非常にガッカリしたのですが、本日覗いてみるとまた復活してました。

またリンクを貼り直そうかとも思いましたが、余計なトラフィックの流入を嫌ってらっしゃるのかも知れませんので勝手ながらこのブログに転載する事にしました。
携帯動画変換君内ffmpegのコマンドオプション一覧の転載元のTOPページはこちら≫(MobileHackerz - [携帯向けに簡単に動画を変換してみよう]

1年前にも行方不明になったページですので、ちょくちょく利用したい私にはイキナリ見れなくなる事は非常にツライ。ブックマークするか、分かり易い所にリンク貼って起きたいわけです。ハイ、私のエゴです(´Д`;)

以下、続きから携帯動画変換君内のffmpegのコマンドライン、オプション一覧です。
(最新のffmpegとは若干違うようです)

スポンサー リンク

ビデオオプション

-b <bitrate>
ビデオビットレートの設定 (kbit/秒)
Default=200
  • -qscale を指定すると無視されます。
-vframes <number>
変換するビデオフレーム数

 

-r <rate>
フレームレートの設定(fps、値、小数部または簡略名)
小数点第二位まで有効
Default=25
-s <size>
フレームサイズの設定(WxHか簡略名)
数値は必ず偶数で指定する、奇数の場合はエラーが出ます。
-aspect <aspect>
アスペクト比の設定(4:3、16:9、または1.3333、1.7777)

 

-fixaspect
固定アスペクト比(変換君では元ソースの縦横ピクセル数の比を固定しつつ足りない時は余白を追加)
つまり、ピクセル自体の縦横比が1:1でない場合(MPEG1,2に多い)、この機能は使えない。
解説画像
-vn
ビデオなし

 

-bt <tolerance>
ビデオのビットレートの誤差の設定 (kbit/秒)
  • -qscale を指定すると無視されます。
-maxrate <bitrate>
最大ビデオビットレートの設定 (kbit/秒)
-minrate <bitrate>
最小ビデオビットレートの設定 (kbit/秒)
-bufsize <size>
set ratecontrol buffer size (in kByte)

 

-vcodec <codec>
ビデオコーデックを指定
Default=copy
-sameq
ソースと同じクオリティで変換
  • ソースが VBR の場合は、暗黙に VBR となります。

pass オプション 

 

-pass <n>
2-pass のとき 1-pass 目か 2-pass 目かを指定(1 or 2)
  • -pass 1 : 入力されたビデオの統計情報を出力(ファイル名は -passlogfile で指定)する
  • -pass 2 : 統計情報に基づいてエンコードを行う

 

-passlogfile <file>
ログファイル名を指定

crop オプション 

  • 数値は必ず偶数で指定する、奇数の場合はエラーが出ます。
  • -s の前に入れればトリミング出来る。
    画面キャプチャし、縦横比固定でトリミングすれば数値を求められるが、キャプチャした画像が元ソースと同じピクセル数でないと誤差が起きるので注意!
-croptop <size>
上部からピクセル単位でカット
-cropbottom <size>
下部からピクセル単位でカット
-cropleft <size>
左端からピクセル単位でカット
-cropright <size>
右端からピクセル単位でカット

pad オプション 

  • 数値は必ず偶数で指定する、奇数の場合はエラーが出ます。
  • -fixaspect が上手く機能しない時はコレで補完すると良い。
    • 例:-fixaspectを外して、-s 176x144 → -s 176x132 -padtop 6 -padbottom 6 (元ソースが720x480の4:3表示の場合)
-padtop <size>
上部からピクセル単位で余白追加
-padbottom <size>
下部からピクセル単位で余白追加
-padleft <size>
左端からピクセル単位で余白追加
-padright <size>
右端からピクセル単位で余白追加
-padcolor <color>
余白の色指定 (Hex 000000 thru FFFFFF)

高度なビデオオプション

-pix_fmt <format>
ピクセルフォーマットの設定

 

-g <gop_size>
GOP(Group Of Picture)のサイズをフレーム数で指定する : Default = 12
  • 0 で動き予測を無効にする。-intra を指定したことになります
  • -vcodec mpeg4 の場合、-g 600 以上を指定するとWarning keyframe interval too large! reducing it ... と怒られますがエンコードは続きます
  • -vcodec xvid の場合、大きな数値を指定しても警告は出ませんが、240 が最大値のようです
  • 音ズレの原因になる場合があるので、特に思うところがなければ使用しません

 

-intra
Iフレームのみを利用する : Default = off
  • 動き予測を無効にする
  • 変換速度は速くなるが、画像の品質は下がる(同じ品質の場合はファイルサイズが大きくなる)
-rc_init_cplx <complexity>
initial complexity for 1-pass encoding
-b_qfactor <factor>
qp factor between p and b frames(PフレームとBフレームの間のQP因数)
-i_qfactor <factor>
qp factor between p and i frames(PフレームとIフレームの間のQP因数)
-b_qoffset <offset>
qp offset between p and b frames(PフレームとBフレームの間のQPオフセット)
-i_qoffset <offset>
qp offset between p and i frames(PフレームとIフレームの間のQPオフセット)
-ibias <bias>
intra quant bias
-pbias <bias>
inter quant bias
-rc_eq <equation>
set rate control equation
-rc_override <override>
rate control override for specific intervals

 

-me <method>
動き予測の手法を設定する
  • メソッドは下に行くに従い品質が良くなります
zero
ベクトルを (0, 0) で固定するように試みる
phods
log
x1
epzs
既定値
full
徹底的な検索。符号化に時間がかかる割に効果は epzs よりやや良い程度
-dct_algo <algo>
set dct algo
-idct_algo <algo>
set idct algo
-me_threshold <threshold>
motion estimaton threshold
-mb_threshold <threshold>
macroblock threshold
-er <n>
set error resilience
-ec <bit_mask>
set error concealment

 

-bf <frames>
Bフレームを利用する。参照するフレーム数(1~8)
  • 数字が大きいほど変換速度は遅くなるが画像の品質は上がる(同じ品質の場合はファイルサイズが小さくなる)
  • 対応していない携帯端末があるので注意
  • MPEG-1,MPEG-2,MPEG-4でサポートされている

 

-mbd <mode>
マクロブロックのモードを決定 : Default = 0
  • 0 = FF_MB_DECISION_SIMPLE:内部変数 mb_cmp を使用します(画質低)
    1 = FF_MB_DECISION_BITS:必要に応じて最小ビットを選びます
    2 = FF_MB_DECISION_RD:レートの歪曲収差から割り当てる(画質高)
-mbcmp <cmp function>
macroblock compare function
-ildctcmp <cmp function>
ildct compare function
-subcmp <cmp function>
subpel compare function
-cmp <cmp function>
fullpel compare function
-precmp <cmp function>
pre motion estimation compare function
-preme
pre motion estimation
-lelim <elim>
single coefficient elimination threshold for luminance (negative values also consider DC coefficient)
-celim <elim>
single coefficient elimination threshold for chrominance (negative values also consider DC coefficient)
-lumi_mask
luminance masking
-dark_mask
darkness masking
-scplx_mask
spatial complexity masking
-tcplx_mask
temporal complexity masking
-p_mask
inter masking

 

-4mv
マクロブロック毎に four motion vector を利用する。(MPEG4)
  • 変換速度は遅くなるが画像の品質は上がる(同じ品質の場合はファイルサイズが小さくなる)
-obmc
use overlapped block motion compensation (h263+)
-lf
use loop filter (h263+)

 

-part
data partitioning を使用する (MPEG4)
  • 携帯動画では使用しません
  • -ps オプションと組み合わせて使用します
-bug <param>
workaround not auto detected encoder bugs
-strict <strictness>
how strictly to follow the standards

 

-deinterlace
インタレースの解除
  • NTSC 向けのソースを変換した際に発生する、ちらつきや横縞模様が軽減できる場合があります
  • 一般的にインタレースの解除は本来のデータを間引くことを意味します。使用には注意が必要です
-ildct
force interlaced dct support in encoder (MPEG2/MPEG4)
-ilme
force interlaced me support in encoder (MPEG2/MPEG4)

 

-psnr
処理したフレームに対して PSNR を計算する
  • Peak Signal to Noise Ratio:ピーク信号対ノイズ比
  • 携帯動画変換君では使用しません。
-vstats
エンコード情報をファイルに出力
-vhook <module>
insert video processing module
-aic
enable Advanced intra coding (h263+)
-aiv
enable Alternative inter vlc (h263+)
-umv
無制限モーションベクターを有効にする (h263+)
-ssm
enable Slice Structured mode (h263+)
-alt
enable alternate scantable (MPEG2/MPEG4)
-qprd
-cbp

 

-trell
格子量子化を有効にする。
  • 変換速度は遅くなるが画像の品質は上がる(同じ品質の場合はファイルサイズが小さくなる)。

 

-mv0
try to encode each MB with MV=<0,0> and choose the better one (has no effect if mbd=0)
-naq
normalize adaptive quantization
-cgop
closed gop
-sgop
strict gop
-noout
skip bitstream encoding
-scan_offset
enable SVCD Scan Offset placeholder

 

-qpel
1/4画素精度(クォーターペル精度)動き補償を有効にする。
  • 変換速度は遅くなるが画像の品質は上がる(同じ品質の場合はファイルサイズが小さくなる)。
  • 対応していない携帯端末が多い
-intra_matrix <matrix>
specify intra matrix coeffs
-inter_matrix <matrix>
specify inter matrix coeffs

 

-top <n>
フィールドオーダーの指定:Default = -1
  • top=1/bottom=0/auto=-1 指定した数値に対応したフィールドを先に読み込みます

 

-nr
ノイズリダクション(性能は不明、かえって画質が下がる場合もあるので注意)

 

-qns
量子化ノイズ(ブロックノイズ)を軽減する
-sc_threshold <threshold>
シーンチェンジを検出します。検出されたシーンの変わり目の、最初のフレームは Iフレームとして自動的に設定されます。これにより高品位な符号化が維持されます。特にGOPサイズを大きくした設定(Iフレーム間が大きい)に有効です。数値とPSNRを比較したもの、-3000~-10000くらいが最適
  • sc_threshold=0: PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
  • sc_threshold=-10: PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
  • sc_threshold=-20: PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
  • sc_threshold=-30: PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
  • sc_threshold=-100: PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
  • sc_threshold=-200: PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
  • sc_threshold=-300: PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
  • sc_threshold=-400: PSNR: Y:42.06, Cb:45.17, Cr:45.87, All:42.94
  • sc_threshold=-500: PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
  • sc_threshold=-600: PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
  • sc_threshold=-700: PSNR: Y:42.07, Cb:45.17, Cr:45.87, All:42.94
  • sc_threshold=-800: PSNR: Y:42.06, Cb:45.17, Cr:45.87, All:42.94
  • sc_threshold=-900: PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.94
  • sc_threshold=-1000: PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.94
  • sc_threshold=-1100: PSNR: Y:42.07, Cb:45.17, Cr:45.87, All:42.94
  • sc_threshold=-1200: PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.94
  • sc_threshold=-1300: PSNR: Y:42.07, Cb:45.17, Cr:45.87, All:42.94
  • sc_threshold=-1400: PSNR: Y:42.07, Cb:45.17, Cr:45.87, All:42.94
  • sc_threshold=-1500: PSNR: Y:42.07, Cb:45.17, Cr:45.87, All:42.94
  • sc_threshold=-2000: PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.94
  • sc_threshold=-2500: PSNR: Y:42.07, Cb:45.17, Cr:45.87, All:42.95
  • sc_threshold=-3000: PSNR: Y:42.08, Cb:45.18, Cr:45.89, All:42.96
  • sc_threshold=-3500: PSNR: Y:42.08, Cb:45.18, Cr:45.88, All:42.95
  • sc_threshold=-4000: PSNR: Y:42.08, Cb:45.18, Cr:45.88, All:42.96
  • sc_threshold=-4500: PSNR: Y:42.08, Cb:45.18, Cr:45.89, All:42.96
  • sc_threshold=-5000: PSNR: Y:42.08, Cb:45.18, Cr:45.88, All:42.95
  • sc_threshold=-5500: PSNR: Y:42.08, Cb:45.18, Cr:45.88, All:42.96
  • sc_threshold=-6000: PSNR: Y:42.08, Cb:45.18, Cr:45.88, All:42.96
  • sc_threshold=-7000: PSNR: Y:42.09, Cb:45.18, Cr:45.87, All:42.96
  • sc_threshold=-8000: PSNR: Y:42.09, Cb:45.18, Cr:45.87, All:42.96
  • sc_threshold=-9000: PSNR: Y:42.09, Cb:45.18, Cr:45.88, All:42.96
  • sc_threshold=-10000: PSNR: Y:42.09, Cb:45.18, Cr:45.87, All:42.96
-me_range <range>
limit motion vectors range (1023 for DivX player)
-dc <precision>
intra_dc_precision
-coder
coder type
-context
context model
-pred
prediction method
-vprofile
profile
-vlevel
level
-nssew
weight
-subq
-lowres

 

-vtag <fourcc/tag>
ビデオのfourcc/tag(コーデックなどで決められている4文字の名前みたいなもの)を強制する。
  • 中身とタグがちがってると再生できなくなるので通常はいじらないが吉
-skip_threshold <threshold>
フレームスキップの閾値
-skip_factor <factor>
frame skip factor
-skip_exp <exponent>
frame skip exponent
-skip_cmp <compare function>
frame skip compare function

可変ビットレート(VBR)

  • <q> には 1 (最高品質) から 51 (最低品質) の数値が入ります。
  • -qscale 以外のオプションは、主に 2-pass エンコードで使用します

 

-qscale <q>
動画全体の量子化係数を固定する:Default = 0
  • 0 で無効
  • いわゆる 1-pass quality-based のこと、品質固定で符号化します
  • ビットレートは不定になるので、ビットレートによる再生制限の厳しい携帯端末では今ひとつ使い勝手が良くありません。
    再生制限が比較的ゆるい PSP や プレイやん などで使用します。
  • -b -bt オプションの値が無効になります
  • ほとんどの VBR オプションが無効になります

 

-qmin <q>
動画全体の量子化係数の最小値を設定する:Default = 2

 

-qmax <q>
動画全体の量子化係数の最大値を設定する:Default = 31
-lmin <lambda>
min video lagrange factor (VBR)
-lmax <lambda>
max video lagrange factor (VBR)
-mblmin <q>
マクロブロックの量子化係数の最小値を設定する:Default = 2
  • 特に思うところがなければ使用しません
-mblmax <q>
マクロブロックの量子化係数の最大値を設定する:Default = 31
  • 特に思うところがなければ使用しません
-qdiff <q>
フレーム間の量子化係数の最大差を設定する:Default = 3
  • 特に思うところがなければ使用しません
-qblur <blur>
量子化計数が変化した際の変化時間を設定する:Default = 0.5
  • 0.0 - 1.0 秒で設定する
  • 特に思うところがなければ使用しません
-qsquish <squish>
2-pass エンコードで -qmin -qmax の数値をどのように扱うか設定する:Default = 0
  • 0 = -qmin -qmax を保持
    1 = 別な機能を使う
    • 未検証、どなたか試した結果を教えてください。
  • 特に思うところがなければ使用しません
-qcomp <compression>
量子化係数が hard & easy に変化した際の変化時間を設定する:Default = 0.5
  • 0.0 - 1.0 秒で設定する
  • 特に思うところがなければ使用しません