皆様こんにちは。TOM1192です。
今回は閑話休題。HDRのメタデータが入った動画をNVEncで再エンコしてもらうものを作りました。
基礎設計そのものは
こちらにある、汎用NVEncエンコーダー(AVIutlくんとかによく使う)を採用しています。
特徴としては、
・割と広範囲のメディア(CineformやDNx、Prores)も扱える。
というところでしょうか。
GPUだけでデコードエンコードもできますが、上述のメディアはGPUではデコードできないので必然的にCPUでのデコードになります。
その上で、qaacで内部に入った音声データをALACへとエンコードして、それをエンコードされた動画に結合することで、HEVCでエンコされた動画が完成するわけです。
ただ、qaacはPCM音声を直では読めないので、FFmpegでWavへ変換を行ったデータをパイプ処理でqaacへと投げ込むことで、ALACへと変換を可能としました。
これがNVEnc for HDRです。
解凍すると、4つのバッチファイルが出ます。が、基本的にHDRoutput avsw(st.2084).batでエンコードをするとほぼ100%エンコードしてくれます。
ただ、内部コーデックがGPUで取り扱え
ただ、内部コーデックがGPUで取り扱える場合、HDRoutput avhw.batでエンコードするほうがCPU負荷が少なく、場合によってはGPUとCPUの組み合わせより速くなりますので、使用する動画のコーデックをよく確認してください。
※追記 2020/11/18
Rev.4のアップデートでバッチファイルは1つになりました。
なお、同アップデートで、Smpte2084とHLGを選択式に変更し、デコードはハードウェアを先発で実行し、実行できなかった場合、ソフトウェアデコードを行いエンコードを行うようにしました。
そういえば昨日作った、NVEnc for HDRくんですが、こんな感じに変換されます。
— TOM@RTX3090発注 (@TOM246911) 2020年11月6日
参考までにどうぞ。 pic.twitter.com/EJcCJBpZfp
動画はこのように変換されます。
現段階ではコレ以外の改修予定はありませんが、ご意見等あればお願いいたします。
なお、メタデータ保持するのにさしあたって、
4K HDR anime channelさんからベースとなったプロファイルを頂いています。
HDRを作るのがものすごくうまい人なので、毎度毎度感謝しております。
さて今回はここまで、たまには別の記事もいいよね?