Youtube にアップロードする時に注意する colormatrix の設定

Youtube は動画をアップロードすると必ず再エンコードされるので、x264 の colormatrix を設定しないか、ffmpeg のフィルタを使って色が劣化しないようにする。

追記 2012年10月19日
コメント欄よりx264での指定方法がわかったので大幅に修正した

簡単なまとめ

    AviUtlで作った動画
  • x264、ffmpeg どちらでも可
    1. x264 は色変換の設定を720P以上は BT.709 に、720P未満は BT.601 に指定して、colormatrix は指定しない
    2. ffmpeg は色変換の設定を720P以上は BT.709 に、720P未満は BT.601 に指定して、コマンドに -vf colormatrix=bt601:smpte240m を付ける

    すでにある動画
    1. 解像度が720P以上 colormatrix BT.709 はそのまま
    2. 解像度が720P以上 colormatrix BT.601 は x264 の colormatrix BT.709 にエンコードか、
      ffmpeg の -x264opts colormatrix=bt709 を付けてエンコード
    3. 解像度が720P未満 colormatrix BT.709、BT.601 は ffmpeg の -vf colormatrix=bt601:smpte240m を使ってエンコード
    4. colormatrix がわからない動画はそのままアップロードし、オリジナルと比較して問題がなければそれを採用。問題があれば、1から3を参考にする


今回調べた結果720P未満の動画を x264 か x264 L-SMASH でエンコードしてアップロードすると色の劣化を避けられなかったので、720P未満でも色の劣化を避けられるのと、設定するところが少ないffmpegを使うのを推奨とした。こうすれば色が劣化しないよというのを知っていれば教えてください。

720P未満の動画とは16:9の動画で1024x596, 854x480などの解像度の動画、4:3の動画は640x480などの解像度の動画で横幅が720ピクセル未満の動画を指す。

注意点


  • 色変換の設定を間違えるとcolormatrixの指定直しでは色が直らない
  • 色変換の設定は動画を取り込んだ場合に解像度によって BT.601 か BT.709 が指定される
  • 拡張編集プラグインで動画を作る場合の色変換の設定は、720P以上は BT.709 に、720P未満は BT.601 に手動指定する必要がある
  • 720P未満の動画は色変換の設定の入力・出力が BT.601 になっているのを確認する
  • すでに colormatrix を付けてエンコードした720P未満の動画しかない場合は ffmpeg の -vf colormatrix=bt601:smpte240m を付けてエンコードするか、720Pにリサイズする(非推奨)

    色変換の設定方法:720P未満の場合AviUtl_x264_720pu.png


準備


必要なのが、AviUtl の環境と x264・x264guiEx か ffmpeg・ffmpegOut、ALACエンコーダー、MediaInfo、PictBear。

AviUtlのお部屋

OSのバージョンに合わせて8bit-depthを保存する
x264.nl

右のサイドバーから x264guiEx 1.xx をクリックして保存する
rigayaの日記兼メモ帳 x264guiEx

OSのバージョンに合わせて(Static)の(Latest) を保存し、binフォルダのffmpegを使う
Zeranoe FFmpeg - Builds

右のサイドバーから ffmpegOut をクリックして保存する
rigayaの日記兼メモ帳 ffmpegOut 0.02

.7z が解凍できない場合は7-Zipを使う
7-Zip - sourceforge.jp

ALACエンコーダーはqaac_1.43.zip(2012年10月18日時点)を保存し、64bitOSならx64フォルダの中身を、32bitOSならx86フォルダの中身を使う
cabinet - qaac

動画情報を調べるツール
インストールして起動し、表示(Y)からHTMLを選択すると見やすい表示になる
MediaInfo - Download

AviUtlでx264を使ってエンコードする


動画を読み込んだら色変換の設定から入力・出力共に720P以上は BT.709 に、720P未満は BT.601 になっているか確認して、拡張 x264 出力(GUI)Ex でエンコードする。

音声のエンコーダーは容量に余裕があれば WAV 出力。なければ NeroAacEnc の AAC-LC 320kbps の .mp4 出力にする。Flac で .mkv に入れると音ズレしたので非推奨。

設定は図のように変更する
AviUtl_x264_setting1.png
AviUtl_x264_setting2.png
AviUtl_x264_setting3.png


AviUtlでffmpegを使ってエンコードする


Pluginsフォルダにプラグインを入れて、プラグイン出力で「ffmpeg / avconv 出力」を選択。ビデオ圧縮から左の映像のコマンド欄に以下のコマンドをコピペする。次に音声エンコーダーは Youtube は強制再エンコードなので劣化のない ALAC を使う。そして出力拡張子は.m4vを指定し、OK < 保存を選択しエンコードを開始する。

詳しい ffmpeg の libx264 の設定は Windowsのffmpegで生放送する方法 : libx264のオプション を参照。

映像のコマンド欄のコピペ例
-vcodec libx264 -preset fast -crf 20 -bf 2 -qmax 51 -qmin 10 -keyint_min 0 -vf colormatrix=bt601:smpte240m
-acodec copy


クリックして別窓表示
youtubeup_colormatrix2.png

Youtube は申請しなければ16分未満の動画で2GB制限があるが、ニコニコのようにビットレートを心配することはほとんどないので品質指定(crf)でエンコードし、極力高画質で且つエンコード時間の短い設定にしている。

アップロードに関するヘルプ - YouTube ヘルプ

すでにある動画のエンコード


動画の作者の場合、プロジェクトファイルから x264 か ffmpeg でエンコードする。すでに動画しかない場合は colormatrix を確認して必要ならば再エンコードする。

ffmpeg はコマンドから操作するので以下のようなバッチファイルを作り、ffmpeg と同じフォルダにおいて入力ファイル名と拡張子をテキストエディタで書き換えてバッチファイルを実行する。音声コピーで音ズレする場合は音声ALACエンコードにする。

バッチファイル例 音声コピー
ffmpeg -i "入力ファイル名.mp4" -vcodec libx264 -preset fast -crf 20 -bf 2 -qmax 51 -qmin 10 -keyint_min 0 -vf colormatrix=bt601:smpte240m -acodec copy "out.mp4"

バッチファイル例 音声ALACエンコード
ffmpeg -i "入力ファイル名.mp4" -vcodec libx264 -preset fast -crf 20 -bf 2 -qmax 51 -qmin 10 -keyint_min 0 -vf colormatrix=bt601:smpte240m -acodec alac "out.m4v"

バッチファイル配布先

colormatrix がわからない動画は色の差異を比較することになる。比較する色はRBGの(0.255.0)(16.180.16)と言った緑系の色をカメラで映しYoutubeにアップロード。そしてスクリーンショットを撮り色のRGBの特にGが激しく変化していないか確認する。

2つの動画をアップロードするのは2度手間になるので最初オリジナルの動画をアップロードして色の劣化を確認できたら上のバッチファイルでエンコードとアップロードをして色を確認する。

色の確認にはPictBearを使う
PictBear(ピクトベア)- 多機能で軽快なペイントソフト | フェンリル

画像を読み込むと右下に(R.G.B)の値が表示されるのでここを確認する。

youtubeup_colormatrix3.png
関連記事

この記事へのコメント

-2012/10/19 (金) 02:08:06

Youtube側での再エンコードは--colormatrixの指定は無関係に--colormatrixは未指定でエンコードされ、FlashPlayerでの再生時にBT.709でデコードされる。
よって「色変換の設定」は自動にせずにBT.709にしてエンコードしさえすればx264等の--colormatrixは未指定でもなんでもおkです。

ffmpegはちょっとわからないですが上記の事を理解した上で設定すれば問題ないかと。

ロベルト2012/10/19 (金) 21:02:08

コメントありがとうございます。記事を書き直しました。

管理人のみ通知 :

トラックバック


スポンサード リンク

無料で使える動画編集ソフトNiVEやAviUtlの実践的なテクニックを紹介
最近記事と編集履歴
はてブ数の推移
ブログ内検索
プロフィール

Author:ロベルト
お問い合わせはこちらまで
robelt2525[at]gmail.com
公式のニコニコチャンネルはこちら

詳しいプロフィールはこちら

カテゴリ
アクセスの多い記事
最新コメント
記事アーカイブ
全ての記事を表示する

リンク
ニコニコ静画
アニメカテゴリ毎時ランキング
免責事項
当ブログはリンクフリーです。記事によりトラブルが生じた場合でも、当ブログ管理人は一切の責任を負いません。 当ブログに記載されている情報の正誤や利用は、ご自身の判断でお願いします。 紹介したアプリケーションに関する問い合わせは作者に問い合わせてください。ニコニコ動画に関する質問はまずは公式掲示板、2ch、各Q&Aサイトを参照ください。
blogの読者になる(RSS)
アクセス数