haiyangwu / mediasoup-demo-android

mediasoup android demo https://demo.mediasoup.org
96 stars 65 forks source link

Video codec not found #4

Closed whatisor closed 4 years ago

whatisor commented 4 years ago

RTP capacities only return Audio codec, so no video consumer

whatisor commented 4 years ago

routerRtpCapabilities: {"codecs":[{"kind":"audio","mimeType":"audio\/opus","clockRate":48000,"channels":2,"rtcpFeedback":[{"type":"transport-cc","parameter":""}],"parameters":{"useinbandfec":1,"stereo":1},"preferredPayloadType":100},{"kind":"video","mimeType":"video\/VP8","clockRate":90000,"rtcpFeedback":[{"type":"nack","parameter":""},{"type":"nack","parameter":"pli"},{"type":"ccm","parameter":"fir"},{"type":"goog-remb","parameter":""},{"type":"transport-cc","parameter":""}],"channels":1,"parameters":{"x-google-start-bitrate":1500},"preferredPayloadType":101},{"kind":"video","mimeType":"video\/rtx","preferredPayloadType":102,"clockRate":90000,"channels":1,"parameters":{"apt":101},"rtcpFeedback":[]},{"kind":"video","mimeType":"video\/H264","clockRate":90000,"parameters":{"packetization-mode":1,"level-asymmetry-allowed":1,"profile-level-id":"42e01f"},"rtcpFeedback":[{"type":"nack","parameter":""},{"type":"nack","parameter":"pli"},{"type":"ccm","parameter":"fir"},{"type":"goog-remb","parameter":""},{"type":"transport-cc","parameter":""}],"channels":1,"preferredPayloadType":103},{"kind":"video","mimeType":"video\/rtx","preferredPayloadType":104,"clockRate":90000,"channels":1,"parameters":{"apt":103},"rtcpFeedback":[]},{"kind":"video","mimeType":"video\/VP9","clockRate":90000,"rtcpFeedback":[{"type":"nack","parameter":""},{"type":"nack","parameter":"pli"},{"type":"ccm","parameter":"fir"},{"type":"goog-remb","parameter":""},{"type":"transport-cc","parameter":""}],"channels":1,"parameters":{"x-google-start-bitrate":1500},"preferredPayloadType":105},{"kind":"video","mimeType":"video\/rtx","preferredPayloadType":106,"clockRate":90000,"channels":1,"parameters":{"apt":105},"rtcpFeedback":[]}],"headerExtensions":[{"kind":"audio","uri":"urn:ietf:params:rtp-hdrext:sdes:mid","preferredId":1,"preferredEncrypt":false,"direction":"recvonly"},{"kind":"video","uri":"urn:ietf:params:rtp-hdrext:sdes:mid","preferredId":1,"preferredEncrypt":false,"direction":"recvonly"},{"kind":"video","uri":"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","preferredId":2,"preferredEncrypt":false,"direction":"recvonly"},{"kind":"video","uri":"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id","preferredId":3,"preferredEncrypt":false,"direction":"recvonly"},{"kind":"audio","uri":"http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/abs-send-time","preferredId":4,"preferredEncrypt":false,"direction":"sendrecv"},{"kind":"video","uri":"http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/abs-send-time","preferredId":4,"preferredEncrypt":false,"direction":"sendrecv"},{"kind":"audio","uri":"http:\/\/www.ietf.org\/id\/draft-holmer-rmcat-transport-wide-cc-extensions-01","preferredId":5,"preferredEncrypt":false,"direction":"recvonly"},{"kind":"video","uri":"http:\/\/www.ietf.org\/id\/draft-holmer-rmcat-transport-wide-cc-extensions-01","preferredId":5,"preferredEncrypt":false,"direction":"sendrecv"},{"kind":"video","uri":"http:\/\/tools.ietf.org\/html\/draft-ietf-avtext-framemarking-07","preferredId":6,"preferredEncrypt":false,"direction":"sendrecv"},{"kind":"video","uri":"urn:ietf:params:rtp-hdrext:framemarking","preferredId":7,"preferredEncrypt":false,"direction":"sendrecv"},{"kind":"audio","uri":"urn:ietf:params:rtp-hdrext:ssrc-audio-level","preferredId":10,"preferredEncrypt":false,"direction":"sendrecv"},{"kind":"video","uri":"urn:3gpp:video-orientation","preferredId":11,"preferredEncrypt":false,"direction":"sendrecv"},{"kind":"video","uri":"urn:ietf:params:rtp-hdrext:toffset","preferredId":12,"preferredEncrypt":false,"direction":"sendrecv"}]}

rtpCapabilities: {"codecs":[{"channels":2,"clockRate":48000,"kind":"audio","mimeType":"audio/opus","parameters":{"minptime":10,"useinbandfec":1},"preferredPayloadType":100,"rtcpFeedback":[]}],"fecMechanisms":[],"headerExtensions":[{"kind":"video","preferredId":4,"uri":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"},{"kind":"video","preferredId":5,"uri":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"},{"kind":"video","preferredId":6,"uri":"http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07"},{"kind":"audio","preferredId":10,"uri":"urn:ietf:params:rtp-hdrext:ssrc-audio-level"},{"kind":"video","preferredId":11,"uri":"urn:3gpp:video-orientation"},{"kind":"video","preferredId":12,"uri":"urn:ietf:params:rtp-hdrext:toffset"}]}

whatisor commented 4 years ago

Found issue, we should not check "channels" for video kind (maybe a bug from server, router return video codec with channels=1). ortc.cpp: static bool matchCodecs(json& aCodec, const json& bCodec)