memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

flowplayerでPseudoStreaming

少し前からflowplayerを使い始めたのですが再生位置をジャンプできなくて困っていました。そこで知ったのはPseudoStreaming。flowplayerのサイトやその他のエントリーを参考にあれこれやってみたのですがうまく行かなかったんですね。。。とりあえず以下で動作しました。参考までメモしておきます。補足情報として利用してください。

まず、WebサーバのApache Httpdにモジュールを追加する必要があります。私はcentosでした。これは迷わずできると思います。以下が手順書です。

Link: Apache FLV streaming done right! (no php)


つぎに以下のページからプラグイン(flowplayer.pseudostreaming-3.2.5.swf)をダウンロードします。

Link: Streaming plugin: pseudostreaming


flowplayer本体は以下のページからダウンロードします。

Link: flowplayer-3.2.5.zip


最終的にWebの公開ディレクトリに以下の4つをアップロードします。

  • flowplayer-3.2.4.min.js
  • flowplayer-3.2.5.swf
  • flowplayer.controls-3.2.3.swf
  • flowplayer.pseudostreaming-3.2.5.swf

このあとにsample.htmlを作成します。これが一番時間がかかったのですが動いてみると意外と簡単だったんですね。。。

■sample.html

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="flowplayer-3.2.4.min.js"></script>
<title>タイトル</title>
</head>
<body>
<h1>タイトル</h1>
<a href="xxxxx.flv" id="player" style="display:block;width:320px;height:240px"></a>
<script> flowplayer("player", "flowplayer-3.2.5.swf", { clip: { provider: 'pseudo', autoPlay: true, scaling: 'fit' }, canvas: { backgroundColor: '#000000', backgroundGradient: 'none' }, plugins: { pseudo: { url: 'flowplayer.pseudostreaming-3.2.5.swf'}}}); </script>
<br/>
<input type="button" value="戻る" onClick="history.back()">
</body>
</html>


動画ファイル(上記の例ではxxxx.flv)はflvtool2というものでメタデータをflvファイルに埋込む必要があります。この加工をしないflvファイルはジャンプできません。flvtool2はgemコマンドでインストールできます。詳しくは以下を参照してください。

Link: flvtool2


ちなみにflvtool2の使い方は以下。flvファイルにメタデータが埋込まれます。加工後のflvファイルを上記の4ファイルと同じディレクトリにおきます。これでうまくいくはずです。ちなみにflvtool2はメモリ消費が高いようです。私は複数プロセスを同時に実行して危うくサーバーをダウンさせるところでした。。。

flvtool2 -U xxxxx.flv


以下、サンプルページです。よろしければ参考まで。

Link: サンプルページ


追記

flvtool2を実行するとなぜかエラーが出るflvファイルがありました。解決方法を探るとflvtool++というツールがあると知りビルドしましたがなぜかエラーがとれない。次に見つけたのがyamdiというツール。これはビルド成功。しかも実行時間もごくごくわずか。これが今のところベストですね。

Link: flvtool++

Link: yamdi