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分足してみました。
が、今度は平均ビットレートが半分になってしまいました。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での手ぶれ補正処理を加えています。