kasmtech / KasmVNC

Modern VNC Server and client, web based and secure

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

H265 Support

pkngrs opened this issue · comments

commented

Hello and thanks for your project.
We are now working on an exhibition, and we use kasmvnc as a cloud game platform.
But we notice that kasmvnc requires extremely high bandwidth to support multiple HD contents at a high FPS.
This is bad for us.
However, the client devices, namely OPS(Open Pluggable Specification) devices, are in our control, so that we can streaming in a better protocol.
Is there anyway for kasmVNC to support H265 streaming now?
Could you tell us how to modify your code to support H265?
And we can contribute the code to this repo if successful

commented

@pkngrs you could try to implement VP9 maybe, but for H265 you need to pay license fees for each stream.. I think it would be to complicated to have it legally implemented.

We have published a branch 'video', which uses NVidia's video encoding library to encode in H264. It is very early stage. As such, it only sends iframes. The corresponding noVNC branch just shoves the iframes into a video element. It is designed to automatically switch between video encoding mode and normal vnc mode, based on actual content rate of change. This branch is quite old and I think there are better options client side these days. It will be weeks before we could dust this branch off and provide clear instructions on how to get up and running with it. However, I thought I would publish it to show a reference of how we were implementing it.

commented

@mmcclaskey do you know what the legal situation looks like? Nokia is suing some companies right now for the use of h264..

That would require legal review before we could determine how we could distribute, if we included h.264. Worse case scenario, based on my "non-legal expert review", we would not be able to provide pre-compiled binaries that supported H.264 to the open source community. We would have to have an internal build that we redistributed separately as a commercial product. However, as to not break our own GPL license, the entirety of the software would be open source and anyone could compile it themself and figure out the licensing on their own, as it applies to your own situation. Again, that would be the worse case scenario.

It is not clear to me if the Nvidia NVENC library and associated hardware already includes licensing fees. Our primary concern is with being able to do this in the cloud and on premise, and NVIDIA provides the best option for that, unless things have changed.

commented

I have read that the license that comes with a GPU only covers home use. Any commercial use and any streaming, even if non-commercial, would require a license. H.264 patents expire in 2027, H.265 in 2033 at earliest says google. IANAL.

commented

My engineer opinion on distributing binaries: neither our novnc video branch nor the corresponding kasmvnc binary include h.264 code, so shipping binaries should be safe. The Nvidia libraries are loaded dynamically, they include the relevant code.

commented

(though if the branch includes the ffmpeg software fallback, that we couldn't ship as binary. I don't remember if the final state was nvidia-only or if it had ffmpeg too)