このブログではヒーロー一体一体に動画を取得しています。
今まではとりあえず1440x900で動画を作成し、YouTube側で1280x720にしていました。
なぜかうちで1920x1080の動画をアップロードしてもYouTubeでHD1080pが選択できず、
1280x720だと480pしか選択できないという謎の現象が発生するため、1440x900という中途半端な解像度で動画を作ってました。
さて、YouTubeは10/30ごろに60fps動画に対応したということで、試してみようといろいろやってみましたが、どうもおかしい。
あちこちで60fps動画がぬるぬる動くと聞いていたのに、全然60fpsの気がしないのです。
そんなわけで昨日一日ゲームをせずに動画のテストばかりしてました。
まず、FlashPlayerを右クリックして統計情報を表示すると、どうにも60fpsになっていないようです。
30~40fpsをうろうろしており、drop frameがどんどん上がっていくのでフレームをそもそも落としているという状態でした。
ビットレートを思い切り落としたり、サイズを変えたりといろいろな動画で試してみたんですがダメ。
いろいろなサイト見ていて、なんか表示される統計情報が違うということに気づきました。
で、やっとわかったのはどうやらHTML5の動画プレイヤーに切り替える必要があるということです。
私はブラウザにOperaを使用しているのですが、ChromeやIEはYouTubeのプレイヤーがデフォルトでHTML5プレイヤーだったのでした。
https://www.youtube.com/html5
上記でHTML5プレイヤーに変更すると、ほかの検証サイトで表示されているプレイヤーに切り替わりました。
実はかなり前からほかのサイトのスクリーンショットと自分のYouTubeのプレイヤーが違うとはときどき思っていたのですが、普通に利用できていたので気にしてませんでした。
この設定が原因だったとは。
で、HTML5のプレイヤーに切り替えたのですが、これまたうまくいかない。
どんなに頑張っても60fps動画が30fpsにしか見えない。
おかしいおかしいと思って、Chromeで見てみるときっちり60fps出てます。
Operaだと60fps出ないのですね。
さらに、いくつかの動画は1080pのはずなのにOperaだと720pまでしか選べない。
これもまた、Chromeなら1080p60が選べる。
どうもこれはエンコーダーの問題のようでVP9エンコードされているものはOperaでも1080p選べるようです。
H.264だとOperaでは720pが限界。うむぅ。
で、VP9のエンコード方法がいまいちわからない。
ffmpegを試してみたんですが、エンコード速度がむちゃくちゃ遅い。どうにもならないほど遅い。
そしてVP9でエンコードしたにもかかわらず、YouTubeにアップロードしたらH.264に変換されていたという… Oops
と、いうことであきらめました。
※追記 2015/02/15ごろにOperaでも1080p60が表示されるように仕様変更された模様です。
さて、次はブログの動画です。
これまではbloggerのデフォルトで動画を選択するとFlashPlayer形式になってました。
で、画質はvq=hd720などとすると720pになっていたのですが、HTML5形式の場合これができない。
ブラウザ上の動画の表示領域を最初から1920x1080にしておけば1080pになるのですが、720x476サイズなどにすると自動的に360pなどになってしまう。
これまた時間かけました。
結局YouTubeのAPIをいろいろ調べ、自分でScriptを作ることにしました。
これでFlashPlayerでもHTML5でも高品質動画がデフォルトとなります。
と、いうことで当ブログ用の動画をこれからぼちぼち1080p60に直していくことにします。
↓のように徐々にね。