Я хочу внедрить DRM в видео HTML5 (EME). Я знаю, что он поддерживается в современных браузерах:
И я знаю, что есть инструменты и услуги, которые я могу использовать:
Я хочу привести пример:
Должен ли я использовать службу, или я могу реализовать клиентскую и серверную стороны как на моем собственном сервере? Если я смогу реализовать клиентскую и серверную стороны, как я могу это сделать?
Я использую PHP (laravel) на стороне сервера.
Обновление # 1
Я хочу, чтобы иметь возможность зашифровать мои видео на моем сервере (с помощью любого инструмента) и расшифровать его, когда браузер хочет его воспроизвести, и запретить его загрузку обычными пользователями.
Если вы хотите поддерживать основные широко используемые DRM, в это время Widevine, PlayReady или FairPlay вам нужен либо сервер с несколькими DRM, либо служба.
Если вам просто нужна базовая защита, вы можете использовать AES-шифрование или явно с DASH.
Они не столь безопасны, но иногда достаточно хороши для определенных нужд.
Вы можете использовать ffmpeg и openssl для создания зашифрованного HLS-потока AES. Документация ffmpeg ( http://ffmpeg.org/ffmpeg-all.html#Options-34 ) включает этот пример скрипта:
#!/bin/sh BASE_URL=${1:-'.'} openssl rand 16 > file.key echo $BASE_URL/file.key > file.keyinfo echo file.key >> file.keyinfo echo $(openssl rand -hex 16) >> file.keyinfo ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \ -hls_key_info_file file.keyinfo out.m3u8
Вы также можете использовать mp4Box ( https://gpac.wp.imt.fr/mp4box/encryption/common-encryption/ ) для создания основных понятных DASH-шифров:
MP4Box -crypt drm_file.xml movie.mp4 -out movie_encrypted.mp4
Информация drm включена в файл drm_file.xml и объясняется по ссылке выше.