[Context] I'm developing a software for a company which main field is distance learning.
This software must ultimately be distributed to many different schools, where students will use it to - among other things - watch video lessons. So, this software is essentially a video player (again, among other things).
These video lessons are the company's intellectual property, and it's mandatory that they are not distributed in such a way that anyone can simply copy them over to a USB drive for easy watching. On the other hand, they must actually be distributed (local files, no streaming!). Some sort of "protection", is needed, then, albeit basic.
The old system, still in use, employs something very, very inefficient: all videos are encrypted using AES-256, and entirely decrypted in memory - yes, RAM - before playback starts. The key is obtained after authentication with the Webserver.
Currently all videos are .MP4 files with AVC + AAC streams. At first I wanted to try and modify the h.264 encoder/decoder in order to accomplish some level of protection, but I soon figured there must be a simpler way.
[Question] What are some DRM solutions I can use in this case? Constraints:
- Local files, for local playback
- Internet access is granted, but should be slow. Suitable for authentication only.
I'm developing the software in C++ for Microsoft Windows and GNU/Linux, if this makes a difference.
As hinted in the title, free solutions are preferred.