V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
islujw
V2EX  ›  JavaScript

判断设备是否支持 HEVC/H.265,选择性地加载 H.265 或 H.264 视频文件,是否可行?

  •  
  •   islujw · 2017-12-26 18:36:54 +08:00 · 5530 次点击
    这是一个创建于 2509 天前的主题,其中的信息可能已经有所发展或是发生改变。

    iOS 11 和 macOS High Sierra 已经支持 HEVC 视频编解码播放了,这种视频相比 H.264 文件更小,如果能在 web 上使用,也能提升网页加载效率。

    判断设备是否支持,从而加载不同的两个视频文件,是否能实现?

    要求优先级:从简。例如若 CSS 能实现,就不用 JS ;若原生 JavaScript 能实现,就不用其他 JS。

    可以想到的是用 JS 判断设备型号,不过这应该是最次的办法了,自适应性不强。不知各位有何高招?

    6 条回复    2017-12-27 20:19:59 +08:00
    Flygoat
        1
    Flygoat  
       2017-12-26 18:53:09 +08:00
    UA 看 WebKit 版本呗
    islujw
        2
    islujw  
    OP
       2017-12-26 18:54:44 +08:00
    @Flygoat 嗯,那非 WebKit 内核的呢? HEVC 貌似和硬件能力也有一些联系的。
    inflationaaron
        3
    inflationaaron  
       2017-12-26 21:13:06 +08:00 via iPhone
    这个 js 判断不了,你还得考虑是否硬解,8bit/10bit 等等很多情况。
    xingwing
        4
    xingwing  
       2017-12-26 21:15:24 +08:00 via iPhone
    从 sdp 里看
    liuxu
        5
    liuxu  
       2017-12-26 22:11:04 +08:00
    楼上方法可行,用 js 原生函数,查看 sdp 下的 m=video 中有支持的视频编码格式
    m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 124 127 123 125 107 108
    a=rtpmap:96 VP8/90000
    a=rtpmap:102 H264/90000
    ...
    MinonHeart
        6
    MinonHeart  
       2017-12-27 20:19:59 +08:00
    Media Capabilities - Decoding Info API

    https://developers.google.com/web/updates/2017/12/chrome-63-64-media-updates

    Chrome 64 才支持,WebKit 不支持
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2820 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 02:03 · PVG 10:03 · LAX 18:03 · JFK 21:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.