English version of changelog>>・重複フレームを削除したVFR動画を作成することで実効的なエンコード速度を向上させるフィルタを追加。(--vpp-mpdecimate )
・VMAFスコアを計算するオプションを追加。(--vmaf)
(Win x64版 NVEncC64 のみ、libvmaf v1.3.15を使用した実装)
CPUでの処理なので非常に重く、多くの場合VMAF計算のほうで律速してしまうので注意。あまり実用的ではないかも。
ダウンロード>>ダウンロード (ミラー) >>NVEncCのオプションについてはこちら。
NVEncCオプション一覧>ソースはこちら>>
いつもありがたく使わせてもらっています。
いままではAviutlで問題なくエンコードできていたのですが、この度コマンドラインから同じオプション設定で試してみた所、音ズレが発生します。
オプションを変えてみたり、動画ファイルを変えたりしてみたのですが解決出来ません。
試した動画ファイルの内一部音ズレなく正常にエンコードできたのですがほとんどで音ズレしてしまう為根本的なところでミスしてるかもしれません。
音ズレが起こるファイルでh264,265で試してもどっちも音ズレは起こりました。Aviutlからなら音ズレは起こりません。
なにか方法がないかとコメントさせていただきました。
もとファイルはh264 cfrです
-c hevc --cqp 28:30:32 --output-res 1280x720 --gop-len auto --audio-copy
秒単位で派手に音ズレする感じでしょうか? また、最初からズレているのか、あるいは少しづつズレが拡大する感じでしょうか?
音ズレは残念ながらなかなか入力ファイルがないとテストが難しいですが、確認のポイントとしては、
・NVEncCがフレームレートを正しく認識しているか?
・入力ファイルでrffなどが使用されていないか?
・入力がインタレ保持でないか? (PAFFなどは面倒です)
などでしょうか。
あとは(VFRでなくても)"--avsync vfr"で改善するかもしれません。
いつも便利に使用させていただいております。
RTX2070 superを手に入れたので、NVEncで古い動画を圧縮しようとしております。
バッチ処理したいのですが、DivX(avi)とwmvが読み込めず困っております。
ネットから切り貼りした下記で、h.264の動画のエンコードはできました。
また、フォルダをそのままドラッグ&ドロップはできるのでしょうか?
アドバイス頂ければ幸いです。
set NVENCC64_PATH="D:\Bat_Encode\Soft\NVEnc\NVEncC64.exe"
set OPT=--avsw -c hevc --cqp 25:27:30 --qp-init 20:23:25 --lookahead 32 --gop-len auto --profile main10 --bref-mode each --output-depth 10 --audio-codec aac --audio-bitrate 128 --ssim
set TSTMP="D:\Bat_Encode\Output\NVEnc_Output"
:run_encode
if /i not "%~x1"==".mp4" goto error
%NVENCC64_PATH% %OPT% -i %1 -o "%TSTMP%\%~n1.mp4"
shift
goto run_encode
いただいたものでは、".mp4"以外の拡張子のファイルがくると処理されないようになっていますので、aviやwmvが処理されないのではないでしょうか?
:run_encode以下を下記のようにするとよいかと思います。
--- ここから --------------
:run_encode
if "%~1"=="" goto finish
%NVENCC64_PATH% %OPT% -i %1 -o "%TSTMP%\%~n1.mp4"
shift
goto run_encode
:finish
--- ここまで -----------------
フォルダをそのままドラッグ&ドロップはこれでは対応できないので、for文などを活用するなどの書き換えが必要なのではないかと思います。
お尋ねします。
--vpp-mpdecimateオプションは、おそらくできあがりの
ファイルサイズ、もしかしたらエンコード時間の削減に
つながるのだと思いますが、画質にはどうでしょうか?
ありがとうございます。aviもwmvも動きました。
切り貼りしかできないのでもう少し勉強するようにします。
おそらくオプションによって変わりますが、--vpp-mpdecimateを使用すると"--cqp"や"--vbr 0 --vbr-quality"等の品質固定系であれば、画質は大きくは変わらないまま、ファイルサイズが縮小します。
ビットレート指定の場合は細かく試していないですが、ファイルサイズが変わってしまうので、比較がしづらいです。
お返事、ありがとうございます。
もちろん自分で確認すればいいだけの話でしたが、
私には違いがわからず、数字が出るものでなく、
なので、いただけたお返事で突っ走ることに決めました。
本当にありがとうございました。
いつもお世話になっております。
-c hevc --bref-mode each --ref 6 --bframes 3 --lookahead 32 --interlace tff --vpp-afs preset=default,method_switch=64,coeff_shift=128,drop=true,timecode=true --aq --aq-temporal --vbrhq 2000 --max-bitrate 4000 --qp-init 25:27:29 --qp-min 23:25:27 --vpp-mpdecimate
で --vpp-mpdecimateがないものとあるものを比較してみましたが、
--vpp-mpdecimateがある方は音ズレがあるようで、字幕表示のタイミングがおかしくなってしまいました。
--vpp-mpdecimateがないものは合っております。
原因はご存知でしょうか?
--vpp-mpdecimateと--vpp-afsの組み合わせの問題かと思い、こちらでも試してみましたが明確な音ズレは見られず、原因がわからない状態です。(上記に--audio-copyをつけてテストしました)
ただ、コードを確認するとやや気になる部分をみつけたので、次回--vpp-mpdecimate周りの動作を変更したものを出したいと思います。
ありがとうございます。
字幕のズレというのはtsをエンコして、assとmp4を出力、mp4をmpvで再生した時、assの字幕と動画で、タイミングのズレが出るのです・・・よろしくお願いいたします。
追記です。amatsukazeでの動作ですのでどちらが原因なのか不明です・・・amatsukazeの方でしたらすみません・・・
amatsukazeですか…なるほど。
NVEncCでの出力時にvpp-mpdecimateで処理した結果のtimecodeをmp4コンテナ側に設定していますが、これを見ていないのでしょうか…? (あまりamatsukazeの処理をわかっていないです…)
もう少し確認してみます。
はい。どうぞよろしくお願いいたします!
NVEnc 5.24で対策を試みました。
音ズレの原因としては、Amatuzkazeの読み込むtimecodeファイルがvpp-afs処理後のもので、そのさらに後ろで処理されるvpp-mpdecimateの結果を反映していないことにあるようでした。
そこで、これらをひっくるめた最終的なtimecode出力オプション(--timecode)を用意しましたので、こちらを試してみていただけないでしょうか。基本的には単純にこれまでのオプションに "--timecode" をつけていただければ大丈夫だと思います。
お時間あるときにお試しいただけますでしょうか。よろしくお願いします。