在上篇文章中我们使用nginx + nginx-rtmp-module创建了自己的直播服务,也可以使用OBS进行推流、VLC进行播放等。
但是在拉流时我们会遇到一个问题:卡顿。当我们的服务器的下行带宽设置为1Mbps时,在拉流的时候出现明显的卡顿问题,而且是只有一个人播放的时候会出现卡顿。
问题的解决方案也很简单,增加服务器下行带宽即可(这就是为什么上篇服务器带宽购买的是7M的下行带宽)。但是考虑到成本问题,盲目的增加带宽并不是一个性价比高的办法,此时我们就需要使用第三方CDN对我们的服务器进行加速,这样既可以压缩成本,也可以对拉流不分地域的进行提速。
但是问题有来了,在查询阿里云、七牛云、腾讯云等CDN方案时,只能对文件、录播进行加速,并不能直接加速我们的直播(可加速各自平台的直播服务),这样怎么办呢?
下面的方案可供参考:以阿里云的OSS + CDN为例,由于CDN可以加速文件,我们将自己流媒体服务器在直播时产生的“*.m3u8”、“*.ts”文件实时传输到OSS中,然后通过加速域名进行拉流,即可实现直播的加速。
但是此方案有很多缺点:
1. 只能对通过http(s)播放.m3u8的用户进行加速,不能加速使用 rtmp:// 进行拉流的用户;
2. 由于上传到OSS需要时间,所以在延迟上会相应的增加时间;
3. 需要平衡ts切片时间、OSS上传时间等,防止用户播放时在CDN中获取不到文件的问题;
{{ cmt.username }}
{{ cmt.content }}
{{ cmt.commentDate | formatDate('YYYY.MM.DD hh:mm') }}