Шифрование сегментов HLS путем предоставления собственного ключа - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь реализовать amazon эластичный транскодер.

До сих пор я могу создавать задания с «hlsContentProtection» и без него. Это лучше работает, когда я не предоставляю собственный ключ / keymd5 / LicenseAcquisitionUrl, если когда aws генерирует сам ключ нормально, но когда я пытаюсь предоставить свой собственный ключ он зашифровывает видео, но зашифрованные сегменты не могут воспроизводить ключ, который я предоставляю (на самом деле я не знаю, какие данные должны быть предоставлены в моем файле .key, который я передаю «LicenseAcquisitionUrl») Я выполняю следующие шаги:

1 .// Генерация ключа

GenerateDataKeyResult dataKeyResponse = awsKmsClient .generateDataKey(keyRequest );
byte[] keyInBytes=Base64.encode(dataKeyResponse.getCiphertextBlob().array());
key=new String(keyInBytes);

2 .// Генерация ключа MD5

byte[] b=Base64.decode(keyInBytes);
    byte[] x=Md5Utils.computeMD5Hash(b);
keyMD5=new String(x);

3 .// Предоставление случайного IV в гексе

4 .// Наконец:

 HlsContentProtection hlsContentProtection =new HlsContentProtection()
          .withKeyStoragePolicy("NoStore")
          .withMethod(aes-128)
          .withLicenseAcquisitionUrl("https://s3.amazonaws.com/****se-1**/test.key")
          .withInitializationVector("9uJyoNk5yggJ4winLp8E6w==")
          .withKey(keyInBytes)
          .withKeyMd5("j8M/upfoPERbSCv+7EjWgA==");



   CreateJobPlaylist playlist = new CreateJobPlaylist()
        .withName("hls_" + outputKey)
        .withFormat("HLSv3")
        .withHlsContentProtection(hlsContentProtection)
        .withOutputKeys( hls0400k.getKey(), hls0600k.getKey(), hls1000k.getKey(), hls1500k.getKey(), hls2000k.getKey()
        );

«Теперь я не уверен, что следует поместить в файл .key.»

Я не могу воспроизвести зашифрованные сегменты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...