这可能是偏离主题的,但我呼吁SO的众神允许这个线程存在.
我一直在使用我所知道的所有关键词排列来搜索网页,试图找到在HTML5视频中实现加密媒体扩展的可靠指南.
有吨的信息是什么 EME是,但不是实现它的实用指南.
您是否找到了实施端到端EME管道的实用指南,或者至少是指向这一点的东西?
我想php
在HTML5视频中实现视频加密并播放加密视频.我已经阅读了一些有关它的文件:
我知道我可以使用其他工具和服务:
我想提供类似这样的例子:
我应该通过哪些步骤?我在服务器端使用PHP(laravel).
我已经使用 clear key 实现了 EME,遵循以下实用指南:https : //www.html5rocks.com/tutorials/eme/basics/
我使用 webm-encrypt npm 包对音频进行了加密,为它提供了一个密钥和 webm 音频文件。我在明文密钥代码中使用相同的密钥来解密音频。当我在本地使用加密的音频文件时,它工作正常,将 src 设置为:
audio.src = './encrypted.webm'
Run Code Online (Sandbox Code Playgroud)
另一方面,我将相同的加密文件存储在 s3 中。问题是,当我将音频 src 指向我的服务器 api 时,它又重定向到加密音频文件的预签名 s3 url,音频没有播放,我在控制台中看到以下错误:
无法生成许可请求类型错误:无法在“MediaKeySession”上执行“generateRequest”:initDataType 参数为空。
音频元素不为空,加密事件也被触发,但 event.initData 和 event.initDataType 都是空的。不确定我在这里缺少什么。
主文件
"use strict";
var KEY = new Uint8Array([
0xeb,0xdd,0x62,0xf1,0x68,0x14,0xd2,0x7b,
0x68,0xef,0x12,0x2a,0xfc,0xe4,0xae,0x3c,
]);
var config = [
{
initDataTypes: ["webm"],
videoCapabilities: [
{
contentType: 'video/webm; codecs="vp8"',
},
],
audioCapabilities: [
{ contentType: 'audio/webm; codecs="opus"' },
{ contentType: 'audio/webm; codecs="vorbis"' },
],
},
];
var audio = document.querySelector("audio"); …
Run Code Online (Sandbox Code Playgroud) I'm working on the integration of a player which have to play streams secured with Widevine DRM in a browser.
I've checked some well-known players :
Fortunately, these players provide some samples of stream secured using Widevine DRM.
My question concerns the XHR executes to retrieve DRM Key. In any Widevine secured stream, I can see (in devtools) at least 2 XHR targeting the license server.
Let's take an example: https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd
This stream is …
我只是无法弄清楚 shaka 播放器如何能够解密我的 CENC 保护内容,即使我在播放器配置中提供了无效的解密密钥。
player.configure({
drm: {
clearKeys: {
'6FepeJBbmaiozSMs18vPfA==': '6FepeJBbmaiozSMs18vPfA==', // ==> invalid key
'6FepeJBbmaiozSMs18vPfA==': '6FepeJBbmaiozSMs18vPfA==', // ==> invalid key
}
}
})
Run Code Online (Sandbox Code Playgroud)
这是给打包程序的参数
packager in=video-SD.webm,stream=audio,output=protected_audio.webm,drm_label=AUDIO in=video-HD.
webm,stream=video,output=protected_video_HD.webm,drm_label=HD in=video-SD.webm,stream=video,output=prote
cted_video_SD.webm,drm_label=SD --enable_raw_key_encryption --enable_raw_key_decryption \
--keys label=AUDIO:key_id=f3c5e0361e6654b28f8049c778b23946:key=a4631a153a443df9eed0593043db7519, label=SD:key_id=abba271e8bcf552bbd2e86a434a9a5d9:key=69eaa802a6763af979e8d1940fb88392,label=HD:key_id=abba271e8bcf552bbd2e86a434a9a5d9:key=69eaa802a6763af979e8d1940fb88392 \
--base_urls https://s3-eu-west-1.amazonaws.com/dash/ \
--mpd_output h264.mpd
Run Code Online (Sandbox Code Playgroud)
mpd 文件看起来像
<?xml version="1.0" encoding="UTF-8"?>
<!--Generated with https://github.com/google/shaka-packager version 72c4797-release-->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" minBufferTime="PT2S" type="static" mediaPresentationDuration="PT5.539000034332275S">
<BaseURL>https://s3-eu-west-1.amazonaws.com/dash/</BaseURL>
<Period id="0">
<AdaptationSet id="0" contentType="audio" lang="en" subsegmentAlignment="true">
<ContentProtection schemeIdUri="urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b" cenc:default_KID="f3c5e036-1e66-54b2-8f80-49c778b23946">
<cenc:pssh>AAAAVHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAPzxeA2HmZUso+AScd4sjlGq7onHovPVSu9LoakNKml2au6Jx6Lz1UrvS6GpDSppdkAAAAA</cenc:pssh>
</ContentProtection>
<Representation id="0" bandwidth="96897" …
Run Code Online (Sandbox Code Playgroud) 我是加密媒体扩展的新手。有人有加密媒体扩展示例或任何其他用于在浏览器中播放视频的链接吗?
eme ×6
drm ×4
video ×3
javascript ×2
mpeg-dash ×2
widevine ×2
amazon-s3 ×1
encryption ×1
ffmpeg ×1
html ×1
html5 ×1
html5-audio ×1
php ×1
shaka ×1
streaming ×1