V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huisunan
V2EX  ›  前端开发

关于 mp4 和 m3u8 的流量问题

  •  
  •   huisunan · 2023-07-26 17:57:55 +08:00 · 1302 次点击
    这是一个创建于 465 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前端播放 mp4 是整个视频下载下来在播放吗? 使用 m3u8 进行切片会节省一点流量吗? 求大佬指点一下

    9 条回复    2023-07-27 09:54:52 +08:00
    PHPer233
        1
    PHPer233  
       2023-07-26 18:04:21 +08:00
    mp4 是先下载整个视频,然后播放。m3u8 是将视频分割成若干个片段,从头到尾缓存一片播放一片。
    lovelylain
        2
    lovelylain  
       2023-07-26 18:14:27 +08:00 via Android
    @PHPer233 不同平台不一样吧,安卓可以用 mp4 实现直播,所以应该是支持边下载边播放的,iOS 不行。
    cssk
        3
    cssk  
       2023-07-26 18:15:54 +08:00 via iPhone
    @lovelylain ios 一样可以边存边播
    duan602728596
        4
    duan602728596  
       2023-07-26 21:16:55 +08:00
    mp4 不一定,分片播放需要支持 range 请求,正确响应 206
    bertonzh
        5
    bertonzh  
       2023-07-27 00:38:55 +08:00
    都可以分片加载的,只要服务端支持。
    u20237
        6
    u20237  
       2023-07-27 01:38:30 +08:00
    好像 m3u8 更灵活,方便调试和分析

    部分 mp4 格式可能需要把头文件读完才会播放。

    服务器也需要考虑客户端带宽 如果下载速度低于播放速度 可能会很卡。

    ..前端好像没有那么多的办法来预加载视频文件

    目前没法分辨哪个更好,更省流量。但大部分直播平台使用 m3u8

    m3u8 非常容限制客户端的下载速度,并发数,和 mp4 比较这是一个好处。


    我很想知道 m3u8 文件的视频时长能否更小更小。我定义了 0.1 秒,但测试发现最长可能有 3 秒
    Chad0000
        7
    Chad0000  
       2023-07-27 04:00:54 +08:00 via iPhone
    @PHPer233
    不要乱说。mp4 需要在压制的时候将一些参数放头部,就可以边下边播。我弄过视频上传功能,必须设置一下参数才可以。
    huisunan
        8
    huisunan  
    OP
       2023-07-27 09:54:02 +08:00
    @duan602728596 试了一下,使用 minio 是支持 range 请求的,chrome 的 network 里显示只有一条请求,但能源源不断的加载内容
    huisunan
        9
    huisunan  
    OP
       2023-07-27 09:54:52 +08:00
    @u20237 m3u8 可以控制分片大小,但是从 mp4 转码需要时间
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1735 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:35 · PVG 00:35 · LAX 09:35 · JFK 12:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.