web 端h265播放器
最近找到一个h265播放器:
https://github.com/goldvideo/h265player
需要注意的是这个h5 播放器只支持hls和MP4
播放器主要分为UI、Loader、数据处理、数据渲染四个部分和3个线程。一个是主线程,包括界面控制、下载控制、数据流控制、音视频控制等功能;数据加载线程,完成元数据和数据片段的请求;数据处理线程,完成数据解封装和解码。
UI:播放器显示成,包括screen和controlbar两部分,screen包括视频图像展示、弹窗、海报图等。controlbar包括进度条、播放按钮、音量控制等组件。
Loader:负责媒体数据的加载和解析,目前仅支持HLS协议。通过worker实现数据的请求,加载完成后,根据设置缓存大小,存储请求的ts数据,当达到缓存上限后停止加载。解码器从ts数据队列获取ts后,Hls Loader会把请求过的ts释放,继续加载下一个ts,达到最大缓存限制后停止加载
数据处理:主要包括数据解封装和H265解码,解封装通过demuxe.js这个类库实现,H265解码通过ffmpeg打包生成的wasm软解来实现,cpu使用率较高。
数据渲染:包括视屏渲染和音频渲染,视频渲染通过ImagePlayer把解码后的yuv数据直接渲染到canvas,音频通过AudioPlayer把AAC数据解码后进行音频播放,最后通过pts实现音视频的同步。同步策略是以音频为参考,判断当前视频pts与获取到的音频pts的差值来调整视频显示时间来达到音视频同步。
web 端h265播放器相关推荐
- web端 m3u8播放器
m3u8文件介绍,请看 m3u8文件格式详解 m3u8播放器git地址,点击获取 这个就是git上下载下来的文件目录,浏览器打开外面的index.htm,input里输入你的.m3u8文件的地址,点击 ...
- html5 h265播放器,PC端播放H265
说明 需要在PC端浏览器(Chrome)中播放直播视频,视频格式有H264/H265.有不少三方库可以实现. 通过video.js(支持H264,不支持H265) videojs-contrib-hl ...
- 360视频云Web前端HEVC播放器实践剖析
360视频云前端团队围绕HEVC前端播放及解密实现了一套基于WebAssembly.WebWorker的通用模块化Web播放器,在LiveVideoStackCon2019深圳的演讲中360奇舞团We ...
- RequestBody获取前端数据_360视频云Web前端HEVC播放器实践剖析
360视频云前端团队围绕HEVC前端播放及解密实现了一套基于WebAssembly.WebWorker的通用模块化Web播放器,在LiveVideoStackCon2019深圳的演讲中360奇舞团We ...
- Web端直接播放 .ts 视频及mux.js播放ts视频没有声音
最近项目中需要前端播放 .ts 格式视频,捣鼓了几天学习到很多知识,也发掘了一种优秀的解决方案,分享给有同样需求的同学. 常见方案 在网上查找的大部分解决方案都是用诸如videojs等网页播放器,接收 ...
- HTML5移动端音乐播放器(启蒙篇)
这段时间公司一直在做一个PC的教育类单页应用,庞大复杂,涉及非常多H5的知识,音频就是其中的一部分.前些天偷台风的闲暇时写了一个移动端音乐播放器,作为练手项目. 在线地址:请猛击这里 源码:请猛击这里 ...
- js-前端video播放器
js-前端video播放器 目录 文章目录 前言 推荐阅读 传统播放模式 视频切片 - `Accept-Ranges` 服务器端请求特定的范围 单一范围 多重范围 条件式范围请求 范围请求的响应 流媒 ...
- android easyplayer截屏,EasyWasmPlayer H265播放器是如何实现视频截图功能的?
在我们做视频开发的过程中,会遇到不少需求,其中视频截图就是一个比较常见的需求,因此TSINGSEE青犀视频不管是在设计视频平台还是视频播放器的时候,我们都会在原有开发的基础上对视频截图进行一些功能拓展 ...
- javaFx 实现----桌面端音乐播放器
前言 javaFx 实现桌面端音乐播放器 一.效果图 二.动画设置 package com.zcw.javafx.project.controller;import com.zcw.javafx.pr ...
最新文章
- LFCS 系列第二讲:如何安装和使用纯文本编辑器 vi/vim
- 李洪强经典面试题10
- 记一次使用 android 自带 WebView 做富文本编辑器之API、机型的兼容及各种奇葩bug的解决...
- 揭开知识库问答KB-QA的面纱1·简介篇
- spark读取文件源码分析-3
- Linux提权:常用三种方法
- 【转】C++学习四 冒泡排序法的一些改进
- 苹果iOS 13正式版推送:深色模式来了 速度再次提升!
- RichEdit控件的使用(未完)
- 一个基于 SpringBoot+Redis+Vue 仿饿了么外卖系统(后台+移动端),可二次开发接私活!...
- 使用高斯金字塔和拉普拉斯金字塔重构图像(matlab代码)
- python-MongoDB可视化工具Robomongo 和 Mongochef
- 当当网图书爬虫与数据分析
- 大数据算法_大数据挖掘十大经典算法
- 视频分割技巧,把视频分割成多段进行保存
- java combo_JAVA中的下拉框(Combo Box)概述(1) | 学步园
- 【源码分享】一键打开禅意生活——电子木鱼微信小程序源码分享
- 利用依存分析完成开放领域关系抽取
- XILINX XC7A200T-2FBG676C PLC可编程逻辑控制器
- 【安全通告】创宇安全智脑:GitLab ExifTool远程命令执行漏洞在野利用(CVE-2021-22205)...