これまで高画質な動画のアップロード先を求めてYouTube → ニコニコ動画 → zoome と旅をしてきましたが、YouTube の HD 画質が zoome 以上に高画質化できるようなので挑戦してみました。
最初に挑戦した頃のYouTubeはまだHD画質のサービスが始まっておらず、どうがんばってもサーバ側で再エンコードされた動画は見るに堪えない画質になってしまったのですが、最近になってHD画質でクオリティの高い動画を見かけるようになったので再挑戦してみることにしました。
結果、やはりYouTubeは何をどうしようとも必ずサーバ側で再エンコードされてしまうようです。 これによりビットレートが落ちてしまいますし、そもそも例えビットレートが同じであっても再エンコードを行った時点で画質は低下します。
しかしアップロードした動画がHD画質、具体的には 1,280×720 (720p) であった場合は約2,000bpsというかなり高めなビットレートに変換されることになり、WEB上で再生する分には十分な画質になることもわかりました。
以下、YouTubeへのHD画質動画のアップロードについてまとめました。
まずはソースとなる元動画ですが、わたしはMHFのゲーム画面を 1,280×720 のウィンドウ表示にし、Dxtoryで非圧縮録画したファイルを使います。 ロスレスのコーデックを使ってRGBで録画しますので、当然この段階での画質劣化はありません。
続いて編集作業が必要な場合は、EDIUS や VideoStudio 等で編集し、ロスレスのコーデックで書き出しておきます。 サイズは大きくなりますが中間ファイルなので仕方ありません。
さて肝心のエンコードですが、ここでは大定番のフリーソフト、AviUtl を使います。 使用しているプラグインはたくさんありますが、今回は元ファイルと同サイズ、つまりリサイズする必要がなく色空間も (AviUtl上では) 変換する必要がないため、mp4 (または mkv) 形式で出力するための 『拡張 x264 出力(GUI)』 があればOKです。
先に触れた通りYouTubeにアップロードした動画は、必ずサーバ側で再エンコードされます。 したがって画質は少なからず低下しますので、アップロードするファイルはなるべく高画質なものにしておくべきです。
ニコニコ動画やzoomeの場合は (ソース動画が16:9の場合) 512×288 や 640×360 にリサイズしていたため、ビットレートはだいたい700~1,000bps程度を割り当てれば十分な画質になっていましたが、YouTube のHD画質の場合は 1,280×720 という大きさに加えてサーバ側での再エンコードが必須ということを考慮すると、少なくとも3,000bps以上のビットレートでエンコードするのが良いと思います。
試しに 3,000bps でエンコードしたものをアップロードしてみたところ、サーバ側での再エンコード (長い…1時間以上かかりました) の結果、やはり細かいディティールは失われてしまいましたが、画質はまずまず満足のいくものになりました。
ゲームプレイ動画(つまり高精細なCG)の場合、ビデオカメラでの実写映像に比べて細部のディティールが目に付きやすく、個人的には3,000bpsでは少々心許ないという印象です。
よって今後は動画に 8,000~9,000bps、音声に192kbpsを割り振ることにしました。
これは 「MPEG-4に圧縮してHDDに保存しておく」 用途として考えると、相当オーバースペックな設定値ですが、何度も繰り返しているようにYouTubeでは必ずサーバ側での再エンコードが発生しますので仕方がありません。
YouTube は仕様上10分以内、1GBまでの動画でないとアップロードすることはできません。 8,000bpsで約10分の動画であれば、だいたい数百MB程度に収まりますのでファイルサイズ的には問題ありません。
こうして作成した動画ファイルをアップロードしてしばらくすると、まずは 「すっごい低画質で」 視聴できる状態になります。 この間、動画のページ上部に 「この動画は現在処理中です。処理が完了すると動画の品質が向上する場合があります。」 というメッセージが表示されます。
この状態で待つこと数十分~数時間 (?)、上記メッセージが表示されなくなると、動画プレイヤーの右下に 「HD」 のボタンが! これでやっとHD画質で再生できるようになります。
次回は実際にYouTubeにHD画質でアップロードしたプレイ動画をお届けします(*´∀`*)

































