FlowPlayer

videojsでずっと再生してきたけど、flowplayerだとどうなるだろう。特にクライアントにバッファを持たせる事でなんとかならないか試験するためにflowplayerで現在のセキュアリンクができるのかを確認。flowplayerなら、バッファを明示的に持てるのでサーバ側で問題があった時にも緩和できないか?

下記設定にてとりあえずできた。

flash版はここから入手した

flowplayer フラッシュ版のダウンロード

フォルダ階層はここに配置

ubuntu@sakura01:/usr/local/nginx/html/live/flowplayer$ ls
flowplayer-3.2.13.min.js flowplayer-3.2.18.swf flowplayer.controls-3.2.16.swf flowplayer.rtmp-3.2.13.swf
ubuntu@sakura01:/usr/local/nginx/html/live$ ls
flowplayer.php

htmlの中身

<head>
<title>FlowPlayer</title>
<script type="text/javascript" src="flowplayer/flowplayer-3.2.13.min.js"></script>
</head>
<body>
<a id="player" style="display:block;width:1280px;height:720px"></a>
<script>
  flowplayer("player","flowplayer/flowplayer-3.2.18.swf",{
             clip:{
      <?php
         // 秘密鍵 になります。なんでもOKですので、ここでは日本語(UTF-8)で設定してみます。
         $secret = 'passkey';
         // セキュアなリンク からでないとアクセスできないURIを設定します。
         $path   = 'test';
         // 公開鍵として、有効期限を time() + 秒 で設定します。
         // -- この有効期限の設定の仕方は、Nginxではこの方法でしか認識できません。
         $timestamp = time() + 3600; // 60(秒) x 60(分) = 3600(秒) = 1(時)

         // "秘密鍵 + パス + 公開鍵" を Nginxで扱うことができる md5 で暗号化します。
         $hash = base64_encode(md5($secret . $path . $timestamp, true));
         // +,/,= は、URLパラメータとして扱えないので、置換します。
         $hash = strtr($hash, '+/', '-_');
         $hash = str_replace('=', '', $hash);

         //  セキュアなリンクを出力します。
         $url = "{$path}?e={$timestamp}&st={$hash}";
         echo 'url: \''.$url.'\','
      ?>
                 live: 'true',
                 provider: 'rtmp',
                 bufferLength: 5
             },
             plugins: {
                 rtmp: {
                     url: 'flowplayer/flowplayer.rtmp-3.2.13.swf',
                     netConnectionUrl: 'rtmp://sakura.hanako.jp/multi'
                 }
             }
  });
</script>
</body>
</html>