Как реализовать шифрование видео Clear-Key в PHP и воспроизвести его в HTML

Я хочу реализовать шифрование видео в php и воспроизводить зашифрованное видео в видео HTML5. Я прочитал некоторые документы об этом:

И я знаю, что есть альтернативные инструменты и сервисы, которые я могу использовать:

Я хочу предоставить, как этот пример:

  • https://demo.castlabs.com/ (играть в потоковую трансляцию с кроликом большого размера: его нельзя загрузить, а URL можно использовать один раз)

Какие шаги я должен пройти? Я использую PHP (laravel) на стороне сервера.

1 ответ

Если вы хотите поддерживать основные широко используемые DRM, в настоящее время Widevine, PlayReady или FairPlay, то вам нужен либо сервер с несколькими DRM, либо сервис.

Если вы просто хотите получить базовую защиту, вы можете использовать шифрование AES или явно DASH.

Они не так безопасны, но иногда достаточно хороши для определенных нужд.

Вы можете использовать ffmpeg и openssl для создания зашифрованного потока ALS HLS - документация ffmpeg ( http://ffmpeg.org/ffmpeg-all.html) включает в себя этот пример сценария:

#!/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 и объяснена по ссылке выше.

Другие вопросы по тегам