前端如何硬解 HEVC/H265? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
kitten23
V2EX    程序员

前端如何硬解 HEVC/H265?

  •  1
     
  •   kitten23 2020-04-09 15:57:36 +08:00 8320 次点击
    这是一个创建于 2094 天前的主题,其中的信息可能已经有所发展或是发生改变。

    场景是 websocket 收视频数据,然后解码播放。 目前使用 wasm 软解,有性能瓶颈。单线程解码的话,i5 级别的 cpu 在 2Mbps 、2k 的视频就估计解不动了。

    有没有什么可以硬解的方案?

    16 条回复    2020-11-05 14:29:03 +08:00
    noe132
        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
    coderluan
        2
    coderluan  
       2020-04-09 16:22:05 +08:00
    前端是运行在浏览器之上的,并不能直接访问硬件,所以基本只能调用浏览器的硬解,性能就那样,没啥提升的空间。还有一个曲线的办法是安装本地解码器,然后通过浏览器插件的方式调用。
    Cooky
        3
    Cooky  
       2020-04-09 16:23:52 +08:00 via Android
    webgl ?
    kitten23
        4
    kitten23  
    OP
       2020-04-09 16:32:16 +08:00
    @noe132 当时就是因为浏览器不支持 HEVC,用不了 MSE,才用的 Wasm 软解
    kitten23
        5
    kitten23  
    OP
       2020-04-09 16:36:06 +08:00
    @coderluan 曲线方案都做了,目前希望能在浏览器里直接打开页面播放。有没有什么接口能尝试下?
    kitten23
        6
    kitten23  
    OP
       2020-04-09 16:36:39 +08:00
    @Cooky 渲染 yuv 数据的时候是用的 webgl,解码指望不上
    kokutou
        7
    kokutou  
       2020-04-09 16:36:47 +08:00 via Android
    视频再弄 h264 的,264 浏览器硬解支持的设备多。。
    VDimos
        8
    VDimos  
       2020-04-09 16:38:10 +08:00 via Android
    硬解这个得浏览器支持才行的吧
    tojonozomi
        9
    tojonozomi  
       2020-04-09 16:40:19 +08:00
    这个得看浏览器的支持程度吧,现在 chrome 的就 vp9 ?
    ffmpeg 转编码到 264 然后喂 MSE 也不是不行?不过性能要求应该很爆炸,可以考虑 preset 用快速方案
    coderluan
        10
    coderluan  
       2020-04-09 16:44:44 +08:00   1
    @kitten23 可以装本地解码器,那样是能在浏览器页面播放的,我见过这个实现,好像是 divx 公司的,具体接口就没研究过了。
    ccFox
        11
    ccFox  
       2020-04-09 18:42:08 +08:00
    不知道您这边是做什么类型产品,或许可以考虑一下 VP9 ? VP9 可以 Chrome 硬解。
    Xdh129
        12
    Xdh129  
       2020-04-09 18:42:54 +08:00
    Chrome/旧版 Edge 支持在线硬解 8k@60fps VP9 视频,FireFox 只能软解
    zhw2590582
        13
    zhw2590582  
       2020-04-09 19:28:10 +08:00 via iPhone
    见过这方面的解码库,但现在就要求浏览器播放 h265 显然不合理,还是后端再转一次吧
    jim9606
        14
    jim9606  
       2020-04-10 03:42:01 +08:00   1
    我觉得要在不支持 HEVC 的浏览器上强行解码 HEVC 也太强人所难了。
    不知道你的 wasm 是用哪里的方案,搜了这篇文章( https://zhuanlan.zhihu.com/p/73772711 ),里面是用改过的的 ffmpeg 编译的,好像看性能还可以的样子?
    我个人觉得就算不能硬解也尽量用浏览器支持的编码,例如 VP9,好歹浏览器会带一个针对平台优化过的软件解码器。
    sunqixiaoxixi
        15
    sunqixiaoxixi  
       2020-04-30 19:25:12 +08:00
    我用 libde265 编过 wasm 版本,但是在高码率或者高分辨率时解码表现太差,还是回到 h264 作罢,也许 wasm 能支持多线程的话会有更多想象空间
    Shepherdog
        16
    Shepherdog  
       2020-11-05 14:29:03 +08:00
    目前 WebAssembly SIMD 已进入提案,如果未来有 wasm + ffmpeg 此方面的优化版本,1080p 的解码效率估计能达到可用状态(>25fps )。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1222 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 17:07 PVG 01:07 LAX 09:07 JFK 12:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86