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

历史直播弹幕前后端应该如何传递?

  •  
  •   FaiChou ·
    FaiChou · 2020-01-13 09:44:06 +08:00 · 3905 次点击
    这是一个创建于 1778 天前的主题,其中的信息可能已经有所发展或是发生改变。

    直播弹幕都是 ws 连接, 但是直播回放中的弹幕前后端是怎么同步用户当前观看位置与弹幕的呢?

    1. 弹幕录制到视频中 ❌ 无法关闭弹幕
    2. ws 连接, 前端每秒给后端回掉当前位置, 后端返回弹幕
    3. 前端每秒调用 API 请求, 发送当前观看位置, 后端返回这一秒内出现的弹幕

    看了 b 站的弹幕设计, 每秒给后端一次 heartbeat, 但是没有看到后端如何返回, 应该是 ws ?

    一个直播回放弹幕系统应该如何设置? 先考虑直播视频 2 小时, 弹幕万条以内的情况, 直播有移动端与 web 端.

    第 1 条附言  ·  2020-01-13 10:16:33 +08:00
    b 站的处理方式是一个接口返回, 比如这样一个视频 https://www.bilibili.com/video/av53851218?from=search&seid=4422978737798694825 , 会有这样一个请求 https://api.bilibili.com/x/v1/dm/list.so?oid=94198756 , 内容是 xml 格式的弹幕文件.

    但是在 chrome devtool 下这个请求不能预览结果, 不知道是 chrome 的 bug 还是 b 站做了特殊处理.
    第 2 条附言  ·  2020-01-13 10:20:18 +08:00
    无法预览 b 站弹幕 api 返回是 chrome 的 bug(feature), 在火狐下可以预览到.
    14 条回复    2020-01-13 13:14:31 +08:00
    xmumiffy
        1
    xmumiffy  
       2020-01-13 09:45:46 +08:00 via Android
    回播就按照弹幕频率限制直接返回所有弹幕
    zhaoFinger
        2
    zhaoFinger  
       2020-01-13 09:45:59 +08:00
    弹幕对应直播的时间轴存下就可以了
    FaiChou
        3
    FaiChou  
    OP
       2020-01-13 09:50:39 +08:00
    @zhaoFinger 难道一个 API 请求把所有弹幕返回吗?
    FaiChou
        4
    FaiChou  
    OP
       2020-01-13 09:51:40 +08:00
    @xmumiffy 这样会不会太多了? 比如 b 站新宝岛这个视频弹幕会特别大.
    januariusming
        5
    januariusming  
       2020-01-13 09:56:26 +08:00
    搞个弹幕上限啊 b 站都是最多 8000
    BigPig666
        6
    BigPig666  
       2020-01-13 10:03:33 +08:00
    肯定不会返回所有弹幕,有比例返回的,盲猜有一定的推荐算法?
    Amit
        7
    Amit  
       2020-01-13 10:03:41 +08:00
    弹幕其实就是字幕吧,根据时间坐标取一段时间的列表数据量应该不会很大,而且还可以做一些压缩,比如“哈哈哈”x3
    FaiChou
        8
    FaiChou  
    OP
       2020-01-13 10:04:50 +08:00
    @januariusming 第一次搞直播的需求.
    弹幕上限可以, 哪些弹幕改保留哪些该遗弃?
    Vegetable
        9
    Vegetable  
       2020-01-13 10:18:47 +08:00
    这不就是哔哩哔哩就行了嘛?哔哩哔哩视频打开弹幕列表不都加载好了吗?还请求啥玩意?
    FaiChou
        10
    FaiChou  
    OP
       2020-01-13 10:21:23 +08:00
    @Vegetable 对呀, 我才想起来, 右边还有弹幕列表呢.. 平时不太注意, 一时间也没考虑到
    xmumiffy
        11
    xmumiffy  
       2020-01-13 11:18:41 +08:00 via Android
    @FaiChou 所以不是加了“弹幕频率限制”么
    FaiChou
        12
    FaiChou  
    OP
       2020-01-13 12:04:26 +08:00
    @xmumiffy 是的, 谢谢
    YUyu101
        13
    YUyu101  
       2020-01-13 12:52:43 +08:00
    回播和普通视频没什么区别吧,按时长给弹幕上限,每小时给个几千。
    liuxu
        14
    liuxu  
       2020-01-13 13:14:31 +08:00
    时间戳校验,分页读取,视频流,音频流,字幕,弹幕都是一个原理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1009 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:12 · PVG 05:12 · LAX 13:12 · JFK 16:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.