lulop-k / kurento-rtsp2webrtc Goto Github PK
View Code? Open in Web Editor NEWThis example shows how to transform a RTSP feed or an HTTP feed into a low latency WebRTC stream in a simple and seamless manner.
This example shows how to transform a RTSP feed or an HTTP feed into a low latency WebRTC stream in a simple and seamless manner.
Hi, I tried kurento-rtsp2webrtc in LAN and then found that the video has very low resolution.
By the way, CPU consumes very low.
Hello,
Just downloaded this demo to try out. I get an infinite loading bar on the web player. I have tried both firefox and chrome. I get some output errors from my http-server such as....
"GET /bower_components/adapter.js/adapter.js" Error (404): "Not found"
"GET /bower_components/kurento-client/js/kurento-client.js" Error (404): "Not found"
"GET /bower_components/kurento-utils/js/kurento-utils.js" Error (404): "Not found"
What am i missing? Thanks!
I dont understand this line of the readme document:
"Then, in each demo folder execute this command:"
Can anyone help me?
I think the kurento-media-server must be transcoding because the CPU load is 50% - is there any way to show the original H.264 video from the rtsp camera over webRTC without transcoding?
EDIT: Adding pipeline.create("PlayerEndpoint", {uri: address.value, useEncodedMedia: false} seems to have no effect :(
I need to show a loader while stream form ip cam is buffering as video quality degrades too much and video starts to stutter.
I have googled a lot but found nothing. Please suggest any method to show loader before video stutter.
Browser not receiving the video stream and player remains stuck in loading gif state.
Tried to setup TURN server (Node-turn & coturn) and ice server as follows -
ws_uri: 'ws://' + '107.108.207.92' + ':8888/kurento',
ice_servers: '[{"urls": "turn:107.122.13.15:3478", "username": "optional-username", "credential": "auth-token"}]'
Master branch throws below exception with ice_server.
urentoUtils.WebRtcPeer.prototype.server.iceServers = JSON.parse(args.ice_servers);
"cannot find server of undefined"
Release 5.1 accepts TURN config but RTCPeerConnection doesn't return any object
this.pc = new RTCPeerConnection(server, options);
Console shows below message -
Created SDP offer
Local description set
ICE negotiation completed
SDP answer received, setting remote description
PlayerEndpoint-->WebRtcEndpoint connection established
Player playing ..
Kurento media server examples based on MAVEN and spring boot are working on my system but rtsp2webrtc fails.
Queries -
Please help to resolve the issue. Thanks
Hi, I am new in this world and I need help to start this demo.
Running in Ubuntu 16.04 I has KMS running (checked with ps and netstat, it is ok) and I has the http-server running from the kurento-rtsp2webrtc folder.
The web app is running fine, using this url
http://localhost:8080/index.html?ws_uri=ws://192.168.19.173:8888/kurento
But when I click START I get the follow console result
`Local icecandidate {"candidate":"candidate:0 1 UDP 2122252543 192.168.19.173 55667 typ host","sdpMid":"sdparta_0","sdpMLineIndex":0}
Local icecandidate {"candidate":"candidate:3 1 TCP 2105524479 192.168.19.173 9 typ host tcptype active","sdpMid":"sdparta_0","sdpMLineIndex":0}
Local icecandidate {"candidate":"candidate:0 2 UDP 2122252542 192.168.19.173 43966 typ host","sdpMid":"sdparta_0","sdpMLineIndex":0}
Local icecandidate {"candidate":"candidate:3 2 TCP 2105524478 192.168.19.173 9 typ host tcptype active","sdpMid":"sdparta_0","sdpMLineIndex":0}
Local icecandidate {"candidate":"candidate:0 1 UDP 2122252543 192.168.19.173 45953 typ host","sdpMid":"sdparta_1","sdpMLineIndex":1}
Local icecandidate {"candidate":"candidate:3 1 TCP 2105524479 192.168.19.173 9 typ host tcptype active","sdpMid":"sdparta_1","sdpMLineIndex":1}
Local icecandidate {"candidate":"candidate:0 2 UDP 2122252542 192.168.19.173 50243 typ host","sdpMid":"sdparta_1","sdpMLineIndex":1}
Local icecandidate {"candidate":"candidate:3 2 TCP 2105524478 192.168.19.173 9 typ host tcptype active","sdpMid":"sdparta_1","sdpMLineIndex":1}
Local icecandidate {"candidate":"candidate:1 1 UDP 1686052863 200.69.204.19 55667 typ srflx raddr 192.168.19.173 rport 55667","sdpMid":"sdparta_0","sdpMLineIndex":0}
Local icecandidate {"candidate":"candidate:1 2 UDP 1686052862 200.69.204.19 43966 typ srflx raddr 192.168.19.173 rport 43966","sdpMid":"sdparta_0","sdpMLineIndex":0}
Local icecandidate {"candidate":"candidate:1 1 UDP 1686052863 200.69.204.19 45953 typ srflx raddr 192.168.19.173 rport 45953","sdpMid":"sdparta_1","sdpMLineIndex":1}
Local icecandidate {"candidate":"candidate:1 2 UDP 1686052862 200.69.204.19 50243 typ srflx raddr 192.168.19.173 rport 50243","sdpMid":"sdparta_1","sdpMLineIndex":1}
PlayerEndpoint-->WebRtcEndpoint connection established
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:1 1 UDP 2013266431 fe80::e57b:7942:183d:3acb 24430 typ host","sdpMLineIndex":0,"sdpMid":"sdparta_0"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:1 1 UDP 2013266431 fe80::e57b:7942:183d:3acb 24430 typ host","sdpMLineIndex":1,"sdpMid":"sdparta_1"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:2 1 TCP 1015022847 fe80::e57b:7942:183d:3acb 9 typ host tcptype active","sdpMLineIndex":0,"sdpMid":"sdparta_0"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:2 1 TCP 1015022847 fe80::e57b:7942:183d:3acb 9 typ host tcptype active","sdpMLineIndex":1,"sdpMid":"sdparta_1"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:3 1 TCP 1010828543 fe80::e57b:7942:183d:3acb 50052 typ host tcptype passive","sdpMLineIndex":0,"sdpMid":"sdparta_0"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:3 1 TCP 1010828543 fe80::e57b:7942:183d:3acb 50052 typ host tcptype passive","sdpMLineIndex":1,"sdpMid":"sdparta_1"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:4 1 UDP 2013266430 192.168.19.173 52267 typ host","sdpMLineIndex":0,"sdpMid":"sdparta_0"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:4 1 UDP 2013266430 192.168.19.173 52267 typ host","sdpMLineIndex":1,"sdpMid":"sdparta_1"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:5 1 TCP 1015022079 192.168.19.173 9 typ host tcptype active","sdpMLineIndex":0,"sdpMid":"sdparta_0"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:5 1 TCP 1015022079 192.168.19.173 9 typ host tcptype active","sdpMLineIndex":1,"sdpMid":"sdparta_1"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:6 1 TCP 1010827775 192.168.19.173 13760 typ host tcptype passive","sdpMLineIndex":0,"sdpMid":"sdparta_0"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:6 1 TCP 1010827775 192.168.19.173 13760 typ host tcptype passive","sdpMLineIndex":1,"sdpMid":"sdparta_1"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:1 2 UDP 2013266430 fe80::e57b:7942:183d:3acb 65154 typ host","sdpMLineIndex":0,"sdpMid":"sdparta_0"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:1 2 UDP 2013266430 fe80::e57b:7942:183d:3acb 65154 typ host","sdpMLineIndex":1,"sdpMid":"sdparta_1"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:2 2 TCP 1015022846 fe80::e57b:7942:183d:3acb 9 typ host tcptype active","sdpMLineIndex":0,"sdpMid":"sdparta_0"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:2 2 TCP 1015022846 fe80::e57b:7942:183d:3acb 9 typ host tcptype active","sdpMLineIndex":1,"sdpMid":"sdparta_1"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:3 2 TCP 1010828542 fe80::e57b:7942:183d:3acb 20350 typ host tcptype passive","sdpMLineIndex":0,"sdpMid":"sdparta_0"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:3 2 TCP 1010828542 fe80::e57b:7942:183d:3acb 20350 typ host tcptype passive","sdpMLineIndex":1,"sdpMid":"sdparta_1"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:4 2 UDP 2013266429 192.168.19.173 4450 typ host","sdpMLineIndex":0,"sdpMid":"sdparta_0"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:4 2 UDP 2013266429 192.168.19.173 4450 typ host","sdpMLineIndex":1,"sdpMid":"sdparta_1"}
oniceconnectionstatechange -> checking
icegatheringstate -> complete
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:5 2 TCP 1015022078 192.168.19.173 9 typ host tcptype active","sdpMLineIndex":0,"sdpMid":"sdparta_0"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:5 2 TCP 1015022078 192.168.19.173 9 typ host tcptype active","sdpMLineIndex":1,"sdpMid":"sdparta_1"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:6 2 TCP 1010827774 192.168.19.173 62129 typ host tcptype passive","sdpMLineIndex":0,"sdpMid":"sdparta_0"}
Remote icecandidate {"module":"kurento","type":"IceCandidate","candidate":"candidate:6 2 TCP 1010827774 192.168.19.173 62129 typ host tcptype passive","sdpMLineIndex":1,"sdpMid":"sdparta_1"}
reconnect to server
reconnect to server
. . .
reconnect to server
oniceconnectionstatechange -> failed
icegatheringstate -> complete
reconnect to server
Error: Request has timed out
reconnect to server
reconnect to server
. . .
reconnect to server`
I will be working on that, but I wonder if any can help me :)
Hi,
The video linked in the example (quoted below) does not exist anymore
kurento-rtsp2webrtc/js/index.js
Line 47 in 0f0cc52
it doesn't work when rtsp like 'rtsp://ip:554/pag://ip:cameraid:0:MAIN:TCP'.
test in hiKvison iVMS-8600.
who can help me?
What to input on set source URL?
example i put: rtsp://admin:[email protected]/37777
On console it keeps showing "reconnect server"
Thank before hand
It work in chrome74 version , but not work in chrome75 or heigher version, is it a bug?
can support http h264/AAC stream?
I have a problem with websocket connection
I don't understand why .
I have clone the project in visual sudio
install all the dependecy
the local server work well I load the HTML page on local server 192.168.1.4:8086
when when i put a stream url in the imput
kurento-client.js:51421 WebSocket connection to 'ws://192.168.1.4:8081/' failed: Error during WebSocket handshake: Unexpected response code: 200
ws @ kurento-client.js:51421
WebsocketStream @ kurento-client.js:51311
WebsocketStream @ kurento-client.js:51294
(anonymous) @ kurento-client.js:48028
attempt @ kurento-client.js:47932
emitTwo @ kurento-client.js:19855
emit @ kurento-client.js:19926
Backoff.onBackoff_ @ kurento-client.js:5058
18:15:48.291
or when i keep original ws port
WebSocket connection to 'ws://192.168.1.4:8888/kurento' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
I want to display a few IP cameras in my web project. I understand that I need PlayerEndpoint for each one of them, buy am I need to create a new WebRtcEndpoint to each one? or can I use only one WebRtcEndpoint for all the PlayerEndpoints? (just to clarify, I want to display video per camera)
Hi,
This looks very promising and I wanted to look into it more.
I got about 1-2 seconds delay compared to the original rtsp stream(when viewed by VLC).
Is it possible to improve this? Maybe reduce the buffer somehow?
I want to get to latency that is below 1 second.
I looked at the kurento-media-server logs and I got this exception:
** (kurento-media-server:835): CRITICAL **: gst_video_encoder_set_latency: assertion 'GST_CLOCK_TIME_IS_VALID (min_latency)' failed
Maybe it has something to do with the latency issue that I have?
Thanks!
How to open the page and play it automatically?
everything prepared, and no error. but no remote picture. the console log:
......
console.js:77 oniceconnectionstatechange -> checking
console.js:77 icegatheringstate -> gathering
console.js:77 oniceconnectionstatechange -> connected
console.js:77 icegatheringstate -> complete
/usr/bin/env: "node": 没有那个文件或目录
how can i install ice server on windows.
reconnect to server
how can i fix it
Readme.md currently mentions parameter ws_url
, while the code actually requires ws_uri
.
Please, fix this. This might cause some trouble to unaware users.
Dear all,
I have an IP camera connected to my eth0 and I can see the UDP packets streaming by using Wireshark. Is there any way to know the source URL by means of Wireshark information?
I have tried rtsp://dest_IP (with dest_IP being the destination address of UDP packets that camera sends), but it does not work... I also tried rtsp://dest_IP/dest_port.
Any idea?
I have everything running and working but when I enter my rtsp url (which works in VLC) it says reconnect to server on a loop in the console. Can anyone help me fix this issue?
Windows 10 Pro, Version 1803,
Chrome: Versie 67.0.3396.87 (Officiële build) (64-bits)
Firefox: 60.0.2 (64-bits)
Any suggestions?
Chrome - webrtc_internals_dump.txt
Firefox - aboutWebrtc.zip
I have setup this project and the Kurento Media Server on a linux machine on my network (10.0.11.72)
When I try to connect this project with another camera, I'm actually getting the stream on the browser.
However, when I have tried to access the webpage of this project from my windows machine running on 10.0.10.230, I can connect to the webpage of this project when I access it using 10.0.11.72:8080.
However when I try to connect to the same camera, the camera stream doesn't appear on the browser. Are there any other config that was require for this implementation to work?
I have also tried
"HttpEndpoint" : {
"serverAddress" : "10.0.11.76",
"port" : 9091
},
Are there any other steps that I need to follow?
Hi, I got stuck in "Player playing" this is RTSP URl => rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov it works well in VLC, but when I try to use the URL, I got stuck in "player playing".
WebSocket connection to 'ws://localhost:8888/kurento' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
Tried both default URL and URL from my own IP-camera that works fine in VLC.
Fyi, getting this javascript error when running in Edge.
SCRIPT438: Object doesn't support property or method 'addEventListener'
kurento-utils.js (208,4)
Thanks
--Andy
I am trying to play this rtsp stream to webRTC
rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov
i get below error at server, installed Gstreamer, still the same issue, any ideas?
gstrtspsrc.c(6413): gst_rtspsrc_setup_streams (): /GstPipeline:internalpipeline/GstURIDecodeBin:uridecodebin3/GstRTSPSrc:source
0:03:53.124006000 1 0x7f293c0afb70 ERROR rtspsrc gstrtspsrc.c:6664:gst_rtspsrc_open_from_sdp:
0:03:53.124796300 1 0x7f293c0afb70 WARN glib GStreamer:0:: Element 'udpsrc1' is not in bin 'source'
0:03:53.124967600 1 0x7f293c0afb70 WARN glib GStreamer:0:: Element 'udpsrc2' is not in bin 'source'
0:03:53.125044300 1 0x7f293c0afb70 WARN glib GStreamer:0:: Element 'udpsrc4' is not in bin 'source'
0:03:53.125098500 1 0x7f293c0afb70 WARN glib GStreamer:0:: Element 'udpsrc5' is not in bin 'source'
0:03:53.125138000 1 0x7f293c0afb70 WARN rtspsrc gstrtspsrc.c:6880:gst_rtspsrc_open:
0:03:53.126501400 1 0x55800b658270 ERROR KurentoMediaPipelineImpl MediaPipelineImpl.cpp:69:processBusMessage: Error code 12: 'Your GStreamer installation is missing a plug-in.', element: kmsplayerendpoint3, parent: pipeline3
0:03:53.126560400 1 0x55800b658270 ERROR KurentoMediaPipelineImpl MediaPipelineImpl.cpp:72:processBusMessage: Debugging info: gsturidecodebin.c(1006): no_more_pads_full (): /GstPipeline:internalpipeline/GstURIDecodeBin:uridecodebin3:
no suitable plugins found:
gstrtspsrc.c(6413): gst_rtspsrc_setup_streams (): /GstPipeline:internalpipeline/GstURIDecodeBin:uridecodebin3/GstRTSPSrc:source
0:03:53.126637300 1 0x55800b658270 ERROR KurentoMediaElementImpl MediaElementImpl.cpp:281:processBusMessage: Error code 12: 'Your GStreamer installation is missing a plug-in.', element: kmsplayerendpoint3, parent: kmsplayerendpoint3
0:03:53.126659200 1 0x55800b658270 ERROR KurentoMediaElementImpl MediaElementImpl.cpp:284:processBusMessage: Debugging info: gsturidecodebin.c(1006): no_more_pads_full (): /GstPipeline:internalpipeline/GstURIDecodeBin:uridecodebin3:
no suitable plugins found:
gstrtspsrc.c(6413): gst_rtspsrc_setup_streams (): /GstPipeline:internalpipeline/GstURIDecodeBin:uridecodebin3/GstRTSPSrc:source
0:03:53.126707900 1 0x55800b658270 ERROR playerendpoint kmsplayerendpoint.c:1338:process_bus_message: Error code 12: 'Your GStreamer installation is missing a plug-in.', element: uridecodebin3, parent: internalpipeline
0:03:53.126728800 1 0x55800b658270 ERROR playerendpoint kmsplayerendpoint.c:1341:process_bus_message: Debugging info: gsturidecodebin.c(1006): no_more_pads_full (): /GstPipeline:internalpipeline/GstURIDecodeBin:uridecodebin3:
no suitable plugins found:
gstrtspsrc.c(6413): gst_rtspsrc_setup_streams (): /GstPipeline:internalpipeline/GstURIDecodeBin:uridecodebin3/GstRTSPSrc:source
0:04:00.330589600 1 0x7f293001b6f0 INFO KurentoWebSocketTransport WebSocketTransport.cpp:346:keepAliveSessions: Keep alive b9b89de2-44d0-47fd-94ec-725cb8bd6adc
How to support H.265(HEVC) rtsp stream?
I use the following command to access the IP camera in the same local network:
http://127.0.0.1:8080/index.html?ws_uri=ws://192.168.1.229:8888/kurento
My question is: if I try to access this camera outside, how to do it? currently KMS server is inside.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.