今天周末稍微放松下,看了下最近很火的龙岭迷窟,由于是腾讯视频独家,所以打开了N年没碰过的腾讯视频,平常都是B站以及Youtube上的多。由于之前联通办了个王卡套餐,送了会员,所以选择1080P画质播放,可是没看多久,画面就出现我再熟悉不过的花屏马赛克了。
我想,这腾讯视频点播难道不是传统的基于TCP的RTMP或者HLS吗,怎么可能花屏,难道基于WebRTC?打开Wireshark看了下,全是加密的UDP数据包,然后打开浏览器的:chrome://webrtc-internals/,可以看到用的是WebRTC中的DataChannel,按这播放体验,应该是配置为不可靠传输了,具体我就不分析了。
没想到腾讯把WebRTC DataChannel不可靠配置那套用在传统的视频点播上,但是播放体验极差,弱网丢包严重的情况下,一直花屏,我调到最低分辨率才勉强能看。后来下了客户端看,虽然不花屏了,但是会卡,卡一会儿重新播放之前画面,之前画面循环播放了好几次,我想此时丢包太严重了,新的视频帧还没拼完整,只能一直重播之前缓存数据。
说实话在浏览器端,还是传统的基于TCP的点播方式好点,我宁愿缓冲界面,也不希望满屏的马赛克花屏。而且腾讯视频当前不能自动调整分辨率,下行这块没有带宽估计(这也是我目前的研究),花屏了得自己手动调整分辨率,对于普通用户来说,可能都不知道这满屏马赛克什么原因,也许还以为电脑出问题了,毕竟对普通用户的传统直觉来说,网络不行就应该是对应缓冲画面。
文章评论
他们这个只用了 datachannel
@leeoxiang 其实他这个是P2P
@九阳神功爱喝茶 是的,就算是DataCnanel,底层也还是基于UDP那一套P2P传输
rtc不是有码率自适应吗?为什么会出现弱网马塞克呢,应该会画面自动变差然后变流畅呀
@whale 前面的评论说到了,用的是DataChannel那套,基于sctp协议。不过现在恢复到hls那套了。