そこで、音楽をストリーミングするRTSPサーバーを作成しようとしています。
サーバーがどのように音楽を再生するか理解できず、異なる要求がその時点で再生されているものを取得します。
だから、私の質問を整理するには:
1)サーバーはどのように音楽ファイルを再生しますか?
2)サーバーへのリクエストは、現在再生中のものを取得するためにどのように見えますか?
3)音楽を要求したクライアントで音楽を再生するための応答はどのように見えますか?
最初:READ THIS (RTSP)、および THEN READ THIS (SDP)、そして これを読む (RTP)。その後、より賢明な質問をすることができます。
1)サーバーはオーディオデータのほとんどの部分をクライアントにストリーミングし、各部分がいつ再生されるかを通知します。
2)そのような要求はありません。必要に応じて、ライブストリーミング用のURLを用意し、RTSP DESCRIBEリクエストで、現在何がオンになっているかをクライアントに伝えます。
3)最初の(RTSP)ドキュメントを読んでください。すべて揃っています!あなたの質問への答えはこれです:
RTSP/1.0 200 OK
CSeq: 3
Session: 123456
Range: npt=now-
RTP-Info: url=trackID=1;seq=987654
ただし、音楽を再生するには、ストリーミングセッションを開始するためにさらに多くの操作を行う必要があります。
まず、RTSPおよびRTPについて明確にする必要があります。リアルタイムストリーミングプロトコル(RTSP)は、ストリーミングメディアサーバーを制御する通信システムで使用するために設計されたネットワーク制御プロトコルです。ほとんどのRTSPサーバーは、メディアストリーム配信にリアルタイムトランスポートプロトコル(RTP)を使用します。 RTPはUDPを使用してパケットストリームを配信します。これらの概念を理解してください。
その後、このプロジェクトをご覧ください。 http://sourceforge.net/projects/unvedu/
これは、大学が開発したオープンソースプロジェクトで、UDPを介してビデオ(MKV)およびオーディオファイルをストリーミングするために使用されます。
また、RTPとRTSPの.Net実装は、@ https://net7mma.codeplex.com/ にあり、RTSPクライアントおよびサーバー実装が含まれています。および他の多くの有用なユーティリティ多くの一般的なデジタルメディアコンテナ形式の実装。
このソリューションは、現時点ではffmpegやlibavよりも優れたモジュール設計とパフォーマンスを備えています。