直播相关知识之一 基本架构

一. 引子-直播基本架构

下面是服务器的整体架构图:

上面上整体流程 相信一个开发者应该可以看的懂并理解吧! 
主要分为四部分东西吧: 
推流端SDK 负责 采集视频音频进行编码传输到服务端(某云), 
服务端SDK负责 直播流的创建,分发到各个cdn节点,加快流的解析,以及各种流的管理统计等等 
拉流端SDK负责 拉取流 进行解码解析 进行播放 
本业务端负责 相关业务操作 比如授权地址 查询直播列表 等等

直播名词解释

1.推流

将直播内容推送至服务器的过程。

2.拉流

服务器已有直播内容,用指定地址进行拉取的过程。

3.RTMP协议

Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。

4.编码:

H.264编码 是 高性能的视频编码技术,最大的优势是具有很高的数据压缩比率,能以较低的数据速率传送基于联网协议(IP)的视频流.

5.码率:

码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。

6.FPS:

帧率(Frame rate)是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per Second,简称:FPS)或“赫兹”(Hz)

二. 直播的技术架构:

1.流程

直播视频采集SDK(PC/IOS/Anddroid)——直播CDN

(直播流分发加速)——直播视频播放器SDK(PC/IOS/Android)

2、音视频处理的一般流程:

数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示

1、数据采集:

摄像机及拾音器收集视频及音频数据,此时得到的为原始数据
涉及技术或协议:
摄像机:CCD、CMOS
拾音器:声电转换装置(咪头)、音频放大电路

2、数据编码:

使用相关硬件或软件对音视频原始数据进行编码处理(数字化)及加工(如音视频混合、打包封装等),得到可用的音视频数据
涉及技术或协议:
编码方式:CBR、VBR
编码格式
视频:H.265、H.264、MPEG-4等,封装容器有TS、MKV、AVI、MP4等
音频:G.711μ、AAC、Opus等,封装有MP3、OGG、AAC等

3、数据传输:

将编码完成后的音视频数据进行传输,早期的音视频通过同轴电缆之类的线缆进行传输,IP网络发展后,使用IP网络优传输
涉及技术或协议:
传输协议:RTP与RTCP、RTSP、RTMP、HTTP、HLS(HTTP Live Streaming)等
控制信令:SIP和SDP、SNMP等

4、解码数据:

使用相关硬件或软件对接收到的编码后的音视频数据进行解码,得到可以直接显示的图像/声音
涉及技术或协议:
一般对应的编码器都会带有相应的解码器,也有一些第三方解码插件等

5、播放显示:

在显示器(电视、监视屏等)或扬声器(耳机、喇叭等)里,显示相应的图像画面或声音
涉及技术或协议:
显示器、扬声器、3D眼镜等

3、常见的视频直播相关协议:

1、RTMP(Real Time Messaging Protocol,实时消息传送协议)

RTMP是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。它有三种变种:
1)、工作在TCP之上的明文协议,使用端口1935;
2)、RTMPT封装在HTTP请求之中,可穿越防火墙;
3)、RTMPS类似RTMPT,但使用的是HTTPS连接;
RTMP协议是被Flash用于对象、视频、音频的传输。这个协议建立在TCP协议或者轮询HTTP协议之上。RTMP协议就像一个用来装数据包的容器,这些数据既可以是AMF格式的数据,也可以是FLV中的视音频数据。一个单一的连接可以通过不同的通道传输多路网络流,这些通道中的包都是按照固定大小的包传输的。

2、RTSP(Real Time Streaming Protocol,实时流传输协议)

RTSP定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP提供了一个可扩展框架,数据源可以包括实时数据与已有的存储的数据。该协议目的在于控制多个数据发送连接,为选择发送通道如UDP、组播UDP与TCP提供途径,并为选择基于RTP上发送机制提供方法。
RTSP语法和运作跟HTTP/1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。代理服务器的缓存功能也同样适用于RTSP,并且因为RTSP具有重新导向功能,可根据实际负载情况来切换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。

3、RTP(Real-time Transport Protocol,实时传输协议)

RTP是针对多媒体数据流的一种传输层协议,详细说明了在互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通系统(配合H.323或SIP),使它成为IP电话产业的技术基础。
RTP是建立在UDP协议上的,常与RTCP一起使用,其本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于低层服务去实现这一过程。
RTP 并不保证传送或防止无序传送,也不确定底层网络的可靠性,只管发送,不管传输是否丢包,也不管接收方是否有收到包。RTP 实行有序传送,RTP中的序列号允许接收方重组发送方的包序列,同时序列号也能用于决定适当的包位置,如在视频解码中,就不需要顺序解码。

4、RTCP(Real-time Transport Control Protocol,实时传输控制协议)

RTCP是RTP的配套协议,为RTP媒体流提供信道外的控制。RTCP和RTP一起协作将多媒体数据打包和发送,定期在多媒体流会话参与者之间传输控制数据。
RTCP的主要功能是为RTP所提供的服务质量(QoS)提供反馈,收集相关媒体连接的统计信息,例如传输字节数,传输分组数,丢失分组数,单向和双向网络延迟等等。网络应用程序可以利用RTCP所提供的信息来提高服务质量,比如限制流量或改用压缩比小的编解码器。

三. 相关

OBS-PC端主播推流工具,斗鱼等游戏直播都在用
GitHub - jp9000/obs-studio: OBS
RTMP直播可以用nginx-rtmp
GitHub - arut/nginx-rtmp-module: NGINX-based Media Streaming Server
开源播放器也很多,ffplay、jwplayer、ijkplayer等等,我就不一一给你发了,哈哈
https://github.com/Bilibili/ijkplayer
其实最难的难点是提高首播时间、服务质量即Qos。要想在技术上把别的直播站PK下去,可以考虑这几种方案:
1. gop缓存,为加快首播时间
2. gop丢帧,为解决延时,为什么会有延时,网络抖动、网络拥塞导致的数据发送不出去,丢完之后所有的时间戳都要修改,切记要不客户端就会卡一个 gop的时间,是由于 dts 和 pts 的原因,或者播放器修正 dts 和 pts 也行(推流端丢gop更复杂,丢 p 帧之前的 p 帧会花屏)
3. 纯音频丢帧,要解决音视频不同步的问题,要让视频的 delta增量到你丢掉音频的delta之后,再发音频,要不就会音视频不同步 
4. 源站主备切换和断线重连
5. 根据TCP拥塞窗口做智能调度,当拥塞窗口过大说明节点服务质量不佳,需要切换节点和故障排查
6. 增加上行、下行带宽探测接口,当带宽不满足时降低视频质量,即降低码率
7. 定时获取最优的推流、拉流链路IP,尽可能保证提供最好的服务
8. 监控必须要,监控各个节点的Qos状态,来做整个平台的资源配置优化和调度
9. 如果你家产品从推流端、CDN、播放器都是自家的,保障 Qos 优势非常大.
10. 当直播量非常大时,要加入集群管理和调度,保障 Qos

转载来源 https://blog.csdn.net/huwei2003/article/details/54599152

音视频技术之《直播架构》相关推荐

  1. 音视频技术之《移动直播秒开优化经验》

    现今移动直播技术上的挑战要远远难于传统设备或电脑直播,其完整的处理环节包括但不限于:音视频采集.美颜/滤镜/特效处理.编码.封包.推流.转码.分发.解码/渲染/播放等. 直播常见的问题包括 主播在不稳 ...

  2. 音视频技术之《直播概念和流程框架》

    一.了解直播 热门直播产品 映客,斗鱼,熊猫,虎牙,花椒等等 1.一个完整直播app功能(来自落影loyinglin分享) 1.聊天 私聊.聊天室.点亮.推送.黑名单等; 2.礼物 普通礼物.豪华礼物 ...

  3. 网易视频云一站式托管音视频技术 助推游戏直播新方向

    回顾过去的一年,视频直播俨然成为互联网界最抢眼领域之一.一夜之间,秀场直播类的网易BOBO.六间房,全民直播类的花椒.映客,游戏直播类的斗鱼.虎牙,纷纷破土而出,200多家创业公司正在野蛮生长.视频直 ...

  4. 干货下载|5G+AI新时代,音视频技术有哪些突破和创新?

    4G时代,音视频技术高速发展,直播行业异军突起,在社交.娱乐.电商.教育.医疗等领域高歌猛进.5G和AI时代已至,音视频技术定会上升到一个全新的高度,新场景.新应用.新标准也必将出现.特殊的2020年 ...

  5. 报名 | 网易MCtalk: 5G+AI新时代 探索音视频技术创新与实践

    4G时代,音视频技术高速发展,直播行业异军突起,在社交.娱乐.电商.教育.医疗等领域高歌猛进.5G和AI时代已至,音视频技术定会上升到一个全新的高度,新场景.新应用.新标准也必将出现.特殊的2020年 ...

  6. 么么直播的音视频技术实践和优化

    2018年3月31日,"ZEGO Meetup 视频直播+的技术实践之道"第三期在上海成功举办,现场吸引了满堂的直播行业从业者到场聆听.会上,如预期一样,么么直播前端团队负责人黄铭 ...

  7. 腾讯云实时音视频技术发展简史 — 从编解码器容错优化到云端决策系统

    从2016开始,腾讯启动将传统的音视频解决方案逐步部署在腾讯云上,从传统的FFmpeg.OBS.RTMP开始提供了第一代直播服务.随后演进到以QUIC与HLS低延迟直播.最后在网络拥塞算法与Codec ...

  8. 转: 移动直播技术秒开优化经验

    移动直播技术秒开优化经验(含PPT) 2016-04-28 09:27 徐立,七牛创始合伙人兼产品副总裁,负责七牛直播云的整体研发,是国内 Go / Docker / Container 技术早期布道 ...

  9. 探索企业出海新机遇与音视频技术优化实践

    10月31日·北京 | LiveVideoStack联合Zenlayer共同组织"音视频技术与全球化"专题,邀请了YY.印尼电信旗下Telin Singapore.拓课云和Live ...

最新文章

  1. matlab 左除和右除
  2. 微盟“删库”程序员被判6年,供述无力偿还网贷,酒后感觉生活不如意
  3. WCF+REST 返回Json数据有双引号怎么去掉
  4. librtmp协议分析---RTMP_SendPacket函数
  5. Java:使用终止信号确定数据导入的状态
  6. import lombok 报错_Lombok注解@Getter @Setter详解
  7. linux服务器遭攻击,记一次linux服务器被攻击与防护
  8. java 微信 jssdk 分享朋友圈_微信JS-sdk分享到朋友圈无效
  9. Linux系统软件看门狗
  10. Unity3D AssetStore下载文件/项目保存位置
  11. vbs格式编程教程提高
  12. wifi分析仪怎么看哪个信道好_WiFi信道扫描仪:通过NetSpot选择最佳WiFi信道
  13. linux获取脚本文件路径
  14. 基于不确定性量化的非精确概率可靠性理论
  15. 一文读懂矩估计、极大似然估计和贝叶斯估计
  16. Sequence and Swaps
  17. 金蝶K3即时库存查询,所有物料供应商都是同一个问题处理
  18. 阿里云 部署SpringBoot和Vue项目 亲测可用(第一次部署经验贴)
  19. 使用Metasploit对MSSQL渗透测试步骤——学习笔记
  20. Esp8266的Flash读写操作以及Flash上传文件

热门文章

  1. 理解Python模块smtplib
  2. vue 实现组件递归(嵌套自身)
  3. 前端url参数加密的解密
  4. 最简单的方式让你了解去中心化应用DAPP开发
  5. 鼠标移动特效之图片跟随鼠标移动
  6. DIY自己的windows xp SP2安装盘.
  7. idea社区版和企业版区别_idea社区版和商业版的区别
  8. kswapd0 进程CPU占用过高
  9. 游戏云服务器腾讯云和阿里云性能配置对比
  10. SQL入门:第四章 数据的分组和排序