完全

2012-02-09 14 views
2

をロードし、私はしばらくの間、このために検索してきた、と私のGoogle-FUが弱いか、まだ答えを見つけるためには容易ではありませんどちらかのときにNetStreamが唯一私がのNetStreamを使用しています...完全

をプレイどこからでもビデオファイルをストリーミングできます。 NetStreamはどのサーバーにも接続されていません。

  // Create new connection and stream 
      _netCon = new NetConnection(); 
      _netCon.connect(null); 

      _netStream = new NetStream(_netCon); 
      _netStream.client = this; 
      _netStream.play(url); 

      // Configure video layer 
      _videoLayer.attachNetStream(null); 
      _videoLayer.attachNetStream(_netStream); 
      _videoLayer.width = stage.stageWidth; 
      _videoLayer.height = stage.stageHeight; 

これは基本的には機能しますが、ビデオは常に完全に読み込まれたときに再生を開始します。また、メタデータも渡します。 NetStreamを使用する主な理由は、完全にロードされる前にビデオを再生できることです。

bufferTimeプロパティで再生しようとしましたが、役に立たなくなりました。 ビデオの読み込み時にキャッシュが含まれていないことも確認してください。私はいつもURLの後ろに "?bla = date"という値を追加して "新しいもの"を読み込みます。

「実際の」ストリーミングは、実際にサーバーに接続されている場合にのみ機能しますか?あるいは私は何か他のものを逃していますか

+0

サーバーに接続されていないと言うときは、ローカル環境でテストしているということですか?また、ビデオファイルにはどのようなエンコーディング設定を使用しましたか? –

+0

私はサーバーに接続していないと言うとき、 "_netCon.connect(server-url);"の代わりに "_netCon.connect(null); "を意味します。コーデックの設定、私はそれらのファイルが私の手にないので、私は保証することはできません。すべてのコーデックがストリーミングをサポートしているとは限りませんか? – TheSHEEEP

答えて

0

物事をクリアするには:

問題は、私たちのビデオファイル内のメタデータの位置の中に確かでした。私たちはもっと重要な問題を抱えていたので、当面はそれを解決しませんでした。しかし、我々はそれに戻り、メタデータの位置をビデオファイルの先頭に移動します。

ありがとうございました!

1

FlashはFLVでサポートされている設定で非常にリベラルですが、100%であるかどうかはわかりません。 netConnectionに関しては、ストリーミングビデオをサポートしていない限り、これはかなり標準的です。 FLV全体が読み込まれるのを待つのではなく、バッファリングしてからすぐにビデオを再生する再生ソリューションを探しているだけです。これはネットストリームオブジェクトの最も基本的な操作でもあります。あなたの完全なコードを調べることなく、NetStreamは非常にバグがあり、特にそうであることがわかります。あなたはすべてのことを正しくやっているかもしれませんが、やや間違った順序で行っているかもしれません。 NetStreamが代わりにコールバックを使用するため、存在しないイベントを聴いているかもしれません。

ここで私が書いた2つのブログ記事は、NetStreamとVideoの問題をより深く理解しています。また、最後に解決したこともあります。彼らはあなたの設定が迷っているところにいくつかの光を当てるかもしれません。

NetStream Sucks

Streaming Video Player

+0

私が実際に示したコードは、ビデオを再生することと関係しています。ビデオ再生に影響を与えるものは他にありません。実際にVideoクラスのインスタンスである_videoLayerにaddChild()を追加するのを忘れてしまった。私の知る限り、ストリーミングビデオプレーヤーは全く同じ機能(さらに多くの機能が追加されています)を備えています:NetStreamで.play(url)を呼び出し、ビデオの開始を待ちます。 – TheSHEEEP

+0

かなり、はい。しかし、イベント処理と内部ステータスコードは少し包み込まれています。 –

2

これはおそらく、メタデータを待っている - それは.h264ビデオの場合、確実だったです。私はそれが固定されていることは聞いたことがないので、おそらくそうではありません。それが再生しようとしているファイルの場合は、ffmpegのようなものを使用してメタデータをファイルの先頭に移動しますが、そうでない場合はURLStreamを使用して自分でストリーミングしてから、appendBytes()(後の方はNetStream)私は試していないが、理論上可能でなければならない)。

+0

うん、私たちはh264ビデオを使用しています(私はちょっと見ただけです)。すぐに再生する必要があり、URLStreamのアプローチを試してみるのはどうかと尋ねます。 – TheSHEEEP

+0

ええ、私は同意します:エンコーディングとコンテナの設定は間違いなくこのような問題を引き起こす可能性があります。 *仕様*としてのH.264は、ストリームヒントが可能ですが、そのコーデックを実装するすべてのエンコーダがデフォルトでそれを行うわけではありません。 ffmpegやmp4boxのようなツールは、ストリーミングに適したヒント付きコンテナ(.mp4)でビデオを再ラップすることができます。 – merv