V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
princenan

关于 mp4 和 m3u8 的流量问题

  •  
  •   princenan · Jul 26, 2023 · 1979 views
    This topic created in 1009 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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


    我很想知道 m3u8 文件的视频时长能否更小更小。我定义了 0.1 秒,但测试发现最长可能有 3 秒
    ktqFDx9m2Bvfq3y4
        7
    ktqFDx9m2Bvfq3y4  
       Jul 27, 2023 via iPhone
    @PHPer233
    不要乱说。mp4 需要在压制的时候将一些参数放头部,就可以边下边播。我弄过视频上传功能,必须设置一下参数才可以。
    princenan
        8
    princenan  
    OP
       Jul 27, 2023
    @duan602728596 试了一下,使用 minio 是支持 range 请求的,chrome 的 network 里显示只有一条请求,但能源源不断的加载内容
    princenan
        9
    princenan  
    OP
       Jul 27, 2023
    @u20237 m3u8 可以控制分片大小,但是从 mp4 转码需要时间
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   966 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 23:10 · PVG 07:10 · LAX 16:10 · JFK 19:10
    ♥ Do have faith in what you're doing.