大家好,我是TJ

关注TJ君,回复“武功秘籍”免费获取计算机宝典书籍

喜欢研究视频的小伙伴,想必对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。

四大模块则会完成播放器的显示、图像的展示、按钮的排布、数据的请求加载、视屏和音频的渲染及同步。

如果是对视频感兴趣的小伙伴可以来看看这个项目,最后给出一个效果图看下~

点击下方卡片,关注公众号“TJ君

回复“H.265”,获取仓库地址

关注我,每天了解一个牛x、好用、有趣的东东

往期推荐

吊炸天的个性化卡片式标签页插件,谁用谁知道!

偷走不经意流逝的时光,摸鱼神器:神偷

小巧但强大,浏览器开发常用工具插件一枚

无暗箱操作,无后台,无后门,这款年会抽奖程序真不错

程序员鼓励师插件?

File Expander,让你能在IDEA里直接查阅Jar包压缩包内容!

让你在浏览器也能享受H.265播放器的高清画面相关推荐

  1. Web端H.265播放器研发解密

    音视频编解码对于前端工程师是一个比较少涉足的领域,涉及到流媒体技术中的文本.图形.图像.音频和视频多种理论知识的学习,才能够应用到具体实践中,本团队在多媒体领域深耕两年多,才算是有一定产出,我们自研w ...

  2. Web端H.265播放器研发解密 1

    音视频编解码对于前端工程师是一个比较少涉足的领域,涉及到流媒体技术中的文本.图形.图像.音频和视频多种理论知识的学习,才能够应用到具体实践中,本团队在多媒体领域深耕两年多,才算是有一定产出,我们自研w ...

  3. 【操作说明】全能型H.265播放器如何使用

    本播放器集成了公司业务的接口,包含了实播,回放,云台控制和回放速度控制,截图和全屏功能 可以根据type直接初始化接口地址 如果是第三方业务对接,也可以单独配置接口地址 正确使用H.265播放器需要按 ...

  4. 音视频播放器与 H.265 播放探索

    一.简介 简单来说,H.265 标准围绕着视频编码标准 H.264,保留原来的某些技术,同时对一些相关的技术加以改进. 改进点包括:提高压缩效率.提高鲁棒性和错误恢复能力.减少实时的时延.减少信道获取 ...

  5. H.265流媒体播放器EasyPlayer手机端播放画面出现强制拉伸现象的解决办法

    我们在前期的文章中介绍过关于H5网页播放器EasyPlayer的功能更新,包括已经实现网页端实时录像.在iOS上实现低延时直播等.EasyPlayer流媒体播放器性能稳定.播放流畅,属于高可靠.高可用 ...

  6. H.265流媒体播放器EasyPlayer.js集成时页面报错出现“X”,该如何解决?

    在上几期的文章中,我们介绍了关于EasyPlayer流媒体播放器最近更新的一些功能和细节优化,包括网页实时录像.ios端低延迟直播,以及如何删除或替换播放器loading样式等,感兴趣的用户可以翻阅我 ...

  7. 如何对H.265视频播放器EasyPlayer.js实现音频开启与关闭控制?【附代码】

    EasyPlayer是可支持H.264/H.265视频播放的流媒体播放器,性能稳定.播放流畅,可支持的视频流格式有RTSP.RTMP.HLS.FLV.WebRTC等,具备较高的可用性.TSINGSEE ...

  8. 采用H5多屏直播时,H.264和H.265视频流混合播放导致的卡顿问题解析

    了解TSINGSEE的朋友们应该知道,从2019年开始,H.265编码已经开始全面应用于TSINGSEE视频全系列平台,其优势比较明显如:压缩更高.网络传输消耗的带宽更小.相同码率下H.265视频更清 ...

  9. H.265 对直播和点播平台的意义

    近日苹果 WWDC 上反复提起 H.265 相关的内容,让很多非编解码领域的吃瓜群众开始关心起这个技术来.大多数人最关心的是,这项技术会对未来的音视频领域产生怎么样的影响,以及自己相关的业务会不会因此 ...

最新文章

  1. 数字签名、私钥、公钥
  2. connection reset by peer问题总结及解决方案
  3. “鹅厂养鹅”是假的,但腾讯这个“山洞”是真的
  4. 电子游戏市场的演变————零售
  5. 【Java】计算当n=9时n!的值,并分别输出1!到9!各阶乘的值
  6. vue : 无法加载文件 C:\Users\xxx\AppData\Roaming\npm\vue.psl,因为在此系统上禁止运行脚本
  7. 【Verilog】基于FPGA的打地鼠小游戏设计(VGA显示、附代码、演示视频)
  8. c语言里的u代表什么_c语言中的 %u 什么意思啊?
  9. 尚德机构第四季度营收5.688亿元 亏损大幅缩小
  10. 我国将大力发展装配式建筑 2025年装配式建筑占新建建筑比例将超30%
  11. 上传图片格式一句话木马
  12. 如何系统地学习linux
  13. P1359 租用游艇【Floyd】
  14. jenkins基础知识
  15. 【ChatGPT模板】教学辅助教案篇
  16. IP协议及MAC帧格式
  17. 计算机cpu频率时钟周期,关于cpu:什么是时钟周期和时钟速度?
  18. Oracle.DataAccess.dll 下载 dll之家
  19. 技术分享 | 无人驾驶汽车的眼睛
  20. remoteapp提示找不到远程计算机_知乎高赞:985 计算机视觉毕业后找不到工作怎么办?怒刷 leetcode,还是另寻他路?...

热门文章

  1. PHP比较时间段一与时间段二是否有交集
  2. valueOf与toString方法研究
  3. Mysql 导入导出csv 中文乱码问题的解决方法
  4. HTML5 特性检测:Canvas(画布)
  5. golang 文件操作 创建 读写 复制移动 权限 删除
  6. elasticsearch(es)分布式全文检索引擎 简介
  7. 虚拟机VMware安装Kali Linux
  8. Linux内核探讨-- 第六章
  9. linux2.6内核链表
  10. 后端程序员的前端工具