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

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

  •  1
     
  •   CorgiDuu · 297 天前 · 3255 次点击
    这是一个创建于 297 天前的主题,其中的信息可能已经有所发展或是发生改变。
    19 条回复    2024-03-21 15:46:30 +08:00
    iseki
        1
    iseki  
       297 天前 via Android   ❤️ 1
    一般都是切好的,这样也利于缓存
    iseki
        2
    iseki  
       297 天前 via Android
    此外给视频切片是个很重的工作
    a282810
        3
    a282810  
       297 天前
    视频上传到平台就开始切片
    wanwusangzhi
        4
    wanwusangzhi  
       297 天前 via Android
    切片也是需要时间的
    k9982874
        5
    k9982874  
       297 天前 via iPad
    不是应该视频上传开始自动切片最后生成 m3u8 ,整个过程自动化
    mightybruce
        6
    mightybruce  
       297 天前
    录播视频时先切片好再播放,切片也需要花费大量计算的。
    播放的时候,如果 m3u8 是级联索引,那么会先返回相应分辨率的 m3u8 ,再通过 m3u8 找相应视频切片。
    kkk9
        7
    kkk9  
       297 天前   ❤️ 6
    通用三队列

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

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

    (个人不关注点播这块。)点播有可能预先切好。如果需要 DRM 版权版权,估计是实时处理。
    DefoliationM
        16
    DefoliationM  
       297 天前
    一般大厂应该都是提前转好的,但是 jellyfin 这种都是实时转码的,点击的时候才会去转码和切片。
    CorgiDuu
        17
    CorgiDuu  
    OP
       296 天前
    @iseki 那前端如果采用 hls.js 是不是也不需要什么额外的手动处理,只要给一个 m3u8 文件名,他就会自己按照顺序播放 ts ?
    nguyenminhhuong6
        18
    nguyenminhhuong6  
       296 天前
    m3u8 url 获取的就是切片列表,切片提前处理好的
    johnmichael09
        19
    johnmichael09  
       279 天前
    m3u8 文件其实是一系列视频的链接,返回前端后,前端按照时间点读取一个个视频的地址,然后播放
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2493 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:59 · PVG 23:59 · LAX 07:59 · JFK 10:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.