Ente Photos, being a cloud multimedia storage app, requires both pixel-perfect visuals and a seamless user experience. However, this wasn’t the case with the latter, since we didn’t support video streaming. This meant users on slower internet connections had to wait a long time to download an entire video (which could be up to 4GB in size).
In this talk, I’ll walk-through our approach to building a robust end-to-end encrypted video streaming solution, the challenges we faced, the results, and alternative ways to implement it. In the latter part, I’ll discuss approaches to create custom media streaming protocol with encryption techniques like ChaCha20-Poly1305, instead of the traditional AES-128 encryption used by HLS protocol.
How Video Streaming Works
Implementing an efficient video streaming service which works in every device
Selecting a suitable format and using ffmpeg for conversion
Alternative custom implementation for video streaming from scratch
This looks to be very interesting. Especially if there is demos involved. Getting video streaming to work and with encryption is very difficult but so so rewarding when it works! This looks like it could inspire others to try the same.
E2EE is typically difficult in managed cloud applications, sharing this knowledge can help increase more E2EE adoptions in FOSS.