主要考虑以下两种情况
1)上传端网络波动比较大。
2)收听端网络比较大。
当主播网络波动到低点时,可以重新修改编解码参数到一个比较低的码率值,此时需要注意的是修改过对于的音视频数据的metadata,基头两-三个字节。
但收听端网络不佳的时候,可以通知服务,只发关键帧或者干脆不发视频帧,只发音频帧,因为在视频会议中,音频的优先级别要大于视频的优先级别,不过。rtmp协议本身并不支持这种命令,需要自己扩展
具体到srs中,因为每一路的play都是通过一个consumer来做代理的,consumer中,保存了音视频数据的ref,这时可以在consumer中增加一个标志量,如果接受到减少视频传输甚至是不进行视频传输的质量,可以丢弃一系列的包。来实现。