インタラクティブなライブストリームアプリケーションを開発しようとしている場合、超低(リアルタイム)レイテンシに依存します。たとえば、ビデオ会議や遠隔研究室の場合。
この状況に適しているはずの2つのプロトコルは次のとおりです。
* WebRTC:私はより多くの聴衆に互いに対話する可能性を与えようとしているので、WebRTCは適切ではありません。私の知る限り、それはより多くの聴衆のために設計されていないためです。
私の質問:
このユースケースにはどちらを選択すればよいですか? RTSP/RTPまたはRTMP?
エンドツーエンドのレイテンシ、セッションの起動時間に関するより良い結果をもたらすプロトコルはどれですか?
どれがより多くのハードウェアリソースを消費しますか?
RTMPは永続的なTCP接続を使用しているようです。しかし、どのプロトコルが送信に使用されますか?リアルタイム遅延を保証できないため、TCPにはできませんか?
一般に、どちらのプロトコルを使用する場合の長所と短所は何ですか?
科学論文や本では、これら2つのプロトコルの比較は見当たりませんでした。有名なモバイルライブストリーミングアプリであるPeriscopeがRTMPを使用していることのみ。
InstagramやFacebookのような他のアプリは、例えばストリーマーとのテキストベースの相互作用を提供しています。 開発者がインタラクティブなライブストリームに基づいて次の「キラーアプリケーション」を構築したい場合:この質問は答えに不可欠だと思います。
答えには多くの仮定があります。
WebRTC:私はより多くの聴衆に互いに対話する可能性を与えようとしているので、WebRTCは適切ではありません。私の知る限り、それはより多くの聴衆のために設計されていないからです。
それは単に真実ではありません。 WebRTCは、アプリケーションをサーバー側でどのように構成するかを知りません。 WebRTCを介した大規模なグループコールと低遅延のビデオ配信を処理するための既製のサービスがたくさんあります。
また、メディアストリームの場合、WebRTCは内部でRTPです。
TCPにはできません。これは、リアルタイムの遅延を保証できなかったからですか?
もちろんできます。 TCPにはオーバーヘッドがありますが、リアルタイムシナリオでの使用を妨げるものはありません。 TCP=のオーバーヘッドは最小限です。
信頼性は必要ないため、UDPは伝統的にこれらの種類のシナリオに使用されますが、それはTCPがほとんどパフォーマンスとして使用できないことを意味しません。
RTMP
RTMPはFlashのデッドプロトコルです。サポートしているブラウザはありません。他のクライアントは、レガシーの理由でのみサポートしています。今後の新しいことに使用すべきではありません。
有名なモバイルライブストリーミングアプリであるPeriscopeがRTMPを使用していることのみ。
まあ、それは何もする理由ではありません。
- エンドツーエンドのレイテンシ、セッションの起動時間に関して、どのプロトコルがより良い結果をもたらしますか?
WebRTC
- どれがより多くのハードウェアリソースを消費しますか?
それは正しい質問ではありません。アプリケーションの他のほとんどの部分のオーバーヘッドは、配布に使用されるプロトコルのトランスポートオーバーヘッドよりもはるかに大きくなります。
あなたが考える必要があるものの本当のリスト:
また、ここに私の投稿が役立つかもしれません: https://stackoverflow.com/a/37475943/362536
要するに、仮定を確認してください。トレードオフを理解します。包括的な一般化ではなく、実際の情報に基づいて決定を下します。