• 1、mp4地址加密为blob链接在html5的video标签展示

PHP:

 1         $file_path = "...mp4"; //视频文件地址
2 ob_end_clean();
3 ob_start();
4 //打开文件
5 $handler = fopen($file_path, 'rb');
6 $file_size = filesize($file_path);
7 //声明头信息
8 Header("Content-type: application/octet-stream");
9 Header("Accept-Ranges: bytes");
10 Header("Accept-Length: ".$file_size);
11 Header("Content-Disposition: attachment; filename=" . basename( $file_path));
12 // 输出文件内容
13 $oct_data = fread($handler,$file_size);
14 fclose($handler);
15 ob_end_flush();
16
17 return $oct_data;

JS:

 1         //创建XMLHttpRequest对象
2 var xhr = new XMLHttpRequest();
3 var url ="";//服务端地址
4 //配置请求方式、请求地址以及是否同步
5 xhr.open('POST', url, true);
6 //设置请求结果类型为blob
7 xhr.responseType = 'blob';
8 //请求成功回调函数
9 xhr.onload = function (e) {
10 if (this.status == 200) {//请求成功
11 var video = document.getElementById('video_player');
12 //获取blob对象地址,并把值赋给容器
13 video.onload = function(e) {
14 window.URL.revokeObjectURL(video.src);
15 };
16 video.src = window.URL.createObjectURL(this.response);
17 video.play();
18 }
19 };
20 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
21 xhr.send('id='+id);//传递参数
  • 2、用FFMpeg将视频转为m3u8格式

JS(调用hls.js):

 1         var url ="...m3u8";//m3u8地址
2 var video = document.getElementById('video_player');
3 if(Hls.isSupported()) {
4 var hls = new Hls();
5 hls.loadSource(url);
6 hls.attachMedia(video);
7 hls.on(Hls.Events.MANIFEST_PARSED,function() {
8 video.play();
9 });
10 }
11 else if (video.canPlayType('application/vnd.apple.mpegurl')) {
12 video.src = url;
13 video.addEventListener('loadedmetadata',function() {
14 video.play();
15 });
16 }
  • 3、m3u8地址加密为blob链接

。。。待更新

javascript+php 实现blob加密视频(html video)的更多相关文章

  1. javascript实现blob加密视频源地址

    一.HTML代码: <video id="my-video" class="video-js" playsinline controls preload= ...

  2. Java通过流对MP4视频文件进行加密,H5 video播放流

    加密目标文件 代码如下: 不建议进行二次加密,若二次加密必须要二次解密 package com.xgt.util; import java.io.*; public class VideoEncode ...

  3. JavaScript学习--(智能社视频)

    JavaScript学习,这是智能社官网上的JS视频,讲解的挺不错的,就是没有视频的demo,在视频中附上自己编写的一些demo... 下载地址:http://pan.baidu.com/s/1cPz ...

  4. 传智 Python基础班+就业班+课件 【最新完整无加密视频课程】

    点击了解更多Python课程>>> 传智 Python基础班+就业班+课件 [最新完整无加密视频课程] 直接课程目录 python基础 linux操作系统基础) 1-Linux以及命 ...

  5. 利用WinHEX,重构狂牛加密视频1.0.0.1【只适合RIFF(AVI)】

    幸亏是视频部分没有进行加密 1.用 WinHEX 打开狂牛加密视频, 查找 [RIFF] 字符串 2.光标放在 RIFF的 [R]上面, 按 CTRL+SHIFT+END 3.把选择的块写入新文件 H ...

  6. 《JavaScript闯关记》视频版硬广

    <JavaScript闯关记>视频版硬广 stone 在菜航工作时,兼任内部培训讲师,主要负责 JavaScript 基础培训,2016年整理的<JavaScript闯关记>课 ...

  7. 【转】视频H5 video最佳实践

    原文地址:https://github.com/gnipbao/iblog/issues/11 随着 4G 的普遍以及 WiFi 的广泛使用,手机上的网速已经足够稳定和高速,以视频为主的 HTML5 ...

  8. .NET MVC对接POLYV——HTML5播放器播放加密视频

    官方参考文档:http://dev.polyv.net/2017/videoproduct/v-playerapi/html5player/html5-docs/ 1.上传视频之前根据自己需要对所上传 ...

  9. 和菜鸟们一起攻克金盾2018SS加密视频

    今天刚拿到金盾2018SS加密的视频,界面如下:<ignore_js_op> 机器码由源来的“00000-00000-00000-00000”变成了一串32位的字符串了:<ignor ...

  10. javascript采用Broadway实现安卓视频自动播放的方法(这种坑比较多 不建议使用)

    javascript采用Broadway实现安卓视频自动播放的方法Broadway 是一个 H.264 解码器, 比jsmpge清晰度要高 使用 Emscripten 工具从 Android 的 H. ...

随机推荐

  1. JDK 17 营销初体验 —— 亚毫秒停顿 ZGC 落地实践

    前言 自 2014 年发布以来, JDK 8 一直都是相当热门的 JDK 版本.其原因就是对底层数据结构.JVM 性能以及开发体验做了重大升级,得到了开发人员的认可.但距离 JDK 8 发布已经过去了 ...

  2. 实现在Qt窗口中嵌套SDL

    实现在Qt窗口中嵌套SDL 在现代软件开发中,多媒体处理和交互性成为应用程序不可或缺的一部分.Qt作为一个强大的GUI框架,为开发者提供了丰富的图形.界面和事件处理工具.然而,有时候,我们可能需要更多 ...

  3. [ABC128E] Roadwork

    2023-01-14 题目 题目传送门 翻译 翻译 难度&重要性(1~10):4 题目来源 AtCoder 题目算法 区间覆盖,线段树,双堆 解题思路 可以将问题转化为区间覆盖问题和单点查询问 ...

  4. Unity UGUI的Toggle(复选框)组件的介绍及使用

    Unity UGUI的Toggle(复选框)组件的介绍及使用 1. 什么是Toggle组件? Toggle(复选框)是Unity UGUI中的一个常用组件,用于实现复选框的功能.它可以被选中或取消选中 ...

  5. dotnet SemanticKernel 入门 自定义变量和技能

    本文将告诉大家如何在 SemanticKernel 框架内定义自定义的变量和如何开发自定义的技能 本文属于 SemanticKernel 入门系列博客,更多博客内容请参阅我的 博客导航 自定义变量是一 ...

  6. pandas常用的数据类型,(serises和dataform)

  7. docker bridge网络类型研究

    bridge模式是docker的默认网络模式,使用docker run -p时,docker实际是在iptables做了DNAT规则,实现端口转发功能.可以使用iptables -t nat -vnL ...

  8. CopyOnWriteArrayList 写时复制思想

    写时复制 conpyOnWrite容器即写时复制容器.往一个容器添加元素的时候,不直接往当前容器Object[]添加,而是先将当前容器Object[]进行Copy,复制出一个新的容器Object[] ...

  9. python第2~5章 code

    02基本语法 print('he\aaa\aaa') # 这是一个打印语句,请你看见了不要慌张# 这是一个注释# 注释会被解释器所忽略# print(123+456) 这行代码被注释了,将不会执行pr ...

  10. 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(8) -- 使用Converter类实现内容的转义处理

    在我们WPF应用端的时候,和WInform开发或者Vue前端开发一样,有时候也需要对内容进行转义处理,如把一些0,1数值转换为具体含义的文本信息,或者把一些布尔变量转换为是否等,都是常见的转换处理,本 ...