历史直播弹幕前后端应该如何传递? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
ethusdt
0.01D
V2EX    程序员

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

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

    直播弹幕都是 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
    106npo
        1
    106npo  
       2020-01-13 09:45:46 +08:00 via Android
    回播就按照弹幕频率限制直接返回所有弹幕
    zhaoFinger
        2
    zhaoFinger  
       2020-01-13 09:45:59 +08:00
    弹幕对应直播的时间轴存下就可以了
    ethusdt
        3
    ethusdt  
    OP
       2020-01-13 09:50:39 +08:00
    @zhaoFinger 难道一个 API 请求把所有弹幕返回吗?
    ethusdt
        4
    ethusdt  
    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
    ethusdt
        8
    ethusdt  
    OP
       2020-01-13 10:04:50 +08:00
    @januariusming 第一次搞直播的需求.
    弹幕上限可以, 哪些弹幕改保留哪些该遗弃?
    Vegetable
        9
    Vegetable  
       2020-01-13 10:18:47 +08:00
    这不就是哔哩哔哩就行了嘛?哔哩哔哩视频打开弹幕列表不都加载好了吗?还请求啥玩意?
    ethusdt
        10
    ethusdt  
    OP
       2020-01-13 10:21:23 +08:00
    @Vegetable 对呀, 我才想起来, 右边还有弹幕列表呢.. 平时不太注意, 一时间也没考虑到
    106npo
        11
    106npo  
       2020-01-13 11:18:41 +08:00 via Android
    @FaiChou 所以不是加了“弹幕频率限制”么
    ethusdt
        12
    ethusdt  
    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     Solana     2644 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 07:47 PVG 15:47 LAX 23:47 JFK 02:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86