13

私はメディアストリーミングに非常に慣れていないので、クリアすべき基本的な疑問がいくつかあります。

  1. 私が理解できる限り、HTTPストリーミング(たとえばApache経由)とRTMPストリーミング(Red5経由)の違いは、ストリーミングサーバーがバッファリングとシークなどの高度な制御を提供することです。私は正しいですか?

  2. Red5などのRTMPサーバーからのフラッシュビデオのみをストリーミングできますか?さまざまな形式のファイルをストリーミングする必要がある場合、HTTPストリーミングを使用する必要がありますか?xugglerなどのツールを使用して、ファイルを動的にトランスコードし、Red5サーバーからの要求に従って送信できますか?

すべてのモバイルクライアント(iPhone、Blackberry、Android)にストリーミングを提供する必要があるため、これらすべての疑問を提起しています。iPhoneはフラッシュをサポートしていないので、Red5を使用することをお勧めしますか?

4

1 に答える 1

21

詳細を明確にするために少し冗長にさせてください。

1) 「ストリーミング」とは。通常、ビデオ ストリーミングの世界では、リアルタイムに応じたフレームの配信が行われます。30 分のビデオがある場合は、30 分でユーザーに配信されます。

ストリーミング専用の特別なプロトコルがあります: RTSP (おそらく今日の生活の古代)、RTMP、MJPEG、http ベースのプロトコルのファミリ (apple、abobe、microsoft)、およびその他のクローズド ベンダー プロトコルです。

2) 「http ストリーミング」または「疑似ストリーミング」とは何か。ファイルをHTTPサーバーに置くだけで、ユーザーはそれをダウンロードして見ることができます。彼が完全なビデオをダウンロードした場合、彼はそれをシークすることさえできます. しかし、ユーザーが最初の部分をダウンロードせずに映画の途中までシークしたい場合はどうなりますか? どういうわけかサーバーに伝える必要があります:ファイルコンテナーを開き、この瞬間を探してファイルをパックバックします。そのため、HTTP サーバーは、クライアントにシーク機能を提供するために、ファイル コンテナーの構造を認識している必要があります。

nginx と apache は、flv および mp4 コンテナーに対してそれを行うことができます。これは、Flash Player を介して再生できるビデオの 100% に対して問題ありません。

3)最近混乱しているhttpストリーミングとは何ですか。Apple、Adobe、および Microsoft は、HTTP 上のストリーミングを設計および実装しました。これは、クライアントが 10 秒のセグメントをダウンロードし、適切なフレームレートを維持していることを意味します。30 分の映画は 30 分でダウンロードされますが、セグメントのダウンロード間には大きな遅延があります。そのような「フォーマット」でシークしたり、ビットレートを切り替えたりすることが可能です。

4) Red5 や erlyvideo などの RTMP ストリーミング サーバーは、H.264、H.263、VP6、およびスクリーン ビデオをストリーミングできます。MPEG-4 (Xvid/DivX) または MPEG-2 はサポートされていません。

于 2011-06-03T15:43:32.163 に答える