直播APP系统软件直播源码如何开发?
一.技术实现层面:
技术相对都比较成熟,设备也都支持硬编码。IOS还提供现成的 Video ToolBox框架,可以对摄像头和流媒体数据结构进行处理,但Video ToolBox框架只兼容8.0以上版本,8.0以下就需要用x264的库软编了。github上有现成的开源实现,推流、美颜、水印、弹幕、点赞动画、滤镜、播放都有。技术其实不是很难,而且现在很多云厂商都提供SDK,推流端,功能几乎都是一样的,没啥亮点
,不同的是整个直播平台服务差异和接入的简易性。后端现在 RTMP/HTTP-FLV 清一色,App挂个源站直接接入云厂商或CDN就OK。
二.直播优化层面
其实最难的难点是提高首播时间、服务质量即Qos(Quality of Service,服务质量),如何在丢包率20%的情况下还能保障稳定、流畅的直播体验,需要考虑以下方案:1.为加快首播时间,收流服务器主动推送 GOP :(Group of Pictures:策略影响编码质量)所谓GOP,意思是画面组,一个GOP就是一组连续的画面至边缘节点,边缘节点缓存 GOP播放端则可以快速加载减少回源延迟。
2.GOP丢帧,为解决延时,为什么会有延时,网络抖动、网络拥塞导致的数据发送不出去,丢完之后所有的时间戳都要修改,切记,要不客户端就会卡一个 GOP的时间,是由于 PTS(Presentation Time Stamp,PTS主要用于度量解码后的视频帧什么时候被显示出来) 和 DTS 的原因,或者播放器修正 DTS 和 PTS 也行(推流端丢GOD更复杂,丢 p 帧之前的 i 帧会花屏)
3.纯音频丢帧,要解决音视频不同步的问题,要让视频的 delta增量到你丢掉音频的delta之后,再发音频,要不就会音视频不同步
4.源站主备切换和断线重连
5.根据TCP拥塞窗口做智能调度,当拥塞窗口过大说明节点服务质量不佳,需要切换节点和故障排查
6.增加上行、下行带宽探测接口,当带宽不满足时降低视频质量,即降低码率
7.定时获取最优的推流、拉流链路IP,尽可能保证提供最好的服务
8.监控必须要,监控各个节点的Qos状态来做整个平台的资源配置优化和调度
9.如果产品从推流端、CDN、播放器都是自家的,保障 Qos 优势非常大
10.当直播量非常大时,要加入集群管理和调度,保障 Qos
11.播放端通过增加延时来减少网络抖动,通过快播来减少延时
以上就是我总结出来的直播产品经验,希望能帮助到创业者和从业者们。自建视频直播平台,其实技术研发成本比较高,由于目前直播技术相对都比较成熟,设备也都支持硬编码.为了让更多的直播人拥有属于自己的直播平台和为每一位直播人打造一个直播梦想作为理念,现在的直播软件源码有了更多有趣新颖的功能:游戏直播间、一对一直播、短视频、私密直播间、夺宝游戏等等,支持各种二次开发等等。如果想更多的了解直播平台的搭建与运营愿意与您秉烛夜谈,共话巴山夜雨时!
原文地址:http://blog.51cto.com/13652621/2088888