需要注意的问题
当然事情不可能那么完美, 让RTMP和WebRTC可以很好的互通也需要做一些额外的工作:
1, RTMP推流端低延迟以及GOP大小
如果想做到低延迟, 我们需要在推流端尽可能的快,...同时RTMP-CDN一般都会有GOP cache, 会缓存最近的一个GOP, GOP太大是没法做到低延迟的, 可以考虑把GOP设置在1秒....在我们这个场景下WebRTC服务端会拒绝WebRTR的FIR信息, 通过下一个关键帧来解决关键帧丢失的问题.
2, RTMP源站以及边缘站尽可能的不做任何缓存
在一个帧率为25FPS的直播流中, 缓存一帧就会增加...在我们这个场景下RTMP的源站和边缘站除了做一些GOP cache外, 其他缓存要尽可能的小.
3, 编码器参数设置
WebRTC对H264的支持还没有那么完美, 比如在chrome支持H264的baseline...支持rtp输入的开源WebRTC mediaserver 有janus-gateway, medooze mediaserver.