登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

查看: 235|回复: 7

搞定直播软件系统延时问题的小技巧

[复制链接]

47

主题

53

帖子

280

安币

攻城狮

Rank: 3Rank: 3

QQ
发表于 2019-1-4 10:24:28 | 显示全部楼层 |阅读模式
微信图片_20190104092854.png 微信图片_20190104092901.png 微信图片_20190104092906.png
常言道“巧干能捕雄狮,蛮干难捉蟋蟀。”即做事需要讲究方法不要蛮干,这个道理在开发直播软件系统的过程中也同样适用。我们都知道延时对于直播app来说就等于“致命伤害”,如果不克服这一点就无法在浩浩荡荡的互联网大军中生存。于是为了应对这一问题,我们可以简单总结一下关于低延迟优化方面的几点技巧。
1.传输协议的优化
如果终端的用户使用RTMP协议播放,就需要去靠近推流端的节点进行转码,这样一来传输的视频流就会比原始的视频流更小一些。在服务端的节点之间尽量使用RTMP进行传输,可以降低整体的传输延迟。有必要的话还可以使用定制的UDP协议,以避免弱网环境下的丢包重传,从而降低延迟。但是这一协议的缺点有两个:一个是容易出现丢包导致的花瓶或缺少关键帧的解码参考,另一个是视频流的传输和分发不通用。市面上的CDN厂商支持的都是标准的传输协议,所以就需要定制UDP协议的一方在UDP的基础上做好丢包控制。
2.推流中播放的优化
播放端的缓存控制对视频的首开延迟有较大的影响,如果仅仅只优化首开延迟的话,就需要在零缓存的情况下,在数据到达之后就立即进行解码。但是如果为了消除在弱网环境下网络抖动所造成的影响,就需要设置一定的缓存然后在直播的稳定性和首开延迟优化之间找到平衡点。所以我们可以在播放器开启时采用非常小或者是零缓存的方法,通过下载首片视频的耗时决定下一个时间片段的缓存大小,还可以同时在播放过程中实时监测当前网络并调整播放过程中的缓存大小。这一方法不仅可以降低首开的时间还可以极大程度的消除网络抖动所造成的影响。除了调整缓冲器的大小,还可以利用实时监测的网络信息去动态调整播放过程中的码率,然后在带宽不足的情况下降低码率播放,减少延迟。
3.传输网络的优化
开发直播软件系统时,服务端的节点中会缓存当前的GOP然后配合播放端优化视频的首开时间。大部分的服务端都会实时记录每个视频流所流向每个环节时的码率和帧率,从而实时监控码率和帧率的波动情况,客户端可以通过查询获取当前最有节点和出现故障的节点或线路。
4.编码的优化
编码器通常会有码控造成延迟,所以在不影响视频质量的情况下可以把码率设置的小一点降低延迟。而固定码率编码CBR能在一定程度上消除网络抖动的影响,并节省网络带宽降低延迟。
开发直播软件系统时需要在不影响用户使用体验的情况下做到低延迟,所以在优化直播过程中的延迟问题也是需要不同技巧的。无论是哪一种技巧,最终目的都是为了提升用户使用体验,增加用户黏性从而得到长久发展。

7

主题

9511

帖子

1979

安币

Android大神

Rank: 6Rank: 6

发表于 2019-1-4 10:35:06 | 显示全部楼层
支持楼主,支持安卓巴士!

501

主题

1123

帖子

2075

安币

手工艺人

发表于 2019-1-4 10:37:08 | 显示全部楼层
感谢分享,楼主V5~

394

主题

935

帖子

866

安币

手工艺人

发表于 2019-1-4 10:53:21 | 显示全部楼层
每次我都积极回帖的,想要安币~

503

主题

1091

帖子

2057

安币

手工艺人

发表于 2019-1-4 10:55:51 | 显示全部楼层
楼主威武,以后多发干货,多办活动~!

429

主题

1036

帖子

1920

安币

手工艺人

发表于 2019-1-4 11:06:57 | 显示全部楼层
感觉楼主很用心,辛苦啦~

6

主题

9451

帖子

2892

安币

Android大神

Rank: 6Rank: 6

发表于 2019-1-4 11:07:07 | 显示全部楼层
每次我都积极回帖的,想要安币~

4

主题

518

帖子

9036

安币

码皇(巴士元老)

Rank: 8Rank: 8

发表于 2019-1-9 08:34:48 | 显示全部楼层
感谢分享,安卓巴士有你更精彩:)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

下载安卓巴士客户端

全国最大的安卓开发者社区
联系我们
关闭
合作电话:
15618560077
Email:
805941275@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表