网站首页 > 技术教程 正文
喜欢研究视频的小伙伴,想必对H.265已经非常了解,作为ITU-T VCEG继H.264之后所制定的新的视频编码标准,H.265可以在有限带宽下传输更高质量的网络视频,仅需原先的一半带宽即可播放相同质量的视频。
但是实际运用上,很多WEB浏览器对H.265的解码播放支持的不是很好,所以呢,今天TJ君就给大家分享一个完整的开源Web版H.265播放器完善方法。
此方法基于JS码流解封装、WebAssembly(FFmpeg)视频解码,利用Canvas画布投影、AudioContext播放音频。深入简出,比较适合感兴趣的小伙伴进行学习交流和实际开发应用。
首先下载项目源代码,然后进行工程打包:
# 以下打包命令任选一
* npm run dev # 运行开发环境
* npm run test # 运行测试环境
* npm run build # 打包正式环境
* rollup -c # 打包csj与esm版本
配置Nginx server:
server {
listen 8000;
location / {
root <path of goldvideo>/goldvideo;
index index.html index.htm;
autoindex on;
}
}
然后重启Nginx,此时访问如下地址:
http://localhost:8000/h265player/demo/demo.html
能正常播放视频的话就表示启动成功了。
那如何在实际页面上展示呢?可以在页面的head标签里面增加如下内容:
<link rel="stylesheet" href="../dist/goldplay-h265.css">
<script src="../dist/goldplay-h265-sdk.js"></script>
<style>
.play-container {
width: 800px;
height: 500px;
}
</style>
然后需要创建一个div,作为播放器的容器
<div class="play-container"></div>
最后新建一个GoldPlay实例对象,传入相应参数,就可以实现视频的播放
//播放器容器
let el = doc.querySelector('.play-container')
//播放器参数
let options = {
// 视频播放地址
sourceURL: 'http://localhost:8000/h265player/data/video2/playlist.m3u8',
type: 'HLS'
// wasm库地址
libPath: 'http://localhost:8000/h265player/dist/lib',
}
let player = new GoldPlay(el, options}
整个项目分为四大模块、三大线程
分别是:
- UI模块
- Loader模块
- 数据处理模块
- 数据渲染模块
- main主线程
- 数据加载线程
- 数据处理线程
其中主线程负责整体项目的界面、下载、数据流、音频、视频各方面的功能调度;数据加载线程,则对元数据进行各种请求;数据处理线程,则会完成最终的数据解封装和解码。
而解封和解码分别用到了demuxer模块通过JS实现视频数据的解封装,从而获取到独立的视频(H265)数据和音频(AAC)数据;通过ffmpeg实现H265数据的软解码,编译成wasm。
四大模块则会完成播放器的显示、图像的展示、按钮的排布、数据的请求加载、视屏和音频的渲染及同步。
如果是对视频感兴趣的小伙伴可以来看看这个项目:https://github.com/goldvideo/h265player
最后,记得关注我哟,带你看更多有意思的好用工具。
- 上一篇: 学成在线-第13天-讲义-在线学习 HLS
- 下一篇: 「前端」H5直播入门教程(h5视频直播)
猜你喜欢
- 2024-10-15 音视频录制+RTMP直播推拉流(rtsp 推流 拉流)
- 2024-10-15 ffmpeg内存实时转码(ffmpeg timecode)
- 2024-10-15 项目分享|基于ElfBoard的远程监测系统
- 2024-10-15 「前端」H5直播入门教程(h5视频直播)
- 2024-10-15 学成在线-第13天-讲义-在线学习 HLS
- 2024-10-15 Linux环境下的多媒体处理与流媒体服务
- 2024-10-15 流媒体解码及H.264编码推流(流媒体解码及H.264编码推流失败)
- 2024-10-15 仪表板对接海康威视摄像头实现实时监控方案
- 2024-10-15 SRS之安装与使用(安装ssms教程)
- 2024-10-15 SRS流媒体服务器之RTMP协议分析(1)
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)