《点对点实时视频传输方法及其传输系统.pdf》由会员分享,可在线阅读,更多相关《点对点实时视频传输方法及其传输系统.pdf(14页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104092982A43申请公布日20141008CN104092982A21申请号201410308718722申请日20140630H04N7/18200601H04N21/6320110171申请人上海国兆电子科技有限公司地址201315上海市浦东新区周浦镇康沈路1445弄68号16幢309室72发明人郑俊彦74专利代理机构上海晨皓知识产权代理事务所普通合伙31260代理人成丽杰54发明名称点对点实时视频传输方法及其传输系统57摘要本发明涉及互联网视频传输技术领域,公开了一种点对点实时视频传输方法及其传输系统。本发明中,通过同时在设备端发送端以及用户端接收端建立缓冲池,。
2、建立一套有效的管理方法将这种丢弃数据的情形变成可控而且高效化,并且判断是否需要丢弃或重传特定数据,更能适用于公共网络的应用,即使在网络不理想的情况下,排除了旧数据堵塞妨碍及时数据的传输问题,能够保持视频的实时性以及更佳的连贯性,提高了互联网点对点实时视频传输的成功率。51INTCL权利要求书3页说明书8页附图2页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书8页附图2页10申请公布号CN104092982ACN104092982A1/3页21一种点对点实时视频传输方法,其特征在于,包含以下步骤S1、发送端在视频编码时,为视频数据包添加标签,所述标签包含所述视频数据包的编码。
3、时间及是否包含帧内编码I帧;S2、发送端将待发送的视频数据包存放在发送端缓冲池中;S3、发送端和接收端成功建立P2P连接后,发送端将所述发送端缓冲池中第一预设小区内存放的视频数据包作为当前发送数据发送出去;S4、接收端将接收的数据存放在接收端缓冲池中;S5、接收端将接收端缓冲池的第二预设小区内的视频数据包作为当前播放数据进行解码播放;其中,预先在发送端和接收端分别建立所述发送端缓冲池和所述接收端缓冲池,所述发送端缓冲池用于存放已经发送的视频数据包和待发送的视频数据包,所述接收端缓冲池用于存放接收到但还未使用的视频数据包;所述发送端缓冲池和所述接收端缓冲池分别进行分区并编号管理,每一个小区内存储。
4、一个视频数据包。2根据权利要求1所述的点对点实时视频传输方法,其特征在于,所述发送端缓冲池内的数据以发送指针管理,所述接收端缓冲池内的数据以接收端指针管理;所述发送指针与所述发送端缓冲池的小区编号一一对应,所述接收指针与所述接收端缓冲池的小区编号一一对应;所述发送端缓冲池和所述接收端缓冲池的小区编号分别保持固定不变,且其前后顺序不变;所述发送指针的编号连续且循环,其值根据发送端发送数据情况实时修改;所述接收指针的编号连续且循环,其值根据接收端接收数据情况实时修改。3根据权利要求2所述的点对点实时视频传输方法,其特征在于,在所述步骤S2中,包含以下子步骤在每一个小区的发送指针中添加第一旗号FLA。
5、G1,所述FLAG1用于标记所述发送指针对应小区内的数据是否包含I帧数据;其中,所述FLAG1为1,代表有I帧数据;所述FLAG1为0,代表没有I帧数据。4根据权利要求3所述的点对点实时视频传输方法,其特征在于,在所述步骤S2中,包含以下子步骤在向所述发送端缓冲池写入数据时,如果写入小区的发送指针指向最大编号的小区,则从所述第一预设小区开始查找,找到所述FLAG1为1的小区;清空所述第一预设小区至所述找到的FLAG1为1的小区之间小区存放的数据;计算所述找到的FLAG1为1的小区对应的编号与所述第一预设小区的编号之间的第一差值;将所述找到的FLAG1为1的小区作为第一预设的小区,所述找到的FL。
6、AG1为1的小区之后的小区编号分别减去所述第一差值。5根据权利要求3所述的点对点实时视频传输方法,其特征在于,在所述步骤S2之后,所述步骤S3之前,还包含以下步骤在P2P连接成功时,查找最后一个FLAG1为1的小区,并计算所述最后一个FLAG1为1的小区的发送指针编号与所述第一预设小区编号的第二差值;权利要求书CN104092982A2/3页3将所述最后一个FLAG1为1的小区的发送指针编号变更为第一预设小区编号;将所有小区的发送指针编号都减去所述第二差值。6根据权利要求3所述的点对点实时视频传输方法,其特征在于,在所述步骤S3之后,还包含以下步骤如果发送端成功发送缓冲池小区的数据,则将发送端。
7、缓冲池内小区的发送指针编号全部减1。7根据权利要求2所述的点对点实时视频传输方法,其特征在于,在所述步骤S4中,包含以下子步骤在每一个小区的接收指针中添加第二旗号FLAG2,所述FLAG2用于标记所述接收指针对应小区内的数据是否包含I帧数据;其中,所述FLAG2为1,代表有I帧数据;所述FLAG2为0,代表没有I帧数据。8根据权利要求7所述的点对点实时视频传输方法,其特征在于,在所述步骤S4中,包含以下子步骤在向所述接收端缓冲池写入数据时,如果写入小区的接收指针指向最大编号的小区,则从所述第二预设小区开始查找,找到所述FLAG2为1的小区;清空所述第二预设小区至所述找到的FLAG2为1的小区之。
8、间小区存放的数据;计算所述找到的FLAG2为1的小区对应的编号与所述第二预设小区的编号之间的第三差值;将所述找到的FLAG2为1的小区作为第二预设的小区,所述找到的FLAG2为1的小区之后的小区编号分别减去所述第三差值。9根据权利要求7所述的点对点实时视频传输方法,其特征在于,在所述步骤S5之后,还包含以下步骤在接收端有效缓冲池的2个I帧之间检查视频数据包的封包编号,如有空缺,则检查前一个封包的编码时间;如果所述前一个封包的编码时间与当前时间的时间差小于3秒,则接收端向发送端发命令,请求发送端重传所述空缺的封包;发送端收到所述重传请求之后,在发送端缓冲池中查找所述空缺的封包,若找到,则发送给所。
9、述接收端。10根据权利要求7所述的点对点实时视频传输方法,其特征在于,在所述步骤S5之后,还包含以下步骤在接收端小区数据被成功解码播放后,将所有接收指针的编号减1。11根据权利要求7所述的点对点实时视频传输方法,其特征在于,在所述步骤S5之后,还包含以下步骤播放程序从接收端缓冲池的第二预设小区取得数据加以解码播放;如果解码时取得的编码时间是3秒之内,则继续从下一个接收指针编号的小区取得数据加以解码播放;如果解码时取得的编码时间是3秒之前,则直接查找下一个FLAG2为1的缓冲池小区,并且将该小区接收指针编号为0,同时将所有接收指针流水号依据相应关系,重新编排;播放程序从新的FLAG2为1的小区开。
10、始解码播放。权利要求书CN104092982A3/3页412一种点对点实时视频传输系统,其特征在于,包含发送端和接收端;所述发送端包含视频编码模块、发送端缓冲池和发送模块;所述接收端包含接收模块、接收端缓冲池和解码播放模块;所述视频编码模块用于在视频编码时,为视频数据包添加标签,所述标签包含所述视频数据包的编码时间及是否包含帧内编码I帧;所述发送端缓冲池用于存放已经发送的视频数据包和待发送的视频数据包;所述发送模块用于在发送端和接收端成功建立P2P连接后,将所述发送端缓冲池中第一预设小区内存放的视频数据包作为当前发送数据发送出去;所述接收模块用于接收来自发送端的数据;所述接收端缓冲池用于存放接。
11、收到但还未使用的视频数据包;所述解码播放模块用于读取所述接收端缓冲池的第二预设小区内的视频数据包作为当前播放数据进行播放;其中,预先在发送端和接收端分别建立所述发送端缓冲池和所述接收端缓冲池,所述发送端缓冲池和所述接收端缓冲池分别进行分区并编号管理,每一个小区内存储一个视频数据包。权利要求书CN104092982A1/8页5点对点实时视频传输方法及其传输系统技术领域0001本发明涉及互联网视频传输技术领域,特别涉及一种点对点实时视频传输方法及其传输系统。背景技术0002现有民用市场的互联网的视频监控其传输模式包括P2PPEERTOPEER,点对点直连。P2P是一种面向一般大众使用的视频监控系统。
12、,需要分布式的设备安装,以及低廉的运营成本。0003但是现有的P2P技术需要设备端数据发送端与用户端数据接收端双方建立连接之后,才能开始传输数据,这样会导致传输数据时的延迟时间比较长,即使接收端接收到数据,也会因为数据过时而无法使用。0004另外,由于用户对视频实时性的要求越来越高,TCPTRANSMISSIONCONTROLPROTOCOL,传输控制协议在大部分的网络环境里,已经无法满足需求。此外,标准UDPUSERDATAGRAMPROTOCOL,用户数据报协议不具备数据重传的机制,会造成大量数据丢失。目前部分商用系统也有在标准UDP协议下,建立数据重传的机制,但在视频实时性上未能达到要求。
13、,仍然无法满足用户对视频完整性的要求。0005综上所述,目前的互联网视频监控的传输方法的实时性低,使得用户感知度低。发明内容0006本发明的目的在于提供一种点对点实时视频传输方法及其传输系统,使得视频传输的实时性得以保持,并获得更佳的连贯性,提高互联网点对点实时视频传输的成功率。0007为解决上述技术问题,本发明的实施方式提供了一种点对点实时视频传输方法,包含以下步骤0008S1、发送端在视频编码时,为视频数据包添加标签,所述标签包含所述视频数据包的编码时间及是否包含帧内编码I帧;0009S2、发送端将待发送的视频数据包存放在发送端缓冲池中;0010S3、发送端和接收端成功建立P2P连接后,发。
14、送端将所述发送端缓冲池中第一预设小区内存放的视频数据包作为当前发送数据发送出去;0011S4、接收端将接收的数据存放在接收端缓冲池中;0012S5、接收端将接收端缓冲池的第二预设小区内的视频数据包作为当前播放数据进行解码播放;0013其中,预先在发送端和接收端分别建立所述发送端缓冲池和所述接收端缓冲池,所述发送端缓冲池用于存放已经发送的视频数据包和待发送的视频数据包,所述接收端缓冲池用于存放接收到但还未使用的视频数据包;所述发送端缓冲池和所述接收端缓冲池分别进行分区并编号管理,每一个小区内存储一个视频数据包。0014本发明的实施方式还提供了一种点对点实时视频传输系统,包含发送端和接收说明书CN。
15、104092982A2/8页6端;所述发送端包含视频编码模块、发送端缓冲池和发送模块;所述接收端包含接收模块、接收端缓冲池和解码播放模块;0015所述视频编码模块用于在视频编码时,为视频数据包添加标签,所述标签包含所述视频数据包的编码时间及是否包含帧内编码I帧;0016所述发送端缓冲池用于存放已经发送的视频数据包和待发送的视频数据包;0017所述发送模块用于在发送端和接收端成功建立P2P连接后,将所述发送端缓冲池中第一预设小区内存放的视频数据包作为当前发送数据发送出去;0018所述接收模块用于接收来自发送端的数据;0019所述接收端缓冲池用于存放接收到但还未使用的视频数据包;0020所述解码播。
16、放模块用于读取所述接收端缓冲池的第二预设小区内的视频数据包作为当前播放数据进行播放;0021其中,预先在发送端和接收端分别建立所述发送端缓冲池和所述接收端缓冲池,所述发送端缓冲池和所述接收端缓冲池分别进行分区并编号管理,每一个小区内存储一个视频数据包。0022本发明实施方式相对于现有技术而言,更能适用于公共网络的应用,即使在网络不理想的情况下,排除了旧数据堵塞妨碍及时数据的传输问题,能够保持视频的实时性以及更佳的连贯性,提高了互联网点对点实时视频传输的成功率。0023另外,所述发送端缓冲池内的数据以发送指针管理,所述接收端缓冲池内的数据以接收端指针管理;所述发送指针与所述发送端缓冲池的小区编号。
17、一一对应,所述接收指针与所述接收端缓冲池的小区编号一一对应;0024所述发送端缓冲池和所述接收端缓冲池的小区编号分别保持固定不变,且其前后顺序不变;0025所述发送指针的编号连续且循环,其值根据发送端发送数据情况实时修改;0026所述接收指针的编号连续且循环,其值根据接收端接收数据情况实时修改。0027另外,为了标记小区内含是否有解码所需重要帧I帧,在所述步骤S2中,包含以下子步骤0028在每一个小区的发送指针中添加第一旗号FLAG1,所述FLAG1用于标记所述发送指针对应小区内的数据是否包含I帧数据;0029其中,所述FLAG1为1,代表有I帧数据;所述FLAG1为0,代表没有I帧数据。00。
18、30另外,在发送端缓冲池写满时,通过保留包含I帧视频数据包的小区,清空不包含I帧视频数据包的小区,保留关键解码信息,以便接收端解码播放时,能给出参考。具体地说,在所述步骤S2中,包含以下子步骤0031在向所述发送端缓冲池写入数据时,如果写入小区的发送指针指向最大编号的小区,则0032从所述第一预设小区开始查找,找到所述FLAG1为1的小区;0033清空所述第一预设小区至所述找到的FLAG1为1的小区之间小区存放的数据;计算所述找到的FLAG1为1的小区对应的编号与所述第一预设小区的编号之间的第一差值;0034将所述找到的FLAG1为1的小区作为第一预设的小区,所述找到的FLAG1为1的小区之后。
19、的小区编号分别减去所述第一差值。说明书CN104092982A3/8页70035另外,在所述步骤S2之后,所述步骤S3之前,还包含以下步骤0036在P2P连接成功时,查找最后一个FLAG1为1的小区,并计算所述最后一个FLAG1为1的小区的发送指针编号与所述第一预设小区编号的第二差值;0037将所述最后一个FLAG1为1的小区的发送指针编号变更为第一预设小区编号;0038将所有小区的发送指针编号都减去所述第二差值。0039另外,在所述步骤S3之后,还包含以下步骤0040如果发送端成功发送缓冲池小区的数据,则将发送端缓冲池内小区的发送指针编号全部减1。0041在成功发送缓冲池小区的数据时,通过发。
20、送指针全部减1,以更新发送缓冲池内数据的时间,保证发送缓冲池内数据的时间性。0042另外,为了标记小区内含是否有解码所需重要帧比如,I帧,在所述步骤S4中,包含以下子步骤0043在每一个小区的接收指针中添加第二旗号FLAG2,所述FLAG2用于标记所述接收指针对应小区内的数据是否包含I帧数据;0044其中,所述FLAG2为1,代表有I帧数据;所述FLAG2为0,代表没有I帧数据。0045另外,在所述步骤S4中,包含以下子步骤0046在向所述接收端缓冲池写入数据时,如果写入小区的接收指针指向最大编号的小区,则0047从所述第二预设小区开始查找,找到所述FLAG2为1的小区;0048清空所述第二预。
21、设小区至所述找到的FLAG2为1的小区之间小区存放的数据;计算所述找到的FLAG2为1的小区对应的编号与所述第二预设小区的编号之间的第三差值;0049将所述找到的FLAG2为1的小区作为第二预设的小区,所述找到的FLAG2为1的小区之后的小区编号分别减去所述第三差值。0050另外,在所述步骤S5之后,还包含以下步骤0051在接收端有效缓冲池的2个I帧之间检查视频数据包的封包编号,如有空缺,则检查前一个封包的编码时间;0052如果所述前一个封包的编码时间与当前时间的时间差小于3秒,则接收端向发送端发命令,请求发送端重传所述空缺的封包。0053另外,在所述步骤S5之后,还包含以下步骤0054在接收。
22、端小区数据被成功解码播放后,将所有接收指针的编号减1。0055另外,在所述步骤S5之后,还包含以下步骤0056播放程序从接收端缓冲池的第二预设小区取得数据加以解码播放;0057如果解码时取得的编码时间是3秒之内,则继续从下一个接收指针编号的小区取得数据加以解码播放;如果解码时取得的编码时间是3秒之前,则直接查找下一个FLAG2为1的缓冲池小区,并且将该小区接收指针编号为0,同时将所有接收指针流水号依据相应关系,重新编排;0058播放程序从新的FLAG2为1的小区开始解码播放。附图说明说明书CN104092982A4/8页80059图1是根据本发明第一实施方式的点对点实时视频传输方法的流程图;0。
23、060图2是根据本发明第一实施方式的点对点实时视频传输方法中缓冲池工作示意图;0061图3是根据本发明第二实施方式的点对点实时视频传输系统的结构示意图;。具体实施方式0062为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。0063本发明的第一实施方式涉及一种点对点实时视频传输方法,该方法设计了传输缓冲池管理,并且在UDP协议上添加自有模。
24、块,判断是否需要丢弃或重传特定数据;还建立一套有效的管理方法将这种丢弃数据的情形变成可控而且高效化。0064图1所示是缓冲池工作示意图,其工作过程如下0065A发送端建立缓冲池48个小区,编号047,对应初始化发送指针编号0470066B接收端建立缓冲池32个小区,编号031,对应初始化接收指针编号03100671P2PPEERTOPEER,P2P连接成功,2开始传输数据,以发送指针管理发送端数据的实时性,以接收指针管理接收到的数据的实时性。3以I帧标记为丢弃无效数据单位,发现有效数据被丢包的情况可以要求重传特定封包,弥补UDP协议的缺点,提高视频播放的连贯性。0068以下分别图1中对各部分进。
25、行说明0069本发明同时在设备端发送端以及用户端接收端建立缓冲池。缓冲池大小的设计依据视频流大小计算而得;比如,为了保存前3秒已经传输的的数据以及保证3秒内新数据的不会遗失,以512KB码流为例,6秒钟的缓冲需要3MB的空间。0070一、视频编码一般指摄像头的编码模块。0071在视频数据包添加标签,注明编码时间以及该封包是否包含IFRAME帧内编码帧。0072具体地说,可以通过摄像头的编码模块进行视频编码,摄像头的编码模块可以在视频数据包添加标签,注明编码时间也就是,在数据的封包里含有时间的数据以及该封包是否包含IFRAME帧内编码帧。比如说,可以通过FLAG来标识,若是FLAG为1,证明包含。
26、I帧,若是FLAG为0,证明不包含I帧。0073二、发送端一般指摄像头的网络模块。00741在发送端建立3MB的缓冲池存放已经发送和需要发送的数据。将发送端缓冲池分成48个64KB的小区,每一个小区都编上流水号0至47,各个小区是连续而且循环,小区的流水号编号保持固定不变,而且其前后顺序不变,流水号47的小区其后是流水号为0的小区。00752将发送端缓冲池的每一个小区都初始化编上对应的流水号0至47作为发送指针,发送指针流水号为连续而且循环,发送指针流水号受程序控制修改,7减1为46,1减1说明书CN104092982A5/8页9为0,0减1为47,依次类推。0076也就是说,发送端缓冲池内的。
27、数据以发送指针管理,发送指针与发送端缓冲池的小区编号一一对应,发送端缓冲池的小区编号保持固定不变,且其前后顺序不变;发送指针的编号连续且循环,其值根据发送端发送数据情况实时修改。比如说,00773储存在发送端缓冲池发送指针24第一预设小区的小区数据为当前发送数据,发送指针023的小区保存了已经发送的最近3秒以上的数据。通过保存前3秒已经传输的的数据以及保证3秒内新数据的不会遗失,已备重传。00784在发送端缓冲池每一个小区发送指针添加FLAG旗号,1代表有I帧数据,0代表没有I帧数据。0079也就是说,为了标记小区内含是否有解码所需重要帧I帧,可以在每一个小区的发送指针中添加第一旗号FLAG1。
28、,FLAG1用于标记发送指针对应小区内的数据是否包含I帧数据;其中,FLAG1为1,代表有I帧数据;FLAG1为0,代表没有I帧数据。00805在向发送端缓冲池写入数据的时,检查写入小区的发送指针,比如,如果大于46代表3秒以前的数据还没有被送出去,则清空发送指针24号以后的小区,直到下一个I帧数据小区被找到并且被编号为发送指针24。其他所有小区的编号都减去相同的数值,保持前后关系。0081举例来说,如果写入小区的发送指针指向最大编号的小区比如47号小区,则从第一预设小区比如,24号小区开始查找,找到FLAG1为1的小区比如,31号小区;清空第一预设小区至找到的FLAG1为1的小区之间小区存放。
29、的数据在本例中是25至30号小区;计算找到的FLAG1为1的小区对应的编号与第一预设小区的编号之间的第一差值在本例中为7;将找到的FLAG1为1的小区作为第一预设的小区31变为24,找到的FLAG1为1的小区之后的小区编号分别减去第一差值32至47均减去7。00826在P2P连接成功时,将最后一个有I帧的小区的发送指针编号变更为24,其它所有小区的发送指针编号都减去相同的数值,保持前后关系。0083举例来说,在P2P连接成功时,查找最后一个FLAG1为1的小区比如40,并计算最后一个FLAG1为1的小区的发送指针编号与第一预设小区编号比如24的第二差值402416;将最后一个FLAG1为1的小。
30、区的发送指针编号变更为第一预设小区编号40变更为24;将所有小区的发送指针编号都减去第二差值。简单来说,在P2P连接成功时,将最后一个有I帧的小区的发送指针编号变更为24,其它所有小区的发送指针编号都减去相同的数值,保持前后关系。00847在发送端成功发送缓冲池小区的数据后,将发送端缓冲池内小区的发送指针编号全部减1,以确保更新数据的时间性。0085三、接收端一般指用户电脑的客户端。00861在接收端建立接收端缓冲池存放接收到但还没有使用的数据。0087仍以512KB码流为例,3秒数据最多15MB,但为了确保发送完整,保留最后一秒数据,所以接收端缓冲池的容量需要512KX42MB。其他情况下的。
31、接收端缓冲池的容量可根据码流、需缓存的数据量计算得到。00882在接收端缓冲池分成32个64KB的小区,在接收端缓冲池每一个小区都编上流水号0至31,各个小区是连续而且循环,小区的流水号编号保持固定不变,而且其前后顺序说明书CN104092982A6/8页10不变,流水号31的小区其后是流水号为0的小区。0089也就是说,接收端缓冲池内的数据以接收端指针管理,接收指针与接收端缓冲池的小区编号一一对应;接收端缓冲池的小区编号保持固定不变,且其前后顺序不变;接收指针的编号连续且循环,其值根据接收端接收数据情况实时修改。为了保证接收到的每个数据包的大小和发送端是一样的,从而也可以确定出缓冲池的个数。。
32、00903将接收端缓冲池每一个小区都初始化编上流水号0至31作为接收指针,接收指针流水号受程序控制修改,接收指针流水号为连续而且循环,31减1为30,1减1为0,0减1为31,依次类推。00914在接收端缓冲池每一个小区接收指针添加FLAG旗号,代表有或没有I帧数据。0092具体地说,为了标记小区内含是否有解码所需重要帧I帧,在每一个小区的接收指针中添加第二旗号FLAG2,FLAG2用于标记接收指针对应小区内的数据是否包含I帧数据;其中,FLAG2为1,代表有I帧数据;FLAG2为0,代表没有I帧数据。00935储存在接收端缓冲池接收指针0的小区的数据作为当前播放数据。在接收端缓冲池写入数据的。
33、时候,检查写入小区的接收指针,如果大于30代表3秒以前的数据还没有被播放,则清空接收指针0号小区以后的小区,直到下一个I帧数据小区被找到,而且其接收指针被编号为0。多保留8个小区是为了确保I帧被完整保存,3秒内的P帧能被解码使用,增加有效数据比率。0094举例来说,如果写入小区的接收指针指向最大编号的小区31,也就是接收端缓冲池已经写满,则从第二预设小区开始查找,找到FLAG2为1的小区比如9号;清空第二预设小区至找到的FLAG2为1的小区之间小区存放的数据1至8号;计算找到的FLAG2为1的小区对应的编号与第二预设小区的编号之间的第三差值9;将找到的FLAG2为1的小区作为第二预设的小区9变。
34、更为0,找到的FLAG2为1的小区之后的小区编号分别减去第三差值10至31均减去9。00956解码播放程序在接收端有效缓冲池的2个I帧之间检查封包编号,如有空缺,则检查前一个封包的时间戳也就是,封包的编码时间,如果前一个封包的编码时间与当前时间的时间差小于3秒,则接收端向发送端发命令,请求发送端重传空缺的封包。而发送端收到重传请求之后,在发送端缓冲池中查找空缺的封包,若找到,则发送给接收端。00967在接收端小区数据被成功解码播放后,将所有接收端接收指针的编号减1。0097四、视频播放一般指客户端的播放程序。00981播放程序从接收端缓冲池接收指针为0的小区取得数据加以解码播放。00992解码。
35、时取得的时间戳也就是,封包的编码时间,如果是3秒之内,则继续从下一个接收指针编号的小区取得数据加以解码播放。解码时取得的时间戳,如果是3秒之前,则直接查找下一个I帧的接收端缓冲池小区,并且将该小区接收指针编号为0,同时将所有接收指针流水号依据相应关系,重新编排。01003播放程序从新的I帧的小区开始解码播放,并且继续重复上一步骤。0101与市场现有产品技术相比,本实施方式通过同时在设备端发送端以及用户端接收端建立缓冲池,建立一套有效的管理方法将这种丢弃数据的情形变成可控而且高效化,并且判断是否需要丢弃或重传特定数据,更能适用于公共网络的应用,即使在网络不说明书CN104092982A107/8。
36、页11理想的情况下,排除了旧数据堵塞妨碍及时数据的传输问题,能够保持视频的实时性以及更佳的连贯性,提高了互联网点对点实时视频传输的成功率。0102以上根据图1详细说明了本发明的各部分,现对上述流程进行总结,如图2所示,包含以下步骤0103步骤201,发送端在视频编码时,为视频数据包添加标签,标签包含视频数据包的编码时间及是否包含帧内编码I帧;0104步骤202,发送端将待发送的视频数据包存放在发送端缓冲池中;0105步骤203,发送端和接收端成功建立P2P连接后,发送端将发送端缓冲池中第一预设小区内存放的视频数据包作为当前发送数据发送出去;0106步骤204,接收端将接收的数据存放在接收端缓冲。
37、池中;0107步骤205,接收端将接收端缓冲池的第二预设小区内的视频数据包作为当前播放数据进行解码播放。0108其中,预先在发送端和接收端分别建立发送端缓冲池和接收端缓冲池,发送端缓冲池用于存放已经发送的视频数据包和待发送的视频数据包,接收端缓冲池用于存放接收到但还未使用的视频数据包;发送端缓冲池和接收端缓冲池分别进行分区并编号管理,每一个小区内存储一个视频数据包。0109上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其。
38、算法和流程的核心设计都在该专利的保护范围内。0110本发明的第二实施方式涉及一种点对点实时视频传输系统,如图3所示,包含发送端和接收端;该发送端包含视频编码模块、发送端缓冲池和发送模块;该接收端包含接收模块、接收端缓冲池和解码播放模块;0111视频编码模块用于在视频编码时,为视频数据包添加标签,标签包含视频数据包的编码时间及是否包含帧内编码I帧;0112发送端缓冲池用于存放已经发送的视频数据包和待发送的视频数据包;0113发送模块用于在发送端和接收端成功建立P2P连接后,将发送端缓冲池中第一预设小区内存放的视频数据包作为当前发送数据发送出去;0114接收模块用于接收来自发送端的数据;0115接。
39、收端缓冲池用于存放接收到但还未使用的视频数据包;0116解码播放模块用于读取接收端缓冲池的第二预设小区内的视频数据包作为当前播放数据进行播放;0117其中,预先在发送端和接收端分别建立发送端缓冲池和接收端缓冲池,发送端缓冲池和接收端缓冲池分别进行分区并编号管理,每一个小区内存储一个视频数据包。0118不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。0119值得一提的是,本实施方式中所涉及到的各模块均为。
40、逻辑模块,在实际应用中,一说明书CN104092982A118/8页12个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。0120本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。说明书CN104092982A121/2页13图1图2说明书附图CN104092982A132/2页14图3说明书附图CN104092982A14。