NVEnc 5.29

English version of changelog>>

5.28でのAvisynth Unicode対応に関する追加アップデート。

5.28のAvisynthのUnicode対応は、プロセスの文字コードをOSの標準文字コード(ほとんどの場合ShiftJIS)からUTF-8に変更できるWin10の機能を使っていて、これによりUnicodeには対応できるけどavsスクリプトのUTF-8化が必須という感じになっていた。

x264もr3021以降そうなっているので、(私自身があまりAvisynth関連に精通していないのもあり)そっちが主流になっていくのかな、という認識だったが、いろいろコメントをいただき、やはり問題となるケースも多そう。

そこで今回は、"--process-codepage os"というオプションを指定することで、従来のUTF-8でないavsスクリプトも使用できるようにした。



このプロセスの文字コードの切り替えというのの問題点は、プロセスの実行中に切り替えられるものではなく、実行ファイルに埋め込んでいるmanifestという情報に記載されていて、プロセスの起動時には確定してしまうということ。

じゃあどうやって切り替えるかというと、プロセスを立ち上げなおすしかなく、"--process-codepage os"が指定されていた場合には、

1. 実行ファイルのコピーをオリジナルの実行ファイルと同じフォルダに作成
NVEncC64A_[なんか数字].exe みたいなのができる。数字はオリジナルのプロセスID(16進数)。

2. コピーの実行ファイルのmanifestをUpdateResourceWという関数でUTF-8を使用しないmanifestに更新

3. コピーの実行ファイルを同じコマンドラインオプションで再実行
これでこのコピーのプロセスはOSの標準文字コード(ShiftJIS)で実行される。

4. 終わったらコピーの実行ファイルは消す

という感じになっていて、力業(裏技?)ぽい感じだけどこの方法で問題なく従来のスクリプトが実行できるのを確認した。まあとりあえず動くようになったのでよいかなあ…。

注意点として、1.にあるようにオリジナルの実行ファイルと同じフォルダにコピーを作成するので、Program Files等書き込みに管理者権限の必要な場所に置かないようにしてください。

なお、OSの文字コード設定をUTF-8に変更している場合は効力がありません(あくまでOS標準の文字コードに戻すだけなので)。その場合は文字コード周りのことをご承知の上で変更されていると思うので問題ないかとは思いますが…。



ダウンロード>>
ダウンロード (ミラー) >>

NVEncCのオプションについてはこちら。
NVEncCオプション一覧>

ソースはこちら>>


スポンサーサイト



コメントの投稿

非公開コメント

No title

ドキュメントの
>--output-res 1920x-2 -> 1920x1080にリサイズ (アスペクト比が維持できるように調整)
にならって、3840x2160の動画を
--output-res 1920x-2 --vpp-resize spline36
と指定したところ、出力が1920x1920になりました。

Re: No title

3840x2160の動画を入力ファイルとして
x64\NVEncC64.exe -i input_3840x2160.mp4 -o test.mp4 --output-res 1920x-2 --vpp-resize spline36
と実行したところ、問題なく1920x1080となりました。

もしかすると他のオプション次第で発生するのかもしれませんので、実行された具体的なコマンドをお教えいただけますでしょうか。

Re: No title

NVEncC64.exe --avhw --dar 16:9 --output-depth 10 -c hevc
--profile main10 --level 5.1 --tier main --colormatrix bt709
--colorprim bt709 --transfer bt709 --colorrange auto
--vbrhq 0 --vbr-quality 32.00 --max-bitrate 4000
--qp-init 20 --qp-min 10 --qp-max 40
--multipass 2pass-quarter --lookahead 32 --bframes 4
--gop-len auto --preset quality --weightp --nonrefp --aq
--aq-temporal --aq-strength 7 --mv-precision Q-pel --ref 4
--bref-mode each --vpp-deband range=18,thre_y=10,
thre_cb=8,thre_cr=8,dither=20,blurfirst=true
--output-res 1920x-2 --vpp-resize spline36
--audio-codec 1?aac --audio-bitrate 1?128
--chapter "test.txt" -i "test.mp4" -o "out.mp4"

長くなってしまいましたペコリ
もしかしたら--darが間違えて?

Re: No title

すみません。
--dar 16:9の代わりに--sar 1:1、そして--darも--sarも指定しない、
どちらでも問題なく1920x1080になりました。
アスペクト比は間違いなく16:9だと思っているのですがorz

Re: Re: No title

なるほど、sar/darですね…。

負のリサイズについては、sar/darの扱いがおかしくなっているのかと思います。おっしゃるようにdar 16:9なら素直に1920x1080になるべきなのですが。

すみませんが、現時点では、sar/darなしでお使いください。

Re: Re: Re: No title

>すみませんが、現時点では、sar/darなしでお使いください。

もしかして、--darや--sarは必要ないものなのでしょうか?
必須かと思って、メジャーでない動画サイズの場合に、
private void do_calcAspe(int w, int h) {
int g, x, y;
g = get_gcd(w, h);
x = w / g;
y = h / g;
MessageBox.show(x.ToString() + ":" + y.ToString());
}
private int get_gcd(int x, int y) {
if (y == 0)
return x;
return
get_gcd(y, x % y);
}
のような計算をして画面のアスペクト比を算出してdar値として
埋め込んでいました。

なんにせよ回避策を教えていただき、ありがとうございました。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先(@を半角にしてください!)
rigaya34589@live.jp
github

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

○Aviutlプラグイン
x264guiEx 2.xx (ミラー)
- x264を使用したH264出力
- x264guiExの導入>
- x264.exeはこちら>

x265guiEx (ミラー)
- x265を使用したH.265/HEVC出力
- x265.exeはこちら>

QSVEnc + QSVEncC (ミラー)
- QuickSyncVideoによるH264出力
- QSVEncCはコマンドライン版
- QSVEncC 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC (ミラー)
- NVIDIAのNVEncによるH264出力
- NVEncCオプション一覧>

VCEEnc + VCEEncC (ミラー)
- AMDのVCEによるH.264出力
- VCEEncCオプション一覧>

svtAV1guiEx (ミラー)
- SVT-AV1によるAV1出力

ffmpegOut (ミラー)
- ffmpeg/avconvを使用した出力

自動フィールドシフト (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: aji様

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

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

PMD_MT (ミラー)
- SSE2~FMA3による高速化版
- オリジナル: スレ48≫989氏

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

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

○その他
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 (ミラー)

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

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

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