CN105791735B - 用于视频通话码流动态调整的方法和系统 - Google Patents
用于视频通话码流动态调整的方法和系统 Download PDFInfo
- Publication number
- CN105791735B CN105791735B CN201410814505.1A CN201410814505A CN105791735B CN 105791735 B CN105791735 B CN 105791735B CN 201410814505 A CN201410814505 A CN 201410814505A CN 105791735 B CN105791735 B CN 105791735B
- Authority
- CN
- China
- Prior art keywords
- client
- frame rate
- difference
- video
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开一种用于视频通话码流动态调整的方法和系统。该方法包括:第一客户端将视频编码时第一计时器的计时值作为第一时间;第一客户端在发送视频数据给第二客户端时,将第一时间同时发送给第二客户端;第二客户端将接收到的所述视频数据进行解码播放,并将视频数据进行解码播放时第二计时器的计时值作为第二时间;第二客户端获取第一时间和第二时间的差值,并实时将所述差值发送给第一客户端;第一客户端通过比较所述差值和预定阀值,获取当前通话性能效果;第一客户端根据当前通话性能效果对编码视频码流进行动态调整。本发明通过判断视频图像延迟的大小,实现视频通话码流动态自适应调整的,从而减少或避免图像延迟、丢包等异常现象。
Description
技术领域
本发明涉及视频通信领域,特别涉及一种用于视频通话码流动态调整的方法和系统。
背景技术
基于视频通信技术,实现视频通话(或可视电话)应用产品目前发展得如火如荼,成为应用提供商、运营商和用户关注的焦点,当前视频通话正朝高清方向发展。
实时的视频通话中,发送端的系统及客户端,需要将本地采集的音视频进行编码压缩、再通过本方网络上行链路向对端发送数据。接收端的系统及客户端,需要通过本方网络下行链路来接收的音视频数据、而后再进行解码播放。
实际应用中,当视频通话发送端或接收端的网络带宽上行或下行发生动态变化时,或当发送端或接收端系统的处理能力发生变化时,都将对视频通话性能效果造成影响。
目前现有的码流动态调整方法,一般是发送端通过网络测速技术、检测到本方上行带宽网络端口的实时码流(带宽)大小,而后与本方编码视频初始码流大小进行比较判断。譬如前者小于后者,则可以判断出现了发送拥塞,需即时降低编码视频初始码流的大小。
目前的码流动态调整技术,存在比较明显的缺陷:
一是发送端只能探知本方的网络带宽情况,而无法探知接收端的情况。即使发送端上行带宽畅通,但视频数据到达接收端时、接收端下行网络拥塞,同样也会出现视频通话异常的问题。有些应用作了改进,也就是接收端也检测接收端的下行带宽,但如何及时可靠地反馈给发送端也是个难题。
二是发送端只能探知网络带宽,而对系统的处理能力(如内存缓冲、编解码处理)还无法提供有效的检测手段。即使网络带宽完全畅通,但终端的系统处理能力较低时,也会出现视频通话异常的问题。接收端是先从网络传输端口获取到视频数据、而后才送交到系统处理,故检测到接收端下行网络码流大小,就无法涵盖反映接收端的系统处理能力情况。
三是网络测速实现方法比较复杂,同时又由于网络端口实时流量数据经常是波动很大,将会造成终端对是否出现异常情况、无法及时合理地进行分析判断。
发明内容
鉴于以上技术问题,本发明提供了一种用于视频通话码流动态调整的方法和系统,通过判断视频图像延迟的大小,实现视频通话码流动态自适应调整的,从而减少或避免图像延迟、丢包等异常现象。
根据本发明的一个方面,提供一种用于视频通话码流动态调整的方法,包括:
第一客户端将视频编码时第一计时器的计时值作为第一时间;
第一客户端在发送视频数据给第二客户端时,将第一时间同时发送给第二客户端;
第二客户端将接收到的所述视频数据进行解码播放,并将视频数据进行解码播放时第二计时器的计时值作为第二时间,其中,第一客户端的第一计时器和第二客户端的第二计时器的时钟同步;
第二客户端获取第一时间和第二时间的差值,并实时将所述差值发送给第一客户端;
第一客户端通过比较所述差值和预定阀值,获取当前通话性能效果;
第一客户端根据当前通话性能效果对编码视频码流进行动态调整。
在本发明的一个实施例中,第二客户端实时将所述差值发送给第一客户端的步骤包括:
第二客户端在向第一客户端发送视频数据时,将所述差值实时发送给第一客户端。
在本发明的一个实施例中,第一客户端通过比较所述差值和预定阀值,获取当前通话性能效果的步骤包括:
若连续M次判定所述差值大于预定阀值,则第一客户端判定通话性能效果下降,其中,M为大于0的自然数;
若连续N次判定所述差值不大于预定阀值,则第一客户端判定通话性能效果上升,其中,N为大于0的自然数,且N≥M。
在本发明的一个实施例中,第一客户端根据当前通话性能效果对编码视频码流进行动态调整的步骤包括:
若第一客户端判定通话性能效果下降,则第一客户端降低编码视频的帧率和/或分辨率;
若第一客户端判定通话性能效果上升,则第一客户端提高编码视频的帧率和/或分辨率。
在本发明的一个实施例中,第一客户端降低编码视频的帧率和/或分辨率的步骤包括:
判断当前帧率是否大于第一预定帧率;
若当前帧率大于第一预定帧率,则以预定幅度降低当前帧率;
若当前帧率不大于第一预定帧率,则降低分辨率,同时将当前帧率调整为最高帧率,其中第一预定帧率小于最高帧率。
在本发明的一个实施例中,第一客户端提高编码视频的帧率和/或分辨率的步骤包括:
判断当前帧率是否小于第二预定帧率;
若当前帧率小于第二预定帧率,则以预定幅度提高当前帧率;
若当前帧率不小于第二预定帧率,则提升分辨率,同时将当前帧率调整为最低帧率,其中第二预定帧率大于最低帧率。
根据本发明的另一方面,提供一种用于视频通话码流动态调整的系统,包括第一客户端和第二客户端,其中:
第一客户端,用于将视频编码时第一计时器的计时值作为第一时间;在发送视频数据给第二客户端时,将第一时间同时发送给第二客户端;通过比较第二客户端发送的差值和预定阀值,获取当前通话性能效果;并根据当前通话性能效果对编码视频码流进行动态调整;
第二客户端,用于将接收到的所述视频数据进行解码播放,并将视频数据进行解码播放时第二计时器的计时值作为第二时间;以及获取第一时间和第二时间的差值,并实时将所述差值发送给第一客户端,其中,第一客户端的第一计时器和第二客户端的第二计时器的时钟同步。
在本发明的一个实施例中,第二客户端在实时将所述差值发送给第一客户端时,具体用于在向第一客户端发送视频数据时,将所述差值实时发送给第一客户端。
在本发明的一个实施例中,第一客户端通过比较所述差值和预定阀值,获取当前通话性能效果时,具体用于在连续M次判定所述差值大于预定阀值时,判定通话性能效果下降,其中,M为大于0的自然数;在连续N次判定所述差值不大于预定阀值时,判定通话性能效果上升,其中,N为大于0的自然数,且N≥M。
在本发明的一个实施例中,第一客户端根据当前通话性能效果对编码视频码流进行动态调整时,具体用于在第一客户端判定通话性能效果下降时,降低编码视频的帧率和/或分辨率;在第一客户端判定通话性能效果上升时,提高编码视频的帧率和/或分辨率。
在本发明的一个实施例中,第一客户端降低编码视频的帧率和/或分辨率时,具体用于判断当前帧率是否大于第一预定帧率;在当前帧率大于第一预定帧率时,以预定幅度降低当前帧率;并在当前帧率不大于第一预定帧率时,降低分辨率,同时将当前帧率调整为最高帧率,其中第一预定帧率小于最高帧率。
在本发明的一个实施例中,第一客户端提高编码视频的帧率和/或分辨率时,具体用于判断当前帧率是否大于第二预定帧率;在当前帧率小于第二预定帧率时,以预定幅度提高当前帧率;在当前帧率不小于第二预定帧率时,提升分辨率,同时将当前帧率调整为最低帧率,其中第二预定帧率大于最低帧率。
在本发明的一个实施例中,所述系统还包括时间同步服务器,其中:
时间同步服务器,用于对第一客户端的第一计时器和第二客户端的第二计时器进行时钟同步。
本发明方法简单、实现难度小,对视频通话系统开发改动不大,只需要利用现有的视频通话计时器,在视频通话过程中获取视频延迟,并通过比较视频延迟与预定阀值,即可实现码流动态自适应调整;本发明同步通话计时器出现的延迟差值,是网络带宽和系统处理能力共同影响的结果体现,能全面地、准确地、可靠地反映出通话性能效果状态、实际应用效果好。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明用于视频通话码流动态调整的方法一个实施例的示意图。
图2为本发明一个实施例中视频通话过程的流程图。
图3为本发明一个实施例中确定当前通话性能效果的示意图。
图4为本发明一个实施例中根据当前通话性能效果对编码视频码流进行动态调整的示意图。
图5为本发明一个实施例中当前通话性能效果下降时对编码视频码流进行动态调整的示意图。
图6为本发明一个实施例中当前通话性能效果上升时对编码视频码流进行动态调整的示意图。
图7为本发明用于视频通话码流动态调整的方法另一实施例的示意图。
图8为本发明一个实施例中根据视频通话延时对编码视频码流进行动态调整的示意图。
图9为本发明用于视频通话码流动态调整的系统一个实施例的示意图。
图10为本发明用于视频通话码流动态调整的系统另一实施例的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1为本发明用于视频通话码流动态调整的方法一个实施例的示意图。优选的,本实施例可由本发明用于视频通话码流动态调整的系统执行。该方法包括以下步骤:
步骤101,在第一客户端和第二客户端进行视频通话时,第一客户端将视频编码时第一计时器的计时值作为第一时间,其中第一计时器为第一客户端的通话计时器。
在本发明的一个实施例中,第一客户端在视频压缩H.264的图像关键帧(I帧)内,新增3个字节数据位,用于存入发送端在视频编码时的通话计时器数字;通话时长计时器的计时值为hh:mm:ss(满度时间为99:59:59,即359999秒);而3个字节中数据存放范围0~16777215秒,可以满足要求。
步骤102,第一客户端在发送视频数据给第二客户端时,将第一时间同时发送给第二客户端。
步骤103,第二客户端将接收到的所述视频数据进行解码播放,并将视频数据进行解码播放时第二计时器的计时值作为第二时间,其中,第二计时器为第二客户端的通话计时器,第一客户端的第一计时器和第二客户端的第二计时器的时钟同步。
在本发明的一个实施例中,步骤103中,第二客户端可以将第二客户端的播放器接收到所述视频数据时第二计时器的计时值作为第二时间。
步骤104,第二客户端获取第一时间和第二时间的差值σ,并实时将所述差值发送给第一客户端。
在本发明的一个实施例中,步骤104中,第二客户端实时将所述差值发送给第一客户端的步骤包括:第二客户端在向第一客户端发送视频数据时,将所述差值实时发送给第一客户端。
在本发明的一个实施例中,第二客户端将计算的差值,在其反过来作为发送端角色时,也相应在视频图像关键帧内、再增加1个字节数据位,用于存放所述差值,第二客户端由此可将所述差值及时反馈给第一客户端。
在本发明的一个实施例中,差值σ的范围0~255秒,差值σ的初始值为2秒。
步骤105,第一客户端通过比较所述差值σ和预定阀值Ω,获取当前通话性能效果。
步骤106,第一客户端根据当前通话性能效果对编码视频码流进行动态调整。
基于本发明上述实施例提供的用于视频通话码流动态调整的方法,方法简单、实现难度小,对视频通话系统开发改动不大,只需要利用现有的视频通话计时器,在视频通话过程中获取视频延迟,并通过比较视频延迟与预定阀值,即可实现码流动态自适应调整;本发明同步通话计时器出现的延迟差值,是网络带宽和系统处理能力共同影响的结果体现,能全面地、准确地、可靠地反映出通话性能效果状态、实际应用效果好。
在本发明的一个实施例中,无论σ≥Ω或者是σ<Ω,要求第二客户端将持续不断一直进行结果反馈,同时第一客户端也要求能持续不断地一直进行相应的码流动态调整处理。
在本发明的一个实施例中,在步骤101之前,所述方法还可以包括:第一客户端和第二客户端在进入通话状态时、各自显示的通话计时器同时开始计时,之后通过时间同步服务器一直保持同步一致。
图2为本发明一个实施例中视频通话过程的流程图。图1所示的用于视频通话码流动态调整的方法,可以应用于如图2所示的视频通话过程中。
图2所示的视频通话过程,包括第一客户端和第二客户端同时互发视频数据,其中:
第一客户端向第二客户端发送视频数据的过程包括:
步骤S201,第一客户端进行视频采集编码压缩。
步骤S202,第一客户端对视频数据进行发送处理、内存缓冲。
步骤S203,第一客户端的网络上行链路向家庭网关发送所述视频数据。
步骤S204,第二客户端的网络下行链路从家庭网关接收所述视频数据。
步骤S205,第二客户端对视频数据进行接收处理、内存缓冲。
步骤S206,第二客户端对视频数据解码和播放处理。
同时,第二客户端向第一客户端发送视频数据的过程包括:
步骤S21,第二客户端进行视频采集编码压缩。
步骤S22,第二客户端对视频数据进行发送处理、内存缓冲。
步骤S23,第二客户端的网络上行链路向家庭网关发送所述视频数据。
步骤S24,第一客户端的网络下行链路从家庭网关接收所述视频数据。
步骤S25,第一客户端对视频数据进行接收处理、内存缓冲。
步骤S26,第一客户端对视频数据解码和播放处理。
如图2所示,在视频通话过程中,通话双方(第一客户端和第二客户端),无论是主叫或被叫,视频通话阶段均会相互之间同时互发视频数据,因此也就是互为发送端和接收端,两者均需要根据当前实际通话性能效果,同时进行如图1方法所示的码流动态调整处理。
图1中仅给出了第一客户端向第二客户端发送的视频数据的动态码流的调整过程。由此,当第二客户的向第一客户端发送视频数据时,将图1所示方法中第一客户端和第二客户端执行的步骤进行对调,同样可以实现第二客户的向第一客户端发送的视频数据的动态码流的调整。
图3为本发明一个实施例中确定当前通话性能效果的示意图。如图3所示,图1所示实施例中的步骤105可以包括:
步骤301,若连续M次判定所述差值σ大于预定阀值Ω,则第一客户端判定通话性能效果下降,其中,M为大于0的自然数。
步骤302,若连续N次判定所述差值σ不大于预定阀值Ω,则第一客户端判定通话性能效果上升,其中,N为大于0的自然数,且N≥M。
在本发明的上述实施例中,由于N≥M,在通话性能效果下降时,第一客户端对编码视频码流进行动态调整(即第一客户端进行码流下调)时,调整速度较快;在通话性能效果上升时,第一客户端对编码视频码流进行动态调整(即第一客户端进行码流上调)时,调整速度较为缓慢。
在本发明的一个实施例中,所述方法还包括:若当前σ与Ω的关系,即不满足连续M次σ大于Ω,也不满足连续N次σ不大于Ω,则判定通话性能效果不变,不对码流进行调整。
图4为本发明一个实施例中根据当前通话性能效果对编码视频码流进行动态调整的示意图。如图4所示,图1所示实施例中的步骤106可以包括:
步骤401,若第一客户端判定通话性能效果下降,则第一客户端降低编码视频的帧率和/或分辨率,从而可以获得图像流畅的通话效果。
步骤402,若第一客户端判定通话性能效果上升,则第一客户端提高编码视频的帧率和/或分辨率,从而可以获得图像更流畅、更清晰的通话效果。
图5为本发明一个实施例中当前通话性能效果下降时对编码视频码流进行动态调整的示意图。如图5所示,图4所示实施例的步骤401中,第一客户端降低编码视频的帧率和/或分辨率的步骤可以包括:
步骤501,判断当前帧率是否大于第一预定帧率。若当前帧率大于第一预定帧率,则执行步骤502。否则,若当前帧率不大于第一预定帧率,则执行步骤503。
步骤502,以预定幅度降低当前帧率。
步骤503,将分辨率降低一个等级(例如从720P降低到VGA),同时将当前帧率调整为最高帧率,其中第一预定帧率小于最高帧率。
图6为本发明一个实施例中当前通话性能效果上升时对编码视频码流进行动态调整的示意图。如图6所示,图4所示实施例的步骤402中,第一客户端提高编码视频的帧率和/或分辨率的步骤包括:
步骤601,判断当前帧率是否小于第二预定帧率。若当前帧率小于第二预定帧率,则执行步骤602。否则,若当前帧率不小于第二预定帧率,则执行步骤603。
步骤602,以预定幅度提高当前帧率。
步骤603,将分辨率提升一个等级(例如从CIF提升到VGA),同时将当前帧率调整为最低帧率,其中第二预定帧率大于最低帧率。
本发明的上述实施例考虑到在视频通话过程中,如果网络带宽或系统处理能力发生变化,所有异常情况的出现都将反映在视频图像延迟不同大小程度的变化上。视频通话双方向同一时间同步服务器进行时钟同步,进入通话状态后,发送端发送视频时的通话计时器时间、和接收端接收到相应视频时的通话计时器时间的差值,将等于视频通话的实时延迟大小。基于此,本发明提出了一种视频通话计时器实现码流动态调整的方法与系统,解决了实际应用过程中视频通话码流动态自适应调整的难题,从而减少或避免图像延迟、丢包等异常现象。
在本发明的一个实施例中,第一预定帧率为10FPS,最高帧率为25FPS;第二预定帧率为20FPS,最低帧率为10FPS。
本发明考虑到视频通话的实际场景,如帧率太低(不高于10FPS)体验效果就很差。因此本发明中提出:当下调策略执行时,且当帧率不高于10FPS时,将下调一级分辨率,并新帧率从25FPS开始;当上调策略执行时,且当帧率高于20FPS时,将上调一级分辨率,并新帧率从10FPS开始(也从10FPS开始,而不是从5FPS开始)”。
下面通过具体示例对本发明用于视频通话码流动态调整的方法进行说明:
图7为本发明用于视频通话码流动态调整的方法一个具体实施例的示意图。如图7所示,所述方法包括:
步骤S701,第一客户端在视频压缩H.264的图像关键帧(I帧)内,实时增加3个字节的数据,用于存放第一客户端当前通话计时器(第一计时器)的时间;并发送所述视频图像关键帧。
在本发明的一个实施例中,第一客户端将对图像关键帧(I帧)进行视频编码时第一计时器的计时值作为第一时间,写入图像关键帧(I帧)的三个字节中。
例如:在一个具体示例中,当前第一计时器的时间为00:02:09。
步骤S702,第二客户端从接收到的相应图像关键帧内提取出第一计时器时间(00:02:09)。
步骤S703,第二客户端将视频数据进行解码播放时第二计时器的计时值(00:02:17)作为第二时间;并将自身本地当前的第二计时器时间(00:02:17),与提取出来的第一计时器时间(00:02:09),进行比较、求出差值σ=8。
步骤S704,第二客户端将计算的差值σ,在其反过来作为发送端角色时,也相应要求在视频压缩H.264的图像关键帧(I帧)内,实时另增加1个字节,用于存放差值σ。差值σ的范围0~255秒,差值σ初始值为2秒。如是,第二客户端就可以以此方式,及时将差值信息反馈给第一客户端,以供其判断视频图像是否发生了延迟现象。
步骤S705,第一客户端提取视频图像的关键帧。
步骤S706,第一客户端获取差值σ;通过比较差值σ和预定阀值Ω,决定采取相应的码流动态调整措施。
在本发明的一个实施例中,无论σ≥Ω或者是σ<Ω,第二客户端持续不断一直进行结果反馈,第一客户端持续不断地一直进行相应的码流动态调整处理。
表1给出了本发明第一客户端根据第二客户端持续反馈的差值σ持续进行相应的码流动态调整的示意,其中第一时间TS为第一客户端对图像关键帧(I帧)进行视频编码时第一计时器的计时值;第二时间TR为第二客户端对视频数据进行解码播放时第二计时器的计时值;第一客户端采取的码流动态调整措施中记录了此次动态调整后的分辨率和帧率。
表1
图8为本发明一个实施例中根据视频通话延时对编码视频码流进行动态调整的示意图。如图8所示,图7实施例步骤S706中,通过比较差值σ和预定阀值Ω,决定采取相应的码流动态调整措施的步骤可以包括:
步骤801,第一客户端获取差值σ。
步骤802,判断差值σ是否满足连续两次大于Ω(考虑Ω为2秒)。
步骤803,若σ连续两次大于Ω,则第一客户端判定通话性能效果下降,以便第一客户端进行一次针对编码视频图像码流的调整处理。
例如,表1中第一时间为00:02:10、第二计时器时间为00:02:18的情况,σ已经连续两次大于Ω,此时第一客户端判定通话性能效果下降,第一客户端进行了一次针对编码视频图像码流的调整处理。
步骤804,判断当前帧率是否大于10帧/秒。若当前帧率大于10帧/秒,则执行步骤805;否则若当前帧率不大于10帧/秒,则执行步骤806。
步骤805,将当前帧率降低5帧/秒,以完成此次针对编码视频图像码流的调整处理;之后执行步骤801,即根据获取新的差值σ,以持续不断地一直进行相应的码流动态调整处理。
例如,表1中第一时间为00:02:10、第二计时器时间为00:02:18的情况中,当前的编码分辨率和帧率为(720P,25FPS),判定当前帧率为25帧/秒、大于10帧/秒,由此,动态调整处理为将当前帧率降低5帧/秒,即,将编码分辨率和帧率调整为(720P,20FPS)。
步骤806,将分辨率降低一个等级,同时将当前帧率调整为最高帧率(25帧/秒),以完成此次针对编码视频图像码流的调整处理;之后执行步骤801,即根据获取新的差值σ,以持续不断地一直进行相应的码流动态调整处理。
例如,表1中第一时间为00:02:16、第二计时器时间为00:02:21的情况中,当前的编码分辨率和帧率为(720P,10FPS),判定当前帧率为10帧/秒、不大于10帧/秒,由此,动态调整处理为将分辨率降低一个等级(从720P降低到VGA)、同时将当前帧率调整为最高帧率(25帧/秒),即,将编码分辨率和帧率调整为(VGA,25FPS)。
步骤807,判断差值σ是否满足连续十次不大于Ω(考虑Ω为2秒)。
步骤808,若σ连续十次不大于Ω,则第一客户端判定通话性能效果上升,以便第一客户端进行一次针对编码视频图像码流的调整处理。
例如,表1中第一时间为00:02:40、第二计时器时间为00:02:42的情况,σ已经连续十次不大于Ω,此时第一客户端判定通话性能效果上升,第一客户端进行了一次针对编码视频图像码流的调整处理。
步骤809,判断当前帧率是否小于20帧/秒。若当前帧率小于20帧/秒,则执行步骤810;否则若当前帧率不小于20帧/秒,则执行步骤811。
步骤810,将当前帧率提升5帧/秒,以完成此次针对编码视频图像码流的调整处理;之后执行步骤801,即根据获取新的差值σ,以持续不断地一直进行相应的码流动态调整处理。
步骤811,将分辨率提高一个等级,同时将当前帧率调整为最低帧率(10帧/秒),以完成此次针对编码视频图像码流的调整处理;之后执行步骤801,即根据获取新的差值σ,以持续不断地一直进行相应的码流动态调整处理。
例如,表1中第一时间为00:02:40、第二计时器时间为00:02:42的情况中,当前的编码分辨率和帧率为(CIF,20FPS),判定当前帧率为20帧/秒、不小于20帧/秒,由此,动态调整处理为将分辨率提高一个等级(从CIF提高到VGA)、同时将当前帧率调整为最低帧率(10帧/秒),即,将编码分辨率和帧率调整为(VGA,10FPS)。
图9为本发明用于视频通话码流动态调整的系统一个实施例的示意图。如图9所示,所述系统包括第一客户端901和第二客户端902,其中:
第一客户端901,用于将视频编码时第一计时器的计时值作为第一时间;在发送视频数据给第二客户端902时,将第一时间同时发送给第二客户端902;通过比较第二客户端902发送的差值和预定阀值,获取当前通话性能效果;并根据当前通话性能效果对编码视频码流进行动态调整。
第二客户端902,用于将接收到的所述视频数据进行解码播放,并将视频数据进行解码播放时第二计时器的计时值作为第二时间;以及获取第一时间和第二时间的差值,并实时将所述差值发送给第一客户端901,其中,第一客户端901的第一计时器和第二客户端902的第二计时器的时钟同步。
基于本发明上述实施例提供的用于视频通话码流动态调整的系统,实现难度小,对视频通话系统开发改动不大,只需要利用现有的视频通话计时器,在视频通话过程中获取视频延迟,并通过比较视频延迟与预定阀值,即可实现码流动态自适应调整;本发明同步通话计时器出现的延迟差值,是网络带宽和系统处理能力共同影响的结果体现,能全面地、准确地、可靠地反映出通话性能效果状态、实际应用效果好。
在本发明的一个实施例中,第一客户端901具体用于在视频压缩H.264的图像关键帧(I帧)内,新增3个字节数据位,用于存入发送端在视频编码时的通话计时器数字。
在本发明的一个实施例中,第二客户端902在实时将所述差值发送给第一客户端901时,具体用于在向第一客户端901发送视频数据时,将所述差值实时发送给第一客户端901。
在本发明的一个实施例中,第二客户端902具体用于将计算的差值,在其反过来作为发送端角色时,也相应在视频图像关键帧内、再增加1个字节数据位,用于存放所述差值。
由于如图2所示,在视频通话过程中,通话双方(第一客户端和第二客户端),无论是主叫或被叫,视频通话阶段均会相互之间同时互发视频数据,因此也就是互为发送端和接收端,两者均需要根据当前实际通话性能效果。
因此,在本发明的一个实施例中,第一客户端901和第二客户端902的功能可以互换。即,本发明即可以实现第一客户端向第二客户端发送的视频数据的动态码流调整,也可以实现第二客户的向第一客户端发送的视频数据的动态码流调整。
在本发明的一个实施例中,第一客户端901通过比较所述差值和预定阀值,获取当前通话性能效果时,具体用于在连续M次判定所述差值大于预定阀值时,判定通话性能效果下降,其中,M为大于0的自然数;在连续N次判定所述差值不大于预定阀值时,判定通话性能效果上升,其中,N为大于0的自然数,且N≥M。
在本发明的上述实施例中,由于N≥M,在通话性能效果下降时,第一客户端对编码视频码流进行动态调整(即第一客户端进行码流下调)时,调整速度较快;在通话性能效果上升时,第一客户端对编码视频码流进行动态调整(即第一客户端进行码流上调)时,调整速度较为缓慢。
在本发明的一个实施例中,第一客户端901根据当前通话性能效果对编码视频码流进行动态调整时,具体用于在第一客户端901判定通话性能效果下降时,降低编码视频的帧率和/或分辨率,从而可以获得图像流畅的通话效果;在第一客户端901判定通话性能效果上升时,提高编码视频的帧率和/或分辨率,从而可以获得图像更流畅、更清晰的通话效果。
在本发明的一个实施例中,第一客户端901降低编码视频的帧率和/或分辨率时,具体用于判断当前帧率是否大于第一预定帧率;在当前帧率大于第一预定帧率时,以预定幅度降低当前帧率;并在当前帧率不大于第一预定帧率时,降低分辨率,同时将当前帧率调整为最高帧率,其中第一预定帧率小于最高帧率。
在本发明的一个实施例中,第一客户端901提高编码视频的帧率和/或分辨率时,具体用于判断当前帧率是否大于第二预定帧率;在当前帧率小于第二预定帧率时,以预定幅度提高当前帧率;在当前帧率不小于第二预定帧率时,提升分辨率,同时将当前帧率调整为最低帧率,其中第二预定帧率大于最低帧率。
图10为本发明用于视频通话码流动态调整的系统另一实施例的示意图。与图4所示实施例相比,在图5所示实施例中,
在本发明的一个实施例中,所述系统还包括时间同步服务器1001,其中:
时间同步服务器1001,用于对第一客户端901的第一计时器和第二客户端902的第二计时器进行时钟同步。
在本发明的一个实施例中,所述时间同步服务器1001可以是NTP(网络时间协议,Network Time Protocol)服务器。
本发明的上述实施例考虑到在视频通话过程中,如果网络带宽或系统处理能力发生变化,所有异常情况的出现都将反映在视频图像延迟不同大小程度的变化上。视频通话双方向同一时间同步服务器进行时钟同步,进入通话状态后,发送端发送视频时的通话计时器时间、和接收端接收到相应视频时的通话计时器时间的差值,将等于视频通话的实时延迟大小。基于此,本发明提出了一种视频通话计时器实现码流动态调整的方法与系统,解决了实际应用过程中视频通话码流动态自适应调整的难题,从而减少或避免图像延迟、丢包等异常现象。
通过实施本发明,可以得到如下有益效果:
1、本发明实现方法简单、实现难度小。现有技术相对复杂,需要进行网络接入方式、带宽或信号强度检测的工作。本专利,对视频通话系统开发改动不大,只需要利用现有的视频通话计时器,在视频通话过程中、将通话计时器数字及差值用4个数字字节、插入保存在视频关键帧内,再通过视频延迟(计时器差值)与预定阀值之间的进行简单判断、就可很好地实现码流动态自适应调整。
2、本发明实现方法可靠、有效:现有技术大多只是检测网络带宽,对系统处理能力变化却无法检测,同时往往检测到的网络端口码流数据又经常波动很大,也很难准确判断。本发明中,同步通话计时器出现的延迟差值,是网络带宽和系统处理能力共同影响的结果体现,能全面地、准确地、可靠地反映出通话性能效果状态、实际应用效果好。
至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (11)
1.一种用于视频通话码流动态调整的方法,其特征在于,包括:
第一客户端将视频编码时第一计时器的计时值作为第一时间;
第一客户端在发送视频数据给第二客户端时,将第一时间同时发送给第二客户端;
第二客户端将接收到的所述视频数据进行解码播放,并将视频数据进行解码播放时第二计时器的计时值作为第二时间,其中,第一客户端的第一计时器和第二客户端的第二计时器的时钟同步;
第二客户端获取第一时间和第二时间的差值,并实时将所述差值发送给第一客户端;
第一客户端通过比较所述差值和预定阀值,获取当前通话性能效果;
第一客户端根据当前通话性能效果对编码视频码流进行动态调整;
其中,第一客户端根据当前通话性能效果对编码视频码流进行动态调整的步骤包括:
若第一客户端判定通话性能效果下降,则第一客户端降低编码视频的帧率和/或分辨率;
若第一客户端判定通话性能效果上升,则第一客户端提高编码视频的帧率和/或分辨率。
2.根据权利要求1所述的方法,其特征在于,第二客户端实时将所述差值发送给第一客户端的步骤包括:
第二客户端在向第一客户端发送视频数据时,将所述差值实时发送给第一客户端。
3.根据权利要求1或2所述的方法,其特征在于,
第一客户端通过比较所述差值和预定阀值,获取当前通话性能效果的步骤包括:
若连续M次判定所述差值大于预定阀值,则第一客户端判定通话性能效果下降,其中,M为大于0的自然数;
若连续N次判定所述差值不大于预定阀值,则第一客户端判定通话性能效果上升,其中,N为大于0的自然数,且N≥M。
4.根据权利要求1或2所述的方法,其特征在于,
第一客户端降低编码视频的帧率和/或分辨率的步骤包括:
判断当前帧率是否大于第一预定帧率;
若当前帧率大于第一预定帧率,则以预定幅度降低当前帧率;
若当前帧率不大于第一预定帧率,则降低分辨率,同时将当前帧率调整为最高帧率,其中第一预定帧率小于最高帧率。
5.根据权利要求1或2所述的方法,其特征在于,
第一客户端提高编码视频的帧率和/或分辨率的步骤包括:
判断当前帧率是否小于第二预定帧率;
若当前帧率小于第二预定帧率,则以预定幅度提高当前帧率;
若当前帧率不小于第二预定帧率,则提升分辨率,同时将当前帧率调整为最低帧率,其中第二预定帧率大于最低帧率。
6.一种用于视频通话码流动态调整的系统,其特征在于,包括第一客户端和第二客户端,其中:
第一客户端,用于将视频编码时第一计时器的计时值作为第一时间;在发送视频数据给第二客户端时,将第一时间同时发送给第二客户端;通过比较第二客户端发送的差值和预定阀值,获取当前通话性能效果;并根据当前通话性能效果对编码视频码流进行动态调整;
第二客户端,用于将接收到的所述视频数据进行解码播放,并将视频数据进行解码播放时第二计时器的计时值作为第二时间;以及获取第一时间和第二时间的差值,并实时将所述差值发送给第一客户端,其中,第一客户端的第一计时器和第二客户端的第二计时器的时钟同步;
其中,第一客户端根据当前通话性能效果对编码视频码流进行动态调整时,具体用于在第一客户端判定通话性能效果下降时,降低编码视频的帧率和/或分辨率;在第一客户端判定通话性能效果上升时,提高编码视频的帧率和/或分辨率。
7.根据权利要求6所述的系统,其特征在于,
第二客户端在实时将所述差值发送给第一客户端时,具体用于在向第一客户端发送视频数据时,将所述差值实时发送给第一客户端。
8.根据权利要求6或7所述的系统,其特征在于,
第一客户端通过比较所述差值和预定阀值,获取当前通话性能效果时,具体用于在连续M次判定所述差值大于预定阀值时,判定通话性能效果下降,其中,M为大于0的自然数;在连续N次判定所述差值不大于预定阀值时,判定通话性能效果上升,其中,N为大于0的自然数,且N≥M。
9.根据权利要求6或7所述的系统,其特征在于,
第一客户端降低编码视频的帧率和/或分辨率时,具体用于判断当前帧率是否大于第一预定帧率;在当前帧率大于第一预定帧率时,以预定幅度降低当前帧率;并在当前帧率不大于第一预定帧率时,降低分辨率,同时将当前帧率调整为最高帧率,其中第一预定帧率小于最高帧率。
10.根据权利要求6或7所述的系统,其特征在于,
第一客户端提高编码视频的帧率和/或分辨率时,具体用于判断当前帧率是否大于第二预定帧率;在当前帧率小于第二预定帧率时,以预定幅度提高当前帧率;在当前帧率不小于第二预定帧率时,提升分辨率,同时将当前帧率调整为最低帧率,其中第二预定帧率大于最低帧率。
11.根据权利要求6或7所述的系统,其特征在于,还包括时间同步服务器,其中:
时间同步服务器,用于对第一客户端的第一计时器和第二客户端的第二计时器进行时钟同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410814505.1A CN105791735B (zh) | 2014-12-24 | 2014-12-24 | 用于视频通话码流动态调整的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410814505.1A CN105791735B (zh) | 2014-12-24 | 2014-12-24 | 用于视频通话码流动态调整的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105791735A CN105791735A (zh) | 2016-07-20 |
CN105791735B true CN105791735B (zh) | 2018-11-27 |
Family
ID=56378162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410814505.1A Active CN105791735B (zh) | 2014-12-24 | 2014-12-24 | 用于视频通话码流动态调整的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105791735B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108093298A (zh) * | 2016-11-21 | 2018-05-29 | 松下知识产权经营株式会社 | 影像传输系统 |
CN107396028B (zh) * | 2017-08-23 | 2019-11-22 | 维沃移动通信有限公司 | 一种视频通话的处理方法及移动终端 |
CN107566795B (zh) * | 2017-09-04 | 2019-11-19 | 浙江大华技术股份有限公司 | 一种提高实时画面流畅度的方法、装置及系统 |
CN108664299A (zh) * | 2018-03-28 | 2018-10-16 | 北京奇艺世纪科技有限公司 | 一种帧动画的播放控制方法、装置和移动设备 |
CN110740284A (zh) * | 2019-10-30 | 2020-01-31 | 中电福富信息科技有限公司 | 一种基于网络状况调节手机视频通话动态码率的方法 |
CN111541940B (zh) * | 2020-04-30 | 2022-04-08 | 深圳创维-Rgb电子有限公司 | 显示设备的运动补偿方法、装置、电视机及存储介质 |
CN111951821B (zh) * | 2020-08-13 | 2023-10-24 | 腾讯科技(深圳)有限公司 | 通话方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523458A (zh) * | 2012-01-12 | 2012-06-27 | 山东大学 | 一种适于高清图像视频无线传输的编解码方法 |
CN103248682A (zh) * | 2013-04-27 | 2013-08-14 | 华为技术有限公司 | 一种带宽使用优化方法及装置 |
CN103686077A (zh) * | 2013-11-29 | 2014-03-26 | 成都亿盟恒信科技有限公司 | 应用于3g无线网络实时音视频数据传输的双缓冲方法 |
EP2745523A1 (en) * | 2011-08-16 | 2014-06-25 | Vantrix Corporation | Dynamic bit rate adaptation over bandwidth varying connection |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10616086B2 (en) * | 2012-12-27 | 2020-04-07 | Navidia Corporation | Network adaptive latency reduction through frame rate control |
-
2014
- 2014-12-24 CN CN201410814505.1A patent/CN105791735B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2745523A1 (en) * | 2011-08-16 | 2014-06-25 | Vantrix Corporation | Dynamic bit rate adaptation over bandwidth varying connection |
CN102523458A (zh) * | 2012-01-12 | 2012-06-27 | 山东大学 | 一种适于高清图像视频无线传输的编解码方法 |
CN103248682A (zh) * | 2013-04-27 | 2013-08-14 | 华为技术有限公司 | 一种带宽使用优化方法及装置 |
CN103686077A (zh) * | 2013-11-29 | 2014-03-26 | 成都亿盟恒信科技有限公司 | 应用于3g无线网络实时音视频数据传输的双缓冲方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105791735A (zh) | 2016-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105791735B (zh) | 用于视频通话码流动态调整的方法和系统 | |
CN102946570B (zh) | 一种自适应网络带宽的多流流媒体传输系统与传输方法 | |
KR101465927B1 (ko) | 비디오 데이터 품질 평가 방법 및 장치 | |
CN104113777B (zh) | 一种音频流解码方法及装置 | |
EP2888844B1 (en) | Device and method for adaptive rate multimedia communications on a wireless network | |
CN110192394B (zh) | 通过网络传送媒体内容的方法和服务器 | |
CN104125429B (zh) | 视频数据传输的调节方法及装置 | |
EP2255535B1 (en) | Device and method for adaptation of target rate of video signals | |
CN106686438B (zh) | 一种跨设备的音频图像同步播放的方法、装置及系统 | |
EP2888845B1 (en) | Device and method for adaptive rate multimedia communications on a wireless network | |
CN103546662A (zh) | 一种网络监控系统中音视频同步方法 | |
CN104394484A (zh) | 一种无线实时流媒体传输方法 | |
CN108259964B (zh) | 一种视频播放速率调整方法及系统 | |
JP2006115477A (ja) | メディアストリームから得られるメディアの提示を行う方法およびシステム | |
CN104735470A (zh) | 一种流媒体数据传输方法及装置 | |
CN101917612A (zh) | 一种流媒体视频编码方法及装置 | |
WO2012170738A1 (en) | Multipath rate adaptation | |
CN104980819A (zh) | 一种视频传输方法及装置 | |
WO2022052566A1 (zh) | 视频码率调整方法、装置、电子设备和机器可读存储介质 | |
CN104639955A (zh) | 检测mpeg2-ts vbr码流质量问题的方法 | |
CN105142002A (zh) | 音/视频直播方法、装置及控制方法、装置 | |
CN101212690A (zh) | 多媒体视音频流唇音同步的调测方法 | |
JP2017069849A (ja) | 映像制御装置、映像配信システムおよび映像制御方法 | |
GB2559271A (en) | Managing congestion response during content delivery | |
US10587518B2 (en) | Identifying network conditions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |