公开课学习——仿抖音直播平台

文章目录

  • 直播
    • 抖音的直播原理
    • Java继承直播客户端工具: ffmpeg
    • 客户端和网页集成
    • CDN网络——性能提升关键——边缘计算
  • 实时聊天——IM系统
    • 怎么实现?——websocket
    • IM系统消息如何转发?
    • 直播场景IM系统是什么样子?

在这里插入图片描述

在这里插入图片描述

直播

抖音的直播原理

直播端推流(例如OBS) ——> 信令服务器<——客户端拉流(例如VLC)
使用rtmp协议

可以使用nginx+rtmp实现直播服务器

Java继承直播客户端工具: ffmpeg

https://ffmpeg.org/
将原始数据转换成二进制数据流,在网络上传输,传到信令服务器
因为Java其实并不擅长直播,所以就是用Java调用其他的东西啦

客户端和网页集成

也已经有平台做了
使用video.js组件实现在网页端拉流

CDN网络——性能提升关键——边缘计算

在这里插入图片描述

实时聊天——IM系统

怎么实现?——websocket

netty——主要是构建pipline,其他的都是模板代码
使用netty封装websocket协议

IM系统消息如何转发?

客户端和服务端建立长连接,每个客户端都可以和服务端建立长连接(netty实现),但如何建成直播间,让大家都能看到你发的消息呢?
就是把连接整合起来,建立一个容器,把多个连接放到这个容器中去,当收到一个消息后,把这个消息推给这个容器中的所有连接。

在这里插入图片描述

直播场景IM系统是什么样子?

在这里插入图片描述
往客户端推的消息也是一批一批推的,要不网络压力太大。
长连接心跳管理服务就是管理连接的,就是在建立连接后,双方进行小批量的数据交互,确定是否还在活动。——netty可以实现,使用IdleStateHandler

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

分享使用,侵删。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/596144.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动规训练4

目录 一、买股票的最佳实际含冷冻期 1、题目解析 2、算法原理 a状态表示方程 b状态转移方程 c初始化 d填表顺序 e返回值 3、代码 4、感想 二、买股票的最佳时机函手续费 1、题目解析 2、算法原理 a状态表示方程 b状态转移方程 c初始化 d填表顺序 e返回值 3、…

LRU的原理与实现(java)

介绍 LRU的英文全称为Least Recently Used&#xff0c;即最近最少使用。它是一种内存数据淘汰算法&#xff0c;当添加想要添加数据而内存不足时&#xff0c;它会优先将最近一段时间内使用最少的数据淘汰掉&#xff0c;再将数据添加进来。 原理 LRU的原理在介绍中就已经基本说…

继电器线圈两端为什么要反向并联二极管

原理描述&#xff1a; 电感的特点&#xff1a;穿过电感的电流不会突然变化&#xff0c;也就是说变化的电流在电感上面会产生感应电动势。 感应电动势的作用&#xff1a;阻碍电流的变化。 三极管断开之前&#xff0c;电流是穿过线圈&#xff0c;原来的电流是从上往下流动&#…

【C++】探索C++中的类与对象(下)---深入理解C++中的关键概念与应用

​​ &#x1f331;博客主页&#xff1a;青竹雾色间. &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 ✨人生如寄&#xff0c;多忧何为 ✨ 在C编程中&#xff0c;有许多重要的概念和特性&#xff0c;包括构造函数、explicit关键字、静态成员、友元以及内部类…

【黑马头条】-day05延迟队列文章发布审核-Redis-zSet实现延迟队列-Feign远程调用

文章目录 昨日回顾今日内容1 延迟任务1.1 概述1.2 技术对比1.2.1 DelayQueue1.2.2 RabbitMQ1.2.3 Redis实现1.2.4 总结 2 redis实现延迟任务2.0 实现思路2.1 思考2.2 初步配置实现2.2.1 导入heima-leadnews-schedule模块2.2.2 在Nacos注册配置管理leadnews-schedule2.2.3 导入表…

【Leetcode】1. 两数之和

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接&#x1f517; 给定一个整数数组 n u m s nums nums 和一个整数目标值 t a r g e t target target&#xff0c;请你在该数组中找出 和为目标值 t a r g e t target target 的那 两个 整数&…

序列超图的下一项推荐 笔记

1 Title Next-item Recommendation with Sequential Hypergraphs&#xff08;Jianling Wang、Kaize Ding、Liangjie Hong、Huan Liu、James Caverlee&#xff09;【SIGIR 2020】 2 Conclusion This study explores the dynamic meaning of items in realworld scenarios and p…

JAVA IO流学习

File类&#xff1a; File类是java.io包中很重要的一个类 File类的对象可以代表一个文件或者目录&#xff0c;可以修改文件大小、文件最后修改日期、文件名等 File对象不能操作文件的具体数据&#xff0c;即不能对文件进行读和写的操作 File的构造方法&#xff1a; File&…

并查集学习(836. 合并集合 + 837. 连通块中点的数量)

//得先加集合个数再合并&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 核心代码&#xff1a; int find(int x){//返回父节点if(x ! p[x]) {p[x] find(p[x]);//路径压缩 } //孩子不等于爸爸&#xff0c;就…

Pytorch转onnx

pytorch 转 onnx 模型需要函数 torch.onnx.export。 def export(model: Union[torch.nn.Module, torch.jit.ScriptModule, torch.jit.ScriptFunction],args: Union[Tuple[Any, ...], torch.Tensor],f: Union[str, io.BytesIO],export_params: bool True,verbose: bool False…

【QT+QGIS跨平台编译】056:【pdal_json_schema+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、pdal_json_schema介绍二、pdal下载三、文件分析四、pro文件五、编译实践一、pdal_json_schema介绍 pdal_json_schema 是与 PDAL(Point Data Abstraction Library)相关的 JSON 模式文件。PDAL 是一个用于处理和分析点云数据的开源库。JSON 模式…

DHCP-PXE

Dynamic Host Configuration Protocol 动态主机配置协议 1.Selinux 调试为Permission 防火墙配置 搭建DHCP的主机必须有一个静态地址&#xff0c;提前配置好 安装DHCP软件 服务名为dhcpd DHCP地址分配四次会话&#xff0c; DISCOVERY发现 OFFER 提供 REQUEST 回应 A…