Playing .mp4 on Flash 9


Flash 9がH.264エンコーディングのMPEG-4再生に対応して、QuickTime系のツールで作った動画がFlashユーザーに配信できるようになったということで、試してみました。
結論から言えば、.mp4を読み込んで再生できる.swfがあれば、もうflvを用意しなくていい、というQuickTimeユーザーにとっては素晴らしい状況になったようです。
で、具体的な手順です。

  1. 手持ちのQuickTime系ツール(QuickTime Pro, Final Cut Pro, iMovie等)で、H.264なMPEG-4ファイルを作成する(ファイル形式が.movではなく、.mp4)。
  2. .flvを再生するための.swfを入手する。今回はJW FLV PLAYER 3.13を使用しました。
  3. .mp4をwebサーバーにアップロード
  4. webサーバーに.swfなムービープレーヤーを設置。.swfのムービー読み込み設定をアップロードした.mp4に合わせる。

    JW FLV PLAYERの場合には、例えば以下の様なembedコードを書きます。詳しくはREAD MEを参照されてください。

    <p id="player1"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</p>
    <script type="text/javascript">
    var s1 = new SWFObject("flvplayer.swf","single","640","480","7");
    s1.addParam("allowfullscreen","true");
    s1.addVariable("file","YourMovie.mp4");
    s1.addVariable("image","preview.jpg");
    s1.addVariable("width","640");
    s1.addVariable("height","480");
    s1.write("player1");
    </script>

うまく設定できれば、MPEG-4がFlash 9上で再生可能になり、WindowsユーザーにQuickTime Playerのインストールを促す必要なく、Flashのアップデートにより、MPEG-4コンテンツの再生をしてもらうことができます。
ただ、この手法はProgressive Downloadの場合であり、いわゆるRTSP系のストリーミングを同様にFlash9で行おうとすれば、QuickTime Streaming Server/Darwin Streaming Serverではなく、Flash Media Serverが必要になるでしょう。
この場合、従前から存在するフリーのFlash Media Server互換サーバー(Red 5等)で代替できるのかは、今後の動向を見守る必要があるでしょう。
以下に同じMPEG-4ファイルを使ったデモを置いておきます。


H.264(MPEG-4)をFlash 9で再生(最新版のFlashプラグインが必要です)
同じムービーをQuickTime Playerで再生(QuickTime 7以上が必要です)