低成本的低延迟的实现
在RTMP直播系统中从推流端到网络传输到播放器都做深度定制确实可以做到比较低的延迟, 但成本也是比较高的, 需要完备的高水平的团队(服务端和客户端), 以及大量的带宽服务器资源....WebRTC在各个平台上都有相应的SDK, 尤其是在浏览器内嵌, 可以极大的减少整个系统的开发, 升级, 维护成本, 达到打开浏览器就可以观看的效果....在我们这个场景下WebRTC服务端会拒绝WebRTR的FIR信息, 通过下一个关键帧来解决关键帧丢失的问题.
2, RTMP源站以及边缘站尽可能的不做任何缓存
在一个帧率为25FPS的直播流中, 缓存一帧就会增加...经过测试H264的编码参数选择可以选择为baseline level3.
4, PPS和SPS
在RTMP场景中通常我们只会在推流开始的时候加入PPS和SPS, 但WebRTC要求在每个关键帧前面都有PPS...我实现了一个RTMP推流WebRTC播放的原型实现, 在阿里云上测试延迟在1000ms以内, 经过一些优化可以把延迟降低到500ms以内.