Шифрование сегментов HLS путем предоставления собственного ключа

Я пытаюсь реализовать 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.//Finally:

 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".

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

0 ответов

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