HTML5兼容HEVC视频格式且支持本地绝对路径访问的操作方法
通过PotPlayer发现该MP4文件的编码格式为HEVC,而video标签不支持该编码格式的视频文件

在HTML文件中首先需要引用libe265.js来负责处理HEVC格式文件
libde265.js/libde265.js at master · strukturag/libde265.js · GitHub
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<canvas id="canvas"></canvas>
<script src="./libde265.js"></script>
<script>
var VIDEO_URL = 'http://localhost/file/video?fileName=E:\\test\\1_monitor01_1668690540000.mp4'
var video = document.getElementById('canvas')
// var fpsWrap = document.querySelector('.hevc-fps')
var status = document.querySelector('.hevc-status')
var playback = function (event) {
// event.preventDefault()
// if (player) {
// player.stop()
// }
player = new libde265.RawPlayer(video)
player.set_status_callback(function (msg, fps) {
player.disable_filters(true)
console.log(msg);
switch (msg) {
case 'loading':
status.innerHTML = 'Loading movie...'
break
case 'initializing':
status.innerHTML = 'Initializing...'
break
case 'playing':
status.innerHTML = 'Playing...'
break
case 'stopped':
status.innerHTML = 'stopped'
break
case 'fps':
// fpsWrap.innerHTML = Number(fps).toFixed(2) + ' fps'
break
default:
status.innerHTML = msg
}
})
player.playback(VIDEO_URL)
}
playback()
</script>
</body>
</html>而通过绝对路径来寻找本地视频文件则可通过后端(SpringBoot)编写接口进行操作
以下是Controller层代码
@RestController
@RequestMapping("/file")
@CrossOrigin(origins = "*")
public class FileController {
@Resource
public IFileService fileService;
/**
* 根据本地图片全路径,响应给浏览器1个图片流
*/
@GetMapping("/image/{fileName}")
public void showImage(HttpServletResponse response, @PathVariable("fileName") String fileName) {
fileService.show(response, fileName, "image");
}
/**
* 根据本地视频全路径,响应给浏览器1个视频
*/
@GetMapping ("/video")
public void showVideo(HttpServletResponse response, String fileName) {
fileService.show(response, fileName, "video");
}
}以下是Sevice层代码
@Service
public class FileServiceImpl implements IFileService {
/**
* 响应文件
*
* @param response
* @param fileName 文件全路径
* @param type 响应流类型
*/
public void show(HttpServletResponse response, String fileName, String type) {
try {
FileInputStream fis = new FileInputStream(fileName); // 以byte流的方式打开文件
int i = fis.available(); //得到文件大小
byte data[] = new byte[i];
fis.read(data); //读数据
response.setContentType(type + "/*"); //设置返回的文件类型
OutputStream toClient = response.getOutputStream(); //得到向客户端输出二进制数据的对象
toClient.write(data); //输出数据
toClient.flush();
toClient.close();
fis.close();
} catch (ClientAbortException cae) {
cae.printStackTrace();
System.out.println("播放中断");
} catch (Exception e) {
e.printStackTrace();
System.out.println("文件不存在");
}
}
}到此这篇关于HTML5兼容HEVC视频格式且支持本地绝对路径访问的文章就介绍到这了,更多相关HTML5兼容HEVC视频格式内容请搜索万象站长学堂以前的文章或继续浏览下面的相关文章,希望大家以后多多支持万象站长学堂!
栏 目:html5
下一篇:关于document.body.clientHeight返回值为0的完美解决方案
本文标题:HTML5兼容HEVC视频格式且支持本地绝对路径访问的操作方法
本文地址:https://zhanzhang.eapis.site/html/2106.html
您可能感兴趣的文章
- 2025-10-23 19:40关于HTML面试题全部汇总
- 2025-10-22 08:44canvas 绘图时位置偏离的问题解决
- 2025-10-23 20:25Dreamweaver cs5怎么设置页面CSS属性?
- 2025-10-22 09:23DW中的建单选按钮不能实现二选一该怎么办?
- 2025-10-23 21:09Dreamweaver CC2019代码怎么快速对齐?
- 2025-10-22 11:21thinkpad x230i 笔记本电脑开机进入BIOS的方法(U盘启动设置方法)
- 2025-10-23 21:52前端页面弹框遮罩禁止页面滚动
- 2025-10-22 12:23如何在solaris中设置分辨率?在solaris中设置分辨率的方法
- 2025-10-23 22:35电脑怎么测网速? 轻松掌握网络速度的多种方法
- 2025-10-22 13:24HTML5超文本标记语言的实现方法




粤公网安备 13010202004186