**拡張 x264 出力 (GUI) Ex プラグインとは [#uc26dee5] 拡張x264出力(GUI)Exプラグイン(以下GUIEx)は、x264CLI(x264.exe)というコマンドラインベースのAVC/H.264エンコーダーをGUIで操作できるようにした、AviUtl専用のフロントエンド(出力プラグイン)であり、x264CLIの機能をほぼすべて使えるようになっている。 GUIで操作できるオプションは限定されているが、GUIに設定項目がないオプションをコマンドタブにCLI同様に直接記載するか、またはCLIモードに切り替えて全オプションをCLI同様に直接記載することで対処できる。 **準備 [#uc084e99] GUIExを使用するためにはプラグイン(x264guiEx.auo)、設定ファイル(x264guiEx.ini、x264guiExDefault.iniの二つ)の他にいくつかのツールが必要となる。 -''x264CLI'':並み居る高価格な業務用エンコーダーを品質とスピードで圧倒するオープンソースでクロスプラットフォームなH.264/AVCエンコーダー。 x264.exeと呼ぶ人も多いが、".exe"なんて拡張子はWindows限定のお約束なので、x264CLIというほうが名称としては正しい。 ダウンロードするなら、とりあえず[[ここ>http://x264.nl]]の32bitか64bitの8bit depthというのを選べばよい。 -''NeroAacEnc'':NeroAGが配布しているAACエンコーダー。無料で使えて高品質。 -''MP4Box'':エンコード済の映像データと音声データを結合し、MP4ファイルを作るためのマルチプレクサー 上記3つは必須となるので必ず準備しておくこと。 -''tc2mp4mod'':CFRなMP4ファイルをmatroska timecode formatを使ってVFRなMP4にするためのPerlスクリプト"tc2mp4"を改良/C言語でリライトした、変態VFR動画作成用変態ツール。VFRな動画をうpしたいなら必要かもしれないが、あまりお勧めはしない。 -''qtaacenc'':QuickTime for WindowsのAACエンコーダー用コマンドラインフロントエンド。使用するためには別途QuickTimeをインストールしなければならない。 AAC-LCの音質はNeroよりも良いとの評価だが、HE-AACについては同程度か下と言われる。QuickTimeをWindowsにインストールするリスクもあるため、必須ではない。 **拡張 x264 出力(GUI)Exの設定項目とその機能について [#h2f706ee] 以下の説明内容はGUIEx ver.0.22、及びx264CLI(x264.exe)rev1900現在の情報。 項目名の右の【】内は、対応するx264CLIのオプションとそのオプションのデフォルト。 足りない情報、間違った情報、変更されたオプション等は、見つけたものが追加・修正・削除すること。 :それっぽい解説が記述してあるサイト→|X264 Setting - MeWiki(英語だけど一番詳しくて信頼性が高い) http://mewiki.project357.com/wiki/X264_Settings :|MPlayer and MEncoder on MacOSX - x264コーデックでのエンコード http://www.wikihouse.com/htumenc/index.php?Doc%2Fmenc-feat-x264 -基本 --映像 ---''x264.exeの指定'' エンコードに使用するx264.exeの場所を指定する。 32bitOSの場合は32bit用のx264.exeのみ使用可。 64bitOSなら32bit用か64bit用のどちらでも使用できる。特に64bitOSの場合は、64bit用x264.exeを使用したほうがスピードは速くなる。 ---''シングルパス - 固定ビットレート'' ビットレートを指定して1回だけエンコードを行う。 目標となるビットレートを設定することでエンコード後の容量は予測がつけやすくなるが、ビットが大量に必要になる部分ではビットが不足し、逆にそれほど必要がない部分では無駄にビットを割り振ってしまうため、画質は良くない。 また、x264は厳密な固定ビットレートにはエンコード出来ないため、ビットレートもきっちり指定した通りにはならない。 定められた容量に抑えたいのであればマルチパスエンコードを、1回のエンコードで済ませたいのであれば品質基準VBRを用いるべし。 ---''シングルパス - 固定量子化量''【--qp <integer>】 映像の量子化量、すなわち映像をどれくらい圧縮するかの基準となる値を指定する。値が小さいほど高画質・低圧縮になり、値が大きいほど低画質・高圧縮になる。0に設定すると可逆圧縮になる。(圧縮と呼べるかはわからないが) 固定量子化量では品質基準VBRの項に記したようなビットレートの節約を行わないので、固定量子化量を用いてエンコードすると、品質基準VBRを用いてエンコードしたものに比べて視覚的に同じ品質でも容量だけが大きくなる。 ある開発者曰く「特殊な実験目的以外では使う価値がまったくない」とのこと。 品質基準VBRでエンコードすると汚いので固定量子化量が良いと思った人は、品質基準VBRで後述のビットレート変動量を多めに調整すると良い。 ---''シングルパス - 品質基準VBR''【--crf 23】 映像の視覚的品質を指定する。固定量子化量と同様、値が小さいほど高画質・低圧縮になり、値が大きいほど低画質・高圧縮になる。 品質基準VBRでは人間の視覚では劣化を認知できないような、複雑であったり動きの激しいシーンのqp(量子化量)を上げてビットレートを節約するため、より少ない容量で高画質に見せることが出来る。 エンコード後の容量に制限がない場合であれば、通常品質基準VBRを使う。 ---''マルチパス - 1st PASS'' x264は基本的に品質基準VBRで使うものであるが、品質基準VBRを使用すると出来上がるファイルの容量や平均ビットレートは、実際にエンコードが終了するまでは分からない。 一方、世の中にはファイルサイズやビットレートに制限があるため、これを使えない(使いにくい)事情が存在する(例えばニコニコ投稿用のエンコードとか)。 マルチパスとはあらかじめ1回エンコードを行って動画の情報を収集し、2回目のエンコードで指定されたビットレートをきっちり守りつつ、最善の結果を出すという方式である。 1st PASSを選んだ場合、x264はとりあえずエンコードを1回適当に行って動画のいろいろな情報の下調べを行い、ログファイルを作って記録する。このモードでエンコードされた動画はただの下調べの結果に過ぎないのでかなり酷い出来になりがちである。 ---''マルチパス - Nth PASS'' マルチパスの2回目(もしくは3回目、4回目…)を行う。 1stPASSで収集したログファイルを頼りに、エンコードを行う。これによって出力されたファイルは、ほぼ正確に指定されたビットレートを守りつつ、視覚的品質にも優れたものとなる。(ただし、あくまでも指定されたビットレートの範囲内の品質なので、ビットレートが決定的に不足している場合はどうにもならない)。 基本的に、品質よりもビットレートを目標に合わせる事の方が優先されるので、ファイルサイズがほぼ同一の品質基準VBRとマルチパスエンコードでは、品質基準VBRのほうが見た目がよいといったこともしばしば起こる。 マルチパスの回数は合計2回だけで十分であるが、あまりにも動画のフレーム数が少なすぎ、また動画が動きが激しかったりシーンチェンジが頻発するものである場合は、うまくビットレートをやり繰り出来ず指定した数値を上回ってしまうことがある。このような場合のみ、3回目、4回目…を行うことで、ひょっとするとぎりぎり指定値内に収めることができるかもしれない。それでもダメな場合がほとんどではあるのだが。 ちなみに2回目ですでに指定値内でエンコードできた場合は、それ以後100PASS、1000PASS、10000PASS行っても画質は変わらないか、むしろ下がるだけである。 ---''自動マルチパス'' 自動で指定した回数のマルチパスを行う。 マルチパスエンコードを行う場合、通常はまず1stPASSを行い、その後改めてNthPASSに設定し直して再度エンコードする必要がある。しかし。GUIExは最初にいきなりNthPASSを選んでも、これにチェックを入れておけば、自動で1stPASSを行う設計になっている。 どうしても3PASS以上やりたい人は、行いたい回数だけ数値を上げればよい。 ---''nul出力'' マルチパス出力時に最終パス以外では動画ファイルを出力しない方式。 自動マルチパス出力する際は出力された動画ファイルは自動的に上書きされるので、使用しなくても結果は変わらないが、HDDアクセスが減って少しエンコードが速くなるかもしれない。通常は自動マルチパスと一緒にチェックを入れておくといい。 ---''ターボ'' マルチパスエンコードを行う際、必要最低限のオプション以外を使用しないことによって、1stPASSを時間短縮するモード。CLIでオフにしたいなら--slow-firstpassを付け加える。 具体的な内容は、1stPASSのみ--no-8x8dct --me dia --partitions none --ref 1 --subme 2(ただし元々の設定が1以下の場合は変更なし) --trellis 0 --fast-pskipに変更し、2ndPASS以降は元の設定をそのまま使う。 使用した場合、ひょっとすると2回目以降のパスにおいて必要な情報が得られず画質が下がるかもしれないが、x264開発者によれば「影響はほとんどない」らしい。 ---''ビットレート(kbps)''【--bitrate <integer>】 「シングルパス - 固定ビットレート」もしくはマルチパスにおいて、再生時間1秒あたりの目標データ量を設定(音声を除く)する。単位はキロビット毎秒(kbps)。どれくらいの数値を指定すればよいかは特に決まっていないので、通常は音声との兼ね合いや目標ファイルサイズから計算し、指定可能な最大値を入力する。マルチパスを行わない場合は指定値をオーバーしたりもするが、マルチパスエンコード時の最終出力は、あきらかに無理なものでない限り、ほぼ指定値通りとなる。 一般会員は映像、音声、オーバーヘッド合計で656kbps以下にしなければならない。 ---''マルチパス''【--pass 3】(CLI MODEのみの説明) シングルパスの場合はこのコマンドは使わない。--pass 1はマルチパスの1回目のパスに使う。ログを新たに書き換える。--pass 3ではログを参照しながら書き換える。Nth-passで使う。--pass 2ではログを参照し、書き換えない。最終passでそれまでのログを書き換えたくない場合使う。 すなわちマルチパスでは通常、初回は--pass 1、それ以降は--pass 3と指定しておけばよい。 --デフォルトプリセット ユーザビリティ向上のためx264にはある程度のプリセットが用意されている。普通はこれを使っているだけでも十分に綺麗にエンコードできるが、制限がきついニコニコ向けエンコードの場合、いくつかこれに追加したり変更したりしなければならないこともある。 各プリセットを選択すると、オプションの該当項目のデフォルト値がプリセット値で上書きされる。 ---''速度''【--preset Medium】 ultrafastからplaceboまで全10種類。下に行くほど画質は上がるが遅くなる。 特にplacebo(プラシーボ:偽薬)は遅すぎる上に画質の向上は名前のとおり気のせいレベルという冗談のようなもの。 参考:Doom10 forum "[[Best encode settings?>http://doom10.org/index.php?topic=141.msg1020#msg1020]]" 質問者「presetをveryslowからplaceboに変更したら、どれくらい画質は向上するの?」 Dark Shikari(x264の開発者の一人)「多分1%未満」 しかし世の中にはplaceboよりもさらに遅い設定を使いたがる愚者が多いのもまた事実…。 ''ultrafast'': ref 1, scenecut 0, no-deblock, no-cabac, bframes 0, b-adapt 0,partitions none, no-8x8dct, me dia, subme 0, aq-mode 0, no-mixed-refs, trellis 0, no-mbtree, weightp 0, no-weightb, rc-lookahead 0 ''superfast'': partitions i8x8,i4x4, me dia, subme 1, ref 1, no-mixed-refs, trellis 0, no-mbtree, no-weightb, weightp 0, rc-lookahead 0 ''veryfast'': no-mixed-refs, ref 1, subme 2, trellis 0, weightp 1, rc-lookahead 10 ''faster'': no-mixed-refs, ref 2, subme 4, weightp 1, rc-lookahead 20 ''fast'':ref 2, subme 6, rc-lookahead 30 ''medium'': デフォルト値からの変更なし ''slow'': me umh, subme 8, ref 5, b-adapt 2, direct auto, rc-lookahead 50 ''slower'': me umh, subme 9, ref 8, b-adapt 2, direct auto, partitions all, trellis 2, rc-lookahead 60 ''veryslow'': me umh, subme 10, merange 24, ref 16, b-adapt 2, direct auto, partitions all, trellis 2, bframes 8, rc-lookahead 60 ''placebo'': me tesa, subme 10, merange 24, ref 16, b-adapt 2, direct auto, partitions all, no-fast-pskip, trellis 2, bframes 16, rc-lookahead 60, slow-firstpass(マルチパス時のみ) ---''チューニング''【--tune none】 全8種類。映像の質の調整を行うためのもの(psy-tuning)と、再生環境に応じた調整を行うものの2種類に分類される。デフォルトはnone(変更なし)。 x264CLIは映像の質の調整と、再生環境に応じた調整をそれぞれ選択できるが、GUIExはどれかひとつしか選択できないので、両方使用したい場合はどちらかをコマンドタブに追加する必要がある。 ファイルサイズやビットレートに制限のあるニコニコでは、使用するとかえって悪くなることもある。なお<unset>は変更しないの意味。 [映像の質の調整を行うtune] ''film'':実写(もしくはそれっぽいCG等)映像向け deblock -1:-1, psy-rd <unset>:0.15 ''animation'':アニメ向け ref 各プリセット値が1以上の場合2倍(最大16)、プリセット値が0の場合は1に変更, deblock 1:1, psy-rd 0.4:<unset>, aq-strength 0.6, bframes 各プリセット+2(最大16) ''grain'': 細かい粒子が漂っているような映像向け(アニメや映画の回想シーンとか)。 deblock -2:-2, psy-rd <unset>:0.25, no-dct-decimate, ipratio 1.1, pbratio 1.1, aq-strength 0.5, deadzone-intra 6, deadzone-inter 6, qcomp 0.8 ''stillimage'': 静止画向け deblock -3:-3, psy-rd 2.0:0.7, aq-strength 1.2 ''psnr'': psnr(エンコ前とエンコ後の映像を比較する時に使う計測値)が最大になるようにする。これを使用すると見た目は酷くなる事が多いので普通は使わない。 aq-mode 0, no-psy ''ssim'': psnrと同様で、ssimが最大になるようにする。これまた使えば見た目はひどくなることが結構ある。 aq-mode 2, no-psy [再生環境に応じた調整を行うtune] ''fastdecode'':再生負荷を実用的なレベルで軽減する(画質は下がる)。これを使ってもまだ再生が重いのであれば、あとは平均fpsを落とすか、解像度を下げるか、PCを新しいものに買い換えるかしたほうがよい。 no-deblock, no-cabac, no-weightb, weightp 0 ''zerolatency'':エンコード時のレイテンシ(エンコード前のデータがエンコーダーに入力されてから、エンコード済みのデータとして出力されるまでのタイムラグ)を最小に抑えるための設定。とにかく入れたものを少しでも早く出すために品質等は二の次になっている。基本的に放送、ストリーミング用途のための設定。 b-frames 0, force-cfr, rc-lookahead 0, sync-lookahead 0, slice-threads ---''プロファイル''【--profile high】 H.264には再生環境の互換性を規定するための規格が決められており、各再生環境が対応しているプロファイルによって使用できる機能(オプション)に制限がかかる。FlashPlayerはHighプロファイルに対応しているので、特に機能制限はないと考えてよい。なお、ロスレス(--crf 0 または --qp 0)の場合はこの設定は無視される。 ''baseline'':Baselineプロファイル。旧式携帯電話や旧式iPod等はこのプロファイルでないと再生できない。 no-8x8dct, bframes 0, no-cabac, cqm flat, weightp 0 ''main'':Mainプロファイル。PSP、iPhone等はこのプロファイルでないと再生できない。 no-8x8dct, cqm flat ''high'':Highプロファイル。 オプションの変更なし ---なお各オプションの設定は、次の順番でデフォルト値の上書きを行う。 1:最初にすべてのオプションをデフォルト値に設定 2:速度(--preset)の設定を上書き 3:チューニング(--tune)の設定を上書き 4:ユーザーが個別に設定した値を上書き 5:2パスエンコードの際にturboモードになっていれば(--slow-firstpassを指定していない場合)、1stパスのみturboモード用に変更 6:プロファイル(--profile)の設定を上書き 7:レベル(--level、後述)の設定を上書き --音声 ---''FAWCheck'' FakeAacWavという少々特殊な音声用ツールのためのチェックボックス。使わない場合はチェックを入れないこと。 ---''エンコーダ'' 音声をエンコードするエンコーダを指定。通常はNeroAACエンコーダを指定する。 ---''(エンコーダのアプリケーション名)の指定'' 音声エンコーダーが保存されているパスを指定。上記でNeroAACエンコーダを選択した場合、neroAacEnc.exeの場所を指定する。デフォルトの位置と異なる場合があるので注意。 ---''エンコード設定'' 音声のエンコード方式及び音声1秒間に収める目標データ量を設定。単位はキロビット。 ---''.mp4'' 映像と音声を結合してmp4ファイルにする際に使用するmultiplexer(muxer)の指定。 映像だけのエンコードならば必要はないが、音声のエンコード及び結合を行う場合は必須となる。 [[MP4Box>http://www.mediafire.com/?fcwhwzfgc4fkc]]が必要なので、各自ダウンロードしておくこと。 ''拡張オプション'' 特殊なオプションを使わない場合はチェックは入れないこと。 ''「mp4box.exeの指定」'' MP4Box.exeが保存されているパスを指定する。空欄のままだと音声エンコード後、エラーとなるので必ず指定すること。 ''tc2mp4Mod.exeの指定'' VFRな動画を作らない場合は空欄のままにしておくこと。 ---''.mkv'' 映像と音声の結合してmatroskaファイルにする際に使用するmuxerの指定。''「mkvmerge.exeの指定」''で場所を指定する。 ニコニコ用ではこれは使わない。 -レート・QP制御 --量子化 ---''I-Pフレーム間QP係数(%)'':40【--ipratio 1.4】 IフレームとPフレームの量子化値換算係数。Pフレームを基準に、Iフレームの品質をどれくらいまで上げてよいかを指定する。 値を小さくするとIフレームとPフレームのQP係数は近くなる。ビットレート指定でのエンコードでは、大きくするとPフレームのQPがやたら高くなりがちで平均画質が下がるので、上げすぎはお奨めしない。また、下げすぎるとIフレームの質が低下する。デフォルトのままで問題なし。 (x264本体の設定値) = 1 + (x264gui上の設定値) / 100 ---''B-Pフレーム間QP係数(%)'':30【--pbratio 1.3】 PフレームとBフレームの量子化値換算係数。Pフレームを基準に、Bフレームの品質をどれくらいまで下げてよいかを指定する。なお後述のmbtree使用時は自動的に調整されるため、この値は無視される。 設定値に関してはI-Pフレーム間QP係数と同様。 ---''ビットレート変動量(%)'':60【--qcomp 0.6】 割り当てビットレートの変動許容量。理論上では0に設定すると固定ビットレートと同じ挙動を、1に設定すると固定量子化量と同じ挙動になる。 Dark Shikari氏によると、心理的に最適な値はデフォルトの0.6よりも大きいかもしれないとのこと([[ソース>http://forum.doom9.org/showpost.php?p=1310980&postcount=1]])。特にアニメの場合は0.8程度に設定しても上げすぎではないだろう。 後述のmb-treeの効き目を調節する役割も持つ。 (x264本体の設定値) = (x264gui上の設定値) / 100 ---''QPの下限'':0【--qpmin 0】 最小量子化値。値が小さいほど低圧縮・高画質となり、0では可逆圧縮になる。範囲は0~(qpmaxの値)。 多くのソースではqpが16を下回ってきたあたりから劣化を認知できなくなるとされる。 それほど綺麗じゃなくて良いから容量を抑えたいという場合は、16あたりから徐々に増やして調整していくと良い。 ---''QPの上限'':69【--qpmax 69】 最大量子化値。値が大きいほど高圧縮・低画質となり、51で最高圧縮・最低画質。52以上はVBV-emargencyなる特殊処理時に使用される。範囲は0~69。 この値を30~40あたりまで下げることでqpの幅を自分の意図通りに設定できるかもしれないが、x264は自動でqpを調節しているため、デフォルトから変更するのは非推奨。 ---''最大QP変動幅'':4【--qpstep 4】 連続フレーム間における量子化値の最大変動幅。範囲1~51。 アニメなど場面転換前後の落差が激しい素材では増やしても良いかもしれないが、基本的にデフォルトのままで構わない。 ---''クロマ(色差)QP用オフセット'':0【--chroma-qp-offset 0】 映像の色差のQPを決定する際に適用するオフセット値。 低くすれば色差に関する品質が上がりファイルサイズは膨れるが、効果を視認できるかどうかは定かではない。後述のpsy-rdの設定によっても自動的に調整されるので、あまり弄らない。 --''mb-treeレート制御''【--no-mbtree】 デフォルトON。チェックを外すかコマンド入力でOFF。 映像を先読みしてQPの決定に重み付けを行う(時間軸で映像を観察して、後々重要になりそうな部分の品質を上げておき、どうでもよさそうなところは品質を下げる)。特に動きが少なくて平板な部分が多い動画につかうと、ビットレートを大幅に節約でき、その分全体的な品質の向上が見込める。--qcompの値を上げると効き目が弱くなり、下げると強くなる。 --''レート制御先行検査フレーム数'':40【--rc-lookahead 40】 mbtree等の処理で先読みするフレームの最大数。範囲は0~250。増やせば増やすほどメモリの使用量が上がり、上げすぎればクラッシュの原因になる。 弄らなくてよい。 --Adaptive Quantization(視覚心理適応QP) マクロブロック単位でのQP可変を実行する。 例えば人間の顔がアップで映っている場合、すべて同一QPに設定すると肌がのっぺりして質感が失われる場合がある。 AQを用いると髪の毛や輪郭(高周波部分)のQPを上げてビットを節約し、余ったビットを使って肌(低周波部分)のQPを下げて質感を出すといった事が出来る。 あくまで使えるビット量は変わらないので、全ての部分の画質を向上する事は出来ない。 人間の目で劣化が目立ちにくい部分のビットを削り、劣化が目立ちやすい部分にビットを回してくれるのがVAQである。 ---''モード'':VAQ【--aq-mode 1】 デフォルトはVAQ(--aq-mode 1)、無効(--aq-mode 0)はこの機能を使用しない。AutoVAQ(--aq-mode 2)はVAQのビットレート配分をさらにメリハリをつけたものにする。 なお、前述のmb-treeを使用する場合にはこの機能は必要不可欠なため、mb-treeをonにすると、こちらを無効(--aq-mode 0)にしても強制的に--aq-mode 1 --aq-strength 0に変更される。 ---''強度'':1.00【--aq-strength 1.00】 AQを動作させる強さ。範囲0~3。0に近いほど弱くなってQPの差が少なくなり、数値を大きくするほどQPの差が大きくなる(AutoVAQ使用時はQPの差はさらに激しくなる)。 0でモード無効と同様の結果になる。 アニメ等ディテールに乏しく低周波成分が多いものには0~0.6くらいの弱めの数値を選ぶのが一般的。 FPS等のゲーム動画で壁や地面に発生するブロックノイズに悩まされてる人は、AutoVAQでここを1.0~1.5くらいにしてみるのもいいかもしれない。 --Psy-RD(視覚心理最適化) ---''RDO'':1 ---''trellis'':0【--psy-rd 1.0:0.0】 要subme6以上。書法は--psy-rd <RDO:Trellis>。コマンド--no-psy入力でオフ(0.0:0.0)になる。 視覚心理的に見て複雑とみられる部分や、色が激しく変化する部分などのqp値を下げ、最適化する。 エンコード時に潰れやすい細部やフィルムグレインなどの表現力が高まる。 初期値の1.0:0.0ではビットレートはかなり増えるのでニコニコではオフするか0.5:0.0など低い数値にするほうがいいかも。アニメなどの素材ではオフ(0.0:0.0)にするか0.3:0.0など低い数値がお勧め。 Psy-trellisは細かいディザやグレインを残したい場合に効果的なオプション。ただし、効果が分かりにくくビットレートの消費も大きいため、プレミアム会員でビットレートに余裕がある等の場合以外は非推奨。 -フレーム --マクロブロックタイプの指定 ---''8x8 離散コサイン変換''【--no-8x8dct】 ---''8x8, 8x16 and 16x8 Pフレーム動き補償''【--partitions "p8x8"】 ---''8x8, 8x16 and 16x8 Bフレーム動き補償''【--partitions "b8x8"】 ---''4x4, 4x8 and 8x4 Pフレーム動き補償''【--partitions "p4x4"】 ---''8x8 イントラ動き補償''【--partitions "i8x8"】 ---''4x4 イントラ動き補償''【--partitions "i4x4"】 8x8 離散コサイン変換(8x8dct)を使用するとHigh Profileになる。p4x4はp8x8をつけないと効かない。i8x8は8x8dctが無ければ効かない。 16x16のマクロブロックを、場面やフレームタイプに応じてさらに細かく分割できるようにしましょうというもの。 8x8 離散コサイン変換はブロックを8x8にしてDCT処理を行なうことを可能にするためのオプション。i4x4の数が減るためビットレートが効果的に節約されて再生負荷も下がる。mainプロファイルまでしか対応していないポータブルメディアプレイヤーで再生するなどの制限がない限り、ONにしたほうがよい。 他項目は量子化の際に使われるブロックサイズ。高画質を狙うならばチェックを多くつけておいたほうが良い。だたし、多くつけると再生負荷も大きくなる。p4x4は得られる画質の向上に比べてエンコード負荷が大きいので、切るのもアリ。 全部使う場合コマンドは --partitions all。デフォルトはp4x4以外ON。【--8x8dct --partitions "p8x8,b8x8,i8x8,i4x4"】 --Group of Pictures(GOP) ---''シーンカット閾値'':40【--scenecut 40】 シーンチェンジを検出するしきい値=Iフレームの挿入しやすさ。値を大きくするとIフレームの検出が多くなる。0にすると全く検出を行なわなくなり、Iフレームの間隔が--keyintの値に固定される(--no-scenecut)。 初期値から変更しなくて問題ない。シーンチェンジの検出が増えると大した場面転換でない画面の変化でもIフレームを挿入するようになるため、品質基準VBRではファイルサイズが大きくなり、2パスエンコードの場合は画質が落ちる。また値が小さいと適正箇所にIフレームが入らない。シーク間隔を調整する目的以外でこれをいじる必要はない。 以下の条件式を満たすとき、I-frameが挿入される模様。 100 * (1 - (P-frameのビットサイズ) / (I-frameのビットサイズ) ) < scenecut * (直前のIDR-frameとの間隔) / keyint ---''キーフレーム間隔の下限'':自動【--min-keyint auto】 IDR-frames間の最小間隔。 最小GOP(Group Of Pictures)サイズ。新しいIDR-frameが挿入され、次のGOPが始まるまでに連続するフレーム数の下限を指定する。min-keyintの値より短い間隔で場面転換があった場合、x264は場面転換をIフレームとしてエンコードし、新しいGOPを開始しない。 映像の切り替わるところを確実にシークポイントにしたい場合はこれを1にすること。ただし1に設定した場合、IDR-frameより前にある同じようなフレームを参照出来ず、ビットを無駄に使う可能性はある。 自動の場合は、入力された映像のfpsの値か、次のkeyintの値の10分の1のうち、小さいほうの値に設定される。 ---''キーフレーム間隔の上限'':250【--keyint 250】 IDR-framesの最大間隔。fps×10が一般的。直前のIDR-frameとの間隔がkeyintの値になった場合、強制的にIDR-frameを挿入する。 大きくするとIDRフレームの数が減って、相対的に必要なビットレートが下がる(画質があがる)かもしれないが、シークが効きにくい(下手するとまったく出来ない)動画になることもある。 直前のIDR-frameとのフレーム間隔がkeyintの値に近づくとI-frameを挿入しやすくなるため、keyintを大きくするとscenecutによるI-frameの挿入も行われにくくなる。 ちなみにデフォルトが250なのは、x264の初代開発リーダーLorent Aimer氏がフランス人だから(フランスで採用されているテレビ放送規格SECAMは25fps)。 --Bフレーム設定 ---''最大Bフレーム連続数'':3【--bframes 3】 B-Frameの最大連続数、初期値は3。範囲0~16で、0はB-Frame無し。この値を大きくすると圧縮率が向上する可能性がある。1以上でMP4コンテナではディレイフレームが1枚発生する。--b-adapt 2の場合は2~4推奨。 ---''適応的Bフレーム挿入'':簡易【--b-adapt 1】 最大連続数の範囲でBフレームに適するものをBフレームとし、適さないものをPフレームとする。無効(--b-adapt 0)にすると常に--bframesで設定した枚数を連続して使う(非推奨)。 簡易(--b-adapt 1)は高速な簡易判定を行う。完全(--b-adapt 2)にすると正確な判定を行うが1pass目が--bframesの数に応じて低速になる。 エンコードに時間的な余裕があるなら完全(2)が良い。 ---''Bフレーム挿入傾向'':0【--b-bias 0】 B-Frameの挿入傾向を調整。範囲は-90~100。 一般的に0で問題ない。プラス方向に補正するとB-Frameの使用量が増大し、マイナス方向に補正すれば減少する。どちらにしても画質が劣化する可能性のほうが高い。 ---''ピラミッド参照化'':normal【--b-pyramid "normal"】 none(0)、strict(1)、normal(2)の3種類。 デフォルトはnormal。B-FrameでI-FrameとP-Frameだけでなく、B-Frameからの参照も許可するためのオプション。使用するには--bframes が2以上必要。エンコードのスピードと画質は少し上昇するが、FlashPlayerで再生する場合、MP4コンテナ使用時のディレイフレームが2枚に増え、再生負荷も若干上がる。 strictは実質ブルーレイディスクの規格に適合させるための方式で、normalはx264独自の方式。普通に使う分にはstrictを使用する利点はほぼ無い。再生負荷を下げたい場合はnoneに変更する。 ---''open-GOP'':none【--open-gop "none"】 open-GOPを使用するかどうかの設定。BD用エンコード以外でこれを使うのは地雷に等しい(よく考えないで使用すれば後悔することになる)。 ちなみにこれをmp4に使用した場合、FlashPlayerではまったくseek出来ないファイルになる。 --''CABAC'':on【--no-cabac】 デフォルトon。チェックをはずすかコマンド--no-cabac追加でoff。 Context-based Adaptive. Binary Arithmetic Codingの略。使えば画質はかなり向上するが再生負荷はそれ以上に跳ね上がる。 無効にすると再生時の負荷が大幅に減少するが、ビットレートが元々足りないような動画でこれを切ると、画質は大幅にダウンする。 再生負荷軽減を図る場合には真っ先に切られるオプションの第一候補。 --''スライス数'':0【--slices】 フレームを分割処理する場合の分割数。 基本的にこれは使わないほうがよいので0のまま弄らないこと。 --''インループデブロックフィルタ'':on,0,0【--deblock 0:0】off:--no-deblock MPEG系は量子化のプロセスや動き補償の結果、隣接したブロックの符号化でアーティファクトが発生する。H.264ではこれを軽減するためにDeblocking filterを導入。その動作からインループ・フィルターともいわれる。 Strength(強度)とThreshold(閾値)のパラメータがあるが、+方向に動かして強くするとぼやけた感じに、-方向に動かすとくっきりとした感じの絵となる。範囲は-6~+6。映像がぼやけているように感じられる場合、ビットレートが十分であれば0より小さい値に設定しても良いかもしれない。ただし、0から値を動かすとSSIMやPSNRは低下するため、動かすにしても±1程度に収めておいたほうが無難だと思われる。 輪郭を強調したいのであればエッジレベル強調などのフィルタを使用すべし。 デコードが重くなるオプションなので、再生負荷軽減のため画質劣化を許容できるのであれば切るのもあり。 --''インターレス保持''【--tff, --bff】 インターレースでエンコードする際のみonにする。--tffでトップフィールドファースト、--bffでボトムフィールドファーストになる。 FlashPlayerはインターレース非対応なので、これは使ってはいけない。 -詳細 --動き予測 ---''動き予測アルゴリズム'':Hexagonal Search【--me "hex"】 「Diamond Search【"dia"】([[解説>http://www.marumo.ne.jp/db2005_1.htm#18]])」、「Hexagonal Search【"hex"】」、「Uneven Multi-Hexagon search【"umh"】([[解説>http://www.marumo.ne.jp/db2005_1.htm#7]])」、「Exhaustive Search【"esa"】([[解説>http://www.marumo.ne.jp/db2005_1.htm#7]])」、「Hadamard Exhaustive Search【"tesa"】」の5種類。 diaは最も精度が低く、tesaは最も精度が高い。また、速度はdiaが最も速く、tesaが最も遅い([[5種の処理時間比較グラフ>http://kenknown.blog42.fc2.com/blog-entry-98.html]])。 精度が高いほうが画質、圧縮効率が良いが、多くの場合esaやtesaを指定してもumhとほとんど変わらない。それに引き換え、総当たりで検出するExhaustive Search(esa)とHadamard Exhaustive Search(tesa)は膨大な時間が掛かるため、余程時間に余裕がある場合でなければ使わない方が良い(特にtesaは現在までに何度か高速化のための手直しをされてきたが、それでもまだまだ遅い)。 通常はHexagonal Searchか、検索精度と速度のバランスが優れているUneven Multi-Hexagonを使うのが良い。Diamond Searchも、あまり動きの激しくない素材ならばよいかもしれない。 ---''サブピクセル動き予測'':7【--subme 7】 0から10までの11段階。7と9を使う場合は要--bframes 1以上。10(QP-RD)を使う場合は後述の--aq-modeを1か2、--trellisを2にする必要がある。 7以上推奨。高いほど画質が上がるが遅くなる。 なお、1st passでもsubme 0は実験的な用途以外では使わない方が良い。 ---''動き検索範囲'':16【--merange 16】 動き探索につかわれるpredictor(予測器)の距離。meがdiaかhexの場合は4~16まで、meがumh、esa、tesaの場合はx264guiでは4~64まで指定できる。 8~24を推奨。動画の解像度が高い場合は、ある程度大きな数字にした方が効果が高くなるが、非常に時間がかかる。SD解像度で8~16、HD解像度でも24あれば十分といわれている。現在の一般的な動画においてこれ以上の値に設定しても、得られる効果はplaceboと判断されるケースがほとんどであろう。また大きくし過ぎると誤判定を起こすこともあるため、やりすぎはよくない。 ---''色差動き予測'':on【--no-chroma-me】 色情報による動き検出を使うかのオプション。通常はON。チェックを外すか上記コマンド入力でOFF。 ---''動き予測方式'':Spatial【--direct "Spatial"】 B-Framesの中に「ダイレクト」というマクロブロックタイプがあった時に、そこで使うモーションベクトルの予測方式。Autoでフレーム毎に最適な方式を選ぶ。 Spatialは2D優先、Temporalは3Dの時間軸を考慮して圧縮を行なう。圧縮率は後者が優れているが、副作用で残像が残る可能性があるので、Autoにしておくのが良い。Noneは最も遅い上に画質も最悪なので、使わない方がいい。 ---''参照距離'':3【--ref 3】 参照に使えるフレームの最大距離数。範囲1~16(0を指定すると1として扱われる)。1は複数参照しない。2以上で複数参照可能になる。 これを高くしすぎると動画を再生する際のメモリ消費量が増え、PC以外の再生ハード(BDプレーヤー、PS3、PSP、iPod等)での再生において、互換性に問題が生じることがよく起こる。またあまり増やすとエンコードにかかる時間が増えるので、せいぜい6程度までにしておくほうが無難である。 ---''混合参照'':on 【--no-mixed-refs】 デフォルトはon。チェックを外せばoff(CLIなら上記コマンド追加でoff)。 サブブロック単位で参照するフレームを変える。画質、圧縮効率は上がり、エンコード、デコードは遅くなる。 --詳細設定 ---''重み付け予測'':Bフレーム on 【--no-weightb】、Pフレーム Smart【--weightp 2】 デフォルトはBフレームはon、チェックを外すか上記コマンド--no-weightbを追加でoff。PフレームはデフォルトはSmart analysis(--weightp 2)。B-Frame、P-Frameに参照する前後(Pは前方だけ)のフレームからの距離に応じた補正をかける。 フェードインやフェードアウトの圧縮効率改善を狙ったもので、B-Frameに関しては--b-adapt 2で正確な重み付け予測ができる。--b-adapt 1での効果はいまいちのよう。 P-Frameに関してはデフォルトはSmart(Weighted refs + Duplicates)になっている。これはSimple(Weighted refs)[r1802での変更]よりも効果が高い。なお、いくつかのデコーダーにおいて、weightp 2を使うと映像が壊れる(ブロックが発生する)現象が確認されている。これにはFlashPlayer10.0も含まれており、修正は10.1で行われた。 参考:[[The spec-violation hall of shame(恥知らずな規格違反者たちの殿堂)>http://x264dev.multimedia.cx/?p=212]] --''ノイズ除去'':0【--nr 0-100000】 デフォルトは0(off)。Wienerフィルタを使ったDCTドメインのノイズリダクション。MPlayerやAviSynthの相当品(hqdn3d)より高速で、実用範囲は100-200。 H.264規格には本来存在しないが、素材の圧縮工程に入る前に適用するので、再生機器やデコーダの機能とは関係なく使える(単にAviSynthでフィルタをかけるようなもの)。 前述の--psy-rdと効果が対立するため、どちらかしか使えない。両方使用しようとすると両方無効となる。 --''スキップMB検出'':on【--no-fast-pskip】 デフォルトon、チェックをはずすか上記コマンド追加でoff。スキップ検出の非使用。offにするとエンコードは遅くなるが、特にいいことはない。 --''DCT係数間引き'':on【--no-dct-decimate】 デフォルトon、チェックをはずすか上記コマンド追加でoff。動画圧縮は映像の細かい部分を省略するようなもので、その為に様々な手法を組み合わせて使う。dct decimateもその一つ。切ると忠実度は上がるが、必要なビットレートも上がる。 デフォルトのONのままで構わない。画質を向上させたいならビットレートを上げるかcrfをより小さい値に設定するのが筋。 --''レート歪み最適化'';Last MB Encode【--trellis 1】 Trellis RDO の適用。最終マクロブロックのみか、常時かを選択。 DCT(Discrete Cosine Transform)で失われた情報を回復させて画質を若干向上させるモードを使用するかどうかのオプション。コマンドは順に0(None),1(Last MB Encode),2(All MB Encode)で数字が大きいほど画質優先で遅くなる。 --''量子化マトリックス'':flat【--cqm flat】 CQMはカスタム量子化マトリクス(Custom Quantisation Matrix)のこと。デフォルトのflatマトリクスかjvtマトリクス、もしくは自分で用意したファイルを選択する。 量子化マトリクスは格子状にならんだ数字(数学で言う行列)で、個々の数字をquantum(量子/量子化マトリクスの値)として扱う。この個々の数字が元の映像データをどのくらい破棄するかを決める。個々の数字が大きなマトリクスは映像がソフトになり、小さなマトリクスは映像のディティール保持率があがる。x264のデフォルトは "flat 16" マトリクスを使う。これは全ての数字が16で埋まっているもので、デコードの際に特別な扱いが不要なもの(Main Profile以下)。カスタム量子化マトリクスはHigh Profileの機能で、デコーダ側のサポートが必要となる。 x264の場合、下手にいじってもいいことはないのでflat推奨。 -出力、その他 --色空間 ---''colormatrix'':undef【--colormatrix "undef"】 YUV-RGB変換をプレーヤー(デコーダーやフィルターやレンダラー)が行う際に使用するマトリクス(行列)を強制する。 PC用モニター等RGBしか表示出来ないものでYUVで圧縮された動画を再生する場合は、YUV-RGB変換は不可欠であるが、この処理(計算)を行う際には、SD解像度(縦解像度が720未満)の場合はBT.601(SMPTE170m もしくは BT.470bg)、HD解像度(縦が720以上)の場合はBT.709と呼ばれる行列を使用することと国際規格で決められている。 これは本来、再生側が解像度から自動的に判別するのが望ましいのではあるが、世の中にはそうなっていないものも多く存在する(わざとだったり、単なる無知によるものだったり原因は様々である)ため、動画にこの情報を埋め込むことで再生側に使用する行列を指定することが必要な場合がある。 FlashPlayer10.0以降は、これが指定されていない場合、すべてHD規格用のBT.709を使用する困った仕様(SD解像度の動画は色がおかしくなる)になっているため、自分で指定してやる必要がある。 GUIExを使う場合はautoにしていればAviUtlの「設定」->「色変換の設定」の出力の設定を自動的に反映するため、autoにすればよい。 ---''colorprim'':undef【--colorprim "undef"】 CIE(国際照明委員会)が1931年に定めたxy色度図における各色の座標を指定する。意味がわかって正しく指定できる人のみが設定できる(意味はわかっていても正しく指定できない場合が多い)。こういった場合は仕方がないのでundef(再生環境におまかせ)にする。 ---''transfer'':undef【--transfer "undef"】 ガンマ特性を指定する。これまた意味がわかっていて正しく指定できる人のみが設定できる。たいていの場合は意味がわからない or 意味はわかっても指定できないのでundef(再生環境におまかせ)にする。 参考:下記のITU(国際電気通信連合)のページからダウンロードできるH.264の勧告書(pdf)のVUI semanticsのページ [[http://www.itu.int/rec/T-REC-H.264-201003-I/en]] ---''fullrange'':off【--fullrange off】 入力された映像のYUVのlevelがfullrange(YUVすべて0~255)か否(Y:16-235,UV:16-240)かを指定する。拡張色調補正フィルタやYC伸張フィルタ等を使っていなければ、offのまま(チェック無し)でよい。 --アスペクト比【--sar 0:0】 SampleAspectRatio(別名PAR:PixelAspectRatio)の設定。再生側に情報として渡されるピクセル単位のアスペクト比の情報。無指定なら1:1と同じ。ニコニコではこれは指定していても無視されるので、いじる意味がない。エンコード前にフィルタでリサイズや黒ベタ追加、クリッピング等をきっちり行っておくこと。 --ログ出力 ---''ログ表示'':info【--log-level "info"】 x264がLogに書き出す情報の種別。通常はinfo(変更なし)で構わない。いろいろ画質を追求したりしたければ、まずはこのログの読み方を覚えよう。読み方に関しては[[こちらを参照>http://forum.doom9.org/showthread.php?p=1039674#post1039674]] ---''PSNR'':off【--psnr】 ---''SSIM'':off【--ssim】 エンコード時にPSNRやSSIMを計算するかどうかの設定。 チェックを入れるとPSNR、SSIMを計算し、エンコード終了時にログに計算結果を表示する。計算する場合は、エンコードにかかる時間がほんの若干増える。 --''H.264 Level''【--level】 細かい説明は省略。詳細は前述したH.264の勧告書の「Annex A - Profiles and levels」のページなどを参照のこと。 現在のx264は、levelの自動調節機能を実装している。これを指定すると、x264は指定レベルに収まるように各値を自動的に調整してくれる(1920x1080iの動画で--preset veryslow --profile high --level 4.1とすれば、--refは自動的に3まで減る等)。 これを指定しない場合は、x264は使用されたオプション類からLevelを計算する。 --''videoformat'':undef【--videoformat "undef"】 NTSCやPALといった国際標準規格に沿って作られている動画である場合にのみ指定する。ニコニコ投稿用エンコの場合はundef(定義なし)のままが一番よい。 --''aud付加'':off【--aud】 access unit delimiterを使用する場合のみチェックをonにする。BD用にエンコードする場合以外では使用してもいいことはまずないので、チェックは要らない。 --''スレッド数'':0【--threads 0】 x264のスレッド数の指定。0だと自動でCPU数を検索し、Core2Quadなら6、Corei7ならHTT有効だと12のように論理CPU数の1.5倍の数値になる(推奨)。 エンコード以外の作業を並行して行いたい場合、これを指定して使用するCPUスレッドを下げても良いが、CPUをフルに使えなくなるのでまずプロセスの優先度を下げることを勧めたい。 CPU使用率が低いからと言って自動の値より大きくしても、効果はないかむしろ悪くなるだけなのでいじる必要はない。 --''スライスベースマルチスレッド'':off【--sliced-threads】 デフォルトoff、チェックでスレッド分割をスライスベースでサポートする。使うと総エンコ時間が長くなり、圧縮率と画質は落ちる。 BDエンコ用、もしくはHDサイズのリアルタイムストリーミング用オプション。 AviUtlでリアルタイムストリーミング用エンコードを行うことはまずありえないので、使うとすればBD用エンコードと言うことになる。当然、ニコニコ向けエンコードでは使用する必要も意義もまったくない。 --''タイムコード入力'' mkv用timecode format(v1かv2)を使用することにより、自動的にVFR化された動画を作るためのオプション。 -コマンド 上記のGUIで設定できないオプションはここに直接コマンドを記載することで使用する。コマンドを記載した場合は必ず右下の「画面に反映」ボタンを押すこと(押さなかった場合は無視される)。 なお、ここにGUIでも設定できるオプションを記載した場合は、GUIにおける設定はこちらの内容で上書きされる。 --追加したほうがいいかもしれないオプション ---''dts-compress'' mp4出力する際に、Bフレーム由来の音ずれの発生を防ぐためのオプション。 まともな再生環境であればこれ(音ずれ)は通常起こらないのだが、FlashPlayerはあまりまともではないので起こる(1、2フレーム程度、映像が遅れて表示される)。 以前はこれ(dts-compressまたは初期ディレイカット)を使うと、エコノミー時間帯用にsmileサーバーによってエンコードされた動画の品質が異常に落ちるため非推奨とされていたが、どうやら2010年末あたりに改善されたらしい。よって、ニコニコ投稿用動画であれば使用はアリ。 -拡張設定 x264には本来存在しない、拡張x264出力プラグイン独自の機能を設定する。 --''自動フィールドシフトv7対応'' デフォルトはオフ。AviUtlの自動フィールドシフトプラグインを使用している場合以外はチェックを入れてはいけない。 --''YUY2->YV12変換にSSE2を使用'' SSE2搭載CPU(Pentium4以降)であれば、チェックを入れたほうがエンコード速度は速くなるだろう。 --''Timecode.txt出力'' デフォルトはオフ。オンにすると、Timecodev2ファイルが映像ファイルと同時に出力される。 ソースがVFR(可変フレームレート)の場合はチェックをいれ、エンコード後にtc2mp4mod?などで出力したTimecodev2と動画をmuxする。一般的な動画はCFR(固定フレームレート)で関係ないので、よくわからない場合はオフで問題ない。 --''非afs時でもAviUtlのキーフレーム検出をスキップする'' デフォルトはオフ。チェックを入れると、AviUtlのキーフレーム設定を無視する代わりに、すぐにエンコードが始まる。 AviUtlのキーフレーム設定を利用してIDRフレーム挿入をコントロールする場合以外は常にチェックをしておくこと。 --''x264.exeの優先度 デフォルトはaviutl sync(AviUtlのファイル->環境設定->優先度の設定と同じ)。 この手の優先度設定はnormal以上にすると不具合の原因になることがほとんどであるため、AviUtl、x264ともにnormal以上は使わないのが普通である。どちらもいじらないか、x264の優先度はむしろlowかlowestに下げるほうがよい。 --''一時ファイル格納先 一時ファイル出力先を指定する。 エンコード前の入力ファイルの場所と保存先の場所が同じ物理ドライブになっている場合は、これで別の物理ドライブの場所を指定しておくことでHDDの読み書き時に発生するボトルネックを解消できるだろう。 **拡張 x264 出力 (GUI) Ex CLI MODE (& x264CLI 全機能) [#hb20c565] 拡張x264出力(GUI)Exの設定画面の右上にある「CLI MODE」ボタンを押すと、x264.exeをCLIで使用するのと同じ状態になる。 以下にx264CLIの全オプション(x264.exe --fullhelp)を転載する。(内容はx264.nlのものに準拠) x264 core:112 r1900 60ef1f8 Syntax: x264 [options] -o outfile infile Infile can be raw (in which case resolution is required), or YUV4MPEG (*.y4m), or Avisynth if compiled with support (yes). or libav* formats if compiled with lavf support (yes) or ffms support (yes). Outfile type is selected by filename: .264 -> Raw bytestream .mkv -> Matroska .flv -> Flash Video .mp4 -> MP4 if compiled with GPAC support (yes) Output bit depth: 8 (configured at compile time) Options: -h, --help List basic options --longhelp List more options --fullhelp List all options Example usage: Constant quality mode: x264 --crf 24 -o <output> <input> Two-pass with a bitrate of 1000kbps: x264 --pass 1 --bitrate 1000 -o <output> <input> x264 --pass 2 --bitrate 1000 -o <output> <input> Lossless: x264 --qp 0 -o <output> <input> Maximum PSNR at the cost of speed and visual quality: x264 --preset placebo --tune psnr -o <output> <input> Constant bitrate at 1000kbps with a 2 second-buffer: x264 --vbv-bufsize 2000 --bitrate 1000 -o <output> <input> Presets: --profile Force the limits of an H.264 profile [high] Overrides all settings. - baseline: --no-8x8dct --bframes 0 --no-cabac --cqm flat --weightp 0 No interlaced. No lossless. - main: --no-8x8dct --cqm flat No lossless. - high: No lossless. - high10: No lossless. Support for bit depth 8-10. --preset Use a preset to select encoding settings [medium] Overridden by user settings. - ultrafast: --no-8x8dct --aq-mode 0 --b-adapt 0 --bframes 0 --no-cabac --no-deblock --no-mbtree --me dia --no-mixed-refs --partitions none --rc-lookahead 0 --ref 1 --scenecut 0 --subme 0 --trellis 0 --no-weightb --weightp 0 - superfast: --no-mbtree --me dia --no-mixed-refs --partitions i8x8,i4x4 --rc-lookahead 0 --ref 1 --subme 1 --trellis 0 --weightp 1 - veryfast: --no-mixed-refs --rc-lookahead 10 --ref 1 --subme 2 --trellis 0 --weightp 0 - faster: --no-mixed-refs --rc-lookahead 20 --ref 2 --subme 4 --weightp 1 - fast: --rc-lookahead 30 --ref 2 --subme 6 --weightp 1 - medium: Default settings apply. - slow: --b-adapt 2 --direct auto --me umh --rc-lookahead 50 --ref 5 --subme 8 - slower: --b-adapt 2 --direct auto --me umh --partitions all --rc-lookahead 60 --ref 8 --subme 9 --trellis 2 - veryslow: --b-adapt 2 --bframes 8 --direct auto --me umh --merange 24 --partitions all --ref 16 --subme 10 --trellis 2 --rc-lookahead 60 - placebo: --bframes 16 --b-adapt 2 --direct auto --slow-firstpass --no-fast-pskip --me tesa --merange 24 --partitions all --rc-lookahead 60 --ref 16 --subme 10 --trellis 2 --tune Tune the settings for a particular type of source or situation Overridden by user settings. Multiple tunings are separated by commas. Only one psy tuning can be used at a time. - film (psy tuning): --deblock -1:-1 --psy-rd <unset>:0.15 - animation (psy tuning): --bframes {+2} --deblock 1:1 --psy-rd 0.4:<unset> --aq-strength 0.6 --ref {Double if >1 else 1} - grain (psy tuning): --aq-strength 0.5 --no-dct-decimate --deadzone-inter 6 --deadzone-intra 6 --deblock -2:-2 --ipratio 1.1 --pbratio 1.1 --psy-rd <unset>:0.25 --qcomp 0.8 - stillimage (psy tuning): --aq-strength 1.2 --deblock -3:-3 --psy-rd 2.0:0.7 - psnr (psy tuning): --aq-mode 0 --no-psy - ssim (psy tuning): --aq-mode 2 --no-psy - fastdecode: --no-cabac --no-deblock --no-weightb --weightp 0 - zerolatency: --bframes 0 --force-cfr --rc-lookahead 0 --sync-lookahead 0 --sliced-threads --slow-firstpass Don't force these faster settings with --pass 1: --no-8x8dct --me dia --partitions none --ref 1 --subme {2 if >2 else unchanged} --trellis 0 --fast-pskip Frame-type options: -I, --keyint <integer or "infinite"> Maximum GOP size [250] -i, --min-keyint <integer> Minimum GOP size [auto] --no-scenecut Disable adaptive I-frame decision --scenecut <integer> How aggressively to insert extra I-frames [40] --intra-refresh Use Periodic Intra Refresh instead of IDR frames -b, --bframes <integer> Number of B-frames between I and P [3] --b-adapt <integer> Adaptive B-frame decision method [1] Higher values may lower threading efficiency. - 0: Disabled - 1: Fast - 2: Optimal (slow with high --bframes) --b-bias <integer> Influences how often B-frames are used [0] --b-pyramid <string> Keep some B-frames as references [normal] - none: Disabled - strict: Strictly hierarchical pyramid - normal: Non-strict (not Blu-ray compatible) --open-gop <string> Use recovery points to close GOPs [none] - none: Use standard closed GOPs - normal: standerd open GOPs (not Blu-ray compatible) - bluray: Blu-ray-compatible open GOPs Only available with b-frames --no-cabac Disable CABAC -r, --ref <integer> Number of reference frames [3] --no-deblock Disable loop filter -f, --deblock <alpha:beta> Loop filter parameters [0:0] --slices <integer> Number of slices per frame; forces rectangular slices and is overridden by other slicing options --slice-max-size <integer> Limit the size of each slice in bytes --slice-max-mbs <integer> Limit the size of each slice in macroblocks --tff Enable interlaced mode (top field first) --bff Enable interlaced mode (bottom field first) --pulldown <string> Use soft pulldown to change frame rate - none, 22, 32, 64, double, triple, euro (requires cfr input) --fake-interlaced Flag stream as interlaced but encode progressive. Makes it possible to encode 25p and 30p Blu-Ray streams. Ignored in interlaced mode. --frame-packing <integer> For stereoscopic videos define frame arrangement - 0: checkerboard - pixels are alternatively from L and R - 1: column alternation - L and R are interlaced by column - 2: row alternation - L and R are interlaced by row - 3: side by side - L is on the left, R on the right - 4: top bottom - L is on top, R on bottom - 5: frame alternation - one view per frame Ratecontrol: -q, --qp <integer> Force constant QP (0-69, 0=lossless) -B, --bitrate <integer> Set bitrate (kbit/s) --crf <float> Quality-based VBR (0-51, 0=lossless) [23.0] --rc-lookahead <integer> Number of frames for frametype lookahead [40] --vbv-maxrate <integer> Max local bitrate (kbit/s) [0] --vbv-bufsize <integer> Set size of the VBV buffer (kbit) [0] --vbv-init <float> Initial VBV buffer occupancy [0.9] --crf-max <float> With CRF+VBV, limit RF to this value May cause VBV underflows! --qpmin <integer> Set min QP [10] --qpmax <integer> Set max QP [69] --qpstep <integer> Set max QP step [4] --ratetol <float> Tolerance of ABR ratecontrol and VBV [1.0] --ipratio <float> QP factor between I and P [1.40] --pbratio <float> QP factor between P and B [1.30] --chroma-qp-offset <integer> QP difference between chroma and luma [0] --aq-mode <integer> AQ method [1] - 0: Disabled - 1: Variance AQ (complexity mask) - 2: Auto-variance AQ (experimental) --aq-strength <float> Reduces blocking and blurring in flat and textured areas. [1.0] -p, --pass <integer> Enable multipass ratecontrol - 1: First pass, creates stats file - 2: Last pass, does not overwrite stats file - 3: Nth pass, overwrites stats file --stats <string> Filename for 2 pass stats ["x264_2pass.log"] --no-mbtree Disable mb-tree ratecontrol. --qcomp <float> QP curve compression [0.60] --cplxblur <float> Reduce fluctuations in QP (before curve compression) [20.0] --qblur <float> Reduce fluctuations in QP (after curve compression) [0.5] --zones <zone0>/<zone1>/... Tweak the bitrate of regions of the video Each zone is of the form <start frame>,<end frame>,<option> where <option> is either q=<integer> (force QP) or b=<float> (bitrate multiplier) --qpfile <string> Force frametypes and QPs for some or all frames Format of each line: framenumber frametype QP QP is optional (none lets x264 choose). Frametypes: I,i,P,B,b. K=<I or i> depending on open-gop setting QPs are restricted by qpmin/qpmax. Analysis: -A, --partitions <string> Partitions to consider ["p8x8,b8x8,i8x8,i4x4"] - p8x8, p4x4, b8x8, i8x8, i4x4 - none, all (p4x4 requires p8x8. i8x8 requires --8x8dct.) --direct <string> Direct MV prediction mode ["spatial"] - none, spatial, temporal, auto --no-weightb Disable weighted prediction for B-frames --weightp <integer> Weighted prediction for P-frames [2] - 0: Disabled - 1: Blind offset - 2: Smart analysis --me <string> Integer pixel motion estimation method ["hex"] - dia: diamond search, radius 1 (fast) - hex: hexagonal search, radius 2 - umh: uneven multi-hexagon search - esa: exhaustive search - tesa: hadamard exhaustive search (slow) --merange <integer> Maximum motion vector search range [16] --mvrange <integer> Maximum motion vector length [-1 (auto)] --mvrange-thread <int> Minimum buffer between threads [-1 (auto)] -m, --subme <integer> Subpixel motion estimation and mode decision [7] - 0: fullpel only (not recommended) - 1: SAD mode decision, one qpel iteration - 2: SATD mode decision - 3-5: Progressively more qpel - 6: RD mode decision for I/P-frames - 7: RD mode decision for all frames - 8: RD refinement for I/P-frames - 9: RD refinement for all frames - 10: QP-RD - requires trellis=2, aq-mode>0 --psy-rd Strength of psychovisual optimization ["1.0:0.0"] #1: RD (requires subme>=6) #2: Trellis (requires trellis, experimental) --no-psy Disable all visual optimizations that worsen both PSNR and SSIM. --no-mixed-refs Don't decide references on a per partition basis --no-chroma-me Ignore chroma in motion estimation --no-8x8dct Disable adaptive spatial transform size -t, --trellis <integer> Trellis RD quantization. Requires CABAC. [1] - 0: disabled - 1: enabled only on the final encode of a MB - 2: enabled on all mode decisions --no-fast-pskip Disables early SKIP detection on P-frames --no-dct-decimate Disables coefficient thresholding on P-frames --nr <integer> Noise reduction [0] --deadzone-inter <int> Set the size of the inter luma quantization deadzone [21] --deadzone-intra <int> Set the size of the intra luma quantization deadzone [11] Deadzones should be in the range 0 - 32. --cqm <string> Preset quant matrices ["flat"] - jvt, flat --cqmfile <string> Read custom quant matrices from a JM-compatible file Overrides any other --cqm* options. --cqm4 <list> Set all 4x4 quant matrices Takes a comma-separated list of 16 integers. --cqm8 <list> Set all 8x8 quant matrices Takes a comma-separated list of 64 integers. --cqm4i, --cqm4p, --cqm8i, --cqm8p Set both luma and chroma quant matrices --cqm4iy, --cqm4ic, --cqm4py, --cqm4pc Set individual quant matrices Video Usability Info (Annex E): The VUI settings are not used by the encoder but are merely suggestions to the playback equipment. See doc/vui.txt for details. Use at your own risk. --overscan <string> Specify crop overscan setting ["undef"] - undef, show, crop --videoformat <string> Specify video format ["undef"] - component, pal, ntsc, secam, mac, undef --fullrange <string> Specify full range samples setting ["off"] - off, on --colorprim <string> Specify color primaries ["undef"] - undef, bt709, bt470m, bt470bg smpte170m, smpte240m, film --transfer <string> Specify transfer characteristics ["undef"] - undef, bt709, bt470m, bt470bg, linear, log100, log316, smpte170m, smpte240m --colormatrix <string> Specify color matrix setting ["undef"] - undef, bt709, fcc, bt470bg smpte170m, smpte240m, GBR, YCgCo --chromaloc <integer> Specify chroma sample location (0 to 5) [0] --nal-hrd <string> Signal HRD information (requires vbv-bufsize) - none, vbr, cbr (cbr not allowed in .mp4) --pic-struct Force pic_struct in Picture Timing SEI --crop-rect <string> Add 'left,top,right,bottom' to the bitstream-level cropping rectangle Input/Output: -o, --output Specify output file --muxer <string> Specify output container format ["auto"] - auto, raw, mkv, flv, mp4 --demuxer <string> Specify input container format ["auto"] - auto, yuv, y4m, avs, lavf, ffms --input-csp <string> Specify input colorspace format for raw input - valid csps for `raw' demuxer: i420, yv12, nv12, i422, i444, bgr, bgra - valid csps for `lavf' demuxer: yuv420p, yuyv422, rgb24, bgr24, yuv422p, yuv444p, yuv410p, yuv411p, gray, monow, monob, pal8, yuvj420p, yuvj422p, yuvj444p, xvmcmc, xvmcidct, uyvy422, uyyvyy411, bgr8, bgr4, bgr4_byte, rgb8, rgb4, rgb4_byte, nv12, nv21, argb, rgba, abgr, bgra, gray16be, gray16le, yuv440p, yuvj440p, yuva420p, vdpau_h264, vdpau_mpeg1, vdpau_mpeg2, vdpau_wmv3, vdpau_vc1, rgb48be, rgb48le, rgb565be, rgb565le, rgb555be, rgb555le, bgr565be, bgr565le, bgr555be, bgr555le, vaapi_moco, vaapi_idct, vaapi_vld, yuv420p16le, yuv420p16be, yuv422p16le, yuv422p16be, yuv444p16le, yuv444p16be, vdpau_mpeg4, dxva2_vld, rgb444be, rgb444le, bgr444be, bgr444le, y400a --input-res <intxint> Specify input resolution (width x height) --index <string> Filename for input index file --sar width:height Specify Sample Aspect Ratio --fps <float|rational> Specify framerate --seek <integer> First frame to encode --frames <integer> Maximum number of frames to encode --level <string> Specify level (as defined by Annex A) -v, --verbose Print stats for each frame --no-progress Don't show the progress indicator while encoding --quiet Quiet Mode --log-level <string> Specify the maximum level of logging ["info"] - none, error, warning, info, debug --psnr Enable PSNR computation --ssim Enable SSIM computation --threads <integer> Force a specific number of threads --sliced-threads Low-latency but lower-efficiency threading --thread-input Run Avisynth in its own thread --sync-lookahead <integer> Number of buffer frames for threaded lookahead --non-deterministic Slightly improve quality of SMP, at the cost of repeatability --asm <integer> Override CPU detection --no-asm Disable all CPU optimizations --visualize Show MB types overlayed on the encoded video --dump-yuv <string> Save reconstructed frames --sps-id <integer> Set SPS and PPS id numbers [0] --aud Use access unit delimiters --force-cfr Force constant framerate timestamp generation --tcfile-in <string> Force timestamp generation with timecode file --tcfile-out <string> Output timecode v2 file from input timestamps --timebase <int/int> Specify timebase numerator and denominator <integer> Specify timebase numerator for input timecode file or specify timebase denominator for other input Filtering: --vf, --video-filter <filter0>/<filter1>/... Apply video filtering to the input file Available filters: crop:left,top,right,bottom removes pixels from the edges of the frame resize:[width,height][,sar][,fittobox][,csp][,method] resizes frames based on the given criteria: - resolution only: resizes and adapts sar to avoid stretching - sar only: sets the sar and resizes to avoid stretching - resolution and sar: resizes to given resolution and sets the sar - fittobox: resizes the video based on the desired contraints - width, height, both - fittobox and sar: same as above except with specified sar simultaneously converting to the given colorspace using resizer method ["bicubic"] - fastbilinear, bilinear, bicubic, experimental, point, - area, bicublin, gauss, sinc, lanczos, spline select_every:step,offset1[,...] apply a selection pattern to input frames step: the number of frames in the pattern offsets: the offset into the step to select a frame see: http://avisynth.org/mediawiki/Select#SelectEvery **参考…H.264動画からエンコードのオプションコマンドを知るツール「Mediainfo GUI」 [#u08ee91c] H.264動画を直接ダウンロードできる場合に、[[Mediainfo GUI>http://mediainfo.sourceforge.net/ja]]を使えば、読み込んだH.264動画のエンコード時のオプションコマンドを(ある程度?)知ることができます。 ジャンル(実写、スポーツ、アニメ、3Dゲーム、2Dゲーム、etc.)によって適切なオプションはかなり変わりますが、自身がよくエンコードするジャンルで高画質なH.264動画を見つけられたら、その動画から直接オプションを調べられるため、巷の解説よりもはるかに参考にできると思われます。 **参考その2…もっと色々知りたい人は [#u5929393] ネット上には様々な情報が氾濫していますが、x264について書かれた日本語情報は勘違いと虚偽に満ちているものが少なくありません。(もちろん正確なものもあります) もしあなたがより精度の高い情報を手に入れたいなら、海外のサイトに行きましょう。 //仰ることは分かりますが、「大部分」と言うのであれば、このページだけでも誤りを修正して頂きたく存じます。//間違いを見つけたのなら即刻修正しなさい。wikiとはそういうものです。 -[[Doom10 Forum: Digital Video Discussion>http://doom10.org/]] x264の公式フォーラム(英語オンリー)。 ここにある情報は非常に正確です(もし間違った情報が投稿された場合、即座に開発チームメンバーや世界中のエンコオタクからツッコミをくらいます)。 -[[Doom9's Forum>http://forum.doom9.org/]] 世界的に有名なDVDリッピング/動画エンコード関連の総合フォーラム(英語オンリー) [[AviSynth>http://avisynth.org/mediawiki/Main_Page]]、[[MediaPlayerClassic-homecinema>http://mpc-hc.sourceforge.net/]]といった有名なアプリケーションの公式フォーラムが置かれています。 Doom10が発足するまでは、x264の公式フォーラムもここにありました。 -[[#x264@freenode>irc://irc.freenode.net/x264]] x264の公式IRCチャンネル topicは"open source MPEG-4 AVC / H.264 encoding and Touhou discussion" ここに入る場合は文字コードをUTF-8にしておきましょう。 anime/東方ファンの溜まり場で、なんと日本語での発言もオーケー。 **コメント [#ta37a34f] #pcomment() ----