ラベル 雑談 の投稿を表示しています。 すべての投稿を表示
ラベル 雑談 の投稿を表示しています。 すべての投稿を表示

2015年2月12日木曜日

雑談の雑談 YouTube強制1080pスクリプト

Soulvizierではなくて、YouTube 60fps化の記事が一番読まれているみたいなので、vq=を使わない強制高品質60fps化をやっている方法を書いときます。
(vq=をつかうのはFlashPlayer版で、HTML5版では使えないため。)


ここ、Bloggerならガジェットの追加で「HTML/Script」を選んで、ヘッダの下あたりに入れて、下記のソースコードを入れます。
普通のブログでもどこか先頭のほうに入れてください。

<script id="YouTubeMyYouTube">

      var tagMyYouTube = document.createElement('script');

      tagMyYouTube.src = "https://www.youtube.com/iframe_api";
      var firstScriptTagMyYouTube = document.getElementById('YouTubeMyYouTube');
      firstScriptTagMyYouTube.parentNode.insertBefore(tagMyYouTube, firstScriptTagMyYouTube);

      var playerMyYouTube = [];
      var playerVideoIdMyYouTube = [];
      var playerCntMyYouTube = 0;
      var playerAPIReadyMyYouTube = false;
      var playerWidthMyYouTube = [];
      var playerHeightMyYouTube = [];

      function mkPlayerMyYouTube(i){
         playerMyYouTube.push(new YT.Player(playerVideoIdMyYouTube[i], {
                  height: playerHeightMyYouTube[i],
                  width: playerWidthMyYouTube[i],
                  videoId: playerVideoIdMyYouTube[i],
                  events: {
                    'onReady': onLoadMyYouTube
                  }
              }));
      }

      function onLoadMyYouTube(event){
        event.target.setPlaybackQuality("hd1080"); // ここのタイミングで画質を設定するとうまく切り替わるっぽい
      }

      function onYouTubeIframeAPIReady() {
        if(playerCntMyYouTube > 0){
            for(i=0;i<playerCntMyYouTube;i++) {
              mkPlayerMyYouTube(i);
            }
        }
        playerAPIReadyMyYouTube = true;
      }

      function addPlayerMyYouTube(vID,vWidth,vHeight){
        var i = playerCntMyYouTube;
        playerVideoIdMyYouTube.push(vID);
        playerWidthMyYouTube.push(vWidth);
        playerHeightMyYouTube.push(VHeight);
        playerCntMyYouTube++;
        if(playerAPIReadyMyYouTube == true){
          mkPlayerMyYouTube(i);
        }
      }

      // これを呼び出す。引数はYouTubeのビデオIDと自分のサイトに表示したい幅と高さ。
      function divAddMyYouTube(vID,vWidth,vHeight){
        document.write('<div id="'+vID+'"></div><br />');
        addPlayerMyYouTube(vID,vWidth,vHeight);
      }
</script>


で、本文の中で動画を入れたい場所に

<script>
divAddMyYouTube('kbWmSdIETe0', 768, 467);
</script>

という感じで書きます。 'kbWmSdIETe0'の部分は「https://www.youtube.com/watch?v=kbWmSdIETe0」のv=の後ろの部分ね。

ま、これが役にたつのかたたないのかわかりませんが、好きに使ってください。
(このブログではもうちょっといじってサイズは引数に入れないようにしているのでこのソース通りではないです。)

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に直していくことにします。
↓のように徐々にね。


2014年8月31日日曜日

取得困難なソウルと使えるソウル その1

開始してから約2か月。現時点でのメモ。

取得困難なソウル

    ここまででヒーロー出現率の低さによる取得高難度と感じるソウルは3つ。ソウルコンプリートするにはこれらがかなりきつい。

    シンダークロウ
    シンダー クロウ
    スパルタ高原で1500周で3回、アルカディアで500周で2回の計5回だけ出現。出現を確認できた場所だけで平均400回に1回ということで、ほんと見かけない。多分ケラタ森林などでもでるのではないかと思うが450周しても一度も出ていない。

    岩の蹄ラスース
    岩の蹄 ラスース
    メガラ断崖で400周+αで2回。メガラ郊外/ハルシオン海岸でも出る可能性はあると思うがこれも今のところでていないので難しいか。

    タルゴックスマンキャッチャー
    タルゴックス マンキャッチャー
    ケラタ森林で275周で2回だけ見たヒーロー。もしかしたらスパルタの森やテゲア森林でも出る可能性はあるのかもしれない。

    これらのソウルが早く拾えるといい。以前考察した通り、これらのヒーローがでたら再起動しなければ捕まえやすいのかもしれない。
    いずれ試してみるつもり。



つかえるソウル

    ここまで取得したソウルの中で特に使えると感じるものを上げてみる。

    サイルタス フレイムボーン ソウル
    サイルタス フレイムボーン
    サイルタス フレイムボーン ソウル
    ファイア オーラ ファイア オーラ
    簡単に取得できる割にはファイアオーラが強力で最序盤でまずは取ったほうがよいソウル。

    ゴート サッカー ソウル
    ゴート サッカー
    ゴート サッカー ソウル
    早ければラコニア丘陵の天然洞窟で取得できるがスパルタ高原の天然洞窟で出現しやすい。+4.0毎秒回復するヘルスがそこそこ効く。

    ラカニゼウス ソウル
    ラカニゼウス
    ラカニゼウス ソウル
    +22%移動速度につきる。ここまでで一番速いので。

    イシュティル ナインスアイ ソウル
    イシュティル ナインスアイ
    イシュティル ナインスアイ ソウル
    ヴェノムボルト ヴェノムボルト
    +20.0毎秒回復するエナジーがとにかく凄い。これのおかげで習得スキルのヴェノムボルトが近接職でも使いたい放題。
    エナジー不足になりがちなオーラ類もこれがあれば問題なし。

    アレサ ダーククロウ ソウル
    アレザ ダーククロウ
    アレサ ダーククロウ ソウル
    召喚 アレサ ダーククロウ 召喚 アレサ ダーククロウ
    パラメタアップはそこそこだが、アレザダーククロウが召喚可能で傭兵契約書の代わりに使える。
    アレザが使うスキル自体も結構強力でアーケインブラストを全て当てれば600エレメンタルダメージを与えられる。
    2つ装備すれば2体呼び出せるはず。

    ライア リーフソング ソウル
    ライア リーフソング
    ライア リーフソング ソウル
    召喚 ライア リーフソング 召喚 ライア リーフソング
    こちらもパラメタアップはそこそこだが、ライアリーフソングが召喚可能。
    ライアはハート・オブ・オークで味方の回復力・生命力に大きく貢献するので死ににくくなる。
    さらに時々リグロースもかけてくれるので、死にそうになってもいつの間にかヘルス回復することも多く、アレザよりも安心かもしれない。

    まあ、ここにあげたソウルはこれまで自分がよく使ったソウル。
    人やキャラによっては別のソウルがいいこともあるかも。
    それと最近は+移動速度に慣れてしまって、新しいソウルが移動速度ついていないと乗換に躊躇してしまう。