Сервер ключей¶
Пример самого простого сервера ключей для AES-128 или SAMPLE-AES шифрования ниже:
cas-server.php
:
<?php
header("HTTP/1.0 200 OK");
$resource = $_GET["file"];
$number = $_GET["number"];
error_log("Server is requesting key ".$number." for ".$resource." from ".$_SERVER["REMOTE_ADDR"]);
header("X-Key-Url: http://".$_SERVER["HTTP_HOST"]."/user-key.php?name=".$resource."&number=".$number);
$input = $resource.".".$number;
$key = hash('md4',$input);
header("Content-Length: ".strlen($key));
echo $key;
?>
user-key.php
:
<?php
header("HTTP/1.0 200 OK");
$resource = $_GET["name"];
$number = $_GET["number"];
$input = $resource.".".$number;
$key = hex2bin(hash('md4',$input));
header("Content-Length: ".strlen($key));
header("Content-Type: application/octet-stream");
error_log("User is requesting key ".$number." for ".$resource." from ".$_SERVER["REMOTE_ADDR"]);
echo $key;
?>
Разместите эти два файла в директории веб-сервера. cas-server.php
должен быть доступен для Flussonic, user-key.php
должен быть доступен для клиентов.
Настройка DRM для потока осуществляется следующим образом:
stream tvchannel {
input udp://239.0.0.1:1234;
protocols dash hls;
drm aes128 keyserver=http://192.168.0.80:4500/cas-server.php;
}
, где http://192.168.0.80:4500/cas-server.php - это URL PHP скрипта, расположенного на вашем сервере.
Актуальный список настроек для сервера ключей для AES-128 или SAMPLE-AES вы можете найти в Flussonic API reference, выбрав aes128
или sample_aes
соответственно в выпадающем списке поставщиков (vendor
).
Flussonic сам ротирует ключи для потоков раз в 10 минут.