Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend onvif server to support Unifi Protect #1520

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

acortelyou
Copy link

Resolves #613.

Marking draft pending feedback.

Note: Unifi uses appears to use MAC as unique identifier, requiring bridge network to achieve multiple instances

@AlexxIT
Copy link
Owner

AlexxIT commented Dec 24, 2024

FrameRateLimit should be integer. Where you get this values?

@AlexxIT AlexxIT self-assigned this Dec 24, 2024
@acortelyou
Copy link
Author

acortelyou commented Dec 24, 2024

I used tcpdump to compare go2rtc and a working implementation, 29.97 just happens to be the framerate from the NTSC cameras I have.

Bitrate and FPS are displayed in the Unifi Protect web GUI but unclear if exact values are critical to functionality.

The RateControl block is required but I didn't test if FPS comes from there or GetVideoSources.

I figure those values and more should be configurable, but I didn't see an obvious way to extract the information from a stream/producer object.

Unifi Protect also seems unwilling to authenticate over RTSP even when you embed the credentials in the stream uri. I couldn't find where in the onvif spec you're supposed to configure that. The creds are included in each soap request.

@acortelyou
Copy link
Author

I did some additional testing.

VideoEncoderConfiguration.RateControl is required to be present but the contents are not.

VideoEncoderConfiguration.RateControl.{FrameRateLimit,BitrateLimit} are optional but they are used as the values shown in the webui, for display only.

VideoEncoderConfiguration.Resolution is what shows in the webui, for display only.

Removing VideoSourceConfiguration seems to break the snapshots for some reason.

VideoSources.FrameRate don't seem to be required, removed.

VideoEncoderConfiguration Quality, Interval, and SessionTimeout don't seem to be required, removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement Unifi Protect-complaint output
2 participants