实时流媒体传输方法、装置和电子设备制造方法及图纸

技术编号:27450459 阅读:20 留言:0更新日期:2021-02-25 04:31
本申请提供一种实时流媒体传输方法、装置和电子设备,方法包括:接收实时流媒体,获取实时流媒体的输入帧序;根据输入帧序,计算实时流媒体的码率;在帧序中识别关键帧,并计算两个连续的关键帧之间的单位帧个数;根据带宽、码率和关键帧之间的单位帧个数,计算丢弃帧数,生成丢包映射表;根据丢帧规则和丢包映射表,传输修改后的所述实时流媒体。传输修改后的所述实时流媒体。传输修改后的所述实时流媒体。

【技术实现步骤摘要】
实时流媒体传输方法、装置和电子设备


[0001]本申请涉及数据传输领域,具体而言,涉及一种实时流媒体传输方法、装置和电子设备。

技术介绍

[0002]在现有的实时音视频通信中,普遍采用终端A上行传输到视频服务器,然后视频服务器下行传输到终端B的视频流流转方式,当视频服务器到终端B的传输网络出现拥塞的时候,为了让终端B上的视频不会出现积累延时和卡顿,通常在发生拥塞的时候通知终端A降低发送的分辨率和编码码率,这样终端B就会接收到流畅的视频流。这样虽然能够解决流畅性的问题,但是损失了视频清晰度。

技术实现思路

[0003]本申请实施例的目的在于提供一种实时流媒体传输方法、装置和电子设备,用以解决现有技术中存在的技术问题。
[0004]第一方面,本专利技术提供一种实时流媒体传输方法,包括:接收实时流媒体,获取实时流媒体的输入帧序;根据输入帧序,计算实时流媒体的码率;在帧序中识别关键帧,并计算两个连续的关键帧之间的单位帧个数;根据带宽、码率和关键帧之间的单位帧个数,计算丢弃帧数,生成丢包映射表;根据丢帧规则和丢包映射表,传输修改后的实时流媒体。
[0005]在可选的实施方式中,根据输入帧序,计算实时流媒体的码率包括:根据输入帧序,提取单位帧;计算单位时间内单位帧的累加值;根据累加值生成码率。
[0006]在可选的实施方式中,在帧序中识别关键帧,并计算两个连续的关键帧之间的单位帧个数,包括:识别帧序中的关键帧;计算两个连续的关键帧中之间的所有单位帧,生成距离帧数。
[0007]在可选的实施方式中,根据带宽、码率和关键帧之间的单位帧个数,计算丢弃帧数,生成丢包映射表,包括:计算带宽和码率的差值;根据差值和码率的比值,与关键帧之间的单位帧个数计算丢弃帧数;按照帧序和关键帧之间的单位帧个数,生成丢包映射表。
[0008]在可选的实施方式中,丢帧规则包括:判断带宽是否小于码率;若带宽小于码率,则判断当前帧是否为关键帧;若当前帧不是关键帧,则开始丢帧,直至当前帧为关键帧。
[0009]第二方面,本专利技术提供一种实时流媒体传输装置,包括:第一获取模块,用于接收实时流媒体,获取实时流媒体的输入帧序;第一计算模块,用于根据输入帧序,计算实时流媒体的码率;第二计算模块,用于在帧序中识别关键帧,并计算两个连续的关键帧之间的单位帧个数;第三计算模块,用于根据带宽、码率和关键帧之间的单位帧个数,计算丢弃帧数,生成丢包映射表;第一生成模块,用于根据丢帧规则和丢包映射表,传输修改后的实时流媒体。
[0010]在可选的实施方式中,第一计算模块还用于:根据输入帧序,提取单位帧;计算单位时间内单位帧的累加值;根据累加值生成码率。
assistant,PDA)等,以实现将本地接收的外部控制命令发送至服务端200,接收服务端200返回的数据。
[0027]请参阅图3,其为本申请实施例提供的一种实时流媒体传输方法的流程图,该方法可由图1所示的电子设备1来执行,并用于图2所示的交互场景中。该方法包括如下步骤:
[0028]步骤301:接收实时流媒体,获取实时流媒体的输入帧序。
[0029]在本步骤中,实时流媒体可以是声音流、视频流、文本流、图像流、动画流。在传输时以帧的形式进行传输,输入帧序如下:
[0030]I,P,P,P,
……
P,I,P,P,P,
……
I,P,P,P,
……
[0031]步骤302:根据输入帧序,计算实时流媒体的码率。
[0032]在本步骤中,根据输入帧序,提取单位帧,计算单位时间内单位帧的累加值;根据累加值生成码率。1秒内的数据大小等于这秒内所有视频帧大小的累加(Sum),进而这一秒内的视频码率a=Sum*8。
[0033]步骤303:在帧序中识别关键帧,并计算两个连续的关键帧之间的单位帧个数。
[0034]在本步骤中,识别帧序中的关键帧,计算两个连续的关键帧中之间的所有单位帧,生成距离帧数。关键帧的距离等于视频流中两个关键帧之间所有视频帧个数的累计,计为d。
[0035]步骤304:根据带宽、码率和关键帧之间的单位帧个数,计算丢弃帧数,生成丢包映射表。
[0036]在本步骤中,计算带宽和码率的差值,根据差值和码率的比值,与关键帧之间的单位帧个数计算丢弃帧数,按照帧序和关键帧之间的单位帧个数,生成丢包映射表。根据输入的4个参数:输入码流a,关键帧之间的距离d,当前网络可以发送的带宽b生成丢包映射表:假设a=2500kbps,d=30,b=1500kbps,那么丢弃的帧数应该是(a

b)/a*30=12帧。
[0037]由此,可以得到丢包映射表,0-不丢弃,1-丢弃:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1。
[0038]步骤305:根据丢帧规则和丢包映射表,传输修改后的实时流媒体。
[0039]在本步骤中,丢帧规则包括:判断带宽是否小于码率,若带宽小于码率,则判断当前帧是否为关键帧,若当前帧不是关键帧,则开始丢帧,直至当前帧为关键帧。
[0040]于一实施例中,可以设置一个索引index,初始值为0,对应丢包映射表在0帧到17帧之间不丢帧,在18到29之间丢帧,每输入一个视频帧,index加1,直到碰到下一个关键帧,index复位为0,重复以上过程。
[0041]请参阅图4,其为本申请实施例提供的一种实时流媒体传输装置400的结构示意图,该方法可由图1所示的电子设备1来执行,并用于图2所示的交互场景中。该装置包括:第一获取模块401、第一计算模块402、第二计算模块403、第三计算模块404和第一生成模块405。
[0042]第一获取模块401,用于接收实时流媒体,获取实时流媒体的输入帧序。详细请参阅上述实施例中步骤301的描述。
[0043]第一计算模块402,用于根据输入帧序,计算实时流媒体的码率。在可选的实施方式中,第一计算模块402还用于:根据输入帧序,提取单位帧;计算单位时间内单位帧的累加值;根据累加值生成码率。详细请参阅上述实施例中步骤302的描述。
[0044]第二计算模块403,用于在帧序中识别关键帧,并计算两个连续的关键帧之间的单位帧个数。在可选的实施方式中,第二计算模块403还用于:识别帧序中的关键帧;计算两个连续的关键帧中之间的所有单位帧,生成距离帧数。详细请参阅上述实施例中步骤303的描述。
[0045]第三计算模块404,用于根据带宽、码率和关键帧之间的单位帧个数,计算丢弃帧数,生成丢包映射表。在可选的实施方式中,第三计算模块404还用于:计算带宽和码率的差值;根据差值和码率的比值,与关键帧之间的单位帧个数计算丢弃帧数;按照帧序和关键帧之间的单位帧个数,生成丢包映射表。详细请参阅上述实施例中步骤304的描述。
[0046]第一生成模块405,用于根据丢帧规则和丢包映射表,传输修改后的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实时流媒体传输方法,其特征在于,包括:接收实时流媒体,获取所述实时流媒体的输入帧序;根据所述输入帧序,计算所述实时流媒体的码率;在所述帧序中识别关键帧,并计算两个连续的所述关键帧之间的单位帧个数;根据带宽、所述码率和所述关键帧之间的单位帧个数,计算丢弃帧数,生成丢包映射表;根据丢帧规则和所述丢包映射表,传输修改后的所述实时流媒体。2.根据权利要求1所述的方法,其特征在于,所述根据所述输入帧序,计算所述实时流媒体的码率包括:根据所述输入帧序,提取所述单位帧;计算单位时间内所述单位帧的累加值;根据所述累加值生成所述码率。3.根据权利要求1所述的方法,其特征在于,所述在所述帧序中识别关键帧,并计算两个连续的所述关键帧之间的单位帧个数,包括:识别所述帧序中的关键帧;计算两个连续的所述关键帧中之间的所有所述单位帧,生成距离帧数。4.根据权利要求1所述的方法,其特征在于,所述根据带宽、所述码率和所述关键帧之间的单位帧个数,计算丢弃帧数,生成丢包映射表,包括:计算所述带宽和所述码率的差值;根据所述差值和所述码率的比值,与所述关键帧之间的单位帧个数计算所述丢弃帧数;按照所述帧序和所述关键帧之间的单位帧个数,生成所述丢包映射表。5.根据权利要求1所述的方法,其特征在于,所述丢帧规则包括:判断所述带宽是否小于所述码率;若所述带宽小于所述码率,则判断当前帧是否为所述关键帧;若所述...

【专利技术属性】
技术研发人员:王卫东付明旺
申请(专利权)人:唐桥科技杭州有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1