流媒体文件的传输方法及装置与流程

文档序号:18374699发布日期:2019-08-07 02:00阅读:353来源:国知局
流媒体文件的传输方法及装置与流程

本发明属于视频传输技术领域,尤其涉及流媒体文件的传输方法及装置。



背景技术:

通信协议的设计必须以网络不可靠为基础,在极端网络环境下仍然能正常工作的协议才是健壮的协议。视频传输的网络场景对实时性和流畅性的要求较高,针对视频传输过程中常常出现的延迟、卡顿、网络堵塞等问题,在低带宽的网络场景之下,更需要合理利用带宽资源,以保证视频传输的实时性和流畅性。

现有的流媒体传输协议都是针对特定的网络带宽,当网络堵死或者带宽严重不足时直接中止通信,导致视频传输中止。



技术实现要素:

有鉴于此,本发明实施例提供了流媒体文件的传输方法及装置,以解决现有的流媒体传输协议在网络带宽条件差的情况下会导致视频传输中止的问题。

第一方面,提供了一种流媒体文件的传输方法,包括:

为流媒体传输网络设置网络质量值;

在流媒体传输过程中,每发送一个图像帧数据包,将所述网络质量值减去第一数值,每接收到一个关于图像帧数据包的接收响应,将所述网络质量值加上第二数值;

当所述网络质量值降至第一预设阈值时,仅发送心跳包;

每收到一个心跳包回应,将所述网络质量值加上所述第二数值,直至所述网络质量值达到第二预设阈值,恢复发送图像帧数据包,所述第一预设阈值小于所述第二预设阈值。

可选地,在所述流媒体传输之前,所述方法还包括:

在流媒体采集及编码过程中,为图像帧数据包赋值发送权重;

每发送一次图像帧数据包,该图像帧数据包对应的所述发送权重减1;

当图像帧数据包的所述发送权重为0或者接收到对端关于该图像帧数据包的接收响应,停止发送该图像帧数据包。

可选地,所述为图像帧数据包赋值发送权重包括:

为I帧数据包赋值第一发送权重,为非I帧数据包赋值第二发送权重,所述第一发送权重大于所述第二发送权重。

可选地,所述第一发送权重为所述第二发送权重的2倍。

可选地,在图像帧数据包的重传过程中,图像帧数据包的重传间隔与该图像帧数据包当前的重传次数正相关。

第二方面,提供了一种流媒体文件的传输装置,包括:

设置单元,用于为流媒体传输网络设置网络质量值;

第一调整单元,用于在流媒体传输过程中,每发送一个图像帧数据包,将所述网络质量值减去第一数值,每接收到一个关于图像帧数据包的接收响应,将所述网络质量值加上第二数值;

心跳包发送单元,用于当所述网络质量值降至第一预设阈值时,仅发送心跳包;

第二调整单元,用于每收到一个心跳包回应,将所述网络质量值加上所述第二数值,直至所述网络质量值达到第二预设阈值,恢复发送图像帧数据包,所述第一预设阈值小于所述第二预设阈值。

可选地,所述装置还包括:

赋值单元,用于在流媒体采集及编码过程中,为图像帧数据包赋值发送权重;

第三调整单元,用于每发送一次图像帧数据包,该图像帧数据包对应的所述发送权重减1;

停止单元,用于当图像帧数据包的所述发送权重为0或者接收到对端关于该图像帧数据包的接收响应,停止发送该图像帧数据包。

可选地,所述赋值单元具体用于:

为I帧数据包赋值第一发送权重,为非I帧数据包赋值第二发送权重,所述第一发送权重大于所述第二发送权重。

可选地,所述第一发送权重为所述第二发送权重的2倍。

可选地,在图像帧数据包的重传过程中,图像帧数据包的重传间隔与该图像帧数据包当前的重传次数正相关。

在本发明实施例中,通过设置网络质量值并在流媒体的传输过程中动态地调整该网络质量值,使得整个过程能够实时地获知网络状况,执行与网络状况相适合的流媒体传输策略,提高了流媒体传输的实时性和流畅性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的流媒体文件的传输方法的实现流程图;

图2是本发明实施例提供的流媒体文件的传输方法发送方数据发送过程的实现流程图;

图3是本发明实施例提供的流媒体文件的传输方法发送方数据接收过程的实现流程图;

图4是本发明实施例提供的流媒体文件的传输方法图像帧数据包重传的实现流程图;

图5是本发明实施例提供的流媒体文件的传输方法视频采集编码过程的具体实现流程图;

图6是本发明实施例提供的流媒体文件的传输装置的结构框图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

图1示出了本发明实施例提供的流媒体文件的传输方法的实现流程,详述如下:

S101,为流媒体传输网络设置网络质量值。

S102,在流媒体传输过程中,每发送一个图像帧数据包,将所述网络质量值减去第一数值,每接收到一个关于图像帧数据包的接收响应,将所述网络质量值加上第二数值。

S103,当所述网络质量值降至第一预设阈值时,仅发送心跳包。

S104,每收到一个心跳包回应,将所述网络质量值加上所述第二数值,直至所述网络质量值达到第二预设阈值,恢复发送图像帧数据包,所述第一预设阈值小于所述第二预设阈值。

在本发明实施例中,网络质量值是执行流媒体传输策略参考依据,若网络质量值高,代表当前的网络状态好,那么会正常执行图像帧数据包的发送;若网络质量值低,代表当前的网络状态差,可能存在拥塞,那么会暂停图像帧数据包的发送,直至网络状态恢复。

基于图1所示的实施例,具体地,如图2所示,流媒体传输过程中的数据发送过程如下:

首先,对网络质量值进行初始化,赋予一个初始的网络质量值。

在S201中,判断网络质量的好坏,在本发明实施例中,通过设置预设阈值,将当前的网络质量值与预设阈值进行比较,来确定网络质量的好坏。

具体地,当网络质量值高于第一预设阈值时(示例性地,该第一预设阈值可以设置为0),认为网络质量是好的,那么如S202所示,正常执行图像帧数据包的发送,在发送队列中查找到一个发送权重最高并且达到发送时间的图像帧数据包进行发送。并如S203所示,在发送动作执行之后,更新该图像帧数据包的发送次数和时间戳,并将网络质量值减去第一数值(示例性地,如图2所示,该第一数值可以为1)。而当网络质量值降至第一预设阈值时,认为网络质量差,已经拥塞,那么如S204所示,停止发送图像帧数据包,而改为发送心跳包,该心跳包的发送间隔可以为1秒。若通信对端接收到心跳包,会向心跳包的发送方返回一个心跳包回应,而发送方在每接收到一个心跳包回应时,都会将当前的网络质量值加上第二数值(示例性地,该第二数值可以为2),直至网络质量值达到第二预设阈值,再恢复发送图像帧数据包(该第二预设阈值需要大于第一预设阈值,以保证在网络状况较佳时才恢复图像帧数据包的发送)。

基于图1所示的实施例,具体地,如图3所示,流媒体传输过程中的发送方的数据接收过程如下:

对于流媒体传输中的发送方来说,对其每接收到一个数据包,若该数据包为心跳包回应,则如S301所示,为网络质量值加上第二数值(示例性地,如图3所示,该第二数值可以为2),若该数据包为关于图像帧数据包的接收响应,则如S302所示,除了同样为网络质量值加上第二数值以外,还会将该接收响应对应的图像帧数据包从发送队列中清除,以彻底完成该图像帧数据包的发送。

此外,在上文中也提到了,对于每个图像帧数据包,都有其对应的发送权重,这部分发送权重用于控制图像帧数据包的重传机制,如图4所示:

在S401中,在流媒体采集及编码过程中,为图像帧数据包赋值发送权重。

为图像帧数据包进行赋值的操作在视频采集过程中进行,作为本发明的一个实施例,如图5所示,对于当前采集并编码的视频帧,首先判断该视频帧是否为I帧,如果是,则为I帧数据包赋值第一发送权重,若该视频帧为非I帧(例如B帧和P帧),则为该视频帧数据包赋值第二发送权重,其中,第一发送权重要大于第二发送权重,优选地,第一发送权重可以为第二发送权重的2倍。在为视频帧赋值发送权重之后,清零重发次数,并为该数据包加入时间戳,之后加入到发送队列中去。图5所示的做法是出于视频图像编码的特殊性考虑,即,如果在流媒体传输过程中,I帧丢失,那么即使该I帧之后的B帧和P帧被接收到,也无法被使用,因此,在传输策略中调高I帧的重传权重,以保证I帧被发送到对端的成功率。

在S402中,每发送一次图像帧数据包,该图像帧数据包对应的所述发送权重减1。

在S403中,当图像帧数据包的所述发送权重为0或者接收到对端关于该图像帧数据包的接收响应,停止发送该图像帧数据包。

在本发明实施例中,每发送一个图像帧数据包,则会为该图像帧数据包的发送权重减1,直至接收到对端(即数据包的接收方)关于该图像帧数据包的接收响应,代表该图像帧数据包已被对端接收,才停止重发该图像帧数据包;或者,当该图像帧数据包的发送权重已减为0,也停止发送该图像帧数据包。

结合图4和图5对应的实施例,由于I帧的发送权重较大,但在重传过程中,I帧与B帧、P帧在每次发送权重减少的值上是一样的,这样一来,就可以保证I帧的重传次数要高于B帧和P帧,以保证I帧被发送到对端的成功率。

此外,作为本发明的一个实施例,在图像帧数据包的重传过程中,图像帧数据包的重传间隔与该图像帧数据包当前的重传次数正相关,即,对于发送队列中的同一个图像帧数据包,其重发的次数越多,那么下一次发送该图像帧数据包的发送间隔就越大,这样可以有效地避免发送方因频繁重发某个图像帧数据包而造成的流媒体卡顿现象。

本发明实施例可用于基于EDGE网络、3G网络或WiFi的视频传输,通过设置网络质量值并在流媒体的传输过程中动态地调整该网络质量值,使得整个过程能够实时地获知网络状况,执行与网络状况相适合的流媒体传输策略,提高了流媒体传输的实时性和流畅性。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上文实施例所述的流媒体文件的传输方法,图6示出了本发明实施例提供的流媒体文件的传输装置的结构框图,为了便于说明,仅示出了与本实施例相关的部分。

参照图6,该装置包括:

设置单元61,为流媒体传输网络设置网络质量值;

第一调整单元62,在流媒体传输过程中,每发送一个图像帧数据包,将所述网络质量值减去第一数值,每接收到一个关于图像帧数据包的接收响应,将所述网络质量值加上第二数值;

心跳包发送单元63,当所述网络质量值降至第一预设阈值时,仅发送心跳包;

第二调整单元64,每收到一个心跳包回应,将所述网络质量值加上所述第二数值,直至所述网络质量值达到第二预设阈值,恢复发送图像帧数据包,所述第一预设阈值小于所述第二预设阈值。

可选地,所述装置还包括:

赋值单元,在流媒体采集及编码过程中,为图像帧数据包赋值发送权重;

第三调整单元,每发送一次图像帧数据包,该图像帧数据包对应的所述发送权重减1;

停止单元,当图像帧数据包的所述发送权重为0或者接收到对端关于该图像帧数据包的接收响应,停止发送该图像帧数据包。

可选地,所述赋值单元具体用于:

为I帧数据包赋值第一发送权重,为非I帧数据包赋值第二发送权重,所述第一发送权重大于所述第二发送权重。

可选地,所述第一发送权重为所述第二发送权重的2倍。

可选地,在图像帧数据包的重传过程中,图像帧数据包的重传间隔与该图像帧数据包当前的重传次数正相关。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1