-
Notifications
You must be signed in to change notification settings - Fork 48
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
h.265 support #57
Comments
Maybe you saw this Moonfire-NVR issue? tl;dr: it's quite hard to support H.265 in Moonfire because the UI is browser-based, and browsers don't have built-in support for H.265 as they do for H.264. Supporting H.265 in Retina should be a lot easier, but if your goal is to use it with Moonfire, may not be that useful on its own. |
@scottlamb I'm looking into adding h265 support into Retina. I have to first (1) get familiar with RTP then (2) get familiar with how retina is framing h264 data. I think the public API shouldn't need to change (essentially you still get a |
I don't have any plans for H.265. A PR would certainly be welcome. And, yeah, I expect the existing API to be compatible with H.265. (and if not: we can do also make a major version bump as necessary.) |
It seems the existing api is compatible, were currently in the process of testing against our cameras for our software but we will be opening a PR here soon. |
Hi @nemosupremo, how is HEVC support looking so far? I've seen some progress in your repo 😊 Looking at how fast and efficient (CPU, memory) Moonfire-NVR is compared to all other Python/JS based NVRs that use ffmpeg I've tried so far I can't stop thinking that it's the way to go, but most of my cameras are Reolink and full-res max bitrate 4K streams are HEVC (H.265)… Thank you folks for your work! |
I would like to ditch my blue iris server and switch over to something driven by retina and use str0m for webrtc proxy. But yeah need h265 for that. |
Time flies; I'm going to try and get this done the only thing that's been holding it back is
Once |
Given that |
Looking forward to your PR. There are several Moonfire users who have been wanting H.265 support, even considering the caveats about browser support. I'd definitely give it a spin myself; some of my cameras do H.265...
😊
fwiw, I skimmed and think it looks pretty good. There are always things that can be tweaked, but they don't have to be considered blockers for merging. The one thing I'd really like to have is testing—both some basic functional tests and a fuzz test. (If you've never fuzzed before, you're in for a treat. It's surprisingly easy to do and really helps shake out problems.) Also, an intermediate option might be to merge it but keep the functionality behind an experimental feature flag. Neat, I hadn't seen that crate. Fine with me to use in any way really: if the author publishes, if you publish a fork, or by vendoring the parts needed within Retina. It looks like you're not using a whole lot of functionality, and I'm not sure you even need quite all you are using. (In particular, I don't think it's necessary to assemble the Annex-B form and then parse it; the boundaries are already known so the nals could be directly fed to I think if I'd done this I would have tried adding H.265 to support to the
Parts do bit twiddling manually, like this RTP code, but they only have to handle fixed-width aligned fields. For the more sophisticated variable-length field stuff, Retina is already using I hadn't seen |
Although I guess there's the license: long-term I'd like to keep Retina on the dual Apache/MIT that seems to be the standard in the Rust ecosystem, and Sculas pointed out |
I have a work in progress for this on the |
Any news on this? H265 codecs can be enabled on recent Chrome by some feature flags, I think it might get stable soon.
----EDIT 1----- Sorry about that, seems the camera sent inconsistent nalu types within different Fu packages, I have ignored that error and it now works. |
It would be nice to have support for H.265, since my devices support it. I already read in a different issue that you haven't added support for it yet. You could use this as a tracking issue whenever you decide to add it, if you want to :)
The text was updated successfully, but these errors were encountered: