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

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

  •  
  •   maggch97 · 2023-03-18 09:02:22 +08:00 · 3659 次点击
    这是一个创建于 598 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 条附言  ·  2023-03-18 15:53:30 +08:00
    排查结果:
    重新看了能复现的网页的代码, 发现安卓 Chrome 和桌面端的区别是, 安卓的 video.canPlayType('application/vnd.apple.mpegurl') 是 true, 但是 PC 端是 false. 也就是安卓的 html video player 能直接播放 m3u8 文件

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

    无语...
    第 2 条附言  ·  2023-03-18 20:35:02 +08:00
    可能文字说的不清楚, 复现步骤视频: https://user-images.githubusercontent.com/23057110/226083878-39bf3476-aa52-4118-9ac6-b4b7127cccc5.mp4

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

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

    复现步骤: 进去之后播放, 在进度条上乱点个七八次, 不行的话再快速点七八次
    zhilincom
        9
    zhilincom  
       2023-03-18 13:07:24 +08:00
    @Joshuahui #4 可能服务器会自动判断你的浏览器 UA ,然后返回不同的渲染页面。
    mmdsun
        10
    mmdsun  
       2023-03-18 18:27:56 +08:00 via iPhone
    去谷歌 play 把你系统自带的 webview 更新一下
    huangzuyan
        11
    huangzuyan  
       2023-03-18 18:33:36 +08:00 via Android
    @maggch97 我试了没出现你的问题啊
    webview version 103.0.5060.71
    chrome version 103.0.5060.71
    mzliangjianjun
        12
    mzliangjianjun  
       2023-03-18 19:14:29 +08:00 via Android
    小米 13Pro 开发版
    Chrome 正常
    lishoujun
        13
    lishoujun  
       2023-03-18 19:20:55 +08:00 via Android
    Android 火狐正常
    icebearloveu
        14
    icebearloveu  
       2023-03-18 20:48:00 +08:00 via Android
    没发现
    rmttf
        15
    rmttf  
       309 天前 via Android
    请问这个问题最后解决了吗?我现在依然有这个问题
    maggch97
        16
    maggch97  
    OP
       308 天前 via iPhone   ❤️ 1
    @rmttf 这是安卓的 bug, 只能等 chrome 的修复
    rmttf
        17
    rmttf  
       308 天前 via Android
    @maggch97 你试过给 chrome 反馈 bug 吗?
    maggch97
        18
    maggch97  
    OP
       307 天前 via iPhone
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3065 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:44 · PVG 21:44 · LAX 05:44 · JFK 08:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.