NVEnc 2.10
いくつかの不具合修正と、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)からどうぞ。同じものです。
ソースはこちら>>
ほぼこれで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)からどうぞ。同じものです。
ソースはこちら>>