2

Java ベースのサーバーで BUNDLE を使用して RTP および RTCP ストリームを多重化するための低レベルの実装の詳細を探しています。ソースとして Chrome を使用すると、ローカル SDP は次のようになります。

o=- 8554465656018336221 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE オーディオ ビデオ データ
a=msid-セマンティック: WMS
m=オーディオ 1 RTP/SAVPF 111 103 104 0 8 126
c=IN IP4 0.0.0.0
a=rtcp:1 IN IP4 0.0.0.0
a=ice-ufrag:Vw+winZTN4ejhvQJ
a=ice-pwd:ufBTUw/iszvCbL53dmPHQAYK
a=ice-options:google-ice
a=フィンガープリント:sha-256 5C:C6:19:38:4D:54:57:71:16:3F:67:A6:C8:21:CC:29:88:85:22:86:53:E5 :7B:3F:3D:A4:5C:E5:BC:29:D8:B5
a=setup:actpass
a=ミッド:オーディオ
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=勝手に
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:126 電話イベント/8000
a=最大時間:60
m=ビデオ 1 RTP/SAVPF 100 116 117
c=IN IP4 0.0.0.0
a=rtcp:1 IN IP4 0.0.0.0
a=ice-ufrag:Vw+winZTN4ejhvQJ
a=ice-pwd:ufBTUw/iszvCbL53dmPHQAYK
a=ice-options:google-ice
a=フィンガープリント:sha-256 5C:C6:19:38:4D:54:57:71:16:3F:67:A6:C8:21:CC:29:88:85:22:86:53:E5 :7B:3F:3D:A4:5C:E5:BC:29:D8:B5
a=setup:actpass
a=mid:ビデオ
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=勝手に
a=rtcp-mux
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 ccm モミ
a=rtcp-fb:100 ナック
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=rtpmap:116 赤/90000
=rtpmap:117ulpfec/90000
m=アプリケーション 1 DTLS/SCTP 5000
c=IN IP4 0.0.0.0
a=ice-ufrag:Vw+winZTN4ejhvQJ
a=ice-pwd:ufBTUw/iszvCbL53dmPHQAYK
a=ice-options:google-ice
a=フィンガープリント:sha-256 5C:C6:19:38:4D:54:57:71:16:3F:67:A6:C8:21:CC:29:88:85:22:86:53:E5 :7B:3F:3D:A4:5C:E5:BC:29:D8:B5
a=setup:actpass
a=mid:データ
a=sctpmap:5000 webrtc-datachannel 1024

私はグーグルなどで検索しましたが、まだ必要なものが見つかりません。私はこのページを見つけましたが、ほとんどが高レベルの情報しかありませんが、もう一度もっと必要です: https://datatracker.ietf.org/doc/html/draft-ejzak-avtcore-rtp-subsessions-01

さらに、私はhttps://groups.google.com/forum/#!aboutgroup/discuss-webrtcを購読していますが、多重化がどのように機能するかについての低レベルの情報を見たことがありません

a=group:BUNDLE オーディオ ビデオ データ
使用されている。

関連する質問:
WebRTC Java サーバーのトラブル
1 つのストリームから RTP メディアを多重化/逆多重化するにはどうすればよいですか?

4

1 に答える 1

2

これはすべて、データが同じポートを介して送信されていることを意味します。これは、パケット自体が何らかの方法で変更されるという意味ではありません。

パケットを分離する方法 (オーディオ/ビデオとそれぞれの制御パケットを認識) はSSRCRTP / RTCPパケット ヘッダー内のそれぞれのパケットと照合することです。この方法では、オーディオ制御パケットを指定してビデオ ストリームを変更する必要はなく、その逆も同様です。

a=ssrc:<ID>Chrome では、各メディア レベル (ビデオ用とオーディオ用)を含めることで、SDP 交換を介してそれぞれの SSRC ID にアラートを出すことができます。

また、SDP がrecvonly両方のメディア タイプに対して設定されているようです。これは、RTCP を受信せず、ストリームを適宜変更できるように送信者にのみ送り返すことを意味します。

于 2014-07-10T14:02:02.990 に答える