
场景是 websocket 收视频数据,然后解码播放。 目前使用 wasm 软解,有性能瓶颈。单线程解码的话,i5 级别的 cpu 在 2Mbps 、2k 的视频就估计解不动了。
有没有什么可以硬解的方案?
1 noe132 2020-04-09 16:12:52 +08:00 via Android 如果浏览器支持硬解的话,大概关键字 mediasource objecturl https://stackoverflow.com/questions/50333767/html5-video-streaming-video-with-blob-urls/50354182 |
2 coderluan 2020-04-09 16:22:05 +08:00 前端是运行在浏览器之上的,并不能直接访问硬件,所以基本只能调用浏览器的硬解,性能就那样,没啥提升的空间。还有一个曲线的办法是安装本地解码器,然后通过浏览器插件的方式调用。 |
3 Cooky 2020-04-09 16:23:52 +08:00 via Android webgl ? |
7 kokutou 2020-04-09 16:36:47 +08:00 via Android 视频再弄 h264 的,264 浏览器硬解支持的设备多。。 |
8 VDimos 2020-04-09 16:38:10 +08:00 via Android 硬解这个得浏览器支持才行的吧 |
9 tojonozomi 2020-04-09 16:40:19 +08:00 这个得看浏览器的支持程度吧,现在 chrome 的就 vp9 ? ffmpeg 转编码到 264 然后喂 MSE 也不是不行?不过性能要求应该很爆炸,可以考虑 preset 用快速方案 |
10 coderluan 2020-04-09 16:44:44 +08:00 @kitten23 可以装本地解码器,那样是能在浏览器页面播放的,我见过这个实现,好像是 divx 公司的,具体接口就没研究过了。 |
11 ccFox 2020-04-09 18:42:08 +08:00 不知道您这边是做什么类型产品,或许可以考虑一下 VP9 ? VP9 可以 Chrome 硬解。 |
12 Xdh129 2020-04-09 18:42:54 +08:00 Chrome/旧版 Edge 支持在线硬解 8k@60fps VP9 视频,FireFox 只能软解 |
13 zhw2590582 2020-04-09 19:28:10 +08:00 via iPhone 见过这方面的解码库,但现在就要求浏览器播放 h265 显然不合理,还是后端再转一次吧 |
14 jim9606 2020-04-10 03:42:01 +08:00 我觉得要在不支持 HEVC 的浏览器上强行解码 HEVC 也太强人所难了。 不知道你的 wasm 是用哪里的方案,搜了这篇文章( https://zhuanlan.zhihu.com/p/73772711 ),里面是用改过的的 ffmpeg 编译的,好像看性能还可以的样子? 我个人觉得就算不能硬解也尽量用浏览器支持的编码,例如 VP9,好歹浏览器会带一个针对平台优化过的软件解码器。 |
15 sunqixiaoxixi 2020-04-30 19:25:12 +08:00 我用 libde265 编过 wasm 版本,但是在高码率或者高分辨率时解码表现太差,还是回到 h264 作罢,也许 wasm 能支持多线程的话会有更多想象空间 |
16 Shepherdog 2020-11-05 14:29:03 +08:00 目前 WebAssembly SIMD 已进入提案,如果未来有 wasm + ffmpeg 此方面的优化版本,1080p 的解码效率估计能达到可用状态(>25fps )。 |