我们做视频会议的小程序,本端把音视频经过rtmp到服务器,后台把音频去掉了之后生成新的rtmp流地址给远端播放纯视频,音频是把大家的麦克风合成了一个rtmp地址用另一个live-player播放。
相关问题:
网络波动(wifi、4G信号不好)或者对网络限速,live-player会产生延迟,网络恢复后live-player不会恢复延迟。该问题从7.0.5版本开始一直就存在,我们做了大量的测试及对后台的架构调整也无法解决,现在也是没办法了。
问题的一些尝试:
后来发现,我们直接在live-player中播放上送给服务器的rtmp地址(带音视频的流),网络波动后产生的延迟可以恢复到波动之前的水平。
我们猜测可能是流里没混音频才引起的问题,之后我们把远端的流里混了一些可以解码但无效的音频数据,发现安卓奇迹般的可以恢复到很低的延迟,但是苹果上并没有丝毫好转。
我们没有长期的rtmp地址,都是根据会议动态生成的rtmp地址,可以使用我们的小程序用两个手机进入同一个会议。故意制造网络不好的环境(走到wifi信号不好的地方或者对网络限速),即可复现。
希望官方进解决我们的问题,谢谢。
appid: wx61afdde337ea8d21
我电脑端打开小程序用live-player 播放, 比同时同电脑的 vlc 慢很多, 还不清晰. 真是服了, 之前没有这个问题的.....
当推送纯视频流时,请根据视频时间戳同步发送对应数据量的静音数据。比如如果fps是15,每隔66ms发送一帧视频,这个时候应该相应发送66/21(假设采样率是48000)= 3帧静音数据(请注意在随后的发送逻辑里计算上66/21的余数,否则会有累计延时)。