CN114584845B - 一种rtp包丢包重传方法、装置及智能机顶盒 - Google Patents
一种rtp包丢包重传方法、装置及智能机顶盒 Download PDFInfo
- Publication number
- CN114584845B CN114584845B CN202011384070.3A CN202011384070A CN114584845B CN 114584845 B CN114584845 B CN 114584845B CN 202011384070 A CN202011384070 A CN 202011384070A CN 114584845 B CN114584845 B CN 114584845B
- Authority
- CN
- China
- Prior art keywords
- rtp packet
- sequence number
- packet
- rtp
- packet loss
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6375—Control signals issued by the client directed to the server or network components for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
Abstract
本申请提供的RTP包丢包重传方法、装置及智能机顶盒,包括:从缓存队列中读取第一RTP包,确定所述第一RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续;若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则检查所述缓存队列中是否存在丢包;若检查到所述缓存队列中存在丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。本申请提供的RTP包丢包重传方法、装置及智能机顶盒,实现通过及时查找到缓存队列中的丢包序号及时向服务器发送丢包请求,增大丢包请求命中服务器窗口期的命中率,以使相对较大概率的获得丢包数据,保证音视频播放质量。
Description
技术领域
本申请涉及网络通信技术领域,尤其涉及一种RTP包丢包重传方法、装置及智能机顶盒。
背景技术
RTP(Real-time Transport Protocol,实时传输协议)是一种网络传输协议,用于在互联网上传输音视频数据,如用于视频会议。基于RTP,视频会议帮助众多企业机构实现跨区域、跨空间的高效沟通。
但由于数据传输中不可避免的技术问题,如丢包、延时、抖包等,进而会出现卡顿等音视频质量低下的情况,严重影响使用体验。其中丢包是数据传输中较为常见的技术难题之一。丢包会对视频会议的音视频产生影响,按照专业区分,丢包会对视频质量、音频传输、通话行为产生影响。对视频图像影响较为明显,直观的来看,丢包会使视频通话中出现视频图像马赛克、视频局部变形,图像模糊、图像静止有声音、图像闪烁等情况。例如在视频传输中,发现演示幻灯片模糊变形、翻页速度减慢或屏幕频繁刷新和图像静止等情况基本可确定丢包严重;丢包对音频的影响主要是音频失真、间断、间歇性噪音等,例如通话中突然出现刺耳的尖锐声,除去磁场干扰外,丢包也是主要原因之一,严重的丢包甚至会导致音频中断。因此丢包一直被技术人员长期关注。
目前为解决丢包问题,智能机顶盒在进行音视频播放的过程中按照RTP包的序号顺序去读取、解析RTP包;若未读取到满足序号要求的RTP包,则认为该RTP包发生丢包,智能机顶盒将根据该RTP包的序号向视频服务器发送丢包请求以使服务器重传被丢包的RTP包。然而服务器的数据发送有个窗口期,且窗口期是不断变化的,这就要求智能机顶盒发送丢包请求要命中在窗口期内,才能获取到丢包数据,否则丢包数据将会一直等待不来。
发明内容
本申请实施例提供了一种RTP包丢包重传方法、装置及智能机顶盒,相对较大概率的获得丢包数据,保证音视频播放质量。
第一方面,本申请提供的一种RTP包丢包重传方法,应用于智能机顶盒,所述方法包括:
从缓存队列中读取第一RTP包,确定所述第一RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续,所述缓存队列中缓存有若干RTP包;
若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则检查所述缓存队列中是否存在丢包;
若检查到所述缓存队列中存在丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。
第二方面,本申请提供的RTP包丢包重传装置,其特征在于,包括:
第一读取单元,用于从缓存队列中读取第一RTP包,确定所述第一RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续,所述缓存队列中缓存有若干RTP包;
第一检查单元,用于若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则检查所述缓存队列中是否存在丢包;
第一请求单元,用于若检查到所述缓存队列中存在丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。
第三方面,本申请提供的一种智能机顶盒,所述智能机顶盒包括处理器,所述处理器被配置为:
从缓存队列中读取第一RTP包,确定所述第一RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续,所述缓存队列中缓存有若干RTP包;
若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则检查所述缓存队列中是否存在丢包;
若检查到所述缓存队列中存在丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。
本申请提供的RTP包丢包重传方法、装置及智能机顶盒,在进行音视频播放过程中,从缓存队列中读取第一RTP包,确定第一RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续;当第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续时,检查缓存队列中是否存在丢包;若存在丢包,基于检测到的丢包待重传RTP包的序号向服务器发送丢包请求。本申请提供的RTP包丢包重传方法、装置及智能机顶盒,通过从缓存队列中读取RTP包时及时触发查找到缓存队列中的丢包序号,以使及时向服务器发送丢包请求,增大丢包请求命中服务器窗口期的命中率,以使相对较大概率的获得丢包数据,保证音视频播放质量。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种RTP包丢包重传方法的流程图;
图2为本申请实施例提供的另一种RTP包丢包重传方法的流程图;
图3为本申请实施例提供的再一种RTP包丢包重传方法的流程图;
图4为本申请实施例提供的一种RTP包丢包重传装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
为解决上述技术问题,本申请实施例的发明构思为:在进行音视频播放过程中,从缓存队列中读取第一RTP包,确定第一RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续;当第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续是,检查缓存队列中是否存在丢包;若存在丢包,基于检测到的丢包待重传RTP包的序号向服务器发送丢包请求;其中,缓存队列用于缓存若干待播放的RTP包。因此本申请实施例提供的RTP包丢包重传方法,通过及时查找到缓存队列中的丢包序号及时向服务器发送丢包请求,增大丢包请求命中服务器窗口期的命中率,以使相对较大概率的获得丢包数据,保证音视频播放质量。
为了使本发明实施例的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明实施例执行详细描述:
播放终端接收到播放命令后,将会根据播放命令向服务器发送与该播放命令相关音视频数据的请求,服务器将接收到播放终端发送的音视频请求并根据音视频请求向播放终端发送音视频数据。服务器以RTP包的形式向播放终端发送的音视频数据,即服务器将播放终端请求的音视频数据分成若干RTP包并发送给播放终端,播放终端接收服务器发送的RTP包并将接收到的RTP包暂时存储至UDP缓存区,然后播放终端将UDP缓存区的RTP包读取至缓存队列中并按照RTP包的顺序进行排序;如音视频数据的第一个RTP包的序号为0,然后依次进行排列。可选的,播放终端请求音视频播放后,播放终端先从UDP缓存区一个RTP包,解析该RTP包,得到RTP包的序号,如果RTP包的序号是0,直接被音视频播放模块取走进行解析播放,后续先从缓存队列中读取RTP包,找到序号为1的RTP包等进行顺序播放。但由于数据传输中不可规避的技术问题,丢包问题不可避免,因此为避免因为丢包造成音视频出现卡顿,播放终端需要及时发现丢包并尽量在服务器的窗口期向服务器及时发送丢包请求,以及时获取到重传丢包。
图1为本申请实施例提供的一种RTP包丢包重传方法的流程示意图,用于播放终端与服务器之间的RTP包丢包处理,该方法的执行主体为播放终端,如机顶盒等。如图1所示,本申请实施例提供的RTP包丢包重传方法,包括:
S101:从缓存队列中读取第一RTP包,确定所述第一RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续,所述缓存队列中缓存有若干RTP包。
本申请实施例中,第一RTP包只是为便于区分而进行的命名,并非用于限定,但通常是指缓存队列中现有的第一个RTP包。当进行放音视频数据播放时,播放终端从缓存队列中读取第一RTP包并确定当前播放音视频数据对应RTP包的序号,解析获得第一RTP包的序号;根据当前播放音视频数据对应RTP包的序号和第一RTP包的序号,判定该第一RTP包是否为当前播放音视频数据对应RTP包的连续包。
如当前播放音视频数据对应RTP包的序号为0,若第一RTP包的序号为1,则第一RTP包是当前播放音视频数据对应RTP包的连续包,否则第一RTP包不是当前播放音视频数据对应RTP包的连续包。如,第一RTP包的序号为2或其他非1的序号,则第一RTP包不是当前播放音视频数据对应RTP包的连续包。
在本申请实施例中,及时将缓存至UDP缓存区的RTP包存储至缓存队列中,然后通过检查缓存队列可及时发现丢包。
S102:若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则检查所述缓存队列中是否存在丢包。
若第一RTP包是当前播放音视频数据对应RTP包的连续包,播放终端检查缓存队列中是否存在丢包。可选的,播放终端确定缓存队列中存储的RTP包的序号是否都是连续的;若缓存队列中存储的RTP包的序号均是连续的,则说明当前时刻播放终端接收到的音视频数据中不存在丢包;若缓存队列中存储的RTP包的序号存在不连续,则说明当前时刻播放终端接收到的音视频数据中存在丢包。
如,检查到缓存队列中包括RTP1包、RTP2包、RTP4包、RTP5包、RTP6包……,RTP2包、RTP4包之间不连续,则说明缓存队列中是存在丢包,进而目前接收到的音视频数据中存在丢包。
进一步,在本申请实施例中,若第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,确定距离上一次向服务器发送请求的时间是否达到第一预设时间;当距离上一次向所述服务器发送丢包请求的时间达到第一预设时间,则检查所述缓存队列中是否存才丢包。第一预设时间可根据需要进行选择,如100ms、200ms等。如此通过第一预设时间的控制,一方面有助于避免过度频繁的检查缓存队列的丢包造成的资源浪费,另一方面有助于控制播放终端向服务器发送丢包请求的频繁程度。
S103:若检查到所述缓存队列中存在丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。
当检查到缓存队列中存在丢包,获取缓存队列中所丢包的序号,即确定丢包待重传RTP包的序号,根据丢包待重传RTP包的序号向服务器发送丢包请求。
如,检查到缓存队列中包括RTP1包、RTP2包、RTP4包、RTP5包、RTP6包……,确定出缓存队列中所丢包的序号为3,确定丢包待重传的RTP包为RTP3包,向服务器发送丢包请求用以获取RTP3包。
传统方案中,通常只有在读取不到相应序号的RTP包时,才发现丢包,进而才去向服务器发送的丢包请求。与传统的方案比较,本申请实施例提供的RTP包丢包重传方法,播放终端通过从缓存队列中读取RTP包时及时查找到缓存队列中的丢包序号,以使及时向服务器发送丢包请求,增大播放终端丢包请求命中服务器窗口期的命中率,以使播放终端发送的丢包请求都尽量能够落在服务器的窗口期,进而相对较大概率的及时获得丢包数据以避免音视频播放出现卡顿,保证播放终端的音视频播放质量。
另外,在本申请实施例提供的RTP包丢包重传方法中,通过检查所述缓存队列中是否存在丢包检查意见的调控,实现播放终端向服务器发送丢包请求时间的动态调控,能够促使播放终端发送丢包请求命中服务器窗口期的命中率。
两个相邻RTP包中音视频数据的播放间隔超过最大播放间隔,播放命令对应的播放画面将会出现卡顿,因此本申请实施例中在努力获取被丢RTP包时,还要保证两个相邻RTP包中音视频数据的播放间隔不要超过最大播放间隔。
在本申请实施例提供的RTP包丢包重传方法中,若播放终端确定第一RTP包不是当前播放音视频数据对应RTP包的连续包,即缓存队列中无RTP包与当前播放音视频数据对应的RTP包连续,播放终端可继续查找与当前播放音视频数据对应的RTP包连续的RTP包的下一个包,读取并解析该下一个包准备连接前播放音视频数据进行播放。可选的,播放终端可读取UDP缓存区。
图2为本申请实施例提供的另一种RTP包丢包重传方法的结构示意图。作为一个实施例,如图2所示,本申请实施例提供的RTP包丢包重传方法,还包括:
S201:若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号不连续,则读取UDP缓存区。
播放终端确定缓存队列中无RTP包与当前播放音视频数据对应的RTP包连续时,则读取UDP缓存区,即从UDP缓存区读取RTP包。UDP缓存区可能缓存有音视频数据的RTP包,但也有可能未有音视频数据的RTP包,进而到播放终端读UDP缓存区时,可能读取到RTP包,也可能读取不到RTP包;同时当能够读取到RTP包,读取到的RTP包的序号可能与当前播放音视频数据对应RTP包的序号连续,也可能与当前播放音视频数据对应RTP包的序号不连续。
S202:若能够从所述UDP缓存区读取到RTP包,则确定所述RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续。
当能够从UDP缓存区读取到RTP包时,解析获得从UDP缓存区读取到的RTP包的序号;根据该RTP包的序号,确定该RTP包的序号是否为当前播放音视频数据对应RTP包序号的连续序号,即确定该RTP包与当前播放音视频数据对应RTP包是否连续。
S203:若所述RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则解析所述RTP包并播放所述RTP包。
当从UDP缓存区读取到的RTP包与当前播放音视频数据对应RTP包连续,则解析从UDP缓存区读取到的该RTP包,等待当前播放音视频数据对应RTP包播放完成时,播放该从UDP缓存区读取到的该RTP包。
S204:若所述RTP包的序号与当前播放音视频数据对应RTP包的序号不连续,则检查所述缓存队列中的丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。
当从UDP缓存区读取到的RTP包与当前播放音视频数据对应RTP包不连续,播放终端检查缓存队列中的丢包,以确定丢包的序号,即确定丢包待重传RTP包的序号,根据丢包待重传RTP包的序号向服务器发送丢包请求。
在本实施例提供的RTP包丢包重传方法中,播放终端在缓存队列中未找到与当前播放音视频数据对应RTP包连续的RTP包时,通过查找UDP缓存区确定UDP缓存区是否存在与当前播放音视频数据对应RTP包连续的RTP包;因为播放终端可通过丢包重传获取被丢包的RTP包,当播放终端通过丢包重传获取到被丢包的RTP包将首先会被存储至UDP缓存区,进而当UDP缓存区存在与当前播放音视频数据对应RTP包连续的RTP包时,通过查找读取UDP缓存区能够及时获取被丢包的RTP包以保证播放终端可连续播放音视频数据。
进一步,当从UDP缓存区读取到的RTP包与当前播放音视频数据对应RTP包不连续时,将读取到的RTP存入缓存队列中。
在本申请实施例中,当通过检查缓存队列确定存在丢包,播放终端根据丢包待重传RTP包的序号向服务器发送丢包请求时,播放终端向服务器发送丢包请求中一次性请求重传的丢包数量是定值或小于某个数量,便于能够及时获得一定数量的丢包,以保证播放终端可连续播放音视频数据。因此,本申请实施例提供的RTP包丢包重传方法中,根据丢包待重传RTP包的序号向服务器发送丢包请求,包括:从确定的丢包待重传RTP包的序号中选择前预设数量的重传RTP包序号,根据前预设数量的重传RTP包序号向服务器发送丢包请求。其中的预设数量可根据需要进行选择,如10个,若检查到缓存队列中存在15个丢包,则先统计序号靠前的前10个被丢RTP包的序号,基于该前10个被丢RTP包的序号向服务器发送丢包请求;若然若检查到缓存队列中进存在5个丢包,则先统计该5个被丢RTP包的序号,基于该5个被丢RTP包的序号向服务器发送丢包请求。
在本申请实施例中,当第一RTP包是当前播放音视频数据对应RTP包的连续包时,播放终端从缓存队列中取走该第一RTP包进行解码播放;播放终端将该第一RTP包从缓存队列中取走,即从缓存队列中删除该第一RTP包。进一步,本申请实施例还提供了一种RTP包丢包重传方法,图3为本申请实施例提供的再一种RTP包丢包重传方法的流程图。如图3所示,本申请实施例提供的RTP包丢包重传方法,包括
S301:读取UDP缓存区。
S302:若从所述UDP缓存区读取到RTP包,从所述缓存队列中删除已播放或正在播放音视频数据对应的RTP包,并将所述RTP包插入到所述缓存队列中。
在本申请实施例中,缓存队列中通常只能存放一定数量的RTP包,而这个数量通常小于播放命令对应音视频数据的RTP包总数量或播放命令对应的音视频数据的RTP包并不能一次性从服务器发送至播放终端,因此需要在将缓存队列中存储的RTP包取走后及时将UDP缓存区暂时存储的RTP包及时的存储至缓存队列中;另外服务器通过丢包重传返回的被丢RTP包也将被播放终端先暂存至UDP缓存区,因此为避免该被丢包能够正常的被播放需要及时的将该重传的被丢RTP包及时的存储至缓存队列中。进而在本申请实施例中,当从缓存队列中读取到与当前播放音视频数据对应RTP包连续的第一RTP包,该第一RTP包出缓存队列,同时读取UDP缓存区;当从UDP缓存区读取到RTP包,将读取到的RTP包插入到缓存队列中,进行缓存队列的更新。
进一步的,如图3所示,本申请实施例提供的RTP包丢包重传方法,包括:
S303:检查所述缓存队列中是否存在丢包。
S304:若检查到所述缓存队列中存在丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。
当缓存队列有更新,检查缓存队列中是否存在丢包。检查缓存队列中是否存在丢包可参考图1所示实施例中采用的技术手段;当检查到缓存队列中存在丢包,获取缓存队列中所丢包的序号,即确定丢包待重传RTP包的序号,根据丢包待重传RTP包的序号向服务器发送丢包请求。
下面通过具体实施例对本发明实施例提供的方法进行描述:
以机顶盒作为播放终端为例。机顶盒向服务器请求音视频数据。服务器基于机顶盒的请求,依次向机顶盒发送携带音视频数据的200个RTP包,分别记为RTP0~RTP199。每一个RTP包中包括对应的序号,分别为0~199。机顶盒接收服务器返回的RTP包,但在200个RTP包从服务器依次传输至机顶盒的过程中,可能存在都丢包,即RTP0~RTP199中仅部分RTP包传输至机顶盒,进而机顶盒接收到RTP0~RTP199中部分RTP包,机顶盒将接收到的RTP包先暂存储至UDP缓存区,再从UDP缓存区将RTP包读取到队列中。
若机顶盒接收到RTP0,从UDP缓存区中解析获取该RTP0的序号0,可知该RTP0为第一个RTP包。机顶盒解析RTP0,记录当前解析的RTP包的序号N=0。机顶盒解码并播放RTP0中的音视频数据,记录当前播放音视频数据对应RTP包的序号为0。
若机顶盒接收到RTP1,从UDP缓存区中解析获取RTP1的序号1。机顶盒从UDP缓存区读取并解析RTP1,并更新解析的RTP包的序号N=1,将RTP1存放至缓存队列中,同时机顶盒重复的从UDP缓存区读取RTP包存放至缓存队列中,如表1。另外,机顶盒在播放RTP0中的音视频数据后从缓存队列中读取并解码播放RTP1中的音视频数据,并更新当前播放音视频数据对应RTP包的序号为1。
表1:
缓存队列 |
RTP1 |
…… |
若机顶盒接收到RTP3,从UDP缓存区中解析获取RTP3的序号3,机顶盒将RTP3存入缓存队列;另外,机顶盒进行RTP0中的音视频数据播放时通过从缓存队列中读取第一RTP包读取到RTP1,确定RTP1的序号与当前播放音视频数据对应RTP0包的序号连续,检查缓存队列中是否存在丢包,另外从缓存队列中读取RTP1并更新缓存队列,如表2所示。或者,此过程中可判断是否达到丢包检查期;若到达丢包检查期则检查更新后的缓存队列是否存在丢包,若是存在丢包,则基于根据丢包待重传RTP包的序号向服务器发送丢包请求。进而,机顶盒可判断出RTP2被丢包,确定丢包待重传RTP包的序号为2,则机顶盒向视频服务器发送重传请求,在重传请求中携带序号2。
表2:
缓存队列 |
RTP3 |
…… |
机顶盒进行RTP1中的音视频数据播放时通过从缓存队列中读取第一RTP包读取到RTP3,确定RTP3的序号与当前播放音视频数据对应RTP1包的序号不连续,从UDP缓存区读取RTP包;若机顶盒从UDP缓存区读取到RTP4包,RTP4包与RTP1不连续,将RTP4包放入缓存队列中,如表3所示;若机顶盒从UDP缓存区读取到RTP2包,RTP2包与RTP1连续,机顶盒解码并播放RTP2中的音视频数据,记录当前播放音视频数据对应RTP包的序号为2。
表3:
缓存队列 |
RTP3 |
RTP4 |
…… |
以此类推,若机顶盒依次接收到RTP6、RTP8、RTP9、RTP10、RTP11、RTP12,机顶盒依次将RTP6、RTP8、RTP9、RTP10、RTP11、RTP12从UDP缓存区中存入缓存队列,如表4所示。
表4:
缓存队列 |
RTP3 |
RTP4 |
RTP6 |
RTP8 |
RTP9 |
RTP10 |
RTP11 |
RTP12 |
…… |
机顶盒在进行RTP2中的音视频数据播放时,继续从缓存队列中读取第一RTP包,读取到第一RTP包RTP3,确定RTP3的序号与当前播放音视频数据对应RTP2包的序号连续,则检查缓存队列中是否存在丢包;通过检查缓存队列,获得RTP5和RTP7被丢包,确定丢包待重传RTP包的序号为5和7,机顶盒向视频服务器发送重传请求,在重传请求中携带序号5和7。另外,机顶盒在播放RTP2中的音视频数据后从缓存队列中读取并解码播放RTP3中的音视频数据,并更新当前播放音视频数据对应RTP包的序号为3,机顶盒删除缓存队列中的RTP3,进行缓存队列更新。
若机顶盒接收到视频服务器基于重传请求回应的RTP5,获取RTP5的序号5,机顶盒将RTP5插入缓存队列,如表5所示。
表5:
缓存队列 |
RTP4 |
RTP5 |
RTP6 |
RTP8 |
RTP9 |
RTP10 |
RTP11 |
RTP12 |
…… |
以此类推,机顶盒从缓存队列中依次读取RTP4~RTP6,并依次播放RTP4~RTP6携带的音视频数据,机顶盒删除缓存队列中的RTP4~RTP6。若在机顶盒向服务器发送重传请求,重传请求中携带序号5和7中未能获取成功的获取到RTP 7,那么在读取RTP4~RTP6后将还会向服务器发送重传请求且可能不止一次,重传请求中携带序号7,用于获取RTP7,因此将有较大概率的获取到RTP7,以保证RTP6后能正常的播放到RTP7的音视频数据。当然如此还是未能获取到RTP7,缓存队列如表6。
表6:
缓存队列 |
RTP8 |
RTP9 |
RTP10 |
RTP11 |
RTP12 |
…… |
假设机顶盒预设最大播放间隔为2s。若当前时间与开始播放RTP6中音视频数据相差达到2s,则机顶盒直接读取缓存队列中RTP8并解析RTP8,获取RTP8中的音视频数据进行播放,以避免画面卡顿。
另外当播放到RTP10时,接收到时移命令时,基于所述时移命令删除缓存队列中现存的RTP包。
基于本申请实施例提供的RTP包丢包重传方法,本申请实施例还提供了一种RTP包丢包重传装置。图4为本申请实施例还提供的一种RTP包丢包重传装置的结构示意图。如图4所示,本申请实施例提供的RTP包丢包重传装置中,包括:
第一读取单元401,用于从缓存队列中读取第一RTP包,确定所述第一RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续,所述缓存队列中缓存有若干RTP包;
第一检查单元402,用于若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则检查所述缓存队列中是否存在丢包;
第一请求单元403,用于若检查到所述缓存队列中存在丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。
进一步,本申请实施例提供的RTP包丢包重传装置中,还包括:
UDP缓存区读取单元,用于若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号不连续,则读取UDP缓存区;若能够从所述UDP缓存区读取到RTP包,则确定所述RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续;若所述RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则解析所述RTP包并播放所述RTP包;若所述RTP包的序号与当前播放音视频数据对应RTP包的序号不连续,则检查所述缓存队列中的丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。
进一步,本申请实施例提供的RTP包丢包重传装置中,所述第一请求单元403还包括:
第一请求子单元,用于从确定的丢包待重传RTP包的序号中选择前预设数量的重传RTP包序号,根据前预设数量的重传RTP包序号向服务器发送丢包请求。
进一步,本申请实施例提供的RTP包丢包重传装置中,所述第一检查单元402,还包括:
第一检查子单元,用于若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则确定距离上一次向服务器发送丢包请求的时间是否达到第一预设时间;若距离上一次向所述服务器发送丢包请求的时间达到第一预设时间,则检查所述缓存队列中是否存才丢包。
进一步,本申请实施例提供的RTP包丢包重传装置中,还包括:
缓存队列更新单元,用于若所述RTP包的序号与当前播放音视频数据对应RTP包的序号不连续,将所述RTP包插入所述缓存队列中。
关于RTP包丢包重传装置的详细内容可参见本申请实施例提供的RTP包丢包重传方法中的详细描述。
基于本申请实施例提供的RTP包丢包重传方法,本申请实施例还提供一种播放终端。本申请实施例提供的播放终端,包括处理器,所述处理器被配置为:
从缓存队列中读取第一RTP包,确定所述第一RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续,所述缓存队列中缓存有若干RTP包;
若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则检查所述缓存队列中是否存在丢包;
若检查到所述缓存队列中存在丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。
本申请实施例提供的播放终端可为机顶盒、社交电视等。进一步,关于播放终端的详细内容可参见本申请实施例提供的RTP包丢包重传方法中的详细描述。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (8)
1.一种RTP包丢包重传方法,其特征在于,应用于智能机顶盒,所述方法包括:
从缓存队列中读取第一RTP包,确定所述第一RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续,所述缓存队列中缓存有若干RTP包;
若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则检查所述缓存队列中是否存在丢包;
若检查到所述缓存队列中存在丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求;
若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号不连续,则读取UDP缓存区;
若能够从所述UDP缓存区读取到RTP包,则确定所述RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续;
若所述RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则解析所述RTP包并播放所述RTP包;
若所述RTP包的序号与当前播放音视频数据对应RTP包的序号不连续,则检查所述缓存队列中的丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。
2.根据权利要求1所述的RTP包丢包重传方法,其特征在于,若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则检查所述缓存队列中是否存在丢包,包括:
若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则确定距离上一次向服务器发送丢包请求的时间是否达到第一预设时间;
若距离上一次向所述服务器发送丢包请求的时间达到第一预设时间,则检查所述缓存队列中是否存在丢包。
3.根据权利要求1所述的RTP包丢包重传方法,其特征在于,根据丢包待重传RTP包的序号向服务器发送丢包请求,包括:
从确定的丢包待重传RTP包的序号中选择前预设数量的重传RTP包序号,根据前预设数量的重传RTP包序号向服务器发送丢包请求。
4.根据权利要求1所述的RTP包丢包重传方法,其特征在于,所述方法还包括:
若所述RTP包的序号与当前播放音视频数据对应RTP包的序号不连续,将所述RTP包插入所述缓存队列中。
5.根据权利要求1所述的RTP包丢包重传方法,其特征在于,所述方法还包括:
读取UDP缓存区;
若从所述UDP缓存区读取到RTP包,将所述RTP包插入到所述缓存队列中;
检查所述缓存队列中是否存在丢包;
若检查到所述缓存队列中存在丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。
6.根据权利要求1所述的RTP包丢包重传方法,其特征在于,所述方法还包括:
读取UDP缓存区;
若从所述UDP缓存区未读取到RTP包,则检查所述缓存队列中是否存在丢包;
若检查到所述缓存队列中存在丢包,确定丢包待重传RTP包的序号;
从确定的丢包待重传RTP包的序号中选择前预设数量的重传RTP包序号,根据前预设数量的重传RTP包序号向服务器发送丢包请求。
7.一种RTP包丢包重传装置,其特征在于,包括:
第一读取单元,用于从缓存队列中读取第一RTP包,确定所述第一RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续,所述缓存队列中缓存有若干RTP包;
第一检查单元,用于若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则检查所述缓存队列中是否存在丢包;
第一请求单元,用于若检查到所述缓存队列中存在丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求;
UDP缓存区读取单元,用于若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号不连续,则读取UDP缓存区;若能够从所述UDP缓存区读取到RTP包,则确定所述RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续;若所述RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则解析所述RTP包并播放所述RTP包;若所述RTP包的序号与当前播放音视频数据对应RTP包的序号不连续,则检查所述缓存队列中的丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。
8.一种智能机顶盒,其特征在于,所述智能机顶盒包括处理器,所述处理器被配置为:
从缓存队列中读取第一RTP包,确定所述第一RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续,所述缓存队列中缓存有若干RTP包;
若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则检查所述缓存队列中是否存在丢包;
若检查到所述缓存队列中存在丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求;
若所述第一RTP包的序号与当前播放音视频数据对应RTP包的序号不连续,则读取UDP缓存区;
若能够从所述UDP缓存区读取到RTP包,则确定所述RTP包的序号是否与当前播放音视频数据对应RTP包的序号连续;
若所述RTP包的序号与当前播放音视频数据对应RTP包的序号连续,则解析所述RTP包并播放所述RTP包;
若所述RTP包的序号与当前播放音视频数据对应RTP包的序号不连续,则检查所述缓存队列中的丢包,确定丢包待重传RTP包的序号,并根据丢包待重传RTP包的序号向服务器发送丢包请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011384070.3A CN114584845B (zh) | 2020-11-30 | 2020-11-30 | 一种rtp包丢包重传方法、装置及智能机顶盒 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011384070.3A CN114584845B (zh) | 2020-11-30 | 2020-11-30 | 一种rtp包丢包重传方法、装置及智能机顶盒 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114584845A CN114584845A (zh) | 2022-06-03 |
CN114584845B true CN114584845B (zh) | 2023-10-20 |
Family
ID=81767296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011384070.3A Active CN114584845B (zh) | 2020-11-30 | 2020-11-30 | 一种rtp包丢包重传方法、装置及智能机顶盒 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114584845B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989902A (zh) * | 2010-11-16 | 2011-03-23 | 中兴通讯股份有限公司 | 一种数据重传方法及装置 |
US8379083B1 (en) * | 2008-07-17 | 2013-02-19 | Sprint Communications Company L.P. | Simultaneous viewing and reliable recording of multimedia content over a network |
CN107147481A (zh) * | 2017-07-19 | 2017-09-08 | 北京数码视讯科技股份有限公司 | 丢包重传方法、装置及电子设备 |
CN107888342A (zh) * | 2016-09-30 | 2018-04-06 | 瞬已网络科技(上海)有限公司 | 一种网络实时视频传输方法及装置 |
WO2018133478A1 (zh) * | 2017-01-17 | 2018-07-26 | 烽火通信科技股份有限公司 | 一种流媒体传输优化方法及装置 |
CN109819322A (zh) * | 2019-03-15 | 2019-05-28 | 网易(杭州)网络有限公司 | 视频传输方法、装置、计算机可读存储介质及电子设备 |
CN110225419A (zh) * | 2019-05-15 | 2019-09-10 | 深圳市麦谷科技有限公司 | 一种实现流量控制的丢包重传方法 |
CN111263240A (zh) * | 2020-02-12 | 2020-06-09 | 青岛海信宽带多媒体技术有限公司 | Iptv 4k音视频播放管理方法、装置、显示设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806551B2 (en) * | 2008-12-03 | 2014-08-12 | Alcatel Lucent | Prioritized retransmission of internet protocol television (IPTV) packets |
-
2020
- 2020-11-30 CN CN202011384070.3A patent/CN114584845B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8379083B1 (en) * | 2008-07-17 | 2013-02-19 | Sprint Communications Company L.P. | Simultaneous viewing and reliable recording of multimedia content over a network |
CN101989902A (zh) * | 2010-11-16 | 2011-03-23 | 中兴通讯股份有限公司 | 一种数据重传方法及装置 |
CN107888342A (zh) * | 2016-09-30 | 2018-04-06 | 瞬已网络科技(上海)有限公司 | 一种网络实时视频传输方法及装置 |
WO2018133478A1 (zh) * | 2017-01-17 | 2018-07-26 | 烽火通信科技股份有限公司 | 一种流媒体传输优化方法及装置 |
CN107147481A (zh) * | 2017-07-19 | 2017-09-08 | 北京数码视讯科技股份有限公司 | 丢包重传方法、装置及电子设备 |
CN109819322A (zh) * | 2019-03-15 | 2019-05-28 | 网易(杭州)网络有限公司 | 视频传输方法、装置、计算机可读存储介质及电子设备 |
CN110225419A (zh) * | 2019-05-15 | 2019-09-10 | 深圳市麦谷科技有限公司 | 一种实现流量控制的丢包重传方法 |
CN111263240A (zh) * | 2020-02-12 | 2020-06-09 | 青岛海信宽带多媒体技术有限公司 | Iptv 4k音视频播放管理方法、装置、显示设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114584845A (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4287634A1 (en) | Game data processing method and apparatus, and storage medium | |
CN106686438B (zh) | 一种跨设备的音频图像同步播放的方法、装置及系统 | |
EP2095205B1 (en) | Hybrid buffer management | |
WO2016131223A1 (zh) | 一种视频帧丢帧方法及视频发送装置 | |
CN110881135B (zh) | 一种对连麦传输协议优化的方法、装置、设备及介质 | |
RU2501172C2 (ru) | Способ и устройство для компенсации потери пакетов в режиме передачи данных по протоколу пользовательских дейтаграмм | |
US8867340B2 (en) | Discarded packet indicator | |
JP2024509728A (ja) | データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム | |
US20220272402A1 (en) | Video stream playing method, system, terminal and storage medium | |
CN110830460B (zh) | 一种连接建立方法、装置、电子设备及存储介质 | |
US20220255866A1 (en) | Audio/video communication method, terminal, server, computer device, and storage medium | |
US20150326898A1 (en) | Method, device and system for evaluating user experience value of video quality | |
CN107295364B (zh) | 用于弹幕视频的实时流传输控制方法、控制装置 | |
CN113727185B (zh) | 视频帧播放方法及系统 | |
CN111163362B (zh) | 一种自适应重传等待时间的视频接收方法及系统 | |
CN114979023A (zh) | 一种数据传输方法、系统、电子设备及存储介质 | |
WO2019100475A1 (zh) | 一种数据传输方法、装置、设备及存储介质 | |
US20170118142A1 (en) | Method and Apparatus for Voice Communication Based on Voice Activity Detection | |
CN114584845B (zh) | 一种rtp包丢包重传方法、装置及智能机顶盒 | |
US11522643B2 (en) | Wireless communication device and wireless communication method | |
CN114584844B (zh) | 一种rtp包丢包重传方法、装置及智能机顶盒 | |
CN112995720B (zh) | 一种音视频同步方法和装置 | |
CN111866526B (zh) | 一种直播业务处理方法和装置 | |
CN108521611B (zh) | 一种抗抖动视频数据存取方法以及计算机设备 | |
US11870831B2 (en) | Method and apparatus for playing multimedia streaming data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |