我在CDN上托管了视频。但视频文件已被修改。所以视频不能直接播放。
在我的应用程序中,我可以在播放前反向修改视频。
但是我怎么能在浏览器中做到这一点呢?有ajax钩子,我已经试过了,它不能钩住midia流。
视频文件头是通过故意修改头来加密的。
首先,如果您试图加密视频,这不会为您提供太多保护。我建议在加密媒体扩展中使用某种DRM。这将确保您的视频在不付出额外努力的情况下无法访问。没有什么是愚蠢的,但这至少要好得多。
Web如何挂接媒体请求并修改媒体请求响应?
您可以使用Service Worker来处理任何内容的请求/响应,包括媒体元素。
基本上,服务工作者充当代理,拦截请求。如果它选择,它可以自己处理请求。通常,这是用来对缓存进行特殊处理的,但您可以使用相同的方法来修改您认为合适的响应数据。在最基本的层面上,你的服务人员会做这样的事情:
self.addEventListener('fetch', (event) => {
event.respondWith(
// Your modified data in a Response object here
);
});
不过,要开始操作,还需要执行相当多的操作。你可以在这里找到完整的教程:
https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers
还要注意,请注意请求中的范围标头。这些在媒体数据中很常见,您需要在Service Worker脚本中处理它们!