YouTubeにアップした動画の色を転ばなくするには

これまたみなさんが困っている問題ではないかと思います。YouTubeは今や映像を公開したい人にはスタンダードな存在で、その対象はプロやアマチュアというような分類では分けることがナンセンスな状況です。公開に対する敷居も低く、幅広く自分が作った映像を見て欲しい時の一番メジャーな「場所」だと言えます。しかし、プロならば自分が作った動画の色が思ったように表示されないもどかしさを感じているかもしれません。そこで、編集中のビューワの色と、完パケをYouTubeにアップしてWebブラウザを通して見た色を近づけるテクニックを紹介します。

2020年9月11日に加筆修正して、Color Space Transformの設定を見直しました。初期の記事を参考にしている方は、ご注意ください。以前の設定よりも、カラーシフトの改善に効果が見られます。

なぜYouTubeにアップすると色が変わるのか?

申し訳ありませんが、私にはその理由がはっきりと掴めていません。今回使用したDaVinci Resolve内部の設定「Rec.709-A」は、Mac限定のためのガンマ値を約1.96にするための設定との情報があります。YouTube側ではクリップのNCLCを読み込みながら、1-1-1(Rec709)の場合には、ガンマが1.96であるとの前提で処理をしているのかもしれません。

YouTubeではアップロードした動画は、解像度別に多数のメディアファイルに変換されています。我々が普段目にしている映像はその中のどれかになります。さらに、オーディオのみのファイルも作られています。また、YouTubeではLiveストリーミングにも対応したり、その際の巻き戻し再生や、通常動画での倍速再生など今後はさらに多機能なサービスを提供してくれる期待感はあります。

このような多機能なYouTube故に、内部での映像の処理も単純な「変換」だけではないことが想像できます。インターネットサービスの最先端であるため、日々進化や改善も見えないところで進んでいるでしょう。そんなわけですので、今回紹介する内容はいつも以上に「賞味期限」が短い内容である点をご理解ください。すでにこのテーマでは2020年の春先にはじめて記事を書いていますが、その時からも内容に変更が出ています。

今回紹介するカラーシフト対策は、技術的になんら裏付けがあるものではなく、言ってみれば「対処療法」です。「2020年9月現在ではこんな方法で色の転びを少なくできていますよ」という技術的に見るとなんとも情けないのが実情です。しかし、今のところはこれをやれば、対策なしよりは改善することは確実なので、その方法をyamaqblogで紹介しようと考えた次第です。

1)環境の準備

条件さえ揃えばどんなアプリケーションでも大丈夫だとは思いますが、今回使用するのはDaVinci Resolveです。有料版でも無料版でもどちらでも使用可能です。バージョンはなるべく新しいものをお使いください。それだけです。今回は正確なモニタリングのための外部モニターやビデオI/Oも不要です。完成したRec709規格のマスターファイルさえあれば、DaVinci Resolve内で変換をするだけです。

2)DaVinci Resolveの起動

DaVinci Resolveを起動して最初に現れるウインドウがプロジェクトマネージャですが、そこから右下のNew Projectで新規プロジェクトを作成します。DaVinci Resolveでは一般的な動画編集ツールのように、プロジェクトを作成しても保存したファイルは現れません。この点が不思議に感じると思いますが、そんな仕様なのです。プロジェクトを作成するのが面倒な方は、Untitled Projectをダブルクリックするだけでも構いません。その場合は、作業中はずっと名称未設定のプロジェクトのままで作業を続けられます。アプリがクラッシュしたら、もう一度振り出しに戻って始めてください(笑)

3)プロジェクト設定

スクリーン右下にあるギアマークをクリックすると、プロジェクトごとの設定ウインドウが開きます。環境設定に似ていますが、ここでは今回作成したプロジェクトだけに反映する設定ができます。

Color Management
・Color science・・・DaVinci YRGB Color Managed
・Input Color Space・・・Bypass
・Timeline Color Space・・・Rec.709 Gamma 2.4
・Output Color Space・・・Bypass

以上四点を設定変更してください。その後、ウインドウ右下のSaveでウインドウを閉じてください。

4)クリップの読み込みとInput Color Space設定

スクリーン下にあるページ切り替えボタンから、一番左にある「Media」をクリックします。MediaページはDaVinci Resolveで使用する素材を読み込むための機能がいろいろ用意されています。読み込みにもたくさんの選択肢とオプションがあるのですが、ここでは最もシンプルで間違いのない方法を使用します。あらかじめ書き出してあるメディアファイルをFinderで表示しておき、それをドラッグ&ドロップでダイレクトにMediaページの下半分の領域に読み込みます。ここはMedia Poolと呼ぶ素材の置き場所です。DaVinci Resolveがサポートしている形式であれば、この方法が最も直感的です。

次に、Media Poolにある読み込んだクリップを右クリックします。Input Color Spaceの中から「Rec.709 Gamma 2.4」を選択します。これにより、先ほどプロジェクト設定でInput Color SpaceをBypassにしていて未設定だったところが解決されました。

5)タイムラインの作成

読み込んだクリップは、タイムラインに配置しなければ基本的な流れでは書き出すことができません。読み込んだクリップを使ったタイムラインを作成するために、Media Poolのクリップを右クリックします。その中の一番上にある「Create New Timeline Using Selected Clips…」を実行します。小さなウインドウが表示されるので、その中でタイムラインのスペックを指定します。

Timeline Nameは自由に設定可能ですが、デフォルトのままで構いません。続いて、左下の「Use Custom Settings」をクリックしてページを進めます。Formatタブではタイムラインの解像度やフレームレートなどの重要な項目があります。間違いのないようにセットしてください。ドロップフレームの場合もここで設定します。確認後右下の「Create」をクリックします。これにより、読み込んだクリップを含んだタイムラインが作成されました。

6)Colorページでの色変換

今回使用するプロジェクトでは、タイムラインのカラースペースをRec.709 / Gamma 2.4としています。以前書いた時はDCI P3にするようになっていましたが、その後の検証で改善が確認できたところです。

今回作成済みの取り込んだマスターファイルは、Rec709を前提にして完パケしています。それをYouTubeでの内部処理による色変化を打ち消すような調整をDaVinci Resolveの中で行うことが必要です。そこでColorページにあるOpenFXプラグインを使用します。プラグインの中には有料版でしか使えないものもあるのですが、今回使用するColor Space Transformは無料版でも使用可能です。Colorページに切り替えて、ノードグラフのとなりにOpenFXを表示します。その中から、Color Space Transformを選択して、ノードにドロップします。続いて下記のように設定してください。

Input Color Space・・・Use timeline
Input Gamma・・・Gamma 2.4
Output Color Space・・・Use timeline
Output Gamma・・・Rec.709-A

これにより、ビューワのコントラストがグッと締まった感じになり不安になると思います。しかし、ここでは色調整をするのではなく色変換をしているのです。YouTubeにアップした時に期待する色に近づけるための調整だと思って安心してください。

この方法が使えるということは、今回のようなRec.709完パケではなく、今後出てくるであろうRec.2020の場合でもInput Color SpaceとInput GammaをRec.2020に変更すれば対応できるはずです。ただし、その頃にはYouTube側の仕様が現在とは違った様子になっている可能性もあり、このような追いかけっこがずっと続くのかもしれません。

7)DaVinci Resolveからの出力

書き出しのためのDeliverページに切り替えてください。スクリーン下の一番右の項目がDeliverです。Deliverページの左上からはじまるパートが、書き出し設定のためのパレットです。上から順番に確認していきましょう。

最上部にはプリセットが並んでいますが、Customを選択してください。次に出力先の設定のためにBrowseボタンを押してください。macOSのダイアログが表示されるので、デスクトップなどの書き出し先を指定します。書き出しするファイル名は「Filename」に入力してください。 そして、これがDaVinci Resolveの独特のオプションなのですが、Render設定から「Single clip」を選択します。これによってタイムライン全体が単一ファイルに出力されます。次からはビデオとオーディオのコーデックを指定します。

YouTubeでは配信用のビデオコーデックはH.264を使用しているようですが、念のため書き出しはProRes422HQ形式を私は選ぶようにしています。これがどのくらいクオリティ維持に貢献するかは不明です。単にアップロードに時間が長くなるだけの無駄かもしれませんが。オーディオはAACでも良いかと思います。

設定は以上で、「Add Render Queue」をクリックすると、スクリーン右側の書き出しキューに登録されます。続いて「Start Render」をクリックすると後は書き出し完了を待つだけです。

8)アップロードと確認

YouTubeへのアップロードは通常通りでなんら特別な点はありません。ProRes形式を指定したので、普段以上に待ち時間は必要になりますが、そこはご容赦ください。長尺の場合にはProRes422LTでも良いかもしれません。

色の再現性はいかがでしょうか。カラーピッカーで比較すると厳密には少しのズレは出ていると思います。ただ、目視での確認ならば何もしないよりはずっと効果は出ているのではないでしょうか。今回使用した環境は下記の通りです。また私が確認したWebブラウザはSafariとGoogle Chromeです。

・macOS10.15.6 Catalina
・DaVinci Resolve 16.2.6

念のため、DaVinci Resolveのビューワを基準にして、YouTubeにアップしたクリップをWebブラウザ(Chrome)で見た双方の、RGB値を表にまとめました。これは、macOS付属のDigital Color Meterアプリでピックしたものです。


比較の際に使用した映像は上記のような自作チャートです。24個のカラーパッチにはRGB値が記入されています。比較の際にこの値とは大きく異なっているのはColorSyncの影響で、ここでオリジナルのRGB値との差は問題ではありません。DaVinci ResolveのPreferencesで、ColorSyncのDisplay Profileを有効にしているためです。

変換ではなく通常の色調整時には

高機能なDaVinci Resolveを今回紹介したような単なる変換だけで使用するのは、開発者が聞いたらさぞがっかりすることと思います。カラーコレクション機能に加えて、編集や合成、サウンドミキシングも十分独り立ちできる機能を持っているので、この機会にDaVinci Resolveを使い始めてみるのも良いと思いますよ。

さて、DaVinci Resolveユーザーの方は通常の色調整でも使われていると思いますが、そんな時にはどのようにセッティングするかを最後に書いておきます。

今回の記事の修正で、一般的なRec.709編集の際のプロジェクト設定(Color Management)と同じになりました。したがって、マスタータイムラインをはじめに作成してから、タイムラインをネス化して別のタイムラインを作り、そこにColor Space Transformの設定に基づいて色の変更を加えてください。

「YouTubeにアップした動画の色を転ばなくするには」への4件のフィードバック

  1. ピンバック: YouTube動画で色についての考察(追記) – yamaqblog

  2. Blackmagician_BOY

    大変参考になる記事をありがとうございます。
    アーカイブ動画も観させていただきましてとても勉強になりました。

    視聴の中で大きく2点お聞きしたい点が湧きましたので、こちらに投稿させていただきます。

    1点目はDavinciのPreference設定です。
    Rec709準拠のオリジナルデータとYoutubeアップロード後のデータを比較したドキュメントでPreference設定を
    「Use Mac Display Color Profiles for Viewers is ON」とされています。
    これはDavinciのViewerにMacディスプレイのiccプロファイルを適用させた上で検証を行なっていることだと思うのですが、
    適用させるかどうか(必要性)の有無はどのように判断したら良いのでしょうか?

    ChromeなりSafariなりでYoutubeを視聴する環境は、基本的にiccプロファイルの影響を受けた状態だから「ON」設定とするということなのかもしれないと整理していますがあまり自信が持てません。
    またColorSyncの支配を免れるためビデオIO経由でのモニタリングを推奨されていますが、この点との関係性もいまいち切り分けできず歯痒い思いをしています。

    2点目は1点目と関係しますが、
    DavinciのViewerと書出した動画の比較検証を自身でやってみた結果、上記Preference設定を「OFF」とした状態であっても両者(Viewer表示とQuickTime再生の色)に違いが現れませんでした(目視ではありますが)。
    良い結果なのですが、理屈が理解できずモヤモヤしています。Browserでの検証とはまた前提が違うということでしょうか?

    検証環境は以下のとおりです。
    iMac(5K,Late2014)
    macOS10.15.7
    iccプロファイルターゲット=Rec709 Gamma2.4 120cd/m2(当日にi1Studioで作成。Brival使わせていただきました!)
    検証動画のターゲット規格=Rec709 Gamma2.4
    NCLCtag=(1-2-1)
    外部ディスプレイは使用しておらず、すべてiMac内部で完結しています。
    ちなみに、NCLCtagだけを(1-1-1)とし他の条件は一切変えずに書き出したものをQuickTime再生すると見た目が変わりました(若干明るくなる)。

    いかんせん古い機体なのでお恥ずかしい限りですが、Viewerへのiccプロファイル適用有無にどのような整理をすれば良いのかお答えいただける範囲で教えていただければ幸いです。

    長文大変失礼しました。
    次回以降の記事・ライブ配信も楽しみにしています。

  3. BLACKMAGICIAN_BOYさん、コメントありがとうございます。

    ビデオI/O経由のモニタリングを基本としながら、ColorSyncを使ったビューワでのモニタリングの話題が絡んできて理解に苦しまれている様子で、私の解説にも課題があることを痛感しております。良い機会を頂いたので、改めて解説させていただきますね。

    まず、Preferencesの「Use Mac Display Color Profiles for Viewers 」は、ご指摘通りDaVinci Resolveビューワの色をColorSync配下に置くためのもので、チェックを入れると有効になりDisplay profileに沿った発色になります。YouTubeにアップした動画をSafari/ChromeのWebブラウザで視聴する場合にはColorSyncの配下に置かれます。したがって、DaVinci Resolveの作業時にも同じ環境に一致させるために「Use Mac Display Color Profiles for Viewers」を有効にします。この場合には、ビデオI/O経由のモニターに表示されている色は、YouTubeからの動画の色と一致しない可能性がありますので、使用しない方が混乱はないかと思います。

    YouTube向け動画の編集ではなく一般的なBT.709完パケの場合には、上記の使用法とは異なります。この場合には、推奨しているビデオI/O経由で正確に調整されたリファレンスモニターを使用します。この場合には、「Use Mac Display Color Profiles for Viewers」は無効にするとビューワの色がColorSync配下に置かれないので、完全にDaVinci Resolve任せにできます。ただ、この場合でもDaVinci Resolve内アプリのビューワの色は正確ではないと考えて、外部のリファレンスモニターを重視することが基本でしょう。

    古いMacをお使いとのことでしたが、その場合には尚更ビデオI/O経由でのリファレンスモニターの使用が効果的になるでしょうね。古いMac環境でもYouTubeコンテンツ編集時の色の変化はハンドリングできるので、今回話題にしているテクニックは使用できるでしょう。

    以上、ご理解向上の参考になれば幸いです。まだ十分でなければ、さらにご質問を書き込んでみてください。それにより、本件に関係する背景を他の方にも拡散できると思います。

    1. Blackmagician_BOY

      YAMAQさん 詳しいご説明ありがとうございます。合点がいったように感じています。

      自分なりの整理と検証を行なってみましたのでご報告を兼ねて投稿させていただきます。

      1.
      先日の投稿の中で、私の環境ではPreference設定「iccプロファイルの適用OFF」状態のViewer表示と書出した動画のQuickTime再生が同じ色に見えると書きました。「ON」状態ではなく「OFF」状態なのに同じに見えるのです。
      最初QuickTimeがColorSyncの影響を受けない仕様にでも進化したのかと考えましたが、それはなかなか現実味がない。影響を与える何かを自分が行なっているはずなのでノードツリーを眺めてみました。するとやっぱり犯人がいて、OpenFXプラグインによる色空間変換を行なっていました。これによってDavinci内部ではRec709 Gamma2.4規格の映像として扱われるようになり、「iccプロファイルの適用OFF」状態であってもViewerには最終出力映像として正しい表示をしてくれていたのです。また書出した動画のQuickTime再生もColorSyncとNCLCタグによって正しくRec709 Gamma2.4規格として扱われ、結果、両者が同じ色で表示されることになったと。このように整理できました。
       これまで「iccプロファイルの適用OFF」の状態が通常設定であり、「ON」を適用すべき環境を整理していなかったので混乱してしまいました。自分の普段使いとしてはこれで正しいようだと自信が持てました。
       ただ、より正確なモニタリング環境を手に入れることも魅力的で、冬のバーゲンを見計ってモニター・ビデオIO等々を検索している自分がいます。

      2.
      もう1点、今回の検証を行なっている中でDavinciの興味深い挙動を見つけたので併せて記しておきたいと思います。
      「iccプロファイルの適用ON」の状態にするとLOG素材であれば当然ある程度の彩度が加わります。これは予想通り。
      しかしColor Management設定内のColor Space設定をいじってみると以下のような挙動が見られました。

      LOG素材Aを使用します。
      共通設定 Preference設定「iccプロファイルの適用ON」
           Color Science設定 Davinci YRGB Color Managed
           クリップに撮影時のInput Color Spaceを指定
      個別設定     
      設定α Timeline Colorspace : Rec709 Gamma2.4
          Output Colorspace : bypass
      設定β Timeline Colorspace : BMD Pocket 4K Film Gen4
          Output Colorspace : bypass

      Viewerに表示される映像の見た目はどうなるでしょうか?「iccプロファイルの適用OFF」の状態であれば大きく異なるはずです。
      しかし結果は「(目視では変化を感じない程度まで)同じ見た目」でした。
      おそらく「iccプロファイルの適用ON」としたことで(通常であればViewerに出力される)Output Colorspaceからさらにディスプレイiccプロファイルへ適合させる変換が行われているようです。ただ内部データ的にはしっかりαとβそれぞれの設定項目が反映されているようで、実際、Viewerの見た目は変わらないのに左下scopeに表示されるYRGBデータは顕著な違いを示します(ただしCIE色度図上の表示に違いは現れません)。

      また、一方で「(目視では変化を感じない程度まで)同じ見た目」とはならないColorspaceも存在しました。例えばBMD 4.6K Film Gen1に設定すると色が大きく変化します。この原因はなんなのだろうか?と思案してみた結果、(100%想像ですが)該当するColorspaceがXYZ表色系(XYZ色空間)と互換性を保った定義がされていると、ディスプレイiccプロファイルへ適合させる変換において「同じ見た目」を維持する精度が保たれているのではないかと考えられます。少し古めのColorspaceやYUVを適用すると色の変化が現れることも説明がつきそうです。
      iccプロファイルの接続空間としてXYZが採用されている(?)ことが頭をよぎり、あながち間違っていないんじゃないかと密かな確信を持った次第です。

      以上、長文となってしまいましたがご報告でした。
      書き残すことで同じ疑問を持たれた方のお役に立つことがあれば嬉しい限りです。
      最近は技術系YouTuberの方が投稿した動画に対して視聴者が質問コメントをし、Youtuberが回答することによって「動画が育つ」(=同じ動画を観返す・コメントを読み返す動機が生まれる)現象が面白いなと感じていました。ブログ記事にもそういった面が共通しているように思います。
      改めてありがとうございました。

Blackmagician_BOY へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください