Nx WebRTC support feature
AnsweredNx version 5.0.0.35745, Windows
1. Will WebRTC streaming protocol be available in Nx release soon? If yes, will it support speed control similar to RTSP - speed parameter below?
rtsp://127.0.0.1:7001/<cameraid>?pos=<pos>&speed=<10-32>
https://support.networkoptix.com/hc/en-us/community/posts/1500001152501-support-of-webrtc-and-hls?input_string=Nx%20WebRTC%20support%20features
2.
a) HTTP Streaming /media/{deviceId}.{format}
GET
Open HTTP video stream from Device. It is not exactly an API function but rather a URL format which may contain any Device id. Live stream and archive can be downloaded. If required and possible, media stream transcoding is performed on-the-fly. Example: http://<server_ip>:<port>/media/12AB42FD5912.webm
b) Direct download /hls/{deviceId}.{format}
GET
Download fragment of a Device archive, identified by its start time and duration. It is not exactly an API function but rather a URL format which may contain any Device. Fragment can be downloaded in mpeg-2/ts (.ts) or Matroska (.mkv) format. No transcoding is performed. Stream format can be one of following: ts, mkv. Example: http://<server_ip>:<port>/hls/12AB42FD5912.mkv?pos=2015-02-05T19:00&duration=10
Is download API only using HLS protocol since HTTP stream 2a) above using media also mentioned "archive can be downloaded"?
3) From Nx testing, for archive which are not available 24x7, the requested "pos" will return chunks which are the closest instead of showing empty stream.
If a camera stream only have captured streaming archive data at Nx servers between January 2 3-5 pm, if the API request is for January 2 at 2.45 pm, can the Nx server return empty chunks from 2.45 pm and show the 3 pm data after 15 minutes streaming from this camera?
-
Hey, I'm a Product Manager at Nx.
We added WebRTC support in 5.1, which reached Beta. Please, check it out: https://meta.nxvms.com/downloads/betasthere is no solid documentation on it yet, but here is some hint on how you can construct an URL that returns a simple player based on webRTC
https://172.20.1.236:7001/webrtc/?camera_id=084419f6-ec75-6b41-f668-2d8285e9d445&position=1674240507000000Also, the speed parameter is available and the server should return data accordingly. But the player on this page does not support this, so you'll have to develop/use a player that supports this.
Please, let us know if you will be able to use speed parameter -
-
Tagir Gadelshin I am very happy with the update regarding WebRTC. I have recently been investigating other tools, but those might not be relevant anymore.
Two questions:1. How much longer untill version 5.1 is production ready?
2. How big of a risk would using version 5.1 in production today be? (Documentation excluded, we can reverse-engineer the example web-page)
-
5.1 is Q1, Q2 2023 latest.
It's not recommended for production use, it's Beta. But you can start developing for sure, it's recommended to start now so that you're ready when 5.1 is released.
That being said, we expect enthusiasts to use Beta in production at their own risk, which is why we have Beta -- to let people test it and report issues to us so that we can fix them before the release. So it means we do not expect major issues with it -
Tagir Gadelshin Will the Nx beta and future Nx version be supporting WebRTC in browser Chrome?
Is there any resource that can assist to develop a player for testing the speed parameter? Do you have any existing WebRTC player to suggest?
-
Xand
yes, Chrome will be supported.There are no resources as of right now describing this, as it is a new feature. Also we cannot recommend any player as of right now
-
@Tagir Gadelshin few related questions:
When will WebRTC documentation be available, will this be included in the 5.1 release?
Will WebRTC streams include RTP timestamps (I want to create a browser video timeline with time-ticker for which a rtp timestamp would be ideal)
Will WebRTC streams allow the "position" query parameter?
Will WebRTC allow connections over both UDP and TCP? (TCP is more reliable for high resolution streaming while UDP is generally the standard with lower latency)
Is customizable Turn and ICE server support included?
-
hey, Thomas
I encourage you to test yourself. You can start working on it right now, as there is a publicly available Beta. I'm not sure if documentation will be available right away, so it's better to check the example webpage and see how it works. Most likely it will answer a good portion of your questions.Will WebRTC streams include RTP timestamps (I want to create a browser video timeline with time-ticker for which a rtp timestamp would be ideal)
Will WebRTC streams allow the "position" query parameter?
I will double-check what is in 5.1 (I will double-check). But this will be available at some point, as our (Nx) players will also have this experience as you describe.
I will also double-check about UDP vs TCP.
Also, can you elaborate -- why you need customizable TURN and ICE server support? As you would need to change them on each server. What are you planning to build?
Probably it's relatively easy to add on our side, but we need to understand why and what is your goal so we better understand priorities.
Thank you! -
Thanks for your quick response. We have not started development due to the server application not being compatible with our M1 macbooks. We do not want to run 5.1 in production due to the risks of a beta version. Unexpected behavior could have us drive cross county for direct server-access. I will look into getting something up and running to start development.
We do not currently have a need for turn, stun is however necessary to setup the peer-connection in our case. I do suspect however that we might need turn when we want to connect from a mobile connection to the streams behind a NAT. I am not totally sure about this.
An advantage I see in customisibility in stun and turn is configurability in fallback servers.
I am happy with your responses as they suggest NX is working on setting up a proper, feature-rich WebRTC system and not just a quick fix for the existing latency issues.
Thank you for your responses so far.
-
rtsp://127.0.0.1:7001/<cameraid>?pos=<pos>&speed=<10-32>
1. Is there an API/method to retrieve the current timestamp in a RSTP/WebRTC(future) stream when the RSTP stream speed can be accelerated up to 32x?
This is for function Rewind and Fast forward to calculate the move to the correct timestamp marker.
-
Hello kadam nayak ,
I suppose, the account you're trying to authenticate with from your player has token authentication schema enabled.
The recommended way for accessing media interfaces of the Server is creating an account with digest authentication schema enabled. -
Tagir Gadelshin earlier in this post you mentioned WebRTC would be out of Beta in Q1/Q2 2023. Is this still the current timeline? We are nearing end of Q2.
-
Thomas
yes, it should be out in June -
Hi,
I have a few questions about the WebRTC feature.
First of all, great that you implemented this!- It works on a desktop browser but not on Safari or Chrome on IOS. Is this normal or am I doing something wrong?
https://192.168.0.200:7001/webrtc/?camera_id=camID- Can I make it work via NX Cloud? I get a white screen with just a mute/unmute button but can't see the stream.
https://cloud_id.relay.vmsproxy.com/webrtc/?camera_id=camID -
Hello Jasper,
https://cloud_id.relay.vmsproxy.com/webrtc/?camera_id=camID
I double-checked. The WebRTC is working via the relay URL. Please, try with testcamera
https://support.networkoptix.com/hc/en-us/articles/360018067074-Testcamera-IP-Camera-Emulator
-
Hello Andrey Terentyev
I probably did something wrong at first. Indeed it works via the relay URL.
But no support for IOS browsers i guess?
Please sign in to leave a comment.
Comments
19 comments