直播系统项目

直播系统分享

  • 目录
    • 交互图
    • 数据流程
    • 爬虫
    • 解析
    • 解析意图后处理
    • 组装
    • 任务调度
    • TCP连接
    • U3D展示
    • 推流
    • 后台控制

目录

交互图

数据流程

爬虫

网页结构
B站弹幕数据结构
方法1
直接获取html的元素

chat_items = self.driver.find_elements_by_css_selector('.chat-item')  # 获取弹幕for chat_item in chat_items[-7:]:chat_item_class_attribute = chat_item.get_attribute('class')if 'danmaku' in chat_item_class_attribute:ts = int(chat_item.get_attribute('data-ts'))  # 时间戳uame = chat_item.get_attribute('data-uname')  # 用户名danmaku = chat_item.get_attribute('data-danmaku')  # 弹幕elif 'welcome-msg' in chat_item_class_attribute:username = chat_item.find_element_by_css_selector('span.username').text  # 进入直播间gift_items = self.driver.find_elements_by_css_selector('.penury-gift-item')  # 获取礼物for gift_item in gift_items:username = gift_item.find_element_by_css_selector('span.username').text  # 用户名action = gift_item.find_element_by_css_selector('span.action').text  # 送礼物

方法2
js事件监听

    chrome_driver.execute_script('''document.getElementById("chat-history-list").addEventListener("DOMNodeInserted", function(e) {$.ajax({url: "https://127.0.0.1:8010/", type: "post", data: e.target.outerHTML,  contentType:"text/html; charset=utf-8"})});  # 监控弹幕消息$('.bilibili-live-player-video-stream')[0].pause();  # 视频暂停控制document.getElementById("penury-gift-msg").addEventListener("DOMNodeInserted", function(e) {$.ajax({url: "https://127.0.0.1:8010/", type: "post", data: e.target.outerHTML,  contentType:"text/html; charset=utf-8"})});  # 监控礼物信息''')

解析

1.意图

意图
闲聊(配置语料,闲聊服务,topic_qa)
唱歌
跳舞
答题
投票
占卜
奖励
stop
兜底

2.正则解析意图

3.获取参数
问:你叫什么? 答:XXX (获取的参数就是这个回答)
问:跳晴天 (获取歌名)
问:唱自己的歌(随机挑选自己的歌)

解析意图后处理

闲聊意图:文字 + 音频 + 动作
跳舞意图:音频 + 音乐对应的舞蹈动作
唱歌意图:特定的sound资源 + 对应的舞蹈动作
文字音频获取: tts接口
音乐资源获取: c2的音乐接口
动作资源获取: 动作接口,动作的拼接

组装

组装协议,准备发送给U3D做相对应的展示

任务调度

设置了多个队列

  • 优先队列
  • 后台输入队列
  • 定时任务队列
  • 一般消息的队列

优先队列 > 后台输入 > 定时任务 > 一般

TCP连接

与U3D程序建立连接,传输数据

U3D展示

文字显示,动作展示,播放音频

推流

  • obs推流
  • 虎牙直播
  • 淘宝直播

把U3D的输出的内容,推送至直播平台
obs操作步骤

后台控制

后台控制页面,前端编写内容,组装数据结构,入队列,发送消息给U3D
后台控制页面


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部