Как обезопасить видео HLS с помощью AES 128

Я должен потоковое видео для мобильных устройств с сервера, используя Http Live Streaming.
файл содержит .m3u8, в котором перечислены файлы .ts. так как обезопасить эти файлы для доступа только авторизованным пользователям.

0

Решение

По сути, вы можете зашифровать каждый кусок с 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 Битмовин Кодирование.

1

Другие решения

Я реализовал аналогичный модуль для защиты .ts файлов с помощью шифрования AES-128 и расшифровки на сервере. Надеюсь это поможет:

https://stackoverflow.com/a/43446800/2429443

0

По вопросам рекламы [email protected]