2014年11月20日木曜日

YouTubeの60fps化を試してみたところ…。

このブログではヒーロー一体一体に動画を取得しています。
今まではとりあえず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に直していくことにします。
↓のように徐々にね。


0 件のコメント:

コメントを投稿