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