V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
maggch97
V2EX  ›  程序员

为啥这个网站的视频用安卓 Chrome 打开 100%卡死

  •  
  •   maggch97 · 84 天前 · 1901 次点击
    这是一个创建于 84 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://yhdm.at/vod-play/20234513/ep3.html

    用安卓 Chrome 打开,播放,随便拖几下进度,画面就会卡死,但是声音继续播放

    大家的设备上能复现出类似问题嘛? 这个问题只有安卓 Chrome 上会发生, Mac,Windows,iOS 上面都一切正常

    我测了其他的几个安卓浏览器
    Brave: 和 Chrome 一样卡死
    Kiwi: 进度条来回拖放多几次,画面卡死
    Edge: 拖了好多次,播放都正常


    试着在 chrome://flags 关闭下面的几个开关, 照旧
    Android Surfacecontrol
    Video hardware decode

    这个网站还有一个奇怪的地方是, 在安卓上, video 的 readystate 永远是 4(加载完毕). 但是其他平台都是正常的

    迫于超出能力范围, 有没有大哥能解释这个问题?或者提供一些思路
    第 1 条附言  ·  84 天前
    排查结果:
    重新看了能复现的网页的代码, 发现安卓 Chrome 和桌面端的区别是, 安卓的 video.canPlayType('application/vnd.apple.mpegurl') 是 true, 但是 PC 端是 false. 也就是安卓的 html video player 能直接播放 m3u8 文件

    测了一下 hls 在任何平台都能正常播放那个 m3u8. 所以问题是出在 安卓 Chrome 浏览器的 m3u8 播放那一块逻辑.

    无语...
    第 2 条附言  ·  84 天前
    可能文字说的不清楚, 复现步骤视频: https://user-images.githubusercontent.com/23057110/226083878-39bf3476-aa52-4118-9ac6-b4b7127cccc5.mp4

    问题原因我也差不多找到了, 是安卓 Chrome 特有的 m3u8 播放器那块的问题. 所以火狐,或者其他平台是不可能复现的. 不能复现只是因为点击跳转的次数不够多不够快
    83f420984
        1
    83f420984  
       84 天前
    Win10 、Cent Browser 5 正常
    piku
        2
    piku  
       84 天前 via Android
    没看,但是猜测这网站的视频没有索引。顺序播放是没有问题的,拖动进度条会由于没索引,不知道要去读文件的哪个部分,导致卡死(其实是非常慢
    如果下载视频,然后用 vlc 播放,然后拖动进度条,vlc 会问你要不要建一个索引
    maggch97
        3
    maggch97  
    OP
       84 天前 via Android
    @piku 但是在除了安卓的其他平台都是正常的
    Joshuahui
        4
    Joshuahui  
       84 天前 via Android
    原来看某个动画片时,想在电脑上看,和手机相同的网址,手机上有很多播放源,电脑上只有线路一,转到电脑版网址也不行,好像跟代理和网页显示比例也无关,至今未找到原因😂
    maggch97
        5
    maggch97  
    OP
       84 天前
    @piku https://v8.dious.cc/20230309/HqtGKhq0/1500kb/hls/index.m3u8 我试了一下这个 m3u8 直接在 https://www.hlsplayer.net/ 这个网站上播放, 也会有这个问题.

    这两网站都是用的 hls.js, 不知道是这个视频本身有问题, 还是 hls.js 的问题
    hs0000t
        6
    hs0000t  
       84 天前 via Android
    安卓 kiwi 复现失败,版本号 107.0.5304.74
    maggch97
        7
    maggch97  
    OP
       84 天前
    https://livepush.io/hls-player/index.html 这个 m3u8 播放网站用的是 video.js, 播放上面的 m3u8 就没有问题. 那大概率是这个播放器 js 的 bug 了, 至少是可以在 js 这个层面修好的 bug
    maggch97
        8
    maggch97  
    OP
       84 天前
    @hs0000t https://www.hlsplayer.net/#type=m3u8&src=https%3A%2F%2Fv8.dious.cc%2F20230309%2FHqtGKhq0%2F1500kb%2Fhls%2Findex.m3u8 试试这个网站

    复现步骤: 进去之后播放, 在进度条上乱点个七八次, 不行的话再快速点七八次
    zhilincom
        9
    zhilincom  
       84 天前
    @Joshuahui #4 可能服务器会自动判断你的浏览器 UA ,然后返回不同的渲染页面。
    mmdsun
        10
    mmdsun  
       84 天前 via iPhone
    去谷歌 play 把你系统自带的 webview 更新一下
    huangzuyan
        11
    huangzuyan  
       84 天前 via Android
    @maggch97 我试了没出现你的问题啊
    webview version 103.0.5060.71
    chrome version 103.0.5060.71
    mzliangjianjun
        12
    mzliangjianjun  
       84 天前 via Android
    小米 13Pro 开发版
    Chrome 正常
    lishoujun
        13
    lishoujun  
       84 天前 via Android
    Android 火狐正常
    icebearloveu
        14
    icebearloveu  
       84 天前 via Android
    没发现
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   858 人在线   最高记录 5634   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 22:29 · PVG 06:29 · LAX 15:29 · JFK 18:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.