« どこでもサイト内検索できるブックマークレット | メイン | Googleマップが簡単に貼り付けられるように! »

RTMPでFLV配信をするときの注意点

ストリーミングサーバーを使ってRTMPでFLVを配信する場合、HTTP経由で配信するのとプレーヤー周りのActionScriptの書き方が若干変えなければならない。

というのも、以下のような違いががあるからである。

・NetStreamObj.bytesLoaded、NetStreamObj.bytesTotalが使えない
・onStatusのNetStream.Play.Stopは「クライアント側のストリーミング再生完了」ではなく、「サーバー側のストリーミング配信の完了」である
・onMetaDataでメタデータを取ろうと思ってもうまくイベントが起きない


ということでシークバーとかの表示には欠かせない「FLVの全体の長さ」がhttp経由と同じ方法で取得できないのだが、以下のように記述することで、durationの値を取得することができる。

NetConnectionObj.call("getStreamLength", new getFLVLen(), 'flashvideo filename');
}
function getFLVLen(){
  this.onResult = function(retVal) {
    if(!duration) duration = retVal;
  };
}

実際には個人でストリーミングサーバーを借りてまでFLVを流すことなんてないだろうが、せっかく調べたので備忘録として。

トラックバック

このエントリーのトラックバックURL:
http://blog.thirdbuzz.com/cgi-bin/mt/mt-tb.cgi/49

コメント (1)

mute:

はじめまして。
ライブ配信について勉強しております。
こちらのエントリーに書かれたコードはjava script周りではなく、action scriptでしょうか?

PEGASYS WEB FLV Player で提供されているswfファイルを使用してリアルタイム配信を行おうとしているのですが、rtmpの受信が上手くいかないようです。

コメントを投稿

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

About

2007年07月23日 20:37に投稿されたエントリーのページです。

ひとつ前の投稿は「どこでもサイト内検索できるブックマークレット」です。

次の投稿は「Googleマップが簡単に貼り付けられるように!」です。

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