开发历程:网页视频流媒体播放器EasyPlayer.JS开发web H5网页播放H.265视频支持FLV与HLS直播与点播
开发背景
在2019年之前,一直的理解就是H.265是无法在网页上进行解码播放的,直到我看到了金山云、阿里云的技术在LVS流媒体社区推送的关于wasm(WebAssembly)解码播放H.265视频的技术文章,才了解到互联网大厂果然是走在技术的最前沿,于是,我们经过反复的讨论和调研,再结合我们早期做原生的EasyPlayer的经验,开始有了对H.265 Web网页播放器研发的想法;
从2020年初有研发支持H.265编码格式的视频想法,到疫情期间的实现,再到现在对重连、丢包、花屏方面的优化,一直都是在一个不断迭代和适应的过程;
在我们以前的播放器开发中,EasyPlayer几乎是全部协议、全部兼容的,包括对国内CDN联盟的RTMP协议的支持,这对于EasyDarwin团队来说是驾轻就熟的,那么,如果能够将这些原有的技术复用和嫁接过来,对于我们自身来说,研发就变得简单了很多,恰好,wasm技术就是这样一种底层原生技术+前端技术的结合。
升级过程
我们在之前聊到过关于EasyPlayer.js的wasm播放支持《历时半年,终于研发完成了Web网页对H.265(HEVC)直播和点播的支持,WebAssembly(wasm)》,当时,秉着先完成后完善,先有后优的想法,通过前端的快速结合,将支持H.264的mse播放器和支持H.265的wasm播放器,通过后端返回编码格式的方式,选择加载播放器资源,进行的播放,没有达到我们Easy的一贯要求,那么,有经过了两个多月的不断优化和各个产品的现场实战,目前,EasyPlayer.js对H.265/H.264的播放支持已经达到了一个非常好的兼容和体验;
那么,为了达到H5的Web播放器也能达到原生播放的效果,我们进行了许多的优化:
延时优化
延时的消耗主要是在解码效率和缓冲区的设计,我们通过将原有EasyPlayer在原生播放中的缓冲区经验和选择性丢帧经验移植到了wasm播放器,达到了一个非常好的长时间低延时播放的效果;
优化重连
重连是播放器非常重要的一个功能,尤其是在安防领域,由于网络异常或者其他因素,会导致连接的短暂断开,那么及时的重连是一个优秀播放器非常必要的。
优化丢包
以EasyGBS的RTP直播为例,国标GB28181协议在公网传输的过程中,很多时候丢包是非常严重的,那么要达到一个非常好的播放体验,播放器对于丢包的适应是非常重要的一个功能点。
优化卡顿
同样,RTP丢包不但会造成丢包,而且还会因为前端设备或者传输的过程,导致时间戳的异常,会对播放过程产生各种卡顿、跳跃的异常,那么这种情况下,对于视频的平滑直播是非常有必要的,播放器需要根据整个播放的过程,对时间戳进行容错,达到无感知的平滑播放。
研发后续
WebSocket支持H.265
由于HTTP 2.0以下的协议版本Web支持的同时并发数还有一定的限制,所以,下一步EasyPlayer.js将扩展对WebSocket流的支持。
支持更多的音频格式
PCMA、PCMU等安防音频格式的支持,对于安防行业是非常必要的。
支持更多前端绘制的功能
支持更多的前端绘制,包括区域绘制,人脸/行为框图,物体标注等等。
开发历程:网页视频流媒体播放器EasyPlayer.JS开发web H5网页播放H.265视频支持FLV与HLS直播与点播相关推荐
- EasyPlayer.js开发Web H5网页播放H.265视频播放支持FLV与HLS直播与点播的过程
开发背景 在2019年之前,一直的理解就是H.265是无法在网页上进行解码播放的,直到我看到了金山云.阿里云的技术在LVS流媒体社区推送的关于wasm(WebAssembly)解码播放H.265视频的 ...
- 网页全终端安防视频流媒体播放器EasyPlayer.js如何实现在web浏览器播放H.265编码视频?
目前安防监控行业,基本所有的摄像头都支持H264编码,但是已经有部分摄像头开始支持H265,并且支持H265的摄像机已经越来越多.H265相比H264有着很多优势,压缩更高,网络传输消耗的带宽更小,相 ...
- 网页无插件视频流媒体播放器EasyPlayer.JS切换多清晰度码流播放报错,该如何调试?
EasyPlayer是一款流媒体播放器系列项目,支持RTSP.RTMP.HTTP.HLS.UDP.RTP.File等多种流媒体协议播放.支持本地文件播放,支持本地抓拍.本地录像.播放旋转.多屏播放.倍 ...
- H265编码视频流媒体播放器EasyPlayer.js支持9宫格视频同屏播放的写法
TSINGSEE青犀视频开发的播放器项目EasyPlayer有很多个分支,其中 EasyPlayer.js就是集成在EasyNVR.EasyGBS等平台内进行直播的网页播放器,并且EasyPlayer ...
- 视频流媒体播放器EasyPlayer.js如何实现在FLV直播流断流恢复后自动重连?
背景分析 EasyPlayer-Android播放器是一款可针对RTSP.RTMP.RTSP&RTMP协议进行过优化的流媒体播放器,其中我们引以为傲的两个技术优势就是起播速度快和播放延迟低.最 ...
- EasyPlayer播放H.265视频,播放器快照时间显示的问题优化
我们的EasyPlayer流媒体播放器可支持H.264与H.265,能支持RTSP.RTMP.HLS.FLV.WebRTC等格式的视频流播放.TSINGSEE的视频平台均集成了EasyPlayer的播 ...
- EasyPlayer.js视频流媒体播放器互联网无插件微信H5直播方案—如何实现倍速播放?
需求分析 一般对于一个播放器,应该支持如下几种显示模式: 等比例,最大化区域显示,不裁剪 等比例,最大区域显示,裁剪 拉伸显示,铺满全屏 要实现这几种显示模式,其实只要对播放控件的布局进行些许调整即可 ...
- 【疑难解决】H265编码流媒体播放器EasyPlayer.js播放HLS H265视频流,遇到黑屏如何排查?
在部分采用H265播放器EasyPlayer.js播放HLS视频流的用户中,有位用户反馈HLS使用了H265编码格式,收到了请求的TS文件,控制台未见报错,但是画面一直黑屏,无法正常播放视频,让我们协 ...
- EasyPlayer.js如何实现动态设置解码H.265音频?
视频平台EasyCVR.EasyGBS.EasyDSS.EasyNVR等均集成了我们自主研发的EasyPlayer视频流媒体系列播放器,可支持H.264/H.265视频编码,并拥有多个版本包括Easy ...
- html播放h265,Web 播放 H.265视频
本文主要从H.265 编码格式出发,介绍 H265 使用情况,以及对比 H.264的优势,随后分析如何在前端完成 H265 视频格式的播放. H.265, HEVC 是当前非常火的视频压缩方式,相对于 ...
最新文章
- 数据库打开报错: 值不能为空
- 编写c语言程序 斐波那契,请编写一个函数,生成并显示前n个斐波那契数.在主程序中测试...
- 动态代理proxy与CGLib的区别
- 函数:MySQL中字符串匹配函数LOCATE和POSITION使用方法
- [计算机网络] - TCP半连接队列和全连接队列
- Google的云计算引擎与持久化存储磁盘PD
- 简单理解L0、L1与L2范数
- [Python] L1-019. 谁先倒-PAT团体程序设计天梯赛GPLT
- 679. 24 点游戏
- 北京大学Cousera学习笔记--7-计算导论与C语言基础--基本数据类型变量常量
- 第七次JAVA语言笔记
- 挥泪告别鼠标,我终究还是学会了Windows快捷键
- 软件项目管理第十章笔记---项目采购管理
- 企业思想家:专家详解元宇宙逻辑和产业机会 (5000余字)
- win7远程服务器管理工具
- python妹子图软件下载_python3下载妹子图,你懂的。
- Linux常用命令详解(两万字超长文)
- fastdfs上传文件资料(PDF,视频,图片,FileCaseUtil,FileUploadUtil)并生成缩略图
- 信息系统项目管理师速记 - 十大知识领域
- 2014年24如何改变球段魔尺视频教程