ブログの動画編集のために、Xperia 1 IIIで撮影した動画をPremiere Proで編集。
……のはずが、いざ書き出そうとしたらめちゃくちゃな色味になってしまったので、今回はその対策を備忘録として書いておきます。動画は、4K/HDRで撮影しています。
ちなみに、あらゆるデバイスで統一した色を見ることができる“ディスプレイのカラーマネジメント”をONにしていれば、Premiere Pro内でも しっかり 白飛びするようになります(下図)。ただ、これは正常な動作です(非対応モニターで光の幅が明るすぎるHDRを表示させると白飛びする)。
これがOFFの場合、“頑張ってPremiere Pro内ではそれっぽく変換して表示させる”ようになるみたいです。ただ書き出し時に白飛びするのは変わりません。
つまり、逆に言えばHDRになってしまっているかを確認するために使える便利機能。
これを適宜ONにしている人は、以下直し方は同じなので読んでみてください。
私の場合は、最初にそのままタイムラインへ〈HDR動画〉を持ってきてしまったことが原因でした。
それによって、作られたシーケンス(編集の箱自体)がHDRになってしまい、SDRとして書き出しする際にガンマと色域の相違が発生してしまったことで、白飛びが発生し色味がおかしくなった……というわけです。
タイムラインへ〈SDR動画〉を持ってきた後に、〈HDR動画〉を持ってくることでも同じことが起こります。この状態だと、Premiere Pro内でも白飛びします。
これを解決するには、“予め”フッテージを変換してやる必要がありました。
そもそも、なぜ色味がおかしくなってしまうのか
まず、Xperia 1 IIIで撮影した映像が、「HDR」という形式でした。
用語解説しておくと、HDRは、ハイダイナミックレンジの略で、非常に幅広い明るさを収録している形式です。
それとは逆に、市販のモニターで表示できるくらいの“通常の明るさ”を収録している形式が、「SDR」です。
幅広いデバイスに表示させたいのであればHDRをSDR形式に直す必要があります。
詳しくはこちら↓
2022年度版(最新)のPremiere Proで読み込むと正しくHDR形式で読み込むことができました。
……ただ、書き出しする際は「HDR」「SDR」の二つを選ばなければならず、いつも書き出している形式がデフォルトのSDRだったので、今回の問題が起こってしまったようです。
「もう少し詳しく説明して!」という方向けに
掘り下げて詳細情報をとことん見てみると、今回の事件のおおよその全容がつかめたので、忘れないうちに書いておきます。
まずはじめに、Xperiaで撮影した〈HDR動画〉をPremiere Proに読み込むと、このような情報として読み込まれます。
ビデオコーデックタイプ:HEVC 10bit 4:2:0
そして、ひと世代前のXperiaで撮影した〈SDR動画〉が、下のような感じになっています。
ビデオコーデックタイプ:MP4/MOV 4:2:0 (※8bit)
プロパティ情報が2箇所違っていました。
それぞれの規格の詳細はこちらから見てみてください。
ちなみに、画像や素材ファイルをタイムラインに移したときに作られるシーケンスも“Rec. 709”と表示されました。EIZOのサイトと合わせると、標準的に使われるカラースペースは、おそらく“Rec. 709”ということがわかります。
従来のSDR形式が“Rec. 709”という規格であるのに対し、HDR形式では“Rec. 2100/HLG”という規格になっています。
※SDRかHDRかは、ここの違いで見分けることができそうです。
そして、問題は〈HDR動画〉のままの情報量で、〈SDR動画〉として“書き出し”を行ってしまったことが原因のようです。
つい最近になってこの幅広いタイプのHDRに対応したようで、元素材は〈HDR動画〉のままトラブルなくPremiere Proに読み込むことができました。
そして、タイムライン上でそのまま〈HDR動画〉として編集もできます。Lumetriスコープ(パネル)でカラースペースを見てみると、しっかり“Rec. 2100 HLG”となっていました。
また、最初にタイムラインへ動画を読み込んだ際に、シーケンス(箱)が一つ作られます。この箱の中にたくさんの編集を詰め込んで、後に一つの動画となるのですが、その箱自体もHDRになっていました。
ここまでを軽くまとめると、元素材はHDR → 読み込み~編集中もHDR ……となっています。
そして、問題の“書き出し”です。
いつものように ファイル→書き出し→メディア から書き出ししようとすると、プレビュー画面で“こんな色味になりますよ”という目安が表示されます。
エンコード方式は、もちろんいつもの保存形式であるH.264で書き出ししてみましょう。
プリセットから“高画質 1080p HD”などを選択してみると……、
白飛びが発生し、色味が奇妙な感じになってしまった……というのが今回の問題です。
事前にすること/プロジェクト設定から適切なカラーマネジメントにしておくと良いのかも……
ディスプレイのカラーマネジメントをONにした状態でHDR動画として表示させたときに明るさが変わってくる設定です。
デフォルトは“200”らしいのですが、私の場合は“100”になっていました。
わからない方は、そのままスルーでもおkです。この場合、後述する[方法1]以外(SDR最適化を使用する)場合の色が適切でない表示になったので、[方法1]のみで調整したほうが良いかもしれないです。
本編/SDR(いつもの状態)に変換するには、どうすればいいの?
実際に詳しく調べて試したところ、3つほど方法がありました。
その中で、手っ取り早くて調整も必要なく、一番品質がよかった変換方法を最初に紹介しておきます。
[方法1/手っ取り早い]タイムライン上で読み込む前に、“フッテージの変換”を行えばおk
Premiere Proから読み込んだHDR素材をもとに、タイムラインに置く前にこの作業をする必要があります。
いつものように、そのままドラッグしてシーケンスを自動作成してもよいですが、このページの最初んに書いた“ディスプレイのカラーマネジメント”をOFFにしていると暗く表示されてしまうため、トラブルを防ぐために最初に行っておきましょう。
※この作業をする前にタイムラインに持ってきてしまったのであれば、次の「もし“フッテージの変換”を行う前に、タイムラインに動画をおいてしまったら……」を読んでみてください。
事前に〈HDR動画〉を読み込んでおきます。
- プロジェクトタブ内で読み込んだ動画を右クリック
- メニュー内の「変更」→「フッテージを変換…」を選択
- カラーマネジメント内の「カラースペースを上書き」で“Rec. 709”を選択
これだけです。
書き出し画面に行くと、白飛びが直り同じ色味になっています。やったぜ……。
(ディスプレイのカラーマネジメントがONであれば、Premiere Pro内の白飛び現象が直っているはずです)
もし“フッテージの変換”を行う前に、タイムラインに動画をおいてしまったら……
編集途中に気づいてしまった……なんてことがありそうなので、こちらも書いておきます。
タイムラインに読み込んだ後にフッテージの変換を行うと、少し暗く映るはずです(ディスプレイのカラーマネジメントをしていなければ)。
そうでなくても、他のトラブルの原因になりそうなので、念の為シーケンスと動画のカラースペースをあわせておきましょう。
原因は、シーケンス自体がHDRになっていることです。これを修正します。
- 対象のシーケンスを右クリックする
- メニューから「シーケンス設定」を選択
- 「ビデオ」内の作業カラースペース”を、“Rec. 709”に変更する
これで、動画とシーケンスの間の差異がなくなりました。
[方法2/細かく調節可能]エフェクトから“SDR最適化”を適用する方法
※前項のように、途中でシーケンスをSDRに直しておくことをオススメします(トラブル防止)。
まず、Premiere Pro内でも白飛びが確認できないと編集できないので、「編集」→「環境設定」→「一般」から“ディスプレイのカラーマネジメント”をONにしておきます。
「エフェクト」で“SDR”と入力すると、“SDR最適化”というものが出てくるので、〈HDR動画〉に適用します。
少しだけマシになりました。エフェクトコントロールで“SDR最適化”が追加されているので、そこから調節します。
ちょうどよい感じになるかな~という具合で調節すれば、おkです。
こちらでは、手軽ではないものの、微調整がしやすいです。
[方法3/後から]書き出し時に“SDR最適化”を適用する方法
書き出す際に、SDRへ変換する方法もありました。
- 「ファイル」→「書き出し」→「メディア」 から書き出し設定を開く
- 「エフェクト」タブの少し下にある“SDR最適化”を適応
- 明度やコントラストを調節する
これで書き出しすればおkです。これは〈HDR動画〉と〈SDR動画〉の二つのバージョンを作るときなんかに便利かもしれません。
参考元/ソース
(……気づけば1時間半ほど調べていました。情報が見つかりにくかったのは、最近になってこの方法ができるようになったからみたいです)
検索しまくっていると、とあるサポートコミュニティのコメントにたどり着きました。
議論内容は少しだけ異なるのですが、問題の大本は、私が探していたのと似たようなものでした。
読み込んでみると、2年前の情報が載っていました。が、コメント欄の閉鎖はされていません。
そして、そのコメント欄の最新(最後のほう)に、つい最近のコメントが残っていました。トピックと似た症状の方がいたようです。
これに対し、Ckunさんという方が“最新版の仕様が大きく変わっているから、フッテージの変換からカラースペースを上書きすると良いよ(要約)”というコメントを残していました。
その方法によって、「HDR動画をSDR動画に変換する方法」というのが解決したのです。Ckunさん、ありがとうございます……。
また、ここからキーワードを絞って更に調べてみると、動画にて説明されているものがありました。
(白飛びを治す方法を調べると、ほとんどがHDRとは関係のないものだったので、始めはたどり着けなかった……)
こちらで、具体的な“フッテージの変換”と、“SDR最適化”の方法がわかりました。bellログさんありがとうございます……。
番外編/逆に、“カラースペースの書き出し”をいじれば、HDR素材→HDR動画(HLG)に書き出しできた
偶然見つけたので、メモがてら書いておきます。通常はH.265を使ってHDR動画は作成しますが、H.264でもオプションを見つけたのでそのメモです。
※Premiere Proで白飛びしっぱなしになるので、HDR動画を編集する際は“ディスプレイのカラーマネジメント”をOFFにしておきます。
〈HDR動画〉をそのままタイムラインにドラッグして(=シーケンスをHDRで作成)、編集した後に、書き出しします。この時点では、白飛びしたままです。
ここから、ビデオ→エンコード設定の中にある、プロファイルを“ハイ10”にします。その後、カラースペースを書き出しを“Rec. 2100”など元のものと同じに設定して書き出してみると、HDRとして保存されました。
もちろん、元のものと同じ=ガンマや色域が適切になるので、白飛びや色がおかしくなることはありません。
書き出し終えた動画の色味も普通で、Premiere Proで再度読み込んで確認したところ、しっかり“Rec. 2100 HLG”の形式になっていました。
ビットレートが高すぎてファイルサイズが大きすぎるときの救済措置なんかに使えそうです。