Я могу записывать видео + аудио с помощью Kurento Media Server. У меня проблемы с записью аудиопотока. Из Как использовать kurento-media-server только для аудио stream? понимаете, что ответ SDP должен быть изменен.
В настоящее время я добавляю MediaStream только со звуковыми дорожками к PeerConnection. На стороне сервера перед отправкой ответа SDP я его модифицирую. Я пытался удалить
- что-либо ниже (включая)
m=video
- что-либо ниже (включая)
a=mid:video
В обоих случаях PeerConnection # signalingState на стороне браузера оставался в have-local-offer
.
Что изменить в ответе SDP на то, что медиапоток начнет течь, а Куренто начнет записывать только аудиопоток?
Вот исходный ответ SDP (из которого было выполнено удаление) от WebRtcEndpoint # processoffer:
v=0
o=- 7750769884654864002 0 IN IP4 0.0.0.0
s=Kurento Media Server
c=IN IP4 0.0.0.0
t=0 0
a=group:BUNDLE audio video
m=audio 40192 RTP/SAVPF 111 0
c=IN IP4 10.0.2.15
a=rtpmap:111 opus/48000/2
a=rtpmap:0 PCMU/8000
a=sendrecv
a=rtcp:40192 IN IP4 10.0.2.15
a=rtcp-mux
a=ssrc:4125152746 cname:user2534372120@host-b735c5b0
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=mid:audio
a=ice-ufrag:SEV7
a=ice-pwd:BQyTSM0hvTJeqykFZovuBS
a=fingerprint:sha-256 E4:A1:25:2C:53:60:28:F5:C1:94:C6:32:E0:13:81:06:A6:66:77:00:52:C2:D9:93:AF:E4:A0:B3:4D:5C:9C:C3
a=candidate:1 1 UDP 2013266431 10.0.2.15 40192 typ host
a=candidate:2 1 UDP 2013266431 192.168.33.10 44816 typ host
m=video 40192 RTP/SAVPF 100
c=IN IP4 10.0.2.15
b=AS:500
a=rtpmap:100 VP8/90000
a=sendonly
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=rtcp:40192 IN IP4 10.0.2.15
a=rtcp-mux
a=ssrc:1769273725 cname:user2534372120@host-b735c5b0
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=mid:video
a=ice-ufrag:SEV7
a=ice-pwd:BQyTSM0hvTJeqykFZovuBS
a=fingerprint:sha-256 E4:A1:25:2C:53:60:28:F5:C1:94:C6:32:E0:13:81:06:A6:66:77:00:52:C2:D9:93:AF:E4:A0:B3:4D:5C:9C:C3
a=candidate:1 1 UDP 2013266431 10.0.2.15 40192 typ host
a=candidate:2 1 UDP 2013266431 192.168.33.10 44816 typ host
РЕДАКТИРОВАТЬ:
После предложения от группы kurento google оказалось, что нет необходимости изменять SDP. По крайней мере, с Kurento 6. Я получил работу только со звуком (как с MediaStream только со звуком из браузера, так и с MediaStream с аудио + видео из браузера). Для этого (пример кода на Ruby):
- Укажите MediaProfileSpecType в RecorderEndpoint builder
RecorderEndpoint::Builder.new(@pipeline, location).withMediaProfile(org.kurento.client.MediaProfileSpecType::WEBM_AUDIO_ONLY).build()
- Укажите MediaType при подключении конечной точки записывающего устройства (@source is WebRtcEndpoint):
@source.connect(@recorder, org.kurento.client.MediaType::AUDIO)