coluli

安物のカメラ機材を使ったテスト撮影ばかりしています。

YouTubeで高画質動画[失敗]

YouTube動画を高画質でアップする方法を模索しました。が、今ひとつ成果が出なかったので備忘録となります。

先日の「剪定鋏式 改」など、動画はAVCHD ver.2.0(AVCHD Progressive)で撮影することが多いです。60p/28Mbpsのh.264です。

編集するときはApple ProRes 422で行ないます。今回は278Mbpsになってしまいました。

ローカル環境では大変高画質なのですが、YouTubeにアップすると一気に画質が落ちてしまいます。

YouTubeの「動画の管理」画面から「MP4でダウンロード」するとFHDサイズの公開動画を入手できますが、Media Inspectorなどで確認してみても、平均ビットレートは6Mbps弱、最高ビットレートは10Mbps弱です。

YouTubeをだましてなんとかビットレートを上げられないかといろいろやってみました。

キーフレーム間隔は関係ない

書き出し時にキーフレームの間隔を変えてみました。

2フレーム5フレーム10フレーム15フレーム90フレーム(3秒ごと|Adobe Media Encoder推奨値)、全てのフレーム(をキーフレームに)、1800フレーム(キーフレームなし)など、いろいろやってみましたが、YouTube公開後の動画ファイルサイズへの影響は(ほぼ)全くありませんでした。

フレームレートも関係ない

オリジナルは60fps(59.94fps)、YouTubeへは30fps(29.97fps)に変換したものをアップしています。20fpsにフレームレートを落としたものをアップしてみましたが、やはりビットレートに変化はありませんでした。

1フレーム当たりのデータは増えている、と考えられなくもないですが、キーフレーム数が不明なのでよくわかりません。実際の見た目にも画質の向上は感じられませんでした。

元動画の動き情報はきちんと把握されている

(仮に)書き出される平均ビットレートがいつも一定ならば、動かないパートを増やせば動く部分にその分割り当てられるかも、と考えて、動画の後ろにグレーの静止画像を1分足してみました。

BitrateViewer

が、今度は平均ビットレートが半分になってしまいました。Bitrate Viewerで確認してみると、動きのある前半に6Mbps〜10Mbpsが割り当てられています。YouTubeはオリジナルの動き情報をきちんと参照しているようです。

シネスコサイズで少し改善?

画面をトリミングしてシネスコサイズ(12:5)にしてみました。

FHD(16:9)の画面を黒でマスクしても、クロップ(削除)しても、平均ビットレートに変化はありませんでした。トリミング前と同じ、6Mbps弱です。有効画面が小さくなった分、画質は向上しているはずですが、劇的な改善ではないようです。

一旦あきらめて後処理

色々実験してみましたが、有為な改善がなかったので一旦あきらめ、開き直ってデータ処理を行なってみました。

動画編集ソフトの「手ぶれ補正」処理を加えてアップしてみました。動きを解析し、画面をトリミングしながら動きをなめらかにする処理です。FHDの精細さは失われますが、どうせ28Mbps → 6Mbpsなのでたいしたことはありません。ステディカム風の浮遊感がでてきました。

倍速再生でビットレート向上

1/2スピードの動画を作成しアップしてみました。2倍速で再生するとビットレートは12Mbps、フレームレートは60になるので一応画質は向上します。

結局あきらめる

いろいろやってはみましたが、再生時に視聴する側がHDモード(720p/1080p)にしてくれなければ意味がありません。 公開サイズでの最適化を行い、このblogのサーバーDropboxにアップしました

640px × 360px、60p、4Mbpsのmp4ファイルです。Final Cut Pro Xでの手ぶれ補正処理を加えています。