一. 技术实现层面:
技术相对都比较成熟, 设备也都支持硬编码 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://www.bubuko.com/infodetail-2532687.html