Remote blob URL 404

209 views
Skip to first unread message

jas...@gmail.com

unread,
Jul 11, 2016, 3:15:21 PM7/11/16
to kurento
Hello,

I am incorporating code from the Kurento one2many tutorial in my javascript-based app and getting pretty close. I am able to present in one browser (Chrome 51 on Windows 10), and I seem pretty close to being able to view from another chrome window in incognito mode, but the Remote blob URL that is returned and set on my <video> element appears to be wrong.  

NOTES:
- My app is an express.js-based app with the webserver running on localhost:3001.  
- KMS server is located remotely at media-01.example.com.
- I access the app with Chrome 51 on Windows 10 by going to URL http://localhost:3001.

My general question is, should the video blob URL be localhost:3001/some-id or should it be media-01.example.com/some-id?   

If it comes from the app server (localhost), I'm wondering if my nodejs/express server isn't serving the URLs correctly.  Otherwise, if the remote URL blob should be the remote KMS URL, then where is this set?  Thanks for the help!

Here is some client-side console output from the viewer's side:
 

Chrome: using SDP PlanB
constraints
: {"mandatory":{"OfferToReceiveAudio":true,"OfferToReceiveVideo":true},"optional":[{"DtlsSrtpKeyAgreement":true}]}
WebRtcPeer.js:399 Created SDP offer
WebRtcPeer.js:404 Local description set v=0
o
=- 1230553025514309054 2 IN IP4 127.0.0.1
s
=-
t
=0 0
a
=group:BUNDLE audio video
a
=msid-semantic: WMS
m
=audio 50300 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126
c
=IN IP4 10.114.15.224
a
=rtcp:50304 IN IP4 10.114.15.224
a
=candidate:2507533319 1 udp 2122255103 2001::5ef5:79fb:341f:3644:f597:fa1f 50299 typ host generation 0 network-id 3
a
=candidate:459142719 1 udp 2122194687 10.114.15.224 50300 typ host generation 0 network-id 4
a
=candidate:2218435994 1 udp 2122129151 192.168.99.1 50301 typ host generation 0 network-id 2
a
=candidate:2999745851 1 udp 2122063615 192.168.56.1 50302 typ host generation 0 network-id 1
a
=candidate:2507533319 2 udp 2122255102 2001::5ef5:79fb:341f:3644:f597:fa1f 50303 typ host generation 0 network-id 3
a
=candidate:459142719 2 udp 2122194686 10.114.15.224 50304 typ host generation 0 network-id 4
a
=candidate:2218435994 2 udp 2122129150 192.168.99.1 50305 typ host generation 0 network-id 2
a
=candidate:2999745851 2 udp 2122063614 192.168.56.1 50306 typ host generation 0 network-id 1
a
=ice-ufrag:dBuju96ltT4iapg4
a
=ice-pwd:+TzLqZCP2eSCMHuvVmiag5ZE
a
=fingerprint:sha-256 75:36:AA:14:45:CA:FA:6D:1B:FC:AE:E5:40:74:76:DD:55:C5:C8:80:77:28:5B:84:C5:8D:5F:21:36:C9:DE:D3
a
=setup:actpass
a
=mid:audio
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
=recvonly
a
=rtcp-mux
a
=rtpmap:111 opus/48000/2
a
=rtcp-fb:111 transport-cc
a
=fmtp:111 minptime=10;useinbandfec=1
a
=rtpmap:103 ISAC/16000
a
=rtpmap:104 ISAC/32000
a
=rtpmap:9 G722/8000
a
=rtpmap:0 PCMU/8000
a
=rtpmap:8 PCMA/8000
a
=rtpmap:106 CN/32000
a
=rtpmap:105 CN/16000
a
=rtpmap:13 CN/8000
a
=rtpmap:126 telephone-event/8000
a
=maxptime:60
m
=video 50308 UDP/TLS/RTP/SAVPF 100 101 116 117 96 97 98
c
=IN IP4 10.114.15.224
a
=rtcp:50312 IN IP4 10.114.15.224
a
=candidate:2507533319 1 udp 2122255103 2001::5ef5:79fb:341f:3644:f597:fa1f 50307 typ host generation 0 network-id 3
a
=candidate:459142719 1 udp 2122194687 10.114.15.224 50308 typ host generation 0 network-id 4
a
=candidate:2218435994 1 udp 2122129151 192.168.99.1 50309 typ host generation 0 network-id 2
a
=candidate:2999745851 1 udp 2122063615 192.168.56.1 50310 typ host generation 0 network-id 1
a
=candidate:2507533319 2 udp 2122255102 2001::5ef5:79fb:341f:3644:f597:fa1f 50311 typ host generation 0 network-id 3
a
=candidate:459142719 2 udp 2122194686 10.114.15.224 50312 typ host generation 0 network-id 4
a
=candidate:2218435994 2 udp 2122129150 192.168.99.1 50313 typ host generation 0 network-id 2
a
=candidate:2999745851 2 udp 2122063614 192.168.56.1 50314 typ host generation 0 network-id 1
a
=ice-ufrag:dBuju96ltT4iapg4
a
=ice-pwd:+TzLqZCP2eSCMHuvVmiag5ZE
a
=fingerprint:sha-256 75:36:AA:14:45:CA:FA:6D:1B:FC:AE:E5:40:74:76:DD:55:C5:C8:80:77:28:5B:84:C5:8D:5F:21:36:C9:DE:D3
a
=setup:actpass
a
=mid:video
a
=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a
=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a
=extmap:4 urn:3gpp:video-orientation
a
=recvonly
a
=rtcp-mux
a
=rtcp-rsize
a
=rtpmap:100 VP8/90000
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-fb:100 transport-cc
a
=rtpmap:101 VP9/90000
a
=rtcp-fb:101 ccm fir
a
=rtcp-fb:101 nack
a
=rtcp-fb:101 nack pli
a
=rtcp-fb:101 goog-remb
a
=rtcp-fb:101 transport-cc
a
=rtpmap:116 red/90000
a
=rtpmap:117 ulpfec/90000
a
=rtpmap:96 rtx/90000
a
=fmtp:96 apt=100
a
=rtpmap:97 rtx/90000
a
=fmtp:97 apt=101
a
=rtpmap:98 rtx/90000
a
=fmtp:98 apt=116



VenueSocketActions.js:78 viewer v=0
o
=- 1230553025514309054 2 IN IP4 127.0.0.1
s
=-
t
=0 0
a
=group:BUNDLE audio video
a
=msid-semantic: WMS
m
=audio 50300 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126
c
=IN IP4 10.114.15.224
a
=rtcp:50304 IN IP4 10.114.15.224
a
=candidate:2507533319 1 udp 2122255103 2001::5ef5:79fb:341f:3644:f597:fa1f 50299 typ host generation 0 network-id 3
a
=candidate:459142719 1 udp 2122194687 10.114.15.224 50300 typ host generation 0 network-id 4
a
=candidate:2218435994 1 udp 2122129151 192.168.99.1 50301 typ host generation 0 network-id 2
a
=candidate:2999745851 1 udp 2122063615 192.168.56.1 50302 typ host generation 0 network-id 1
a
=candidate:2507533319 2 udp 2122255102 2001::5ef5:79fb:341f:3644:f597:fa1f 50303 typ host generation 0 network-id 3
a
=candidate:459142719 2 udp 2122194686 10.114.15.224 50304 typ host generation 0 network-id 4
a
=candidate:2218435994 2 udp 2122129150 192.168.99.1 50305 typ host generation 0 network-id 2
a
=candidate:2999745851 2 udp 2122063614 192.168.56.1 50306 typ host generation 0 network-id 1
a
=ice-ufrag:dBuju96ltT4iapg4
a
=ice-pwd:+TzLqZCP2eSCMHuvVmiag5ZE
a
=fingerprint:sha-256 75:36:AA:14:45:CA:FA:6D:1B:FC:AE:E5:40:74:76:DD:55:C5:C8:80:77:28:5B:84:C5:8D:5F:21:36:C9:DE:D3
a
=setup:actpass
a
=mid:audio
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
=recvonly
a
=rtcp-mux
a
=rtpmap:111 opus/48000/2
a
=rtcp-fb:111 transport-cc
a
=fmtp:111 minptime=10;useinbandfec=1
a
=rtpmap:103 ISAC/16000
a
=rtpmap:104 ISAC/32000
a
=rtpmap:9 G722/8000
a
=rtpmap:0 PCMU/8000
a
=rtpmap:8 PCMA/8000
a
=rtpmap:106 CN/32000
a
=rtpmap:105 CN/16000
a
=rtpmap:13 CN/8000
a
=rtpmap:126 telephone-event/8000
a
=maxptime:60
m
=video 50308 UDP/TLS/RTP/SAVPF 100 101 116 117 96 97 98
c
=IN IP4 10.114.15.224
a
=rtcp:50312 IN IP4 10.114.15.224
a
=candidate:2507533319 1 udp 2122255103 2001::5ef5:79fb:341f:3644:f597:fa1f 50307 typ host generation 0 network-id 3
a
=candidate:459142719 1 udp 2122194687 10.114.15.224 50308 typ host generation 0 network-id 4
a
=candidate:2218435994 1 udp 2122129151 192.168.99.1 50309 typ host generation 0 network-id 2
a
=candidate:2999745851 1 udp 2122063615 192.168.56.1 50310 typ host generation 0 network-id 1
a
=candidate:2507533319 2 udp 2122255102 2001::5ef5:79fb:341f:3644:f597:fa1f 50311 typ host generation 0 network-id 3
a
=candidate:459142719 2 udp 2122194686 10.114.15.224 50312 typ host generation 0 network-id 4
a
=candidate:2218435994 2 udp 2122129150 192.168.99.1 50313 typ host generation 0 network-id 2
a
=candidate:2999745851 2 udp 2122063614 192.168.56.1 50314 typ host generation 0 network-id 1
a
=ice-ufrag:dBuju96ltT4iapg4
a
=ice-pwd:+TzLqZCP2eSCMHuvVmiag5ZE
a
=fingerprint:sha-256 75:36:AA:14:45:CA:FA:6D:1B:FC:AE:E5:40:74:76:DD:55:C5:C8:80:77:28:5B:84:C5:8D:5F:21:36:C9:DE:D3
a
=setup:actpass
a
=mid:video
a
=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a
=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a
=extmap:4 urn:3gpp:video-orientation
a
=recvonly
a
=rtcp-mux
a
=rtcp-rsize
a
=rtpmap:100 VP8/90000
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-fb:100 transport-cc
a
=rtpmap:101 VP9/90000
a
=rtcp-fb:101 ccm fir
a
=rtcp-fb:101 nack
a
=rtcp-fb:101 nack pli
a
=rtcp-fb:101 goog-remb
a
=rtcp-fb:101 transport-cc
a
=rtpmap:116 red/90000
a
=rtpmap:117 ulpfec/90000
a
=rtpmap:96 rtx/90000
a
=fmtp:96 apt=100
a
=rtpmap:97 rtx/90000
a
=fmtp:97 apt=101
a
=rtpmap:98 rtx/90000
a
=fmtp:98 apt=116
WebRtcPeer.js:474 SDP answer received, setting remote description
WebRtcPeer.js:432 Remote URL: blob:http%3A//localhost%3A3001/fc051661-69f3-4412-b6bd-4186f961e736



the viewer's video element is updated to: 

<video id="mt-video" autoplay="" width="640px" height="480px" src="blob:http%3A//localhost%3A3001/fc051661-69f3-4412-b6bd-4186f961e736"></video>

but the video element is a blank/black screen.  The video on the presenter side is show correctly (webcam).

jas...@gmail.com

unread,
Jul 11, 2016, 3:16:31 PM7/11/16
to kurento, jas...@gmail.com
I should note that I pasted the blob:http%3A//localhost%3A3001/fc051661-69f3-4412-b6bd-4186f961e736 URL in chrome directly to test the URL and thats where I see 404 Not Found.

Ivan Gracia

unread,
Jul 11, 2016, 3:34:04 PM7/11/16
to Kurento Public, jas...@gmail.com
That blob URL is generated here, I wouldn't worry too much about that.

If you KMS is in a remote machine, you'll need to setup STUN and TURN servers. Have you checked that?

Ivan Gracia



--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jason Ashby

unread,
Jul 11, 2016, 4:20:43 PM7/11/16
to kurento, jas...@gmail.com
Communications with port 8888 are definitely working from my localhost to the remote kms server, as the sdp handshake seems to happen on presenter and viewer sides, and I see plenty of logs from the KMS about it.  I'm firing up KMS on docker with:


docker run --name kms --net=host -e COTURN_PORT_3478_TCP_ADDR="stun.l.google.com" -e COTURN_PORT_3478_TCP_PORT="19302" -d kurento/kurento-media-server

tcp/udp:8888 is open on the firewall to the docker host. 

Perhaps I don't have all of the necessary ports open?  All of the docs I see thus far assume KMS is running on the same server as the application (localhost).

I don't see any errors on my app server, client side (chrome), or in KMS logs per docker logs -f kmscontainerid so its not clear what I need at this point. I'll look around the docs and the google group some more, but if you can point me straight to it that'd be awesome.

Ivan Gracia

unread,
Jul 11, 2016, 4:35:05 PM7/11/16
to kurento, jas...@gmail.com
You need to open all UDP ports, and add STUN configuration.

Have you gone through the project's documentation? It's all there.

Jason Ashby

unread,
Jul 11, 2016, 4:51:54 PM7/11/16
to Ivan Gracia, kurento
I'll go RTFM :).

Ivan Gracia

unread,
Jul 11, 2016, 4:59:41 PM7/11/16
to Jason Ashby, Ivan Gracia, kurento
This will serve you well: STUN and TURN server. With that, and opening all your UDP ports, you should be fine.

But yes, do please also RTFM ;-)

Ivan Gracia


Jason Ashby

unread,
Jul 28, 2016, 11:38:18 AM7/28/16
to kurento, jas...@gmail.com, igr...@kurento.org
All set!  

After a combination of opening up the right ports for my Coturn server, reading the effing manual, and comparing chrome://webrtc-internals between my app and the Kurento one2many tutorial app, I'm all good.  The main issue was I was addIceCandidate wasn't being called on the client side.  My app wasn't signaling properly because I had a typo and the socket.io names didn't match on the server vs client.

Now on to big things.  Thanks for your help and hard work on Kurento.

Ivan Gracia

unread,
Jul 28, 2016, 11:41:08 AM7/28/16
to Jason Ashby, kurento, Ivan Gracia
Hey that's great news! Signaling is many times the thing that is failing, and matching those names... Anyway, glad to know you got that working.

Cheers,

Ivan Gracia


Reply all
Reply to author
Forward
0 new messages