WasmVideoPlayer:浏览器里直接播放H265视频

发布时间:2026/8/29 16:39:24

WasmVideoPlayer:浏览器里直接播放H265视频
文章目录WasmVideoPlayer浏览器里直接播放H265视频技术实现线程模型缓冲控制音视频同步编译和使用已知问题WasmVideoPlayer浏览器里直接播放H265视频这个项目在 GitHub 上拿到了 1390 Star。sonysuqin 开源了 WasmVideoPlayer做的事情很明确用 WebAssembly 在浏览器里播放 H265 编码的视频。目前原生支持 H265 播放的浏览器基本没有。H265 解码对性能要求高硬解兼容性差再加上专利费的问题各大浏览器厂商都在转向支持更开放的 AV1 编码。但 AV1 的商用普及还需要时间。现实情况是H265 相比 H264在相同分辨率下码率几乎降了一半。对带宽压力大的网站来说用 H265 能省不少带宽成本。只是浏览器不支持目前 H265 播放主要靠 APP 端的硬件解码。这个项目用 WASM、FFmpeg、WebGL、Web Audio 组合出了一套浏览器端的 H265 播放方案。技术实现整个播放器的核心组件FFmpeg 3.3 负责解封装和解码理论上支持 FFmpeg 的各种内置 codec包括 H264、H265默认支持 MP4、FLV 文件播放和 HTTP-FLV 流播放WebGL 做 YUV 到 RGB 的颜色空间转换和渲染硬件加速性能比 CPU 转换好Web Audio 处理 PCM 音频数据的播放WASM 让 C/C 代码能在浏览器里跑线程模型WASM 对多线程的支持还不够成熟浏览器端的 pthread 还在试验阶段。所以这个项目用了 Web Worker 来实现线程分离。三个线程各管各的主线程负责界面控制、播放控制、下载控制、音视频渲染和同步。解码线程跑在 Decoder Worker 里处理解封装和解码。下载线程单独一个 Downloader Worker按 chunk 下载文件。线程之间用 postMessage 异步通信传视频帧这种大数据时用 Transferable 接口避免拷贝损耗性能。缓冲控制播放器的缓冲控制比较关键。FFmpeg 的同步读数据接口必须保证能返回数据但 WASM 现在没法用多线程同步机制。项目做了两层缓存获取文件元信息之前的数据缓存和解码帧缓存。数据不足时停止解码进入 Buffer 状态数据够了继续播放。这样 FFmpeg 就不会因为读不到数据而报错退出。下载也有速率控制拿到文件码率后以码率的一定倍数下载不会无限制占用带宽和 CPU。音视频同步音频数据直接交给 Web Audio通过 API 获取当前播放的音频时间戳以此为基准同步视频帧。视频帧时间落后就立刻渲染时间早就 delay。delay 用 setTimeout 实现缓冲控制同时也在控制渲染频率避免 setTimeout 调用太多导致内存暴涨。编译和使用环境需要安装 Emscripten 工具链下载 FFmpeg 3.3 分支再 clone 项目代码保证 FFmpeg 和代码目录平级。进入代码目录执行./build_decoder.sh编译。测试用任意 HTTP Server 都行比如http-server -p 8080 .浏览器打开 localhost:8080 就能跑。Chrome、Firefox、Edge 的较新版本都支持360 浏览器、搜狗浏览器等 webkit 内核的也能用。已知问题H265 解码播放的 CPU 占用比较高。如果不及时传递音频数据AudioContext 的 currentTime 不做控制可能导致音视频不同步。这个项目定位是探索验证性质功能实现上还有很多细节可以优化。但它确实验证了一件事通过 WASM FFmpeg 的组合浏览器端播放 H265 是可行的。现上还有很多细节可以优化。但它确实验证了一件事通过 WASM FFmpeg 的组合浏览器端播放 H265 是可行的。

相关新闻

从粉丝项目到技术实践:构建自动化内容管理流水线

从粉丝项目到技术实践:构建自动化内容管理流水线

2026/8/28 9:54:46

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 这次我们来看一个名为“【TXT|崔然竣】Y2,Lets go!!!(cr.古罗马混凝土)”的项目。从标题和命名方式…

日单量从 500 到 5000:零售系统升级的 4 个信号与迁移路径

日单量从 500 到 5000:零售系统升级的 4 个信号与迁移路径

2026/8/28 5:12:19

一句话结论 零售企业系统升级的时机,不看公司规模,看经营复杂度。日单量从 500 到 5000 的过程中,通常会依次触发:打单瓶颈 → 库存混乱 → 仓库失控 → 供应链和对账崩溃。每个阶段对应不同的系统能力需求。一、四个升级信号 信号…

我错误了2次然后算对了---------然后我现在找到了正确的方法

我错误了2次然后算对了---------然后我现在找到了正确的方法

2026/8/25 19:10:07

我开始的时候观察其中的一个参数,怎么都觉得不对,但是如果改成正确的参数,功能就不正常。所以一直只好先这样,但是今天我把整个系统修复了。现在一切都很清晰。如果你把一个参数修改为正确的时候出现了错误,那么说明还…

InDesign简繁转换插件

InDesign简繁转换插件

2026/8/29 16:30:29

简繁转换用法演示插件支持版本: windows 64位:InDesign 2018—InDesign 2026 macos:InDesign 2019—InDesign 2026 下载地址 通过网盘分享的文件:SimTrad 链接: https://pan.baidu.com/s/1FhSMqXi582bxqGQWMAjr_Q 提取码: rq8v

网易机器学习实习生笔试复盘:核心考点与备战思路

网易机器学习实习生笔试复盘:核心考点与备战思路

2026/8/29 16:30:29

笔试季又到了,每年六七月份,各个大厂的实习生招聘笔试都会准时拉开序幕。当年网易2018实习生招聘的机器学习算法岗位笔试题,在牛客网上被翻来覆去讨论了很久,很多准备校招的同学都把它当成一份重要的复习素材。这篇文章就当一份备…

基于LIS2DW12的超低功耗始终开启运动检测方案详解

基于LIS2DW12的超低功耗始终开启运动检测方案详解

2026/8/29 16:30:29

做低功耗项目的兄弟应该都遇到过这个纠结:设备要长时间待机,但不能完全睡死,得随时感知姿态变化或者震动,这就需要一个“始终在线”的传感器。我之前在改一款用纽扣电池供电的便携设备时,就卡在这个环节上。一开始用普…

【C++类型转换】static_cast、dynamic_cast、const_cast、reinterpret_cast

【C++类型转换】static_cast、dynamic_cast、const_cast、reinterpret_cast

2026/8/29 16:30:29

文章目录一、C 类型转换的背景二、C 类型转换详解▶ static_cast 静态类型转换基本用法实例▶ dynamic_cast 动态类型转换基本用法实例▶ const_cast 去除或添加 const/volatile基本用法实例添加 const/volatile(不常用)▶ reinterpret_cast 低级重解释转…

OpenAI 自研 3nm 芯片引发能效竞赛:AI 规模化的新瓶颈

OpenAI 自研 3nm 芯片引发能效竞赛:AI 规模化的新瓶颈

2026/8/29 16:30:29

OpenAI 首颗 3nm 自研芯片,开发周期只用了 9 个月,并在能效上直接对标 NVIDIA 的下一代平台——这则消息真正让人意外的地方,不是 OpenAI 开始做芯片,而是竞争维度变了:从“谁的模型更强”,变成了“谁的电费…

LIS2DW12低功耗加速度计实战:选型、功耗优化与中断唤醒详解

LIS2DW12低功耗加速度计实战:选型、功耗优化与中断唤醒详解

2026/8/29 16:20:29

这颗芯片我是在做一个纽扣电池供电的便携式运动记录设备时开始认真摸的,当时项目的硬指标是整机待机电流必须压到 5μA 以下,而传感器作为唯一一颗永远不休眠的器件,直接决定了系统的功耗天花板。市面上号称“超低功耗”的加速度计不少&#…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/27 11:10:02

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/29 10:22:10

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/28 7:34:42

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

四款热门降AI工具测评:研究生和本科生怎么选?

四款热门降AI工具测评:研究生和本科生怎么选?

2026/8/29 0:09:39

马上要交论文了,最近真的被论文ai率折磨的够呛。 明明查重都没问题了,但是ai率就是居高不下,崩溃了,明明都是我自己写的,天杀的,明明都是我亲生的啊 改来改去,终于给我搞出一套完美的降ai方案…

论文降AI率免费攻略:自查、提示词与工具推荐

论文降AI率免费攻略:自查、提示词与工具推荐

2026/8/29 0:09:39

马上要交论文了,最近真的被论文ai率折磨的够呛。 明明查重都没问题了,但是ai率就是居高不下,崩溃了,明明都是我自己写的,天杀的,明明都是我亲生的啊 改来改去,终于给我搞出一套完美的降ai方案…

北京GEO优化服务商推荐:预算型企业如何选北京GEO优化服务商?

北京GEO优化服务商推荐:预算型企业如何选北京GEO优化服务商?

2026/8/29 0:09:39

前言:预算有限的企业更关心投入能否形成可持续的品牌资产。评估北京GEO优化服务商时,不能只比较单篇内容或单月报价,还要看是否能够把问题词、官网、信源和监测串成完整链路。本期重点放在预算配置、试点范围和交付边界,帮助企业先…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/28 7:35:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/28 7:34:51

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/28 7:34:35

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…