CN104661112A - 基于可伸缩选择窗口的视频流文件传输方法及装置 - Google Patents

基于可伸缩选择窗口的视频流文件传输方法及装置 Download PDF

Info

Publication number
CN104661112A
CN104661112A CN201310576289.7A CN201310576289A CN104661112A CN 104661112 A CN104661112 A CN 104661112A CN 201310576289 A CN201310576289 A CN 201310576289A CN 104661112 A CN104661112 A CN 104661112A
Authority
CN
China
Prior art keywords
video
rtp
transmission
vac
information
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.)
Granted
Application number
CN201310576289.7A
Other languages
English (en)
Other versions
CN104661112B (zh
Inventor
谭喆
黄胡生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing ZNV Software Co Ltd
Original Assignee
Nanjing ZNV Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing ZNV Software Co Ltd filed Critical Nanjing ZNV Software Co Ltd
Priority to CN201310576289.7A priority Critical patent/CN104661112B/zh
Publication of CN104661112A publication Critical patent/CN104661112A/zh
Application granted granted Critical
Publication of CN104661112B publication Critical patent/CN104661112B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种基于可伸缩选择窗口的视频流文件传输方法及装置,所述方法根据视频监控平台对接过程中流媒体发送端和流媒体接收端的网络情况,动态地调整发送策略。采用本发明无需改变视频流发送的码率或分辨率,即无需从视频编码层对码流进行改变。在已有的监控平台下,无需改变视频编码终端的属性,本发明采用缓冲器、带有发送滑动窗口的发送循环队列,有效地计算出视频的原始帧率和发送的帧间隔大小,通过视频传输时改变视频帧的发送间隔达到适应网络拥塞条件下视频流发送的目的。

Description

基于可伸缩选择窗口的视频流文件传输方法及装置
技术领域
本发明涉及通信技术领域,具体而言,涉及一种基于可伸缩选择窗口的视频流文件传输方法及装置。
背景技术
通常,在两个视频监控平台对接的过程中,一方的平台(例如视频代理服务器、流媒体发送端)会向另一方的平台(例如视频代理客户端、流媒体接收端)传输监控视频流。而在低速网络环境下传输高清监控视频流时,往往会由于网络带宽的限制而造成接收端在播放视频流时存在拖影、花屏等现象,从而给视频的传输和浏览质量造成严重的影响,从而影响整个对接效果。
虽然随着光纤宽带技术的发展和普及,上述这种窄带宽的情况会得到很大程度的改善,但是在网络出现拥塞时,基于网络带宽瓶颈的视频传输问题仍然会存在并困扰着用户。另一方面,流媒体发送端往往会按照全帧率编码向流媒体接收端发送视频流,当然,这在网络资源丰富的情况下没有问题。但当网络出现拥塞,导致带宽资源受限时,采取全帧率编码以发送视频流的方式则是不合时宜的。
专利名称为《视频编码的码率控制方法及视频数据的发射设备》,申请(专利)号为200710032756.4的中国专利文献提供了一种码率控制的方法。其根据RTCP(Realtime Transport Control Protocol,实时传输控制协议)心跳动态地调整编码的码率,但是其帧率并没有做调整,采用该技术方案只能针对前端编码设备,而不能针对监控平台,这是因为监控平台无法针对码率做调整,且会影响到视频的清晰度。
专利名称为《应用于移动视频监控系统的移动视频码流定制装置及方法》,申请(专利)号为200910110307.6以及专利名称为《无线视频监控系统及根据网络状况动态调整码流的方法》,申请(专利)号为201010295223.7的两件中国专利文献则提供了一种码率、分辨率、编码格式转换的整体方法,该技术方案针对浏览并发量较少的视频流的情况是有效的,但是该技术方案无法适用于大规模浏览并发的情况。
发明内容
鉴于视频监控平台在对接过程中存在的上述问题,本发明实施例提出了一种基于可伸缩选择窗口的视频流文件传输方法及装置,所述方法根据视频监控平台对接过程中流媒体发送端和流媒体接收端的网络情况,动态地调整发送策略。
为了达到本发明的目的,本发明采用以下技术方案实现:
一种基于可伸缩选择窗口的视频流文件传输方法,其包括:
在获取到视频代理客户端VAC(Video Agent Client,视频代理客户端)发送的视频请求之后,视频代理服务器VAS(Video Agent Server,视频代理服务器)据此从相应视频源获取RTP(Real-time Transport Protocol,实时传送协议)数据包并将其先放入缓冲器并组织成视频帧数据后发送至视频代理客户端VAC,以使缓冲器获取RTP数据包的头信息以确定多个视频帧数据,并依据这些视频帧数据获取视频源的原始发送帧率;
视频代理服务器VAS创建半径大小等于所述原始发送帧率的发送循环队列,并初始化发送滑动窗口大小,其中,所述发送滑动窗口用于滑动地选中发送循环队列中一次性被发送的视频帧数据对象,所述发送滑动窗口大小限定了所述发送滑动窗口每次在发送循环队列上滑动的距离;
视频代理服务器VAS将获取的RTP数据包组织成视频帧数据后放入发送循环队列,所述发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC。
优选地,在获取到视频代理客户端VAC发送的视频请求之后,视频代理服务器VAS据此从相应视频源获取RTP数据包的步骤包括:
视频代理服务器VAS获取视频代理客户端VAC发送的至少携带了目标视频源身份标识ID(Identity,身份标识)信息、流媒体的初始化参数SDP(SessionDescription Protocol,用以描述流媒体的初始化参数的会话描述协议)信息以及同步源标识符SSRC(Synchronization Source Identifier,同步源标识符)信息的视频请求;
视频代理服务器VAS向视频代理客户端VAC发送200OK应答消息作为回应;
在视频代理客户端VAC向视频代理服务器VAS发送ACK确认消息之后,视频代理服务器VAS依据所述目标视频源身份标识ID信息、流媒体的初始化参数SDP信息以及同步源标识符SSRC信息向相应的视频源获取RTP数据包。
优选地,所述缓冲器包括RTP时间戳属性单元、标志位MARK值属性单元、RTP包序列号属性单元、在缓冲器接收到视频源发送的第一个RTP数据包被触发依照一预设固定时间间隔进行定时计时的定时器、帧计数器、帧统计器以及比较器,其中,缓冲器获取RTP数据包的头信息以确定多个视频帧数据,并依据这些视频帧数据获取视频源的原始发送帧率的步骤包括:
当缓冲器接收到视频源发送的一个RTP数据包时,如果RTP时间戳属性单元以及标志位MARK值属性单元的初始值为0,则依据该当前RTP数据包的时间戳信息以及MARK值信息更新RTP时间戳属性单元以及标志位MARK值属性单元;否则,调用比较器比对RTP时间戳属性单元以及标志位MARK值属性单元中的时间戳和mark值是否与当前RTP数据包一致,若不一致,则依据该当前RTP数据包的时间戳信息以及MARK值信息更新RTP时间戳属性单元以及标志位MARK值属性单元,并控制帧计数器以及RTP包序列号属性单元的数值分别加1;
定时器在每次计时时,其将当前时刻以及帧计数器信息维护至帧统计器中;
缓冲器将当前该RTP数据包转发给视频代理客户端VAC,并将该RTP数据包的RTP序列号更新至RTP包序列号属性单元;
重复上述步骤,直至定时器的定时时间到。
优选地,发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC的步骤包括:
视频代理服务器VAS通过视频代理客户端VAC定期发送的RTP控制协议RTCP(RTP Control Protocol,RTP控制协议)心跳获取当前丢包率信息;
视频代理服务器VAS依据所述丢包率信息动态调整所述发送滑动窗口大小;
发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC。
优选地,视频代理服务器VAS依据所述丢包率信息动态调整所述发送滑动窗口大小的方法为:
当当前丢包率的变化率为提高时,增大所述发送滑动窗口的大小;
当当前丢包率的变化率为降低时,减少所述发送滑动窗口的大小。
一种基于可伸缩选择窗口的视频流文件传输装置,包括:
获取模块,用于在获取到视频代理客户端VAC发送的视频请求之后,据此从相应视频源获取实时传送协议RTP数据包并将其先放入缓冲器;
缓冲器,用于将所述RTP数据包组织成视频帧数据后发送至视频代理客户端VAC,以及进一步用于获取RTP数据包的头信息以确定多个视频帧数据,并依据这些视频帧数据获取视频源的原始发送帧率;
创建模块,用于创建半径大小等于所述原始发送帧率的发送循环队列,并初始化发送滑动窗口大小,其中,所述发送滑动窗口用于滑动地选中发送循环队列中一次性被发送的视频帧数据对象,所述发送滑动窗口大小限定了所述发送滑动窗口每次在发送循环队列上滑动的距离;
处理模块,用于在创建模块创建发送循环队列之后,将获取模块获取的RTP数据包组织成视频帧数据后放入发送循环队列,以使得所述发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC。
优选地,在获取到视频代理客户端VAC发送的视频请求之后,获取模块据此从相应视频源获取RTP数据包的方法为:
获取视频代理客户端VAC发送的至少携带了目标视频源身份标识ID信息、流媒体的初始化参数SDP信息以及同步源标识符SSRC信息的视频请求;
向视频代理客户端VAC发送200OK应答消息作为回应;
在视频代理客户端VAC向视频代理服务器VAS发送ACK确认消息之后,依据所述目标视频源身份标识ID信息、流媒体的初始化参数SDP信息以及同步源标识符SSRC信息向相应的视频源获取RTP数据包。
优选地,所述缓冲器包括RTP时间戳属性单元、标志位MARK值属性单元、RTP包序列号属性单元、在缓冲器接收到视频源发送的第一个RTP数据包被触发依照一预设固定时间间隔进行定时计时的定时器、帧计数器、帧统计器以及比较器,其中,缓冲器获取RTP数据包的头信息以确定多个视频帧数据,并依据这些视频帧数据获取视频源的原始发送帧率的方法为:
当缓冲器接收到视频源发送的一个RTP数据包时,如果RTP时间戳属性单元以及标志位MARK值属性单元的初始值为0,则依据该当前RTP数据包的时间戳信息以及MARK值信息更新RTP时间戳属性单元以及标志位MARK值属性单元;否则,调用比较器比对RTP时间戳属性单元以及标志位MARK值属性单元中的时间戳和mark值是否与当前RTP数据包一致,若不一致,则依据该当前RTP数据包的时间戳信息以及MARK值信息更新RTP时间戳属性单元以及标志位MARK值属性单元,并控制帧计数器以及RTP包序列号属性单元的数值分别加1;
定时器在每次计时时,其将当前时刻以及帧计数器信息维护至帧统计器中;
缓冲器将当前该RTP数据包转发给视频代理客户端VAC,并将该RTP数据包的RTP序列号更新至RTP包序列号属性单元;
重复上述步骤,直至定时器的定时时间到。
优选地,在创建模块创建发送循环队列之后,处理模块将获取模块获取的RTP数据包组织成视频帧数据后放入发送循环队列,以使得所述发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC的方法为:
处理模块通过视频代理客户端VAC定期发送的RTP控制协议RTCP心跳获取当前丢包率信息;
处理模块依据所述丢包率信息动态调整所述发送滑动窗口大小;
发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC。
优选地,处理模块依据所述丢包率信息动态调整所述发送滑动窗口大小的方法为:
当当前丢包率的变化率为提高时,增大所述发送滑动窗口的大小;
当当前丢包率的变化率为降低时,减少所述发送滑动窗口的大小。
针对网络拥塞导致出现丢包现象时,采用本发明无需改变视频流发送的码率或分辨率,即无需从视频编码层对码流进行改变。在已有的监控平台下,无需改变视频编码终端的属性,本发明采用缓冲器、带有发送滑动窗口的发送循环队列,有效地计算出视频的原始帧率和发送的帧间隔大小,通过视频传输时改变视频帧的发送间隔达到适应网络拥塞条件下视频流发送的目的。
附图说明
图1为本发明实施例提供的一种基于可伸缩选择窗口的视频流文件传输方法流程示意图;
图2为本发明实施例中缓冲器示意图;
图3为本发明实施例中帧数据表数据结构示意图;
图4为本发明实施例中发送循环队列示意图;
图5为本发明实施例中基于sip协商的VAS向VAC发送视频的信令时序图;
图6为本发明实施例提供的一种基于可伸缩选择窗口的视频流文件传输装置的功能结构示意图。
本发明目的的实现、功能特点及优异效果,下面将结合具体实施例以及附图做进一步的说明。
具体实施方式
下面结合附图和具体实施例对本发明所述技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
如图1所示,本发明实施例提供的一种基于可伸缩选择窗口的视频流文件传输方法,其包括如下步骤:
S10、在获取到视频代理客户端VAC发送的视频请求之后,视频代理服务器VAS据此从相应视频源获取实时传送协议RTP数据包并将其先放入缓冲器并组织成视频帧数据后发送至视频代理客户端VAC,以使缓冲器获取RTP数据包的头信息以确定多个视频帧数据,并依据这些视频帧数据获取视频源的原始发送帧率;
S20、视频代理服务器VAS创建半径大小等于所述原始发送帧率的发送循环队列,并初始化发送滑动窗口大小,其中,所述发送滑动窗口用于滑动地选中发送循环队列中一次性被发送的视频帧数据对象,所述发送滑动窗口大小限定了所述发送滑动窗口每次在发送循环队列上滑动的距离;
S30、视频代理服务器VAS将获取的RTP数据包组织成视频帧数据后放入发送循环队列,所述发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC。
例如在本实施例中,对于所述步骤S10,视频代理客户端VAC采用一种基于SIP(Session Initiation Protocol,会话发起协议)的协商方式向视频代理服务器VAS请求视频,在获取到视频代理客户端VAC发送的视频请求之后,视频代理服务器VAS据此从相应视频源获取RTP数据包的步骤包括:
S101、视频代理服务器VAS获取视频代理客户端VAC发送的至少携带了目标视频源身份标识ID信息、流媒体的初始化参数SDP信息以及同步源标识符SSRC信息的视频请求;
S102、视频代理服务器VAS向视频代理客户端VAC发送200OK应答消息作为回应;
S103、在视频代理客户端VAC向视频代理服务器VAS发送ACK确认消息之后,视频代理服务器VAS依据所述目标视频源身份标识ID信息、流媒体的初始化参数SDP信息以及同步源标识符SSRC信息向相应的视频源获取RTP数据包。
本实施例中,视频源将视频流的RTP数据包发送给视频代理服务器VAS后,首先经过缓冲器进行计算,并且由缓冲器向视频代理客户端VAC进行视频帧数据转发,随着缓冲器的生命周期的递减直至结束,缓冲器计算出发送循环队列的半径大小。
具体地,本实施例中,参考图2,所述缓冲器包括RTP时间戳属性单元、标志位MARK值属性单元、RTP包序列号属性单元、在缓冲器接收到视频源发送的第一个RTP数据包被触发依照一预设固定时间间隔进行定时计时的定时器、帧计数器、帧统计器以及比较器,其中,缓冲器获取RTP数据包的头信息以确定多个视频帧数据,并依据这些视频帧数据获取视频源的原始发送帧率的步骤包括:
S104、当缓冲器接收到视频源发送的一个RTP数据包时,如果RTP时间戳属性单元以及标志位MARK值属性单元的初始值为0,则依据该当前RTP数据包的时间戳信息以及MARK值信息更新RTP时间戳属性单元以及标志位MARK值属性单元;否则,调用比较器比对RTP时间戳属性单元以及标志位MARK值属性单元中的时间戳和mark值是否与当前RTP数据包一致,若不一致,则依据该当前RTP数据包的时间戳信息以及MARK值信息更新RTP时间戳属性单元以及标志位MARK值属性单元,并控制帧计数器以及RTP包序列号属性单元的数值分别加1;
S105、定时器在每次计时时,其将当前时刻以及帧计数器信息维护至帧统计器中;
S106、缓冲器将当前该RTP数据包转发给视频代理客户端VAC,并将该RTP数据包的RTP序列号更新至RTP包序列号属性单元;
S107、重复上述步骤S104-S106,直至定时器的定时时间到。
在本实施例中,缓冲器的生命周期由所述定时器进行限定,定时器在被触发计时之后,从预设的初始值开始依照一预设固定时间间隔进行定时计时,例如,外部的时钟源每隔一秒,所述定时器即倒计时一次,在到达0时刻时即意味着缓冲器的生命周期结束;或者,所述定时器在被触发计时之后,从0时刻开始依照一预设固定时间间隔朝着预设目标值进行定时计时,在到达该目标值时刻时即意味着缓冲器的生命周期结束。
对于所述步骤S20,当缓冲器的生命周期终止时,帧统计器中维护的是一个近似于等差数列的结构,记录了每秒钟(T1,T2...Tn)收到的总帧数(F1,F2...Fn),即T1时刻收到的总帧数为F1,T2时刻收到的总帧数为F2-F1,......Tn时刻收到的总帧数为Fn-Fn-1...-F1,其平均值即为该视频源帧率的近似大小。
因此,创建的发送循环队列的半径R与所述视频源帧率的平均值一致,在本实施例中,创建的发送循环队列的半径R可以采用下式计算得到:
R=(Fn–Fn-2–2*Fn-3–...(n-2)F1)/n;
其中,所述n是指定时器在生命周期之中计时的总次数。
对于所述步骤S30,发送循环队列在被创建好后,接下来从视频源发往视频代理服务器VAS的视频RTP数据包不再经过缓冲器,而是直接发送到了发送循环队列中,发送循环队列每收到一帧,会更新原有的帧数据表。其中,所述帧数据表的结构如图3所示,该表存在五个属性,分别是:
1、该帧的总长度payload_size,记录了该帧若干个RTP数据包负载的总长度。初始长度为0,每收到一个该帧的RTP数据包,则将其负载长度累加至该值中。
2、RTP发送循环队列包时间戳TimeSpan:记录了该帧的RTP时间戳。
3、RTP发送循环队列包的mark值。
4、收到的RTP发送循环队列包的序列号SeqNum。
5、RTP发送循环队列包的负载包payload。
本实施例中,参考图4,发送滑动窗口初始值大小被设置为1,其可以动态伸缩,例如可以定义其伸缩范围为1-3。发送滑动窗口的初始位置停留在发送循环队列的第一个节点上。发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC的步骤包括:
步骤1:收到视频源转发给VAS的RTP帧的时候,首先缓存到新建的帧数据表中。帧数据表的维护方法是:
A)收到RTP数据包,若帧数据表为空,则将RTP数据包更新到帧数据表第一列中,将对应的时间戳信息、mark值、RTP数据包序列号、负载包依次填入表中,并将负载长度与payload_size累加。
B)若帧数据表不为空,判断RTP数据包时间戳,如果与表中最后一列中的时间戳相同,则将该RTP数据包维护至帧数据表当前列的下一列。如果不相同,则将当前帧数据表塞入发送循环队列中当前游标的位置,并新建帧数据表,重复步骤A)。
步骤2:新建了帧数据表后,判断发送滑动窗口的已发送标志是否为true。若为false,则选取当前发送滑动窗口中帧数据表payload_size值最大者进行发送(这是因为普遍地,关键帧的长度要大于预测帧,若关键帧与其他预测帧帧在一起,往往I帧长度最大),其发送的RTP数据包头的序列号累加1(初始值为缓冲器中的seqnum),并将发送滑动窗口的已发送标志置为true,再将1中新建的帧数据表塞到发送滑动窗口的第一个位置上。如果已发送标志为true,则进行步骤3。
步骤3:如果上一个插入的帧数据表位于发送滑动窗口的最下部,则发送滑动窗口向下位移窗口大小个单位,重复步骤1。
更为优选地,在本实施例中,发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC的步骤包括:
S301、视频代理服务器VAS通过视频代理客户端VAC定期发送的RTP控制协议RTCP心跳获取当前丢包率信息;
S302、视频代理服务器VAS依据所述丢包率信息动态调整所述发送滑动窗口大小;
S303、发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC。
具体地,视频代理服务器VAS依据所述丢包率信息动态调整所述发送滑动窗口大小的方法为:
当当前丢包率的变化率为提高时,增大所述发送滑动窗口的大小;
当当前丢包率的变化率为降低时,减少所述发送滑动窗口的大小。
图5示出了本发明实施例提供的一种基于可伸缩选择窗口的视频流文件传输方法的信令时序图,具体包括如下步骤:
步骤1:VAC向VAS发送视频申请消息,以确定所需要申请的视频源的ID、SDP等信息,其中也包括SSRC信息,而每一路视频具有不同的SSRC;
步骤2:VAS向VAC发送200OK应答作为回应;
步骤3:VAC向VAS发送ACK确认消息,表示视频可以从VAS发送给VAC;
步骤4:VAS采用相同或相近的方式向视频源申请视频;
步骤5:视频源将视频RTP包发送给VAS后,首先经过缓冲器进行计算,并向VAC进行转发,缓冲器生命周期开始递减,缓冲器计算出发送循环队列半径大小;
步骤6:缓冲器生命周期结束后,视频源将视频发送至发送循环队列,发送滑动窗口大小根据VAC一侧的RR进行动态调整,发送循环队列再向VAC进行转发,VAC和VAS之间保持RTCP心跳;
步骤7:VAC希望结束视频时,首先向VAS发送BYE消息,VAS收到后向VAC返回200OK,表示可以结束;
步骤8:VAS以相同或相似的方式向视频源申请结束视频。
如图6所示,本发明实施例还相应地提供了一种基于可伸缩选择窗口的视频流文件传输装置,包括:
获取模块10,用于在获取到视频代理客户端VAC600发送的视频请求之后,据此从相应视频源获取实时传送协议RTP数据包并将其先放入缓冲器20;
缓冲器20,用于将所述RTP数据包组织成视频帧数据后发送至视频代理客户端VAC600,以及进一步用于获取RTP数据包的头信息以确定多个视频帧数据,并依据这些视频帧数据获取视频源的原始发送帧率;
创建模块30,用于创建半径大小等于所述原始发送帧率的发送循环队列40,并初始化发送滑动窗口大小,其中,所述发送滑动窗口用于滑动地选中发送循环队列40中一次性被发送的视频帧数据对象,所述发送滑动窗口大小限定了所述发送滑动窗口每次在发送循环队列40上滑动的距离;
处理模块50,用于在创建模块30创建发送循环队列40之后,将获取模块10获取的RTP数据包组织成视频帧数据后放入发送循环队列40,以使得所述发送循环队列40依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC600。
本实施例中,在获取到视频代理客户端VAC600发送的视频请求之后,获取模块10据此从相应视频源获取RTP数据包的方法为:
1、获取视频代理客户端VAC600发送的至少携带了目标视频源身份标识ID信息、流媒体的初始化参数SDP信息以及同步源标识符SSRC信息的视频请求;
2、向视频代理客户端VAC600发送200OK应答消息作为回应;
3、在视频代理客户端VAC600向视频代理服务器VAS发送ACK确认消息之后,依据所述目标视频源身份标识ID信息、流媒体的初始化参数SDP信息以及同步源标识符SSRC信息向相应的视频源获取RTP数据包。
本实施例中,所述缓冲器20包括RTP时间戳属性单元、标志位MARK值属性单元、RTP包序列号属性单元、在缓冲器20接收到视频源发送的第一个RTP数据包被触发依照一预设固定时间间隔进行定时计时的定时器、帧计数器、帧统计器以及比较器,其中,缓冲器20获取RTP数据包的头信息以确定多个视频帧数据,并依据这些视频帧数据获取视频源的原始发送帧率的方法为:
1、当缓冲器20接收到视频源发送的一个RTP数据包时,如果RTP时间戳属性单元以及标志位MARK值属性单元的初始值为0,则依据该当前RTP数据包的时间戳信息以及MARK值信息更新RTP时间戳属性单元以及标志位MARK值属性单元;否则,调用比较器比对RTP时间戳属性单元以及标志位MARK值属性单元中的时间戳和mark值是否与当前RTP数据包一致,若不一致,则依据该当前RTP数据包的时间戳信息以及MARK值信息更新RTP时间戳属性单元以及标志位MARK值属性单元,并控制帧计数器以及RTP包序列号属性单元的数值分别加1;
2、定时器在每次计时时,其将当前时刻以及帧计数器信息维护至帧统计器中;
3、缓冲器20将当前该RTP数据包转发给视频代理客户端VAC600,并将该RTP数据包的RTP序列号更新至RTP包序列号属性单元;
4、重复上述步骤1-3,直至定时器的定时时间到。
本实施例中,在创建模块30创建发送循环队列40之后,处理模块50将获取模块10获取的RTP数据包组织成视频帧数据后放入发送循环队列40,以使得所述发送循环队列40依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC600的方法为:
1、处理模块50通过视频代理客户端VAC600定期发送的RTP控制协议RTCP心跳获取当前丢包率信息;
2、处理模块50依据所述丢包率信息动态调整所述发送滑动窗口大小;
3、发送循环队列40依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC600。
具体地,处理模块50依据所述丢包率信息动态调整所述发送滑动窗口大小的方法为:
1、当当前丢包率的变化率为提高时,增大所述发送滑动窗口的大小;
2、当当前丢包率的变化率为降低时,减少所述发送滑动窗口的大小。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种基于可伸缩选择窗口的视频流文件传输方法,其特征在于,包括:
在获取到视频代理客户端VAC发送的视频请求之后,视频代理服务器VAS据此从相应视频源获取实时传送协议RTP数据包并将其先放入缓冲器并组织成视频帧数据后发送至视频代理客户端VAC,以使缓冲器获取RTP数据包的头信息以确定多个视频帧数据,并依据这些视频帧数据获取视频源的原始发送帧率;
视频代理服务器VAS创建半径大小等于所述原始发送帧率的发送循环队列,并初始化发送滑动窗口大小,其中,所述发送滑动窗口用于滑动地选中发送循环队列中一次性被发送的视频帧数据对象,所述发送滑动窗口大小限定了所述发送滑动窗口每次在发送循环队列上滑动的距离;
视频代理服务器VAS将获取的RTP数据包组织成视频帧数据后放入发送循环队列,所述发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC。
2.如权利要求1所述的基于可伸缩选择窗口的视频流文件传输方法,其特征在于,在获取到视频代理客户端VAC发送的视频请求之后,视频代理服务器VAS据此从相应视频源获取RTP数据包的步骤包括:
视频代理服务器VAS获取视频代理客户端VAC发送的至少携带了目标视频源身份标识ID信息、流媒体的初始化参数SDP信息以及同步源标识符SSRC信息的视频请求;
视频代理服务器VAS向视频代理客户端VAC发送200OK应答消息作为回应;
在视频代理客户端VAC向视频代理服务器VAS发送ACK确认消息之后,视频代理服务器VAS依据所述目标视频源身份标识ID信息、流媒体的初始化参数SDP信息以及同步源标识符SSRC信息向相应的视频源获取RTP数据包。
3.如权利要求1所述的基于可伸缩选择窗口的视频流文件传输方法,其特征在于,所述缓冲器包括RTP时间戳属性单元、标志位MARK值属性单元、RTP包序列号属性单元、在缓冲器接收到视频源发送的第一个RTP数据包被触发依照一预设固定时间间隔进行定时计时的定时器、帧计数器、帧统计器以及比较器,其中,缓冲器获取RTP数据包的头信息以确定多个视频帧数据,并依据这些视频帧数据获取视频源的原始发送帧率的步骤包括:
当缓冲器接收到视频源发送的一个RTP数据包时,如果RTP时间戳属性单元以及标志位MARK值属性单元的初始值为0,则依据该当前RTP数据包的时间戳信息以及MARK值信息更新RTP时间戳属性单元以及标志位MARK值属性单元;否则,调用比较器比对RTP时间戳属性单元以及标志位MARK值属性单元中的时间戳和mark值是否与当前RTP数据包一致,若不一致,则依据该当前RTP数据包的时间戳信息以及MARK值信息更新RTP时间戳属性单元以及标志位MARK值属性单元,并控制帧计数器以及RTP包序列号属性单元的数值分别加1;
定时器在每次计时时,其将当前时刻以及帧计数器信息维护至帧统计器中;
缓冲器将当前该RTP数据包转发给视频代理客户端VAC,并将该RTP数据包的RTP序列号更新至RTP包序列号属性单元;
重复上述步骤,直至定时器的定时时间到。
4.如权利要求1所述的基于可伸缩选择窗口的视频流文件传输方法,其特征在于,发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC的步骤包括:
视频代理服务器VAS通过视频代理客户端VAC定期发送的RTP控制协议RTCP心跳获取当前丢包率信息;
视频代理服务器VAS依据所述丢包率信息动态调整所述发送滑动窗口大小;
发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC。
5.如权利要求4所述的基于可伸缩选择窗口的视频流文件传输方法,其特征在于,视频代理服务器VAS依据所述丢包率信息动态调整所述发送滑动窗口大小的方法为:
当当前丢包率的变化率为提高时,增大所述发送滑动窗口的大小;
当当前丢包率的变化率为降低时,减少所述发送滑动窗口的大小。
6.一种基于可伸缩选择窗口的视频流文件传输装置,其特征在于,包括:
获取模块,用于在获取到视频代理客户端VAC发送的视频请求之后,据此从相应视频源获取实时传送协议RTP数据包并将其先放入缓冲器;
缓冲器,用于将所述RTP数据包组织成视频帧数据后发送至视频代理客户端VAC,以及进一步用于获取RTP数据包的头信息以确定多个视频帧数据,并依据这些视频帧数据获取视频源的原始发送帧率;
创建模块,用于创建半径大小等于所述原始发送帧率的发送循环队列,并初始化发送滑动窗口大小,其中,所述发送滑动窗口用于滑动地选中发送循环队列中一次性被发送的视频帧数据对象,所述发送滑动窗口大小限定了所述发送滑动窗口每次在发送循环队列上滑动的距离;
处理模块,用于在创建模块创建发送循环队列之后,将获取模块获取的RTP数据包组织成视频帧数据后放入发送循环队列,以使得所述发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC。
7.如权利要求6所述的基于可伸缩选择窗口的视频流文件传输装置,其特征在于,在获取到视频代理客户端VAC发送的视频请求之后,获取模块据此从相应视频源获取RTP数据包的方法为:
获取视频代理客户端VAC发送的至少携带了目标视频源身份标识ID信息、流媒体的初始化参数SDP信息以及同步源标识符SSRC信息的视频请求;
向视频代理客户端VAC发送200OK应答消息作为回应;
在视频代理客户端VAC向视频代理服务器VAS发送ACK确认消息之后,依据所述目标视频源身份标识ID信息、流媒体的初始化参数SDP信息以及同步源标识符SSRC信息向相应的视频源获取RTP数据包。
8.如权利要求6所述的基于可伸缩选择窗口的视频流文件传输装置,其特征在于,所述缓冲器包括RTP时间戳属性单元、标志位MARK值属性单元、RTP包序列号属性单元、在缓冲器接收到视频源发送的第一个RTP数据包被触发依照一预设固定时间间隔进行定时计时的定时器、帧计数器、帧统计器以及比较器,其中,缓冲器获取RTP数据包的头信息以确定多个视频帧数据,并依据这些视频帧数据获取视频源的原始发送帧率的方法为:
当缓冲器接收到视频源发送的一个RTP数据包时,如果RTP时间戳属性单元以及标志位MARK值属性单元的初始值为0,则依据该当前RTP数据包的时间戳信息以及MARK值信息更新RTP时间戳属性单元以及标志位MARK值属性单元;否则,调用比较器比对RTP时间戳属性单元以及标志位MARK值属性单元中的时间戳和mark值是否与当前RTP数据包一致,若不一致,则依据该当前RTP数据包的时间戳信息以及MARK值信息更新RTP时间戳属性单元以及标志位MARK值属性单元,并控制帧计数器以及RTP包序列号属性单元的数值分别加1;
定时器在每次计时时,其将当前时刻以及帧计数器信息维护至帧统计器中;
缓冲器将当前该RTP数据包转发给视频代理客户端VAC,并将该RTP数据包的RTP序列号更新至RTP包序列号属性单元;
重复上述步骤,直至定时器的定时时间到。
9.如权利要求6所述的基于可伸缩选择窗口的视频流文件传输装置,其特征在于,在创建模块创建发送循环队列之后,处理模块将获取模块获取的RTP数据包组织成视频帧数据后放入发送循环队列,以使得所述发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC的方法为:
处理模块通过视频代理客户端VAC定期发送的RTP控制协议RTCP心跳获取当前丢包率信息;
处理模块依据所述丢包率信息动态调整所述发送滑动窗口大小;
发送循环队列依据发送滑动窗口大小将视频帧数据发送至视频代理客户端VAC。
10.如权利要求9所述的基于可伸缩选择窗口的视频流文件传输装置,其特征在于,处理模块依据所述丢包率信息动态调整所述发送滑动窗口大小的方法为:
当当前丢包率的变化率为提高时,增大所述发送滑动窗口的大小;
当当前丢包率的变化率为降低时,减少所述发送滑动窗口的大小。
CN201310576289.7A 2013-11-18 2013-11-18 基于可伸缩选择窗口的视频流文件传输方法及装置 Active CN104661112B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310576289.7A CN104661112B (zh) 2013-11-18 2013-11-18 基于可伸缩选择窗口的视频流文件传输方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310576289.7A CN104661112B (zh) 2013-11-18 2013-11-18 基于可伸缩选择窗口的视频流文件传输方法及装置

Publications (2)

Publication Number Publication Date
CN104661112A true CN104661112A (zh) 2015-05-27
CN104661112B CN104661112B (zh) 2019-06-25

Family

ID=53251721

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310576289.7A Active CN104661112B (zh) 2013-11-18 2013-11-18 基于可伸缩选择窗口的视频流文件传输方法及装置

Country Status (1)

Country Link
CN (1) CN104661112B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105635188A (zh) * 2016-03-31 2016-06-01 深圳市矽伟智科技有限公司 一种可视化内容分发方法及系统
CN105897759A (zh) * 2016-06-14 2016-08-24 青岛乾元通数码科技有限公司 一种网络动态自适应音视频缓存方法及系统
CN107360424A (zh) * 2017-07-28 2017-11-17 深圳岚锋创视网络科技有限公司 一种基于视频编码器的码率控制方法、装置及视频服务器
CN107392177A (zh) * 2017-08-05 2017-11-24 江西中医药大学 一种人体身份识别验证方法及其装置
CN107864132A (zh) * 2017-11-03 2018-03-30 中广热点云科技有限公司 一种解决视频流传输系统产生的花屏现象的方法
CN112511702A (zh) * 2020-12-18 2021-03-16 咪咕文化科技有限公司 视频彩铃的推送方法、服务器、电子设备和存储介质
CN112689148A (zh) * 2021-03-18 2021-04-20 全时云商务服务股份有限公司 一种云会议中多层视频传输去峰值方法、系统和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974503A (en) * 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US20030138102A1 (en) * 1998-11-13 2003-07-24 Leslie Kohn Method of protecting high definition video signal
CN101394252A (zh) * 2008-11-12 2009-03-25 北京佳讯飞鸿电气股份有限公司 一种基于rtp的数据传输方法
CN101645903A (zh) * 2009-09-08 2010-02-10 中兴通讯股份有限公司 一种多媒体数据的传输方法及装置
CN101699867A (zh) * 2009-10-28 2010-04-28 武汉世纪信通通信产业有限公司 一种视频数据传输速率动态调整方法
CN101729879A (zh) * 2009-12-15 2010-06-09 山东大学 一种基于mimo-ofdm系统的实时视频传输的实现方法
CN102231863A (zh) * 2011-06-02 2011-11-02 南京中兴力维软件有限公司 一种多通道视频流的传输方法及系统
CN102333209A (zh) * 2011-10-26 2012-01-25 杭州华三通信技术有限公司 应用于视频监控系统的数据传输方法及设备
CN102984561A (zh) * 2012-11-09 2013-03-20 中山爱科数字科技股份有限公司 一种通过数字机顶盒获取信息服务的数据缓存方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974503A (en) * 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US20030138102A1 (en) * 1998-11-13 2003-07-24 Leslie Kohn Method of protecting high definition video signal
CN101394252A (zh) * 2008-11-12 2009-03-25 北京佳讯飞鸿电气股份有限公司 一种基于rtp的数据传输方法
CN101645903A (zh) * 2009-09-08 2010-02-10 中兴通讯股份有限公司 一种多媒体数据的传输方法及装置
CN101699867A (zh) * 2009-10-28 2010-04-28 武汉世纪信通通信产业有限公司 一种视频数据传输速率动态调整方法
CN101729879A (zh) * 2009-12-15 2010-06-09 山东大学 一种基于mimo-ofdm系统的实时视频传输的实现方法
CN102231863A (zh) * 2011-06-02 2011-11-02 南京中兴力维软件有限公司 一种多通道视频流的传输方法及系统
CN102333209A (zh) * 2011-10-26 2012-01-25 杭州华三通信技术有限公司 应用于视频监控系统的数据传输方法及设备
CN102984561A (zh) * 2012-11-09 2013-03-20 中山爱科数字科技股份有限公司 一种通过数字机顶盒获取信息服务的数据缓存方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105635188A (zh) * 2016-03-31 2016-06-01 深圳市矽伟智科技有限公司 一种可视化内容分发方法及系统
CN105635188B (zh) * 2016-03-31 2019-07-09 深圳市矽伟智科技有限公司 一种可视化内容分发方法及系统
CN105897759A (zh) * 2016-06-14 2016-08-24 青岛乾元通数码科技有限公司 一种网络动态自适应音视频缓存方法及系统
CN107360424A (zh) * 2017-07-28 2017-11-17 深圳岚锋创视网络科技有限公司 一种基于视频编码器的码率控制方法、装置及视频服务器
CN107360424B (zh) * 2017-07-28 2019-10-25 深圳岚锋创视网络科技有限公司 一种基于视频编码器的码率控制方法、装置及视频服务器
CN107392177A (zh) * 2017-08-05 2017-11-24 江西中医药大学 一种人体身份识别验证方法及其装置
CN107864132A (zh) * 2017-11-03 2018-03-30 中广热点云科技有限公司 一种解决视频流传输系统产生的花屏现象的方法
CN112511702A (zh) * 2020-12-18 2021-03-16 咪咕文化科技有限公司 视频彩铃的推送方法、服务器、电子设备和存储介质
CN112511702B (zh) * 2020-12-18 2022-06-03 咪咕文化科技有限公司 媒体帧的推送方法、服务器、电子设备和存储介质
CN112689148A (zh) * 2021-03-18 2021-04-20 全时云商务服务股份有限公司 一种云会议中多层视频传输去峰值方法、系统和存储介质
CN112689148B (zh) * 2021-03-18 2021-06-01 全时云商务服务股份有限公司 一种云会议中多层视频传输去峰值方法、系统和存储介质

Also Published As

Publication number Publication date
CN104661112B (zh) 2019-06-25

Similar Documents

Publication Publication Date Title
CN104661112A (zh) 基于可伸缩选择窗口的视频流文件传输方法及装置
US10567102B2 (en) Efficient double parity forward error correction on a communication network
JP4456115B2 (ja) サービス品質に関する埋込み情報の送信
KR102519409B1 (ko) 다중 경로 미디어 전달을 위한 방법 및 장치
KR101995314B1 (ko) Dvb 지상파 방송 시스템에서 mpeg mmt를 위한 시그널링 정보를 송수신하는 장치 및 방법
CN108696772B (zh) 一种实时视频的传输方法及装置
KR101122143B1 (ko) 수신기 버퍼 아키텍처를 나타내는 버퍼 파라미터의 시그널링
CN107210999B (zh) 链路感知流送自适应
US20190174520A1 (en) Service Data Transmission Method, Network Device, and Terminal Device
RU2009134145A (ru) Снижение влияния от потерь пакетов в передачах видео
US20050281218A1 (en) Method and system for providing a transmission link for streaming traffic
JP2004343698A (ja) マルチメディア・ストリーミング環境におけるサーバベースのレート制御
US8959240B2 (en) Method, apparatus and system for rapid acquisition of multicast realtime transport protcol sessions
US20160212189A1 (en) Streaming media data transmission method, client and server
CN110691037A (zh) 通信网络中的服务递送
CN104270594B (zh) 数据包发送与接收的方法及设备
CN104486690B (zh) 一种基于tcp协议的移动视频传输优化方法
US20160241410A1 (en) Method for subscribing to streams from multicast clients
TW201540031A (zh) 實現客戶端側的傳送功能的傳輸加速器
CN106464691B (zh) 一种实时传输协议rtp包传输方法和装置
US20140307624A1 (en) Method and apparatus for scheduling video traffic in wireless communication system
US9986010B2 (en) System and method for controlling video and/or audio streams in a web browser
CN109862400A (zh) 一种流媒体传输方法、装置及其系统
JP5784834B2 (ja) ステータスレポートの処理方法、通信装置及び通信システム
TW201427452A (zh) 組合使用流媒體裁剪技術和顯性擁塞通知技術的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant