本发明涉及多媒体流,特别指一种实时多媒体流传输方法。
背景技术:
1、多媒体应用通常使用rtp协议来传输实时多媒体流,rtp协议是一种运行在udp协议上的不可靠传输协议,udp协议不需要重传的特性使其广泛应用在各种低延迟应用中,但rtp协议可能因为丢包产生可察觉的卡顿。若使用tcp协议来传输实时多媒体流,虽然相比于rtp协议更加可靠,但也会带来高延迟问题。
2、quic协议是一种现代的、运行在用户空间中的可靠传输协议,基于udp协议并运行在应用层中,因此相比内核级的tcp协议栈更容易被修改,使其适应于多媒体应用,作为tcp协议的替代方案被采用于各种环境中。但是,quic协议的可靠性与按需交付特性可能导致头部阻塞,进而在多媒体应用中带来高延迟。
3、因此,如何提供一种实时多媒体流传输方法,实现提升实时多媒体流传输的可靠性和实时性,成为一个亟待解决的技术问题。
技术实现思路
1、本发明要解决的技术问题,在于提供一种实时多媒体流传输方法,实现提升实时多媒体流传输的可靠性和实时性。
2、本发明是这样实现的:一种实时多媒体流传输方法,包括如下步骤:
3、步骤s10、服务端计算实时多媒体的第一帧的帧数据到达客户端后的播放截止时间戳;
4、步骤s20、服务端将所述实时多媒体的各帧数据依序通过quic数据报发送给客户端,将发送的所述quic数据报存储至重传缓冲区,并更新所述播放截止时间戳以及序列号,将所述播放截止时间戳同步给客户端;
5、步骤s30、客户端基于接收的所述quic数据报向服务端反馈接收确认应答,服务端基于接收的所述接收确认应答删除重传缓冲区内对应的quic数据报;
6、步骤s40、客户端基于所述播放截止时间戳,对接收的所述quic数据报中缺失的帧数据进行有效期校验后,播放对应的所述帧数据。
7、进一步地,所述步骤s10中,所述播放截止时间戳的计算公式为:
8、rt=((path_latency/a)*b)+c;
9、其中,rt表示播放截止时间戳;path_latency表示网络路径的延迟;a表示每秒60次的回调计时器之间的间隔;b表示每个i帧之间的时间间隔;c表示预留四帧的缓冲帧的播放缓冲时间。
10、进一步地,所述步骤s20中,所述帧数据的帧类型为i帧或者p帧;所述i帧为内部帧,用于提供整个图像的数据,第一帧的帧数据的帧类型为i帧,每十帧的帧数据只发送一帧的i帧。
11、进一步地,所述步骤s20中,所述将发送的所述quic数据报存储至重传缓冲区之后,还添加所述quic数据报中携带的p帧的依赖信息;所述依赖信息为p帧依赖的i帧。
12、进一步地,所述步骤s20中,所述更新所述播放截止时间戳以及序列号具体为:
13、服务器在所述播放截止时间戳回调时增加b,并以1为梯度对序列号进行累加;所述序列号表示已发送帧数据的总数。
14、进一步地,所述步骤s20中,服务器将所述播放截止时间戳同步给客户端前,在所述播放截止时间戳内添加四帧的缓冲帧。
15、进一步地,所述步骤s30中,所述服务端基于接收的所述接收确认应答删除重传缓冲区内对应的quic数据报具体为:
16、服务器接收所述接收确认应答后,基于所述依赖信息以及播放截止时间戳判断对应的quic数据报是否还有用,若是,则保留重传缓冲区内对应的所述quic数据报;若否,则删除重传缓冲区内对应的quic数据报。
17、进一步地,所述步骤s40具体为:
18、客户端基于所述数据帧携带的帧编号判断是否存在缺失的数据帧,若否,则播放所述quic数据报携带的帧数据;若是,则:
19、基于所述截止时间戳以及相邻的数据帧,对缺失的所述数据帧进行有效期校验,若过期,则跳过缺失的所述数据帧,播放下一帧的所述帧数据;若未过期,则通过缓冲帧接收服务器重传的所述数据帧进行播放。
20、本发明的优点在于:
21、通过服务端计算实时多媒体的第一帧的帧数据到达客户端后的播放截止时间戳,将各帧数据依序通过quic数据报发送给客户端并缓存至重传缓冲区,更新播放截止时间戳以及序列号,将播放截止时间戳同步给客户端,基于客户端发送的接收确认应答删除重传缓冲区内对应的quic数据报;客户端基于播放截止时间戳,对接收的quic数据报中缺失的帧数据进行有效期校验后,播放对应的帧数据;即通过播放截止时间戳来跳过过期的数据帧,避免标准quic协议因可靠传输而带来的积累延迟,通过在播放截止时间戳内添加四帧的缓冲帧用于接收服务器重传的数据帧,即丢失的数据帧在未到期时还可进行重传播放,进而提升有用数据的吞吐量,保障实时多媒体流的播放质量,最终极大的提升了实时多媒体流传输的可靠性和实时性。
1.一种实时多媒体流传输方法,其特征在于:包括如下步骤:
2.如权利要求1所述的一种实时多媒体流传输方法,其特征在于:所述步骤s10中,所述播放截止时间戳的计算公式为:
3.如权利要求1所述的一种实时多媒体流传输方法,其特征在于:所述步骤s20中,所述帧数据的帧类型为i帧或者p帧;所述i帧为内部帧,用于提供整个图像的数据,第一帧的帧数据的帧类型为i帧,每十帧的帧数据只发送一帧的i帧。
4.如权利要求3所述的一种实时多媒体流传输方法,其特征在于:所述步骤s20中,所述将发送的所述quic数据报存储至重传缓冲区之后,还添加所述quic数据报中携带的p帧的依赖信息;所述依赖信息为p帧依赖的i帧。
5.如权利要求1所述的一种实时多媒体流传输方法,其特征在于:所述步骤s20中,所述更新所述播放截止时间戳以及序列号具体为:
6.如权利要求1所述的一种实时多媒体流传输方法,其特征在于:所述步骤s20中,服务器将所述播放截止时间戳同步给客户端前,在所述播放截止时间戳内添加四帧的缓冲帧。
7.如权利要求4所述的一种实时多媒体流传输方法,其特征在于:所述步骤s30中,所述服务端基于接收的所述接收确认应答删除重传缓冲区内对应的quic数据报具体为:
8.如权利要求1所述的一种实时多媒体流传输方法,其特征在于:所述步骤s40具体为: