いくつかの不具合修正と、HEVC YUV444 10bitエンコードへの対応、さらにNVEncCで高ビット深度入力に対応。
ほぼこれでNVENC SDK 7.0の新機能は拾えたのではないかと。
ただ、細かいエラーチェックとかはいろいろ足りてないと思う…。
NVEncC / NVEnc.auo 共通
・PascalのHEVC YUV444 10bitエンコードに対応。
NVEncC
・出力ビット深度を設定するオプションを追加。(--output-depth <int>)・avsw/y4m/vpyリーダーからのyuv420高ビット深度の入力に対応。・avsw/y4m/vpyリーダーからのyuv444 (8bit, 高ビット深度) の入力に対応。y4mの高ビット深度入力の例ffmpeg -y -i
"<mp4 file>" -an -pix_fmt yuv420p10le -f yuv4mpegpipe -strict -1 - |
NVEncC --y4m -i - -o
"<outfilename.mp4>"HEVC 10bit エンコード使い方HEVCエンコードNVEncC -c hevc -i
"<mp4 file>" -o
"<outfilename.mp4>"HEVC 10bitエンコードNVEncC --avsw -c hevc --output-depth 10 -i
"<mp4 file>" -o
"<outfilename.mp4>"HEVC YUV444エンコードNVEncC --avsw -c hevc --profile main444 -i
"<mp4 file>" -o
"<outfilename.mp4>"HEVC YUV444 10bit エンコードNVEncC --avsw -c hevc --output-depth 10 --profile main444 -i
"<mp4 file>" -o
"<outfilename.mp4>"
今回の更新で、avsw/y4m/vpy読み込みではYUV420/YUV444 (8bitまたは10bit)で受け取り、これを設定したエンコード出力に合わせてYUV420/YUV444 (8bit/10bit)で出力可能になった。この色空間の相互変換はたくさんパターンがあって、正直頭が痛くなったのだけど、まあ、なんとか実装できた。(テンプレート使って量産したりとか…)
ただ、これを本当に全部CPUでやらなきゃいけないのか、というと、本来はGPU側でやるべきことな気もする。特にavcuvid読み込み(GPUでデコード)の場合に現在10bitエンコード等に対応できていないのは、データが常にGPU側になるので、どうしてもGPUでの色空間変換が必須になるため。
というわけで今後はGPUでの色空間変換の実装…ということはCUDA使わなきゃなのか…。
NVEnc.auo
・afs使用時にHEVC 10bitエンコードができなかった問題を修正。・ステータスバーに進捗表示がされない問題を修正。
ダウンロード>>ダウンロード (ミラー) >>OneDriveの調子がいまいちの時はミラー(GDrive)からどうぞ。同じものです。ソースはこちら>>