一种基于网络状况调节手机视频通话动态码率的方法

文档序号:1579904 发布日期:2020-01-31 浏览:5次 >En<

阅读说明:本技术 一种基于网络状况调节手机视频通话动态码率的方法 (method for adjusting dynamic code rate of mobile phone video call based on network condition ) 是由 曾立强 邵永托 黄熙 陈涛 于 2019-10-30 设计创作,主要内容包括:本发明公开一种基于网络状况调节手机视频通话动态码率的方法,采用的是推流端和流媒体服务端通过发送特定指令和接收到指令之间所花费时间来检测网络的强落。本发明采用Socket向流媒体发送数据流,精准的检测推流端到服务端的网络状态,提供了动态码率的有效依据;为了达成动态码率,在好的网络下提高通话质量,在弱网络下实现无感知的降低码率,保证通话质量,不影响直播体验效果。本发明能够准确、即时的检测到网络强弱,来适当调整发送媒体数据的码率,实现弱网络和较好网络无感知切换通话质量。(The invention discloses methods for adjusting dynamic code rate of mobile phone video call based on network condition, which adopts the time spent between the sending of specific instruction and the receiving of the instruction by the stream pushing end and the streaming media server end to detect the strong drop of the network.)

一种基于网络状况调节手机视频通话动态码率的方法

技术领域

本发明涉及视频通话技术,尤其涉及一种基于网络状况调节手机视频通话动态码率的方法。

背景技术

近两年来直播行业越来越火热,各个直播平台加一起差不多有三百多家,有些直播平台做秀场、综娱的直播、户外直播,比如来疯直播,有的做游戏直播,比如斗鱼、虎牙直播,有的做体育赛事直播,比如乐视直播等,分类也各种各样。

由于直播类型、移动终端的多样性,无线网络的波动性以及移动终端的处理能力有限这些因素制约了移动流媒体的发展,需要研究相应的技术来解决这些问题。 码率变换的转码可以根据终端的处理能力以及网络带宽的条件,提供最合适的视频流,因此是解决上述问题的关键技术。要变换码率,最直接的方法是采用级联式码率变换转码器,它将解码后的视频流按目标码率进行重新编码,从而能得到最佳的图像质量,但是完整的解码和编码过程具有极高的计算复杂度;另一种方法是采用开环式码率变换转码器,它通过解码到DCT域来重新量化系数,该方法形式简单、运算量小,但因丢失高频信息,解码图像质量损伤在图组内累加,从而加重了漂移现象。

简而言之:好的网络环境下,音视频数据能够的到及时的发送,不会造成音视频数据在本地的堆积,直播效果流畅、延时低。弱网络的环境下,音视频数据发送慢,在本地大量堆积,导致直播出现黑屏、卡顿、延时等现象,用户体验感差。

发明内容

本发明的目的在于提供一种基于网络状况调节手机视频通话动态码率的方法。

本发明采用的技术方案是:

一种基于网络状况调节手机视频通话动态码率的方法,其包括以下步骤:

步骤1,推流端发送特定指令A给服务端,同时记录下发送的时间T1;

步骤2,服务端收到指令A时立即返回指定指令B给推流端;

步骤3,推流端收到指令B,同时记录收到时间T2;

步骤4,推流端计算发送A指令时间T1以及接收到B指令时间T2,相减得到时间差T3;

步骤5,基于时间差T3判断当前网络环境状态;

当时间差T3大于或等于网络环境判断阈值t时,判定数据发送到服务端较慢为弱网络环境并执行步骤6;当时间差T3小于网络环境判断阈值t时,判定数据发送到服务端所需要的时间较小为好网络环境并执行步骤8;

步骤6,弱网络环境次数n加1并将好网络环境次数m清零,并判断n的值是否大于第一调码阈值N;是则,执行步骤7;否则,执行步骤1;

步骤7,判断当前是否处于低码率状态;是则,不改变码率并执行步骤1;否则,降低当前码率并执行步骤1;

步骤8,好网络环境次数m加1并将弱网络环境次数n清零,并判断m的值是否大于调码阈值M;是则,执行步骤9;否则,执行步骤1;

步骤9,判断当前是否处于高码率状态;是则,不改变码率并执行步骤1;否则,提高当前码率并执行步骤1。

进一步地,步骤1中推流端利用socket发送指定指令A。

进一步地,步骤3中当推流端在发送的时间T1之后的2秒内未收到指令B,则直接判断为弱网络环境并执行步骤6。

进一步地,步骤5网络环境判断阈值t为100毫秒。

进一步地,步骤6中第一调码阈值N的取值为5。

进一步地,步骤8中第二调码阈值M的取值为3。

进一步地,处于高码率状态时将每一视频帧分为1400字节的小包来发送。

本发明采用以上技术方案,采用Socket向流媒体发送数据流,精准的检测推流端到服务端的网络状态,提供了动态码率的有效依据;为了达成动态码率,在好的网络下提高通话质量,在弱网络下实现无感知的降低码率,保证通话质量,不影响直播体验效果。本发明方法适用于Android端在视频通话中,通过检测网络通道信号强弱,来适当调整发送媒体数据的码率。

附图说明

以下结合附图和

具体实施方式

对本发明做进一步详细说明;

图1为本发明一种基于网络状况调节手机视频通话动态码率的方法的交互示意图。

具体实施方式

如图1所示,为了解决弱网络环境导致食品通话延时、卡顿、黑屏等问题,本发明公开了一种基于网络状况调节手机视频通话动态码率的方法,其包括以下步骤:

步骤1,推流端发送特定指令A给服务端,同时记录下发送的时间T1;具体地,推流端利用socket发送指定指令A;

步骤2,服务端收到指令A时立即返回指定指令B给推流端;

步骤3,推流端收到指令B,同时记录收到时间T2;进一步地,当推流端在发送的时间T1之后的2秒内未收到指令B,则直接判断为弱网络环境并执行步骤6;

步骤4,推流端计算发送A指令时间T1以及接收到B指令时间T2,相减得到时间差T3;

步骤5,基于时间差T3判断当前网络环境状态;

当时间差T3大于或等于网络环境判断阈值t时,判定数据发送到服务端较慢为弱网络环境并执行步骤6;当时间差T3小于网络环境判断阈值t时,判定数据发送到服务端所需要的时间较小为好网络环境并执行步骤8;

具体地,网络环境判断阈值t为100毫秒;

步骤6,弱网络环境次数n加1并将好网络环境次数m清零,为了避免网络的波动导致码率频繁的切换,判断n的值是否大于第一调码阈值N;是则,执行步骤7;否则,执行步骤1;具体地,第一调码阈值N的取值为5;

步骤7,判断当前是否处于低码率状态;是则,不改变码率并执行步骤1;否则,降低当前码率并执行步骤1;

步骤8,好网络环境次数m加1并将弱网络环境次数n清零,为了避免网络的波动导致码率频繁的切换,判断m的值是否大于调码阈值M;是则,执行步骤9;否则,执行步骤1;具体地,第二调码阈值M的取值为3;

步骤9,判断当前是否处于高码率状态;是则,不改变码率并执行步骤1;否则,提高当前码率并执行步骤1。

进一步地,处于高码率状态时将每一视频帧分为1400字节的小包来发送。

本发明在推流端利用socket发送指定指令A到服务端,服务端收到指令A返回指定指令B给推流端,推流端接收到指令B,可以计算收到指令B时间减去发送指令A得到时间差,来有效的检测网络状态(PS:若2秒未收到指令B,者可以判断当前网络较弱),以此动态来切换视频编码码率,保证直播的流畅。进而实现在网络较好的情况时提高视频编码码率,使每一视频帧更加高清清晰,同时每一视频帧的大小将变大,为此在编码的时候,将每一视频帧分为1400字节的小包来发送。在网络弱的情况下,降低视频编码码率,使每一帧视频帧处于清晰,同时每一视频帧的大小将变小,有利于服务端更好的组帧成像。

本发明采用以上技术方案,不同于市场上针对于Android手机检测网络方法,市场上很多采用的是手机端发送字节数和接收字节数进行网络判断,本发明方法采用的是推流端和流媒体服务端通过发送特定指令和接收到指令之间所花费时间来检测网络的强落。本发明采用Socket向流媒体发送数据流,精准的检测推流端到服务端的网络状态,提供了动态码率的有效依据;为了达成动态码率,在好的网络下提高通话质量,在弱网络下实现无感知的降低码率,保证通话质量,不影响直播体验效果。本发明能够准确、即时的检测到网络强弱,并实现弱网络和较好网络无感知切换通话质量。本发明方法适用于Android端在视频通话中,通过检测网络通道信号强弱,来适当调整发送媒体数据的码率。

6页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种远程信息处理方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类