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

如何实现一个摄像头视频服务如果推流端挂掉,用户观看的摄像头画面不停止,而是循环播放最后 3 分钟的视频?

  •  
  •   mikulch · 2022-03-23 14:43:29 +08:00 · 1758 次点击
    这是一个创建于 980 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在做一个转播处理后的视频的项目。之前的帖子: https://www.v2ex.com/t/840368#reply44

    现在业务上要求标题中的需求,并且无论是 [正在看直播的用户,还是刚点进页面准备看视频的用户] ,当推流端挂掉以后,看到的都是最后 3 分钟并且循环播放的视频。这样子的需求,比较好的实现方式是什么呢?目前能想到的只有缓存一个备份这个方案,不知道有没有更好的方案?

    目前用的流媒体服务器是: https://github.com/ossrs/srs

    mzlzero
        1
    mzlzero  
       2022-03-23 16:58:39 +08:00
    如果只是说方法的话,谜底就在谜面上
    ksharp8
        2
    ksharp8  
       2022-03-23 17:58:17 +08:00
    你可以用一键 rtmp
    wangyu17455
        3
    wangyu17455  
       2022-03-23 19:40:58 +08:00
    后端正常写,客户端那边存最近 3 分钟,推流断掉的话后端通知客户端,然后客户端就重放最近 3 分钟,然后你就成功甩锅辣!
    mikulch
        4
    mikulch  
    OP
       2022-03-23 22:26:55 +08:00
    @wangyu17455 客户端缓存最近三分钟这个做法有个问题,就是如果是新的用户这个时候进入这个页面,他还没有看过视频,这个时候就看不到画面了。
    q792602257
        5
    q792602257  
       2022-03-24 12:29:35 +08:00
    如果是转播的话,可以考虑在转播端缓存 3 分钟视频,在推流端断开后,直接继续使用缓存的 3 分钟视频进行循环推流,恢复时切换回来即可
    mikulch
        6
    mikulch  
    OP
       2022-03-24 12:30:49 +08:00
    @q792602257 看来也只好这么做了。谢谢大佬。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1088 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:36 · PVG 03:36 · LAX 11:36 · JFK 14:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.