5

私は、実際のストリーミング オーディオおよびビデオ コンテンツを配信するための最良の方法を概念的に理解しようとしています。最小限の独自技術を利用して、Web ブラウザーで消費されることを望みます。私は静的ファイルを提供せず、プログレッシブ ダウンロードを使用します。これは、ライブでキャプチャされた実際のオーディオ ストリームになります。ソースと合理的に同期するストリームをどのようにブロードキャストしますか? どのようなプロトコルが適していますか?

編集:

調査の結果、RTSP、HTTP ストリーミング、RTMP、および RTP といういくつかのプロトコルがあることがわかりました。

HTTP ストリーミングは、(HTTP ベースの) TCP に依存しており、パケットを失わないため、ある種のライブ パフォーマンス/コミュニケーションをストリーミングする場合には、やや不適切です。低帯域幅の状況では、クライアントの再生が大幅に遅れる可能性があります。参照

RTMPは専有技術であり、フラッシュ メディア サーバーを必要とします。それにがらくた。私がフラッシュを検討した理由は、ユーザー エクスペリエンスに関する限り、フラッシュが非常に柔軟だからです。SoundManager2 は、フラッシュでメディアを再生するための優れた JavaScript インターフェイスを提供します。これは、クライアント アプリケーションで探すものです。

RTSP/RTPは、Microsoft が使用に切り替えたものであり、MMS プロトコルを非推奨にしています。RTSP は制御プロトコルです。HTTP に似ていますが、いくつかの明確な違いがあります。サーバーはクライアントとも通信でき、PAUSE などの追加コマンドがあります。また、セッション ID で維持されるステートフル プロトコルでもあります。RTP は、ペイロード (エンコードされたオーディオまたはビデオ) を配信するためのプロトコルです。いくつかのオープン ソース プロジェクトがあり、そのうちの 1 つが Apple によってサポートされています。これは私がやりたいことを実現するように思えますし、かなりの数のプレイヤーがそれをサポートしているようです。こちらのページからの「ライブ」配信に適しているようです。

ありがとう、ジョシュ

4

2 に答える 2

6

まず、間違った点を 2 点早く指摘させてください。詳細は以下のとおりです。

  • RTMP は、Flash Media Server 以外のサーバーで実行できます
  • ライブではTCPで問題ありません。UDPを愛する人々からのFUDが多すぎます。 Apple は、iPhone 向けに HTTP (したがって TCP) 経由でシンプルなライブ ストリーミングを行うためのドラフト仕様をリリースしました。私はそれがブラウザでも終わると思っています。また、TCP には、企業のファイアウォールをはるかに頻繁かつ簡単に通過できるという利点があります。

私が読んだのは、複雑で UDP ベースのストリーミングが徐々に減少していることです。私は死を予測しているわけではなく、市場のシェアがますます少なくなっているだけです. UDP ベースのストリーミング サーバーは、TCP ベースのソリューションに比べて膨大なリソース (10 倍以上) を消費し、そのメリットは具体的ではありません。

プロプライエタリな技術はいらない、「[Flash] くそ」と言いながらも、リアル ストリーミングをやりたいのですか?あなたにそれを壊すのは嫌いですが、 RealAudioRealVideoはどちらもプロプライエタリです。

オープンソースに移行することがあなたにとって本当に重要であるとすれば、それは理解できますが、ストリーミング メディア市場の大部分を無視する必要があります。見て

  • Theora : ロイヤルティ フリー、オープン スタンダード、非可逆ビデオ圧縮技術
  • Vorbis : 非可逆オーディオ圧縮のオーディオ形式仕様とソフトウェア実装を作成するフリー ソフトウェア/オープン ソース プロジェクト。
  • Ogg : フリーでオープンな標準コンテナ形式

プラグマティズムに打ちのめされた場合は、アドビ製品への嫌悪感を再考してください。Flash は、他のブラウザベースのプレーヤー (つまり、Windows Media Player、Quick Time、および Real Players) よりも広く配布されていることに注意してください。

オープン ソースで RTMP を使用することもできます。Red5は、おそらく最も注目されています。Flash 対応のブラウザにライブ ストリーミングできます。

優先順位を考えることをお勧めします。あなたの質問で私たちのためにそれらを綴ってください.

于 2009-11-10T17:23:13.190 に答える
0

Stu の返信に加えて、UDP ベースのストリーミング プロトコルは、ファイアウォールや NAT の背後にある場合、動作がさらに複雑になることがよくあります。たとえば、家の外でWIFIアクセスポイントを使用する予定がある場合、これらの多くはUDP配信を使用したRTPをサポートしていません. 多くのクライアントにはフェイルバック メカニズムがあり、タイムアウト前にパケットが受信されない場合、クライアントは TCP 配信を試みます。

于 2010-03-20T03:31:24.360 に答える