お知らせ。

やはりちゃんと書いとくべきかな、と思ったので。

改造版x264guiは更新停止とさせてください。
guiExでいこうと思います。

x264を内蔵するx264guiでしかできないことも確かにありますが(VFR化の際のより正しいレート計算とか)、x264を切り離したguiExのほうのメリット(x64高速化とか、いろんなx264使えるとか、最新のx264をすぐ使えるとか、わたしがめんどくないとか)のほうがより大きいと私は考えています。(もちろん「そんなことねーよ、x264guiのほうがいいよ」って人もいるかもしれませんが。すまぬ。)
スポンサーサイト



x264gui 改造版 r1804+347

・x264,x264_L-SMASHの更新。
109.1790+345 -> 110.1804+347

・guiで色について(--colormatrixとか)の設定をしたときに、コマンドの表示がおかしかった問題を修正。


今回も設定ファイルに互換性がありません…
ダウンロード>>


FAWCheckについて

私が勝手にくっつけたFAWCheckなる機能について、どういうことをやってるのかちょっと詳しめな説明。

そもそもFakeAACWaveとは、AACをwavに偽装して、wavとして読み込んでカットしたりできるようにするもの。FAW.exeのGUIなし版がfawcl.exe。

たとえば、
aac -> [FAW.exe] -> 偽装wav -> [Aviutlでカット編集(CMカットとか)] -> カットされた偽装wav -> [FAW.exe] -> カットされたaac
のように使用し、音声をエンコードすることなくカット編集ができる。

(2011.01.04追記)
FAWには一般的な1/1サイズと、もうひとつ1/2サイズってのがあって、1/2サイズは16bitwavではなく、8bitwavで偽装されている。この1/2サイズを使う場合、Aviutl内部は16bitwavなので、16bit->8bit変換をしてやらなければならない。x264guiEx 0.12からこの16bit->8bit変換を行って1/2サイズFAWも扱えるようにした。(もっとも、0.12はバグ持ちなので使えるのは0.13からなるが)


偽装wavはAviutlで出力する際にはきちんとFAW.exeで処理する必要があるけども、たまに設定を間違えて、普通のwavをFAW.exeで処理しようとしてしまい止まったり、逆に偽装wavをneroでエンコードしてしまいおかしなことになったり、ということになってorz


そこで、音声の設定は常に普通のwav用のものにしておき、偽装wavのときには自動的にFAW.exe(fawcl.exe)を使用するようにできないか、と思ってFAWCheckを作ってみた。


・パスの指定
FAW.exe(fawcl.exe)のパスは、外部エンコーダのリストにあるものを使うので、FAWCheckをオンにするには、一度外部エンコーダのところのFAW.exe(fawcl.exe)のパスを正しく指定しておく。指定した後で、外部エンコーダの選択を普通のwavの時の設定(たとえばneroaacencとか)に戻しておく。一度指定してあればおk。


・ファイル出力時の動作
FAWCheckをオンにしておくと、音声のエンコードを開始する前に、まずFakeAACWave(偽装wav)かどうかの判定し、

偽装wavでない(普通のwavだ)、と判定された場合、guiの設定通りに音声エンコードを実行。
偽装wavである、と判定されたときは、guiで設定された音声エンコードの方法を無視して、FAW.exe(fawcl.exe)で音声を処理する。

というふうになる。

つぎに、どうやって判定しているかという話。

x264gui 改造版 r1790+345

・x264の更新。

r1788では、chroma weightp で画像が壊れることが
あったらしく、その修正のよう。


・guiでスレッド数に2桁の値を指定できるようにした。

まあ、基本的には 0 のままにして
--thread auto でいいとは思うけど。
(自動的にCPUの論理コア数×1.5になる、
これがちょうどいいらしい)


・改造版r1788では、コンパイルをミスったのかx264audioからqtaacが使えなくなっていた。すみません。
r1790ではテストしたところ大丈夫。


今回も設定ファイルの互換性がないようです…orz
ダウンロード>>


x264gui 改造版 r1788+344v2

r14xx以降、自動フィールドシフト使用時に怪しいtimecodeを
吐き続けていた問題をやっと解決。
疲れた…


ダウンロード>>


かなりいろいろと試行錯誤してみたが、結局は実に簡単なところだった…orz


細かいこと言うと、gui/x264auo.c の 1050-1051行目、

second_largest_pts = largest_pts;
largest_pts = pic.i_pts;

をドロップ時はしてはいけないっていう、ただそれだけ。
これをやってしまっていたため、1038行目からの

if( pic.i_pts <= largest_pts )
{
//(...コメントアウト部 中略...)
pic.i_pts = largest_pts + ticks_per_frame;
}

が不必要に動いてしまって、timecodeが壊れる原因となっていた。

同じ動画をエンコードしたときのtimecodeの比較。
自動フィールドシフトでは、24fps化を指定している。
そのため、1000ms/23.976fps = 41.7..ms/frame
なわけだが…

比較のエクセルファイル>>

x264gui 改造版 r1788+344

変更点は…
・x264, x264_L-SMASHの更新
r1772 -> r1788の更新のほとんどはHigh-depth Encodingについてなので、x264gui.auoには関係ない…と思いきや、実はchroma weighted predictionが実現したようでこれが重要かもしれない。


・コメントにあったご指摘より。iniのプロファイルから読み込んだ時に、--preset, --tune, --profile の項目についてもguiに反映するようにした。たとえばiniのプロセットに--profile mainと書いてあるのにguiに反映されないのは不自然な気がするので、改善してみた。


・guiのプロファイル(H.264のprofileを設定する項目)を上位制限項目として適用するようにした。
たとえば、プロファイルでmainとなっていれば、8x8dctを指定しても、自動的に8x8dctを解除するようになる。x264.exe では --profile main とか --profile baseline とかすると、それによって制限されるので、gui.auoでも制限がかかるようにした。そのほうが自然だと思う。high指定で制限がかからないので、制限をかけたくない場合はhighで。


・iniに Lame mp3, ffmpeg ac3 の設定を追加。
やってみたかっただけ。特に意味はない。

・iniのx264のプロファイルを微修正。
高画質でも --ref 8 もいらんでしょという反省。

・いくつかのコンボボックスの内容について、x264の構造体から値をロードするようにした。
これは私が楽をするため。使用上の変化なし。ただ、色についてのコンボボックスのあたり(colormatrixとか)で、表示の順番が変わった。


r1772+326 -> r1788+334r1772+336 -> r1788+344では設定ファイルの互換性はありません。
(追記)十の位間違えてた

ダウンロード>>

x264gui 改造版 r1772+336

変更点は…
・ADTS-AAC + --ademuxer lavf で12秒長くなる問題が解決されたようなのでFAWのときの例外処理を廃止。
・iniにqtaacenc.exe用の設定を追加してみた。

外部muxer(mp4boxとか)でmuxしたい人でqtaacを使いたい人は、qtaacenc.exeでエンコードするといいかも。
qtaacenc.exeはこちら


ダウンロード>>


ところで…
x264.exeを使用して自動フィールドシフトもできるAviutl出力プラグインをYan氏が作ったそうです。Aviutl総合スレにある。x264 for Aviutlというらしい。素晴らしい。ちょっと使ってみる。x64なx264も使えれば…

x264gui 改造版 r1766+331v2

外部エンコーダ + 内部muxer の場合にエラーで止まってしまう問題を修正。
改造版 r1766+326v2, r1766+331 でのバグ。


ダウンロード>>


x264gui 改造版 r1766+326v2

x264 および L-SMASH の更新。

12秒再生時間情報が長くなる問題について調査した結果
・FAWCheckの問題では全くなかった。
そもそもFAWCheckに使っているのは15秒で12秒じゃない。(おい

対策として
・FAWを使用し、
・L-SMASHでmuxしてmp4出力する
ときには、
・音声のインポートにlsmashを指定する
ようにした。

(追記)音声外部エンコーダを使用したときに止まってしまう問題が出たため、修正してv2になりました。
ダウンロード>>

前の記事の12秒再生時間が長くなることがある問題について。
詳しくは以下。




FAWCheckの問題。 x264gui 改造版 r1745+322

FAWCheck -> 判定FAW -> FAW.exe(fawcl.exe)で処理 -> L-SMASHでmuxだと
ファイルの再生時間の情報が12秒ほど長くなることが分かった。
そのためシークバーがおかしくなってしまう。
なぜなのかよくわからない。調査に時間がかかりそうなので、
とりあえず、mp4出力時、FAWCheckでFAWと出たら、外部muxerでmuxするように変更。
これで問題なく再生はできるけど、
FAWCheckのせいで怪しいファイルができている可能性はまだあるので、
気になる場合はFAWCheckをオフにしてください。

(追記)FAWCheckの問題ではなかったです。

この問題を指摘してくださったRさまに感謝です。


ダウンロード>>


FAWCheckの問題について詳しく。

問題は、
FAWCheckを行う->
FAWと判定され、fawcl.exe(FAW.exe)で処理される->
自動的にL-SMASHでmuxされる
という流れの時にのみ発生します。

この3つのうち、どれかが違っても問題は発生しません。

たとえば、FAWCheckをして、FAWでないと判定され、
neroaac等で音声エンコードが行われた場合などは問題ないようです。

ですが、はっきり言って原因がよくわかりません。
長くなりますが、さらに詳しく書くと…

FAWかどうかチェックする際に、
Aviutlから最大でwavを12秒ほど読んで判定しています。
ファイルの再生時間が12秒長くなっていますので、
間接的にはこのFAWCheckでwavを読むことが問題と考えられます。
しかし、FAWCheckをしたとしても、
aac一時ファイルの長さ情報に問題はあるようには見えません。
(真空波動研・MediaInfo両方で確認)
このaacファイルを--audiofileでx264_L-SMASHに読ませているだけなので、
本来はAviutlでwavを余分に読んだことは関係ないはずです。
どこでAviutlの「wavをこれだけ読んだ」という情報が音声の長さ情報として
エンコーダに渡ってしまっているのかわからないのです。

なお不思議なことに、FAWCheckをしても、
neroaacenc.exeによるエンコードの場合などでは
問題ない点など、よくわからないことだらけです。

ですが、難しそうな問題で時間がかかりそうなのと、
最近微妙に忙しいのでとりあえず、
FAWCheckでFAWと判定されたときは外部muxer(mp4box)を使用する。
という暫定的な処置にしました。
これで、とりあえず長さ情報に問題は発生しません。

今後もこの問題についてはいろいろと勉強・調査して、
この暫定的な処置のままでいいのか、あるいはもっといい方法があるのか、
あるいはFAWCheckを廃止したほうがいいのかなど判断したいと思います。

すごくインチキくさい単なる回避策なので、
「なんて適当なんだ。怪しいファイルができてたらどうするんだ」
のように、気になる場合はFAWCheckをしないでください。

(追記)FAWCheckの問題ではなかったです。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先: rigaya34589@live.jp
github twitter

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutl 出力プラグイン
x264guiEx 3.xx
- x264を使用したH264出力
- x264guiExの導入紹介動画>
- x264guiExの導入
- x264guiExのエラーと対処方法>
- x264.exeはこちら>

x265guiEx
- x265を使用したH.265/HEVC出力
- x265guiExの導入>
- x265.exeはこちら>

QSVEnc + QSVEncC
- QuickSyncVideoによるHWエンコード
- QSVEnc 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC
- NVIDIAのNVEncによるHWエンコード
- NVEnc 導入/使用方法>
- NVEncCオプション一覧>

VCEEnc + VCEEncC
- AMDのVCE/VCNによるHWエンコード
- VCEEnc 導入/使用方法>
- VCEEncCオプション一覧>

svtAV1guiEx
- SVT-AV1によるAV1出力
- svtAV1guiExの導入>
- SVT-AV1単体はこちら>

VVenCguiEx
- VVenCによるVVC出力
- VVenCguiExの導入>

ffmpegOut
- ffmpegを使用した出力
- ffmpegOutの導入>


○Aviutl フィルタプラグイン
自動フィールドシフト (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: aji様

clfilters 
- OpenCLベースの複数のGPUフィルタ集
- 対応フィルタの一覧等はこちら

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX512対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: まじぽか太郎様

PMD_MT
- SSE2~AVX512による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
Amatsukaze改造版
- AmatsukazeのAV1対応版

rkmppenc
- Rockchip系SoCのhwエンコーダ

x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定
- これまでの測定結果はこちら

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)
SVT-AV1 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR