常见直播APP分析

本次分析是基于 斗音/灿/东瓜/慢手

1. 原理说明

1.1 音频视频采集:

         主播通过手机或者其它视频音频设备采集原始的视频音频,其中视频会经过编码压缩成 H.264等格式,音频会编码压缩成 MP3等格式,然后推送到服务器;

         为了增强一些现场效果或者加上一些额外的效果,一般会在将其编码压缩前进行处理,比如打上时间戳或者公司 Logo 的水印,祛斑美颜和声音混淆等处理

1.2推流到CDN:

         把已经处理的数据流,推到CDN服务商的源站。此时会尽量保证不同地域的边缘CDN服务器都能及时收到缓存的视频数据流

1.3用户获取直播URL:

         用户通过客户端访问该直播时,会返回一个该直播视频流的URL,一般该URL是http格式的;

         因为用户环境的复杂性,所以,一般选用HTTP进行数据流交互,能内网穿透,且可以保证包的及时性

1.4访问直播 URL:

    用户访问该URL时,首先CDN提供商会把该URL映射到离用户最近的CDN服务器节点,然后,用户直接与该服务器建立http连接,把视频数据流下载到本地

然后本地的客户端(比如APP)会把该数据流解析并播放到用户的显示设备

2. 看直播

2.1 看直播的过程

    1. 选择一个要看的直播:

       此时直播只有一个图片、文字描述等

     2. 获取该直播对应的URL地址:

       当点击要观看的直播时,会获取对应URL地址,该地址才是真实的直播地址

    3. 访问该URL, 观看直播:

       建立http连接,获取视频流数据,并在客户端播放

 

几个问题说明:

    1. rtsp/rtp/rtcp都是在推流到cdn时使用的, 一开始以为是在看直播的时候用的

    2. 为什么直播不使用https呢? 大概率应该是 减小服务器压力, 要不然, 每个直播的流都进行一次加密, cpu得累死, 还有就是及时性也不能保证, 也许一加密, 就慢了几秒了..还有就是每一个数据都进行解密的话, 手机大概也抗不住

    3. 除了直播的流是http的..其它点赞, 礼物都是走的https的, 用户信息也是https的, 几个平台都是

    4. Android使用FLV格式的URL播放视频,IOS使用HLS格式URL播放视频

    5. 各种直播源都可以使用vlc软件直接观看

    6. 斗音/灿/东瓜/的 结构相似 , 一查, 原来真的是一个公司呀

 

 

你可能感兴趣的:(协议分析)