我正在尝试实现亚马逊弹性代码转换器。
到现在为止,我可以创建带有和不带有“ hlsContentProtection”的作业。当我不提供自己的密钥/ keymd5 / LicenseAcquisitionUrl时,如果aws生成密钥本身很好但是当我尝试提供自己的密钥时,它可以更好地工作其对视频进行加密,但加密后的片段无法使用我提供的密钥。(实际上,我不知道;我应该将要提供给“ LicenseAcquisitionUrl”的.key文件中提供哪些数据) 我正在执行以下步骤:
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文件中放入什么。”
我无法播放加密的片段。