Я должен потоковое видео для мобильных устройств с сервера, используя Http Live Streaming.
файл содержит .m3u8, в котором перечислены файлы .ts. так как обезопасить эти файлы для доступа только авторизованным пользователям.
По сути, вы можете зашифровать каждый кусок с AES-128. AES-128 шифрует весь фрагмент с помощью AES, используя 128-битный ключ, Cipher Block Chaining (CBC) и заполнение PKCS7. CBC будет перезапущен с каждым сегментом с использованием вектора инициализации (IV).
Вы можете сделать это с помощью ffmpeg, создав файл ключа, который содержит следующее содержимое:
Key URI
Path to Key File
IV (optional)
Вы можете создать ключ с помощью openssl:
openssl rand 16 > video1.key
Файл будет содержать следующее содержимое:
http://my-server.com/video1.key
video1.key
А затем используйте ffmpeg, указав путь к файлу ключа:
ffmpeg -i input.mp4 -hls_time 6 -hls_key_info_file keyFile playlist.m3u8
Это создаст сегменты и манифест, который должен содержать атрибут # EXT-X-KEY: METHOD = AES-128, URI.
#EXT-X-KEY:METHOD=AES-128,URI="http://my-server.com/video1.key"
Или вы можете использовать коммерческий сервис, который генерирует зашифрованный контент HLS и, возможно, также как DASH Битмовин Кодирование.
Я реализовал аналогичный модуль для защиты .ts файлов с помощью шифрования AES-128 и расшифровки на сервере. Надеюсь это поможет: