thirtythreeforty / neolink

An RTSP bridge to Reolink IP cameras
https://www.thirtythreeforty.net/posts/2020/05/hacking-reolink-cameras-for-fun-and-profit/
GNU Affero General Public License v3.0
889 stars 146 forks source link

Enable PTZ control from other clients #137

Open cdcau opened 3 years ago

cdcau commented 3 years ago

Hi, found your project after accidentally buying a couple of E1's and not realising they don't support RTSP. Have got successfully setup with the RTSP feed coming through so thank you for the great work.

Quick question, does Neolink support tapping into the PTZ controls? I tried the Onvif and Reolink options in the PTZ setup within BlueIris but didn't move thecamera.

QuantumEntangledAndy commented 3 years ago

Not yet. We know how to do and what commands we've got to send to the camera. But no-one is really free to work on it. I had a look into implementing onvif but there are no good servers in rust everything is client based so we'd have to write the whole server backend ourself.

cdcau commented 3 years ago

Not yet. We know how to do and what commands we've got to send to the camera. But no-one is really free to work on it. I had a look into implementing onvif but there are no good servers in rust everything is client based so we'd have to write the whole server backend ourself.

No worries, Thanks for letting me know.

Homas commented 3 years ago

We know how to do and what commands we've got to send to the camera

Can u share the commands? Am I right that they have to be send on the same port 900?

write the whole server backend ourself.

What's about having just a CLI script (or scripts)? E.g. I'm not going to watch my cameras 24/7 and will 100% rely on recordings (frigate) so I just need to provision the cams (e.g. correct timezone, remove the watermark, change zoom).

QuantumEntangledAndy commented 3 years ago

Yes, adding to the command line subcommands is my plan for this before any onvif attempt. If the mqtt PR gets merged I'll add it to that too.

If your interested in development you can lean all those commands yourself using wireshark and an official client (running on the same machine as wireshark). We've got most of it documented in the dissector/ folder

illnesse commented 2 years ago

Interested in this too, just too busy :(

Vizzyy commented 1 year ago

+1

Would love to have onvif + ptz support for E1.

skylord123 commented 1 year ago

So I have the rlc-423ws which has an RTSP port you can connect to but it always smears no matter what I do to the video settings. It was driving me nuts and the company pretty quickly discontinued the camera.

Well using Neolink fixed all my RTSP issues. For whatever reason the RTSP stream that goes out on the Reolink protocol is a far more reliable one then the direct RTSP connection. So thanks for that! Was about to get rid of this camera hah.

I did run into the issue of not being able to control it with PTZ anymore though. I use Xeoma as my security camera software and now that I have the streams pointing at this docker container Xeoma doesn't know it needs to send the PTZ/Onvif stuff to another IP address. I did send in a support ticket asking for this to be added but I am not sure if they will do it.

So I am wondering if we could get an option added that allows Neolink to proxy these ports for a camera if a specific option is enabled in the config (and to support multiple cameras maybe allow setting what port per camera the proxy listens on since at least that is configurable from my NVR). I know I could spin up an NGINX container and proxy RTSP and Onvif/PTZ together but then my stream is going through two proxies before hitting Xeoma adding latency. So for cameras that have native PTZ/Onvif control this would be super handy.

Again, thanks for saving me the hassle of getting a new camera.

QuantumEntangledAndy commented 1 year ago

@skylord123 Development on this fork has mostly stopped since thirtythreeforty seems to have left the scene. I am continuing on my own fork which has many more features now including ptz controls. Please do check that out.