問題タブ [hdr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ffmpeg - FFmpeg を使用して 10bit Pro-Res から YouTube 用に HEVC/H.265/HDR ビデオをエンコードする
HDR YouTube ビデオをパブリッシュしたいのですが、私のソース ファイルは Apple ProRes または DNxHR のいずれかで、クロマ サブサンプリング 4:4:4 またはフル RGB を使用しており、どちらも 10 ビットです。 10 ビット 4:2:0 H.265/HEVC (HDR) にエンコードされます。
ここにリストされているいくつかの回答に従い、さまざまなアプローチをレビューし、さまざまなコマンドを試してみましたが成功しませんでした。FFmpeg のみを使用すると色が正しくなく、Adobe のみを使用して推奨設定で H.264 にエンコードすると、赤くなります。彼らのサポートページでは、結果はより暗いです。私が使用したコマンドは次のとおりです。
私はこれを試しました:
この:
また、次のコマンドを使用して、メタデータをエンコードされた HEVC/H.265 ファイルに挿入するために、MKVToolNix を使用してみました。
しかし、結果は同じで、YouTube はファイルを HDR ファイルとして認識しません。最初の FFmpeg コマンドと Adobe Premiere でエンコードされたファイルでのみ認識しますが、色がうまく表示されないので、多分私は'いくつかの概念が間違っています。助けてくれてありがとう。
video - scRGB色空間でHDRビデオからフレームを取得するには?
HDR TV で HDR ビデオを表示するシンプルなビデオ プレーヤーを作成したいと考えています。例えば、この「LG Chess HDR」の動画。HEVC でエンコードされ、ビット深度は 10 ビット、ピクセル形式は YUV420P10LE で、BT2020 色空間と PQ 伝達関数に関するメタデータが含まれています。
このNVIDIA の記事で、次のことがわかりました。
ディスプレイ ドライバーは、scRGB バック バッファーを取得し、現在接続されているディスプレイが期待する標準に変換します。一般に、これは色空間を sRGB 原色から BT に変換することを意味します。2020 プライマリー、適切なレベルへのスケーリング、および PQ のようなメカニズムによるエンコード。また、そのディスプレイ接続が必要な場合は、RGB から YCC などの変換を実行する可能性があります。
これは、プレーヤーがscRGB 色空間でピクセルをレンダリングする必要があることを意味します(線形エンコーディング、sRGB 原色、全範囲は -0.5 から +7.5 未満)。したがって、ソース ビデオからこの色空間で、できれば FP16 ピクセル形式 (ハーフ フロート、1 つのカラー チャネルあたり 16 ビット) でフレームを取得する必要があります。ビデオを HDR にレンダリングするための次の単純なパイプラインにたどり着きました。
このライブラリとして FFmpeg を使用しようとしていますが、scRGB 色空間でソース HDR ビデオからフレームを取得する方法がわかりません。
フレームを取得し、フィルター API について知るために、現在はsws_scale FFmpeg メソッドを使用しています。しかし、すべてのソース ビデオのメタデータを解析せずにこれらの機能を使用して scRGB で透過的にフレームを取得し、それらのカスタム ビデオ フィルタを作成する方法に関する情報やヘルプは見つかりませんでした。
FFmpeg を使用して scRGB 色空間でフレームを取得するために何ができるか教えてください。誰かが私がそれを行うことができる他のライブラリを教えてもらえますか?