【管】管理人について


※【管】の付くページは管理人のみが更新するページに付けます。

管理人のメインPC

  • CPU : Intel Celeron 2.0GHz (Northwood Core, L2 Cache:128KB, MMX, SSE, SSE2)
  • MEM : 2GB (DDR-400, PC-3200)
  • VRAM: 512MB (NVIDIA GeForce 8400 GS)
  • LCD : 1280x1024 60Hz TrueColor(32bit)
  • OS : Windows XP Home Edition 32bit

動画関係のソフト

  • AviUtl 0.99h4(メイン。0.99iの更新の中の「バッチ出力の終了時に編集ファイルを閉じるようにした。」の動作が自分に合わなくて、未だに0.99h4がメインです…バッチ出力の終了時に編集ファイルを閉じない(h4以前)か閉じる(i以降)かを選択できればいいのに…)
    • AviUtl 0.99i8(サブ。プラグイン動作確認用…どうしても拡張編集の最新版を使った編集をしたいときはこちらも使うけれど…)
  • ffdshow
  • MPC-HC
  • Flavie
  • AviSynth 2.58(x264out用に導入しただけ状態、どのVer.がいいかさっぱりで更新しないまま)
  • 他いろいろ

よく見るところ

  • ニコニコ動画
  • 2ch(AviUtl系、MP4系が主)

エンコ傾向

  • ゲーム(3D格闘系、STG) 8割?
  • ニコニコ動画アップ時にMP4を利用。(以前の自PCのVRAMゆえ)軽さと画質の両立ができればいいなと思っているが未だオプションの試行錯誤中
  • 高解像度や高負荷の動画は、DLしたのち(クロップ&リサイズ後、)UtVideoCodecあたりに再エンコして低負荷にして見ている

ここを作り始めた経緯

  1. ニコニコ動画に動画をアップロードしたい
  2. WMM(Windows ムービーメーカー)を使用
  3. フレームレートの調整がわからないうえWMV・WMA化の劣化を激しく感じた
  4. AviUtlを導入してプラグインや情報を集める(かなりの数のプラグインがあることを知る)
  5. そこそこの質で動画を作れるようになった
  6. プラグイン全てを使えば、他の動画ソフト(例:AviSynthなど)がなくてもAviUtlだけで事足りるのではないかと感じた
  7. プラグインの情報が分散しているように感じたがWikiが無いようだった
  8. 「Wikiなどなくても既存のサイト等の情報で充分」という意見しか見かけられず結局自分でWiki作成開始

管理人作のAviUtlプラグイン

プログラミングの素人ゆえ改造ばかり。

(1作目?…「エッジをぼかすフィルタ」の微改造版)

AviUtl プラグイン フィルタ by うえぽんの「エッジをぼかすフィルタ」を微改造していました。作者であるうえぽん氏のブログの「うえぽんSW局 | 「エッジをぼかす」をもっとアンチエイリアスっぽくしてみた」のコメント欄の「通りすがり」が自分です。この微改造は、結果としてうえぽん氏の元フィルタがVer.0.3.0から0.4.0にバージョンアップした際に取り込んでいただけました。

2作目?…x264GUI-Mod Ver.0.1β

muken氏執筆の「x264.exeのビルド - GCC 4.4.1(MSYS+MinGW)編」および「x264gui.auoのビルド」を参考にして、seraphy氏作の「拡張 x264 出力(GUI)」の設定部分+αを改造してみました。
GCCビルド時のCPU最適化等のオプションはseraphy氏と同一にしているつもりです。
当初は設定部分だけのつもりでしたが、自分がやりたかった機能を実装するにあたって値の扱いをそれなりに変えたために、オリジナル版の設定を壊してしまうかもしれない状態になってしまったので、オリジナル版の設定破壊を避けるために「x264gui」→「x264guimod」とファイル名・名前空間等を変えて、オリジナル版と共存できるようにしました(添付したソースは、名前等が「x264gui」のままの状態での、seraphy氏公開のソースとの差分です)。

x264のオプションを未だ勉強中の自分向けなので、オプション指定に慣れ親しんでいる方に親和性が高いと思われます(ここの「試作…AviUtl&拡張 x264 出力(GUI)での…」以降を書いたのも自分でした(現在きれいに消されてます)…バックアップは取っているので別ページにでも書くかも)。

【お勧めの使い方】
「basic options」内(「--bitrate」等のバーや「バー上限」の数値以外)を変更したら「Reset and Change Default Options」ボタンを押しておくと、比較的無難です。
【不具合】
最新版にて、オプションのsubme 10を設定した状態で、画面左上の「保存」→「開く」とやると(setting fileを利用すると)、subme 9になってしまう(原因は把握できておりません…。旧版で同じ不具合があるかもわかりません)。
【最新版】
filex264guimod0.1b-build80rev1376release1.zip
【旧版】
filex264guimod0.1a-build79rev1352release1.zip

形にするのが遅くなるほど公式のrevがどんどん進んでいってその差分を埋めるのがどんどん難しくなるという…そのためここの更新まで手を付けられませんでした。…x264本家の更新に追いついているseraphy氏やmuken氏は本当に凄いと何度も思いました。
それにしてもこの程度(初版…rev1352)を作る(というか一部を変更するだけ)のに約1ヶ月もかかるとかorz
…その後、revを追おうにも、なんか色々変わりまくっていて…ffms/lavf? GPACかL-SMASH? ビルドもまるで理解できてないのも手伝って、さっぱり追えていません…。もうrev1804ですか…せっかくx264が10bit入力対応してAviUtlのPixel YCが活きそうなのに…。

やりたかったこと

便利だと思った「MeGUI」の影響をかなり受けてます。

  • 設定画面下部のオプション表示欄の拡大 → 実装
  • 可能な限り全てのオプションの設定欄を用意 → 90%?実装
  • 「--output nul」をマルチパスの各passごとに指定できるように(statsのログを頻繁に見るような物好きな人向け?) → 実装
  • 「--ref 1では--mixed-refは無効」といったx264の制限を設定画面の段階で行い、余計なオプション設定を回避 → 無難な辺りはほぼ実装(よってβとしました。しかし何だか使いにくいorz 要改善。)
  • 設定画面のポップアップあたりに、MeGUI並の充実した説明を表示 → いずれ実装したい
  • プリセットの充実 → いずれ実装したい

x264guimod0.1b-build80rev1376release1のスクリーンショット

x264guimod-ss1.png
x264guimod-ss2.png
x264guimod-ss3.png

改造していて気になったこと(これを書きたいがためにα版で公開したとも…)

  • x264本家(git?)向け
    • rev1304でheirarchical → hierarchical の綴り間違いを直していたけど、それならx264.hの
       int i_bframe_pyramid; /* Keep some B-frames as references: 0=off, 1=strict heirarchical, 2=normal */
      も直した方が…。
      • (rev1376にて修正。伝えてくださった方、ありがとうございます)
    • x264.cの--fullhelpで出てくる説明の--tuneの- grain:のところで--deadzone interになってますが--deadzone-interですよね?
      • (rev1376にて修正。伝えてくださった方、ありがとうございます)
    • 「--tune」の使い方からすると、--tune grainで--no-dct-decimateが設定されているのに、それを上書き(逆を設定)するオプション(--dct-decimate?)がx264.c(x264gui.auoではparse.c)の「 static struct option long_options[] 」内に定義されていないのは、動作として大丈夫?
    • b_sliced_threadsがcommon.cのx264_param_default( x264_param_t *param )にて初期化されていないような…?
  • seraphy氏やmuken氏向け
    • stats_remove.diffは当てていないけれど、何をするためのdiffでしょうか?
      • (muken氏より。ありがとうございます。)『ICC用です。これはICCでのrename関数の挙動が他のコンパイラと違うためです。renameを呼ぶ前にstatsファイルのremoveを行います。』
    • config.hのGCC_VERSION以降は本来自動生成されるものなのでしょうか?(現在はmuken氏のソースをほぼ流用しているはず…。ICC_VERSIONやVCC_VERSIONが C++ Express な自環境のものなのか謎。)
    • x264gui.auo.vcprojの中の
      <File
       RelativePath=".\src\gui\x264.h"
       >
      </File>
      だけが「ファイルが開けません。」とエラーを吐かれるけれど、これはgitのソースに含まれる
      <File
       RelativePath=".\src\x264.h"
       >
      </File>
      に直していいものなのでしょうか? それとも以下が実際のところだったりするのでしょうか?
      • わざわざそこを直さなくてもビルド時には勝手にリンクされるから問題無し
      • gitの「.\src\x264.h」とは別に、(x264afs.cのように)毎revごとに独自の「.\src\gui\x264.h」を作ってビルドしている(がソースに同梱していない)
  • 自分の理解不足(X264 Settings - MeWikiよりも具体的な使用例が知りたい…)
    • 「--cqmfile」で読み込むファイルって拡張子は決まっている?
      • (Chikuzen氏より。ありがとうございます。)『なんでもいい。そもそもなくてもいい』
        →rev1352のままで対応できているので無変更。
    • 「--zones, --dump-yuv」はどういう書式でどう利用するもの?
      • (muken氏より。ありがとうございます。)『--zones 0,24,q=15,me=umh/80,99,subme=7 等。qまたはb以外のオプションは必ずqまたはbより後ろに置かなければならない。対応していないオプションもある。詳しくはencoder.c内の x264_encoder_reconfigを参照。』
        →コマンド欄に入力してもらうことに。
      • (muken氏より。ありがとうございます。)『--dump-yuv hogehoge.yuv --output hogehoge.264で出力したhogehoge.264をJMのldecod.exeでデコードさせてそれらを比較する。同一のyuvができてたら x264の出力ストリームにバグはないかも。』
        →rev1376にて入力欄を追加。
    • 「--visualize」はコンパイル時に特別な対応が必要っぽいけれど…(個人的には(多分1回だけ)試してみたいオプション)」

コメント

このページに関係する情報についてはこちらにお願いします。

  • >b_sliced_threadsがcommon.cのx264_param_default( x264_param_t *param )にて初期化されていないような…? -- muken (2009-12-16 05:55:15)
  • memset( param, 0, sizeof( x264_param_t ) );が見えませんか? -- muken (2009-12-16 05:55:36)
  • >stats_remove.diff ICC用です。これはICCでのrename関数の挙動が他のコンパイラと違うためです。renameを呼ぶ前にstatsファイルのremoveを行います。 -- muken (2009-12-16 06:03:51)
  • --zones 0,24,q=15,me=umh/80,99,subme=7 等。qまたはb以外のオプションは必ずqまたはbより後ろに置かなければならない。対応していないオプションもある。詳しくはencoder.c内のx264_encoder_reconfigを参照。 -- muken (2009-12-16 06:11:25)
  • --dump-yuv hogehoge.yuv --output hogehoge.264で出力したhogehoge.264をJMのldecod.exeでデコードさせてそれらを比較する。同一のyuvができてたらx264の出力ストリームにバグはないかも〜♪ -- muken (2009-12-16 06:16:18)
  • >--no-dct-decimate --dct-decimateはオプションのヘルプにありませんよね?何か問題でも?dct-decimateといった書式はzones時なら有効です。真偽値型は頭のno-の有無でon/offします。 -- muken (2009-12-16 06:33:33)
  • >「--cqmfile」で読み込むファイルって拡張子は決まっている?  なんでもいいよ。そもそもなくてもいいし -- Chikuzen (2009-12-16 09:43:18)
  • >memset ・・・ 一応見えますが、他の変数(b_interlacedほか全て)も初期値が0でもわざわざ初期化コードを書いてあったもので。 -- 管理人 (2009-12-16 19:50:25)
  • >--dct-decimateはオプションのヘルプにありません ・・・ その通りですが、例えば--no-mixed-refsと対の--mixed-refsも同様にヘルプにありませんが、--preset faster等の場合に必要となるためかlong_options[]内で { "mixed-refs", no_argument, NULL, 0 }, { "no-mixed-refs", no_argument, NULL, 0 }, と定義されていましたので。 逆が定義されていないのは--no-chroma-me、--no-dct-decimate、--non-deterministic、--no-progressの4つですが、指摘している--no-dct-decimate以外の3つは--presetや--tuneで変更されてないので問題ないのだと思っています。真偽値型が頭のno-(またはno)でon/offしてるのはcommon.cのx264_param_parse内ということも一応分かっています。 -- 管理人 (2009-12-16 19:56:13)
  • muken様、Chikuzen様、コメントありがとうございました。 GUI-Modで対応するかもしれないのは--dump-yuvでしょうか。--zonesはコマンド欄並の入力欄が必要そうなのでコマンド欄任せで。 -- 管理人 (2009-12-16 20:49:13)

    コメントはありません。 コメント/【管】管理人について?

メニュー

AviUtlプラグイン

AviUtlマニュアル

更新履歴

最新の30件

2023-07-24 2022-09-26 2022-09-25 2022-08-01 2021-08-29 2021-05-19 2017-04-27 2011-01-12 2010-12-16 2016-09-04 2010-12-16 2016-07-01 2011-01-12 2010-12-16 2011-01-22 2011-01-12 2010-12-27 2016-11-27 2016-09-04 2015-12-24 2014-07-25 2014-07-20 2014-07-18 2014-07-14 2014-03-26 2014-03-09 2014-02-17 2014-02-15

  • counter: 4112
  • today: 1
  • yesterday: 1
  • online: 1