济南达宇网络科技有限公司,专注于移动互联网,提供基于移动互联网产品策划、方案、设计、开发、推广一站式开发服务商,主要业务范畴包括:移动电商、智慧社区、移动支付、企业定制等。
开发一款直播APP系统软件应该有哪些功能,如何开发?
1.技术实现层面:
技术相对都比较成熟,设备也都支持硬编码。IOS还提供现成的 Video ToolBox框架,可以对摄像头和流媒体数据结构进行处理,但Video ToolBox框架只兼容8.0以上版本,8.0以下就需要用x264的库软编了。
github上有现成的开源实现,推流、美颜、水印、弹幕、点赞动画、滤镜、播放都有。技术其实不是很难,而且现在很多云厂商都提供SDK,七牛云、金山云、乐视云、腾讯云、百度云、斗鱼直播伴侣推流端,功能几乎都是一样的,没啥亮点,不同的是整个直播平台服务差异和接入的简易性。
2.直播优化层面
其实最难的难点是提高首播时间、服务质量,如何在丢包率20%的情况下还能保障稳定、流畅的直播体验,需要考虑以下方案:
1.为加快首播时间,收流服务器主动推送 GOP :所谓GOP,意思是画面组,一个GOP就是一组连续的画面至边缘节点,边缘节点缓存 GOP,播放端则可以快速加载,减少回源延迟。
2.GOP丢帧,为解决延时,为什么会有延时,网络抖动、网络拥塞导致的数据发送不出去,丢完之后所有的时间戳都要修改,切记,要不客户端就会卡一个 GOP的时间,是由于 PTS(Presentation Time Stamp,PTS主要用于度量解码后的视频帧什么时候被显示出来) 和 DTS 的原因,或者播放器修正 DTS 和 PTS 也行(推流端丢GOD更复杂,丢 p 帧之前的 i 帧会花屏)
3.纯音频丢帧,要解决音视频不同步的问题,要让视频的 delta增量到你丢掉音频的delta之后,再发音频,要不就会音视频不同步
4.源站主备切换和断线重连
5. 根据TCP拥塞窗口做智能调度,当拥塞窗口过大说明节点服务质量不佳,需要切换节点和故障排查
达宇科技是一家服务型互联网公司,自2015年成立开始,达宇科技专业从事为企业客户提供微商城开发、餐饮外卖平台开发、直播平台开发、社交app开发等服务。