CorgiDuu
V2EX  ›  Java

采用 m3u8 切片策略的视频网站,是在用户点击播放的时候再去切片并返回,还是说视频上传到平台就已经完成了切片?

  •  1
     
  •   CorgiDuu · Mar 3, 2024 · 5660 views
    This topic created in 804 days ago, the information mentioned may be changed or developed.
    19 replies    2024-03-21 15:46:30 +08:00
    iseki
        1
    iseki  
       Mar 3, 2024 via Android   ❤️ 1
    一般都是切好的,这样也利于缓存
    iseki
        2
    iseki  
       Mar 3, 2024 via Android
    此外给视频切片是个很重的工作
    a282810
        3
    a282810  
       Mar 3, 2024
    视频上传到平台就开始切片
    shuiduoduo
        4
    shuiduoduo  
       Mar 3, 2024 via Android
    切片也是需要时间的
    k9982874
        5
    k9982874  
       Mar 3, 2024 via iPad
    不是应该视频上传开始自动切片最后生成 m3u8 ,整个过程自动化
    mightybruce
        6
    mightybruce  
       Mar 3, 2024
    录播视频时先切片好再播放,切片也需要花费大量计算的。
    播放的时候,如果 m3u8 是级联索引,那么会先返回相应分辨率的 m3u8 ,再通过 m3u8 找相应视频切片。
    kkk9
        7
    kkk9  
       Mar 3, 2024   ❤️ 6
    通用三队列

    1. 上传队列:支持断点续传,上传完毕之后进入切片队列
    2. 切片队列:切片,各种清晰度等的版本,完成之后进入缓存队列
    3. 缓存队列:分发到各个存储 Peer/OSS 等,CDN 执行预热……
    expy
        8
    expy  
       Mar 3, 2024
    转码切片肯定提前做好。
    expy
        9
    expy  
       Mar 3, 2024
    CorgiDuu
        10
    CorgiDuu  
    OP
       Mar 3, 2024
    @iseki 感谢解答,那比如说切片好的视频,后端怎么返回给前端呢?还是说后端不做处理,就认为是个文件服务器就好?
    CorgiDuu
        11
    CorgiDuu  
    OP
       Mar 3, 2024
    感谢解答,那比如说切片好的视频,后端是以什么形式返回给前端呢?还是说后端不做处理,就充当是个文件服务器就好?如果是文件服务器是不是也可以用对象存储这种保存呢?
    treblex
        12
    treblex  
       Mar 3, 2024
    对象存储的话,可以用服务商提供的服务,自动转码
    foxhunt
        13
    foxhunt  
       Mar 3, 2024
    切片任务时,会指定生成 m3u8 文件的文件名,根据文件名和 CDN 路径生成播放 URL ,扔给前端就行了
    播放器拿到 m3u8 文件后,根据列表取分片后的 ts 文件逐个播放
    iseki
        14
    iseki  
       Mar 3, 2024 via Android
    @CorgiDuu 是的,m3u8 和 ts 分片都是普通的文件,按文件分发处理就行,所以它才方便
    joynvda
        15
    joynvda  
       Mar 3, 2024
    分直播和点播。

    直播是实时切片,同时输出 m3u8 索引和视频文件片。如果需要,还有实时转码 - 输入码流变为不同格式(分辨率等)的文件片。

    (个人不关注点播这块。)点播有可能预先切好。如果需要 DRM 版权版权,估计是实时处理。
    DefoliationM
        16
    DefoliationM  
       Mar 3, 2024
    一般大厂应该都是提前转好的,但是 jellyfin 这种都是实时转码的,点击的时候才会去转码和切片。
    CorgiDuu
        17
    CorgiDuu  
    OP
       Mar 4, 2024
    @iseki 那前端如果采用 hls.js 是不是也不需要什么额外的手动处理,只要给一个 m3u8 文件名,他就会自己按照顺序播放 ts ?
    nguyenminhhuong6
        18
    nguyenminhhuong6  
       Mar 4, 2024
    m3u8 url 获取的就是切片列表,切片提前处理好的
    johnmichael09
        19
    johnmichael09  
       Mar 21, 2024
    m3u8 文件其实是一系列视频的链接,返回前端后,前端按照时间点读取一个个视频的地址,然后播放
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2537 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 00:57 · PVG 08:57 · LAX 17:57 · JFK 20:57
    ♥ Do have faith in what you're doing.