视频直播APP架构设计_第1页
视频直播APP架构设计_第2页
视频直播APP架构设计_第3页
视频直播APP架构设计_第4页
视频直播APP架构设计_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、视频直播APP架构设计开直播看直播 玩直播2016.012016.052016.102017.042015.10千帆直播直播基本交互整体技术指标直播间进速度:300ms聊天接速度:500ms屏和DNS被劫持率:1%DNS解析时间:100ms次连成功率:99%点播视频打开速度:300msAPP 整体崩溃率:5APP 卡顿率:1% 头像、封:20k内存泄露率:10%/时 整体CPU峰值:60%APP 温度控制平均温度:60直播技术指标直播流帧延迟均值:500ms推流稳定性:95%直播流丢包率/丢帧率:2% 硬编硬解覆盖率:99%直播和连延迟:1.5s黑屏、绿屏、画卡死:1回音消除、去噪直播流卡顿率

2、:1%美颜、道具、贴纸 CPU占:20%来电、通知、络切换动恢复 推流CPU占均值:50%观众端CPU占均值:30%开播基本流程采集处理编码封包推流采集AndroidAndroid.CameraAudioRecord采集克风YUV/RGB、PCMiOSCamera 封装AVCapture(AVFoundation)YUV/RGB、PCM视频处理GPUImageFilterGPUImageFilterGPUImageFilter美颜滤镜贴纸3D道具瘦脸眼GPUImageFilterAR/VRYUV/RGBGPUImageView(主播预览)编码美颜:美颜,不直播!美磨皮补光可爱贴纸瘦脸占 CPU

3、 资源影响编码效率主播回显延迟增编码封装FLVH.264AACH.264 编码IPIBP IGOPiOS H.264 编码FFMpeg / X264 / Xvid软编YUVH.264(CMSampleBuffers)封装VideoToolBox(VTCompression)硬编iOS PCM 编码AAC降噪克风收音克风PCMAudio采集AudioToolBox硬编FFMpeg(libfdk-aac)软编Android H.264 音视频编码MediaCodecY兼容硬编?FFMpegNHEVC(H.265)RTMP 转 HTTP-FLV,H.265 反而会快些,而且压缩提!如果不涉及编码转换

4、的话,H.265 也挺快!“”转“低”较快,“低”转“”就很慢,H.264 转 H.265 会慢上5-6倍! 得同时输出 RTMP、HTTP-FLV、HLS 及其扩展版,支持 H.265 !推流推流技术流程转码中心封包(元信息、时序)LibRTMPFFMpegH.264AACCDN 源站RTMPRTMPHTTP-FLVHLS推流稳定性时刻考虑如何省电、省带宽!缩减动画,缩减特效,保CPU,保GPU! 内存优化都得定期扫遍!实时络探测,线路择优,好路优先复!千帆流媒体中心CDN-B 边缘CDN-B 边缘CDN-A 边缘CDN-A 边缘CDN-A 中心节点主播A推流CDN-B 中心节点主播B推流我

5、要看主播A我要看主播A我要看主播B我要看主播BCDN 多路互通推流动态配置名称范围默认值特殊情况帧率8-24fps15fps关键帧2-5s4s1视频码率400-1000 kbps800 kbps200 kbps音频码率5 kbps分辨率360P、480P、504P、720P504P全局配置户级配置个别系统配置监听来电暂停推流压后台来电结束恢复推流监听压后台静音推流保流不断恢复前台恢复音画采集监听断络恢复重新推流友好提示中断推流监听络切换4G WiFi中断推流重新获取推流地址重新推流推流外部监听防护中心转码20ms3s20ms20ms-2s20ms-2s600ms主播推流边缘接 收节点20ms可

6、 GW20ms边缘分发 节点中心节 点转码边缘分发 节点边缘转码近点分发20ms3s20ms20ms-2s20ms-2s600ms主播推流边缘转码 节点20ms可 GW20ms边缘分发 节点中心 节点边缘分发 节点弱窄带推流络检测动态码率动态丢帧动态码率络不稳定重连窄带码帧 发不出去推流缓慢 发送卡顿Buffer累积Yes:赶紧降码!包太多?No:重新调码率动态丢帧Buffer舍弃参考帧关键帧和音频帧降低编码功耗!减少传输数据量!视听保持流畅,画质有保障!还同时解决音视频同步问题!拉流拉流解码渲染播放多种清晰度CDN-ACDN-B360p + 400kb/s504p + 800kb/s720p

7、 + 1000kb/s协议对应范围协议帧延迟RTMP推流、拉流TCP连接(慢)较慢1-3sHTTP-FLV拉流HTTP连接快1-3sHLSH5、录流回放HTTP短连接很慢8-10sMP4录屏、视频HTTP短连接快1-3s拉取关键帧秒开(最佳)边缘节点主动 GOP 预热找近点GSLBDNS预解析转码中心预拼接流地址解复Audio Buffer基于时序同步控制Picture BufferVideo Buffer目标解码Sample Buffer音频解码解码 QFPlayer(without buffer)音视频流播放器缓冲队列Buffer延迟累积主播端弱临时缓冲播放端弱追帧追帧视频 Buffer音

8、频 Buffer丢弃 P帧、B帧包延迟超过阈值?Yes丢弃音频帧基于时序同步控制监听来电直播静音来电结束恢复声音监听压后台取消前台播放开始后台播放状态显示播放取消后台播放移除状态栏显恢复前台播放APP保活监听断友好提示络恢复重连直播重连公屏监听络切换4G WiFi友好提示重连直播重连公屏外部监听防护播放质量统计户点击到帧时统计时间范围发生次数(总次数6397)平均时例0 - 0.5 秒2660.434317s4.15%0.5 - 1.0 秒24290.763168s37.97%1.0 - 2.0 秒25031.370519s39.12%2.0 - 3.0 秒7132.387648s11.14%

9、3.0 - 4.0 秒2513.427744s3.91%4.0 - 5.0 秒1024.452670s1.59%5.0秒以上1335.234122s2.07%1)点击播放2)包到达3)个关键帧画4)卡顿开始5)卡顿结束6)播放结束主线程 APP启动优化Application初始化复杂UI、动态libs、SDK下载缓存开屏广告播放器(内存)预热异步线程检查络 Loading主UI直播间提示和通知疯狂广播!礼物疯狂连击!各种 WebView! 动画疯狂播放!公屏疯狂滚动刷新!线程控制多线程中心CPUTimerMEM异步线程 dispatch_semaphore_t(with CFRunLoopOb

10、serverRef)时间差1时间差2CFRunLoopkCFRunLoopBeforeSourceskCFRunLoopBeforeWaitingkCFRunLoopAfterWaiting iOS卡顿监控连连A连BFLV-ARTMP-BFLV-BCDN回音消除、转推直播流业务服务器RTMP-A MCU 连中心MCU 列表同步APP连查询最佳MCU节点广播状态1)连稳定性2)播放器内存消耗,CPU消耗3)两路流,带宽压,码率不导致画质问题4)多路连扩展,音频连?5)络抖动导致延迟 - 本地编码痛点接数据后端SOA后端SOA接合并层版本控制EncryptCompress数据接请求流程Htttps

11、 & Http/2.0 ?hosthttpsrequest_sizeresponse_sizetotal_sizetime(ms)urlTRUE5631354514108148/activity/star/v1/rankAll.androidFALSE5611359914160169/activity/star/v1/rankAll.androidTRUE5538641417441/activity/work/v2/mywork.androidFALSE5519181469735/activity/work/v2/mywork.androidTRUE5681138911957353/ancho

12、r/searchFALSE5661144312009410/anchor/searchTRUE589427101681/audience/admin/forbid/isDeviceForbid.andrFALSE5874781065102/audience/admin/forbid/isDeviceForbid.andrTRUE55236892098/audience/chat/isSecret.androidFALSE550422972136/audience/chat/isSecret.android动态埋点上报所有 EventID 志原始志EventID + 版本号 StatID添加当前

13、版本的业务ID与事件ID的映射关系清洗池根据控件路径生成唯标识解析与映射Hive统计DB提前动圈选和记录图&动画图优化主线程封下载线程队列控制并发 去重监控图监控尺动裁剪修正Cache监控缓存动画优化1)序列帧 - WebP - BPG ?2)礼物分段加载,分段播放3)热礼物提前打包4)降低分辨率,限宽不限5)减少实时计算量,缓存中间计算结果6)尽量整型替代浮点型计算7)减少GC次数8)尽量硬件加速,发挥GPU性能直播+组播通知送礼物!看进度喷设备上线开喷开播通知开启喷模式后端服务喷功能敏捷开发1)测试包周期:每天2)版周期:1-2周3)版周期:4周 4)动打包:Jenkins + OCLint + Fireline5)Crash和卡顿检测:Bugly、听云、研Hook敏捷1)直播间加载时统计2)与直播间路请求抓包统计3)CPU、内存、带宽使报告4)卡顿与崩溃情况报告发包质检5)推流稳定性和压测报告6)APP启动时间报告7)各统计项/动态埋点统计8)接模拟丢包、劫持、数据破坏容灾报告1)开发确认2)QA每报告3)全员测试4)技术指标统计5)产品确认发版流程6)全 showcase7)UI 细节对照完善8)上线报告9)站内灰度、渠道灰度10)全量发布1)直播技术指标8)做好质量统计2)优化开播流程9)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论