« プロのクリエイターに聞く“引き出しの増やし方” | メイン | Macおねだりメール »

FlashでMP4(H264)ムービーを表示する

現在の最新Flash Player(9.0.115)からH264コーデックのムービーが再生可能になりました。先日、早速案件で使用したのでメモがわりにまとめます。

○Sorenson Squeeze

20080207_ss.jpg
強力なエンコードソフト。便利。
http://www.sorensonmedia.com/pages/?pageID=3

まずはmp4ファイルを用意します。今回ははSorenson Squeeze4.8を使用しました。映像まわりはド素人なので細かい設定とかはマニュアルを見つつ設定。日本語マニュアルが付属しているので少し安心です。(QuickTimeを使用して書き出したmp4でも再生できるみたい)次のようにしてみました。

//

コーデックはSorenson AVC Pro。他にApple AVCとSorenson MPEG-4 Proとありましたが、これらで作成したファイルは再生されませんでした。コーデック云々で色々と違いがあるのでしょうか。

20080207_ss_mp4.jpg
↑書き出し設定画面。細かい設定もできる。


準備したmp4ファイルをFlashへ読み込みます。FLVPlaybackは使用できない?ようなので、NetStream、NetConnectionクラスを使用した方法でビデオを再生します。

以下ソースです。コントロールは一切無しの垂れ流し状態です。

/////
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
//ステージ上にvideoオブジェクトを配置し、インスタンス名をmy_videoに。
my_video.attachVideo (ns);
//とりあえずバッファタイムをテキトーに設定
ns.setBufferTime (5);
ns.play("****.mp4");
/////

至って簡単。flvがmp4になっただけ。

なお、mp4ファイルの再生は、Flash Playerのバージョンは9.0.115(今のところ最新)である必要がありますが、ASは、2・3問わず使用できるようです。よって、パブリッシュ時のプレイヤーの設定も9に限らず、8でも可能です。(7以下は未検証)あくまで閲覧時のプレイヤーが9.0.115であることが再生の条件のようです。
なお、キューポイントを埋め込む事は出来ないようでした。他のツールだと設定可能なのかもしれません。

試しに作成した物をUPしてみます。ビデオの容量や使用したツールもあわせて記載しておきます。

--------------------------
○書き出したツール

先述のSorenson Squeeze4.8を使用しました。FLVエンコーダーなどのツールに比べて高画質を保ちつつ圧縮をかけられるエンコードソフトです。確かにキレイ。オプションでon2 VP6書き出しにも対応可能です。Flashでビデオする方は持っていると便利だと思います。

※エンコード時の注意として、Sorenson Squeezeはどうやら奇数となるサイズのムービーを書き出すことが出来ないようです(1ピクセル大きくなったり小さくなったりする模様)。ムービーサイズは出来るだけ偶数になるように設定します。
--------------------------

実験の元ファイルは息子が1歳になった記念ムービー。出張から帰ってきたら2足歩行しててビックリした!w なお、ムービーはすべて640* 360、音声なし、700Kbpsで書き出しています。


○Sorenson Squeeze4.8を使用してSorenson Sparkで書き出し(1236KB)
http://www.sawaijiri.com/avc/sorenson_squeeze.html

○Sorenson Squeeze4.8を使用してSorenson AVC Pro で書き出し(1152KB)
http://www.sawaijiri.com/avc/mp4.html

○FLVエンコーダーを使用してSorenson Sparkで書き出し(1236KB)
http://www.sawaijiri.com/avc/flvencorder_ss.html

○FLVエンコーダーを使用してOn2 VP6で書き出し(1285KB)
http://www.sawaijiri.com/avc/flvencorder_on2.html

---

やはりコータローはぐっとカワイイです。いえ、H264はぐっとキレイです。また、このサイズだと分かりづらいのですが、大画面での表示にも耐えうるクオリティを持っています。それに関してはAdobeのサイト

http://www.adobe.com/products/flashplayer/productinfo/features/
http://www.adobe.com/products/hdvideo/hdgallery/

をご参照ください。

---

○MP4再生時にエラーがでる件

mp4を読み込もうとすると、まれに

NetStream.FileStructureInvalid / NetStream.NoSupportedTrackFound.

というエラーが発生して再生が出来なくなる場合があります。原因はコーデックの問題かFlashPlayerの問題かはっきりしていないようですが、 Adobeサイトにそのとりあえずの対処方法が公開されています。(MP4,HC-AACに関するドキュメントもあります)

・Exploring Flash Player support for high-definition H.264 video and AAC audio
http://www.adobe.com/devnet/flashplayer/articles/hd_video_flash_player_03.html


You can also trick the video components in Flash into playing H.264 video files by changing their file extension to .flv.

とあるとおり、拡張子をmp4からflvに変えることで対処可能のようです。変更してみると確かにエラーが出なくなりました。なお、「拡張子をflvに修正したmp4ファイル」はFLV Playerなどで再生できないので注意が必要です。


今後ビデオ系コンテンツの主役となりそうです。

--

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年2月 7日 21:27に投稿されたエントリーのページです。

ひとつ前の投稿は「プロのクリエイターに聞く“引き出しの増やし方”」です。

次の投稿は「Macおねだりメール」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type