CN111294666B - 视频帧传输方法与确定视频帧传输延时方法、装置及*** - Google Patents
视频帧传输方法与确定视频帧传输延时方法、装置及*** Download PDFInfo
- Publication number
- CN111294666B CN111294666B CN201910599378.0A CN201910599378A CN111294666B CN 111294666 B CN111294666 B CN 111294666B CN 201910599378 A CN201910599378 A CN 201910599378A CN 111294666 B CN111294666 B CN 111294666B
- Authority
- CN
- China
- Prior art keywords
- video
- video frame
- time
- request
- determining
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004519 manufacturing process Methods 0.000 claims abstract description 85
- 230000004044 response Effects 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 abstract description 11
- 238000004364 calculation method Methods 0.000 abstract description 10
- 238000012360 testing method Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 8
- 238000009877 rendering Methods 0.000 description 6
- 230000011664 signaling Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供一种视频帧传输方法与确定视频帧传输延时方法、装置及***,其中所述确定视频帧传输延时的方法包括:接收来自视频生产端的视频帧并将所述视频帧存入预设的接收缓冲区,所述视频帧携带时间戳信息t,所述t由所述视频生产端根据在发送缓冲区放入所述视频帧的时刻以及预先获得的所述视频生产端的相对时间T0'确定;确定本端中与所述T0'表示同一时刻的本端相对时间T0;采用所述t以及所述T0预测所述视频生产端在发送缓冲区中放入所述视频帧的时间Tx';当需要从所述接收缓冲区取出所述视频帧时,根据当前时刻Tx与预测的所述Tx',确定所述视频帧的传输时延,整个过程不依赖于人工操作,也不依赖于试验环境,提高了传输延时的计算效率及计算精度。
Description
技术领域
本申请涉及视频处理领域,尤其涉及一种视频帧传输方法与确定视频帧传输延时方法、装置及***。
背景技术
视频延时是多媒体***的一项重要技术指标。在端到端的应用中,可以将一帧画面的编码、发送、接收、解码及渲染的时间称为视频延时。其中,编码延时及解码渲染延时可以在特定的环境下度量得出,在特定算法实现和机器环境上一般是固定的。但是从生产端将视频帧送入发送缓冲,到接收端将视频帧从接收缓冲区取出的这一段时间是受网络影响的,这段时间称之为传输延时。
在相关技术中,一般采用如下方式度量视频帧传输时的传输延时:
第一种方式:将摄像机对准秒表,然后比较播放器画面上是时间与秒表的时间的差值,作为传输延时。这种度量方式可以真实直观地观察视频帧的当前传输延时,但需要搭建特定的环境,且度量过程依赖于人工操作,效率较低,无法对大规模的用户情况自动度量。
第二种方式:生产端的摄像机对准秒表,且保证发送端与接收端的时钟一致,然后比较接收端的播放器上显示的时间与标准时钟的时间差值作为传输延时。与上述第一种方式相比,第二种方式试验环境搭建简单,但仍然依赖于人工操作,效率较低。并且对于大量用户的使用场景,保证用户的时钟一致需要做很多额外工作。
发明内容
有鉴于此,本申请提供一种视频帧传输方法与确定视频帧传输延时方法、装置及***。
具体地,本申请是通过如下技术方案实现的:
第一方面,本申请实施例提供了一种确定视频帧传输延时的方法,所述方法应用于视频请求端,所述方法包括:
接收来自视频生产端的视频帧并将所述视频帧存入预设的接收缓冲区,所述视频帧携带时间戳信息t,所述t由所述视频生产端根据在发送缓冲区放入所述视频帧的时刻以及预先获得的所述视频生产端的相对时间T0'确定;
确定本端中与所述T0'表示同一时刻的本端相对时间T0;
采用所述t以及所述T0预测所述视频生产端在发送缓冲区中放入所述视频帧的时间Tx';
当需要从所述接收缓冲区取出所述视频帧时,根据当前时刻Tx与预测的所述Tx',确定所述视频帧的传输时延。
可选地,在所述接收来自视频生产端的视频帧之前,所述方法还包括:
向视频生产端发送取流请求,并记录发送所述取流请求的时刻T1;
接收所述视频生产端针对所述取流请求反馈的响应消息,并记录接收到所述响应消息的时刻T2;
所述确定本端中与所述T0'表示同一时刻的本端相对时间T0,包括:
确定所述T1与所述T2的中间时刻,作为所述本端相对时间T0。
可选地,所述采用所述t以及所述T0预测所述视频生产端在发送缓冲区中放入所述视频帧的时间Tx',包括:
将所述T0加上所述t得到的时间作为视频生产端在发送缓冲区中放入所述视频帧的时间Tx'。
可选地,所述根据当前时刻Tx与预测的所述Tx',确定所述视频帧的传输时延,包括:
计算所述Tx与所述Tx'的差值,得到所述视频帧的传输时延。
第二方面,本申请实施例提供了一种视频帧传输方法,所述方法应用于视频生产端,所述方法包括:
接收视频请求端发送的取流请求,并记录接收到所述取流请求的时刻T1';
向所述视频请求端反馈响应消息,并记录发送所述响应消息的时刻T2';
根据所述T1'与所述T2',确定本端的相对时间T0',所述T0'与视频请求端的相对时间T0表示同一时刻;
确定用于响应所述取流请求的视频帧放入预设的发送缓冲区的时间Tx',并根据所述Tx'与所述T0'确定该视频帧的时间戳信息;
将所述视频帧及对应的所述时间戳信息发送至所述视频请求端。
可选地,所述根据所述T1'与所述T2',确定本端的相对时间T0',包括:
确定所述T1'与所述T2'的中间时刻,作为所述本端的相对时间T0'。
可选地,所述根据所述Tx'与所述T0'确定该视频帧的时间戳信息,包括:
将所述Tx'减去所述T0'得到该视频帧的时间戳信息。
第三方面,本申请实施例提供了一种确定视频帧传输延时的装置,所述装置应用于视频请求端,所述装置包括:
视频帧接收模块,用于接收来自视频生产端的视频帧并将所述视频帧存入预设的接收缓冲区,所述视频帧携带时间戳信息t,所述t由所述视频生产端根据在发送缓冲区放入所述视频帧的时刻以及预先获得的所述视频生产端的相对时间T0'确定;
相对时间确定模块,用于确定本端中与所述T0'表示同一时刻的本端相对时间T0;
发送时间预测模块,用于采用所述t以及所述T0预测所述视频生产端在发送缓冲区中放入所述视频帧的时间Tx';
传输时延确定模块,用于当需要从所述接收缓冲区取出所述视频帧时,根据当前时刻Tx与预测的所述Tx',确定所述视频帧的传输时延。
第四方面,本申请实施例提供了一种视频帧传输装置,所述装置应用于视频生产端,所述装置包括:
取流请求接收模块,用于接收视频请求端发送的取流请求,并记录接收到所述取流请求的时刻T1';
响应消息反馈模块,用于向所述视频请求端反馈响应消息,并记录发送所述响应消息的时刻T2';
相对时间确定模块,用于根据所述T1'与所述T2',确定本端的相对时间T0',所述T0'与视频请求端的相对时间T0表示同一时刻;
时间戳信息确定模块,用于确定用于响应所述取流请求的视频帧放入预设的发送缓冲区的时间Tx',并根据所述Tx'与所述T0'确定该视频帧的时间戳信息;
视频帧发送模块,用于将所述视频帧及对应的所述时间戳信息发送至所述视频请求端。
第五方面,本申请实施例提供了一种视频处理***,所述视频处理***包括视频请求端以及视频生产端,所述视频请求端用于执行上述第一方面所述的一种确定视频帧传输延时的方法中的步骤,所述视频生产端用于执行上述第二方面所述的一种视频帧传输方法中的步骤。
本申请实施例具有如下有益效果:
在本实施例中,视频请求端从视频生产端接收的视频帧携带时间戳信息t,该时间戳信息t为该视频生产端根据在发送缓冲区放入该视频帧的时刻以及预先获得的该视频生产端的相对时间T0'确定。通过确定视频请求端中与该T0'表示同一时刻的本端相对时间T0来实现时间从视频生产端向视频请求端的转换,然后采用该时间戳信息t以及相对时间T0可以预测视频生产端在发送缓冲区中放入视频帧的时间Tx',从而可以根据该预测出的Tx'以及视频帧从接收缓冲区取出的时间Tx确定视频帧的传输时延。上述过程依据视频请求端中获取的单方面的数据来确定视频帧的传输延时,可以应用于大量用户的使用场景,且整个过程不依赖于人工操作,也不依赖于试验环境,提高了传输延时的计算效率以及计算精度。
附图说明
图1是本申请一示例性实施例示出的一种确定视频帧传输延时的方法实施例的步骤流程图;
图2是本申请一示例性实施例示出的另一种确定视频帧传输延时的方法实施例的步骤流程图;
图3是本申请一示例性实施例示出的视频帧交互时序图;
图4是本申请一示例性实施例示出的视频传输示意图;
图5是本申请一示例性实施例示出的一种视频帧传输的方法实施例的步骤流程图;
图6是本申请的装置所在设备的一种硬件结构图;
图7是本申请一示例性实施例示出的一种度量视频帧的传输延时的装置实施例的结构框图;
图8是本申请一示例性实施例示出的一种视频帧传输的装置实施例的结构框图;
图9是本申请一示例性实施例示出的视频处理***实施例的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
参考图1,示出了本申请一示例性实施例示出的一种确定视频帧传输延时的方法实施例的步骤流程图,本实施例可以适用于视频请求端,具体可以包括如下步骤:
步骤101,接收来自视频生产端的视频帧并将所述视频帧存入预设的接收缓冲区,所述视频帧携带时间戳信息t,所述t由所述视频生产端根据在发送缓冲区放入所述视频帧的时刻以及预先获得的所述视频生产端的相对时间T0'确定;
步骤102,确定本端中与所述T0'表示同一时刻的本端相对时间T0;
步骤103,采用所述t以及所述T0预测所述视频生产端在发送缓冲区中放入所述视频帧的时间Tx';
步骤104,当需要从所述接收缓冲区取出所述视频帧时,根据当前时刻Tx与预测的所述Tx',确定所述视频帧的传输时延。
在本实施例中,视频请求端从视频生产端接收的视频帧携带时间戳信息t,该时间戳信息t为该视频生产端根据在发送缓冲区放入该视频帧的时刻以及预先获得的该视频生产端的相对时间T0'确定。通过确定视频请求端中与该T0'表示同一时刻的本端相对时间T0来实现时间从视频生产端向视频请求端的转换,然后采用该时间戳信息t以及相对时间T0可以预测视频生产端在发送缓冲区中放入视频帧的时间Tx',从而可以根据该预测出的Tx'以及视频帧从接收缓冲区取出的时间Tx确定视频帧的传输时延。上述过程依据视频请求端中获取的单方面的数据来确定视频帧的传输延时,可以应用于大量用户的使用场景,且整个过程不依赖于人工操作,也不依赖于试验环境,提高了传输延时的计算效率以及计算精度。
参考图2,示出了本申请一示例性实施例示出的另一种确定视频帧传输延时的方法实施例的步骤流程图,本实施例可以适用于视频请求端,作为一种示例,视频请求端可以包括但不限于视频播放客户端(即取流客户端)或平台服务器等。
如图2所示,本实施例具体可以包括如下步骤:
步骤201,向视频生产端发送取流请求,并记录发送所述取流请求的时刻T1。
例如,参考图3的视频帧交互时序图,当想要获取视频数据时,视频请求端(即图3中的请求端)可以向视频生产端(即图3中的生产端)发送取流请求(即图3中的请求),以从视频生产端中获得视频帧。同时,视频请求端可以记录发送该取流请求的时刻T1,视频生产端可以记录接收到该取流请求的时刻T1'。
在实现时,为了确保通信的安全,视频请求端与视频生产端之间传输的数据或信令(包括图3中的请求、响应及视频帧)可以采用预先协商的密钥和加密算法进行加密后传输,对端接收到该信令或数据后则可以采用对应的密钥和解密算法进行解密。
步骤202,接收所述视频生产端针对所述取流请求反馈的响应消息,并记录接收到所述响应消息的时刻T2。
在该步骤中,如图3所示,视频生产端接收到取流请求以后,可以向视频请求端反馈响应消息(即图3中的响应),以通知视频请求端本端接收到取流请求,在视频生产端可以记录发送响应消息时的时刻T2'。
在视频请求端,当接收到响应消息以后,可以记录接收到该响应消息的时刻T2。当接收到响应消息以后,视频请求端可以判定视频生产端已经接收到取流请求,接下来视频请求端可以等待视频生产端发送的视频帧。
步骤203,接收来自所述视频生产端的视频帧并将所述视频帧存入预设的接收缓冲区,所述视频帧携带时间戳信息t。
在一个例子中,如图4的视频传输示意图所示,一个视频帧从视频生产端到视频请求端的生命周期中至少可以包括编码、发送、接收、解码及渲染等过程,这整个生命周期的时间称为视频延时。在视频生产端可以设置发送缓冲区,视频帧经过编码后可以存入发送缓冲区中排队发送。在视频请求端可以设置接收缓冲区,视频请求端从网络接收到视频帧后,并不会马上解码渲染,而是放入接收缓冲区排队解码渲染,以避免网络抖动影响视频流畅播放的情况。
在本实施例中,视频生产端从发送缓冲区中取出视频帧以后,在发出该视频帧之前,可以为该视频帧添加时间戳信息t,示例性地,该时间戳信息t由视频生产端根据在发送缓冲区放入视频帧的时刻以及预先获得的该视频生产端的相对时间T0'确定。
在一种可能的实施方式中,如图3所示,T0'可以采用如下方式确定:确定上述T1'与上述T2'的中间时刻,作为视频生产端的相对时间T0'。即,
T0'=(T1'+T2')/2。
根据在发送缓冲区放入视频帧的时刻Tx'以及该相对时间T0'可以确定该视频帧的时间戳信息t。在一种实施方式中,将Tx'减去T0'可以得到该视频帧的时间戳信息,即:
t=Tx'-T0'。
由于每个视频帧放入发送缓冲区的时刻是不同的,因此每个视频帧对应的时间戳信息是不同的,例如,在图3中,假设视频帧1放入发送缓冲区的时刻为T3',则视频帧1对应的时间戳信息为t=T3'-T0';假设视频帧2放入发送缓冲区的时刻为T4',则视频帧2对应的时间戳信息为t=T4'-T0'。当然,图3中的视频帧1、视频帧2和视频帧3仅仅是视频帧的例子,本实施例中的视频帧并不限于图3中的视频帧1、视频帧2和视频帧3,还可以包括更多的视频帧。
步骤204,确定本端中与所述T0'表示同一时刻的本端相对时间T0。
在本实施例的一种可能的实施方式中,步骤204可以包括如下子步骤:
确定所述T1与所述T2的中间时刻,作为所述本端相对时间T0。
与相对时间T0'的确定方式类似,在该步骤中,相对时间T0=(T1+T2)/2。
在实际中,请求与响应的网络传输时间大致相等,但由于视频请求端与视频生产端两者的时钟可能不一致,使得T1与T1'、T2与T2'的值可能不同,如图3所示。因此最终会导致T0与T0'的值不同,虽然T0与T0'的值不同,但可以理解为两者表示同一时刻。
但需要说明的是,为了确保T0与T0'能够表示同一时刻,数据或信令从视频请求端到视频生产端的传输路径需要与从视频生产端到视频请求端的传输路径一致,例如,假设数据或信令从视频请求端到视频生产端的传输路径为:视频请求端-中间服务器-视频生产端,而从视频生产端到视频请求端的传输路径为:视频生产端-视频请求端,则两者的传输路径不一致。
步骤205,采用所述t以及所述T0预测所述视频生产端在发送缓冲区中放入所述视频帧的时间Tx'。
在该步骤中,根据本端的相对时间T0以及视频帧中携带的时间戳信息t,视频请求端可以预测视频生产端在发送缓冲区中放入视频帧的时间Tx'。在一种实施方式中,可以将T0加上时间戳信息t得到的时间作为视频生产端在发送缓冲区中放入视频帧的时间Tx',即:
Tx'=t+T0。
具体而言,由于t=Tx'-T0',则可以得到Tx'=t+T0'。由于T0与T0'可以用于表示同一时刻,则在该步骤中Tx'=t+T0。
在一种实施例中,预测的Tx'可以与时间戳信息及视频帧关联存储。在其他实施例中,还可以在从接收缓冲区中取出视频帧时实时确定该视频帧的Tx'。
步骤206,当需要从所述接收缓冲区取出所述视频帧时,根据当前时刻Tx与预测的所述Tx',确定所述视频帧的传输时延。
在该步骤中,当需要从接收缓冲区中取出视频帧进行解码及渲染时,可以记录视频帧从接收缓冲区取出的当前时刻Tx,并根据该Tx与预测的Tx'确定该视频帧的传输时延。
例如,在图4中,将视频帧放入发送缓冲区到从接收缓冲区中取出的时间段称为传输延时。
在一种实施方式中,可以计算Tx与Tx'的差值作为视频帧的传输时延。’即传输时延delay=Tx-Tx'=Tx-(t+T0)=Tx-(t+(T1+T2)/2)。
在本实施例中,在视频生产端与视频请求端的时钟不同步的情况下,可以分别在两者中确定表示同一时刻的相对时间。根据视频生产端的相对时间,在视频生产端发送的视频帧中添加特殊的时间戳信息,视频请求端根据该时间戳信息,可以结合本端的相对时间预测视频生产端在发送缓冲区中放入视频帧的时间Tx',根据该Tx'以及视频请求端记录的本端从接收缓冲区中取出该视频帧的时间Tx,可以计算视频帧的传输延时。从而可以在视频请求端中获取的单方面的数据来度量视频的传输延时,可以应用于大量用户的使用场景,且整个过程不依赖于人工操作,也不依赖于试验环境,提高了传输延时的计算效率以及计算精度。
参考图5,示出了本申请一示例性实施例示出的一种视频帧传输的方法实施例的步骤流程图,本实施例可以适用于视频生产端,作为一种示例,视频生产端可以具有摄像装置的设备。
如图5所示,本实施例具体可以包括如下步骤:
步骤501,接收视频请求端发送的取流请求,并记录接收到所述取流请求的时刻T1'。
例如,参考图3所示,当想要获取视频数据时,视频请求端(即图3中的请求端)可以向视频生产端(即图3中的生产端)发送取流请求(即图3中的请求)。当视频生产端接收到取流请求以后,可以记录接收到该取流请求的时刻T1'。
步骤502,向所述视频请求端反馈响应消息,并记录发送所述响应消息的时刻T2'。
如图3所示,视频生产端接收到取流请求以后,可以向视频请求端反馈响应消息(即图3中的响应),以通知视频请求端本端接收到取流请求,在视频生产端可以记录发送响应消息时的时刻T2'。
步骤503,根据所述T1'与所述T2',确定本端的相对时间T0',所述T0'与视频请求端的相对时间T0表示同一时刻。
在一种可能的实施方式中,如图3所示,T0'可以采用如下方式确定:确定上述T1'与上述T2'的中间时刻,作为视频生产端的相对时间T0'。即,
T0'=(T1'+T2')/2。
步骤504,确定用于响应所述取流请求的视频帧放入预设的发送缓冲区的时间Tx',并根据所述Tx'与所述T0'确定该视频帧的时间戳信息。
在该步骤中,视频生产端可以预先设置一发送缓冲区,当视频生产端将采集的原始视频帧进行编码以后,可以将得到的视频帧存入发送缓冲区中排队发送。当视频生产端将视频帧放入发送缓冲区时可以记录对应的时刻Tx'。
在本实施例中,视频生产端从发送缓冲区中取出视频帧以后,在发出该视频帧之前,可以确定该视频帧的时间戳信息t。
根据Tx'以及相对时间T0'可以得到该视频帧对应的时间戳信息t。在一种实施方式中,将Tx'减去T0'可以得到该视频帧的时间戳信息t,即:
t=Tx'-T0'。
由于每个视频帧放入发送缓冲区的时刻是不同的,因此每个视频帧对应的时间戳信息是不同的,例如,在图3中,假设视频帧1放入发送缓冲区的时刻为T3',则视频帧1对应的时间戳信息为t=T3'-T0';假设视频帧2放入发送缓冲区的时刻为T4',则视频帧2对应的时间戳信息为t=T4'-T0'。当然,图3中的视频帧1、视频帧2和视频帧3仅仅是视频帧的例子,本实施例中的视频帧并不限于图3中的视频帧1、视频帧2和视频帧3,还可以包括更多的视频帧。
步骤505,将所述视频帧及对应的所述时间戳信息发送至所述视频请求端。
在该步骤中,视频生产端响应于视频请求端的取流请求,可以将携带时间戳信息的视频帧发送至视频请求端。
在将视频帧发送至视频请求端以后,视频请求端可以根据图1及图2实施例中的方式对视频帧进行接收、解码及渲染等处理,同时计算该视频帧的传输延时。
在本实施例中,在视频生产端与视频请求端的时钟不同步的情况下,可以分别在两者中确定表示同一时刻的相对时间。根据视频生产端的相对时间,确定视频帧的时间戳信息,并在发送的视频帧中携带该时间戳信息,使得视频请求端获得该时间戳信息以后,可以根据该时间戳信息确定视频帧的传输延时。整个过程不依赖于人工操作,也不依赖于试验环境,可以提高传输延时的计算效率以及计算精度。
与前述方法的实施例相对应,本申请还提供了一种确定视频帧传输延时的装置的实施例以及一种视频帧传输装置的实施例。
本申请的装置实施例可以应用于电子设备中。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本申请的装置所在设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该装置的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图7,示出了本申请一示例性实施例示出的一种确定视频帧传输延时的装置实施例的结构框图,所述装置应用于视频请求端,具体可以包括如下模块:
视频帧接收模块701,用于接收来自视频生产端的视频帧并将所述视频帧存入预设的接收缓冲区,所述视频帧携带时间戳信息t,所述t由所述视频生产端根据在发送缓冲区放入所述视频帧的时刻以及预先获得的所述视频生产端的相对时间T0'确定;
相对时间确定模块702,用于确定本端中与所述T0'表示同一时刻的本端相对时间T0;
发送时间预测模块703,用于采用所述t以及所述T0预测所述视频生产端在发送缓冲区中放入所述视频帧的时间Tx';
传输时延确定模块704,用于当需要从所述接收缓冲区取出所述视频帧时,根据当前时刻Tx与预测的所述Tx',确定所述视频帧的传输时延。
在本实施例的一种可能的实施方式中,所述装置还包括:
取流请求发送模块,用于向视频生产端发送取流请求,并记录发送所述取流请求的时刻T1;
响应消息接收模块,用于接收所述视频生产端针对所述取流请求反馈的响应消息,并记录接收到所述响应消息的时刻T2;
所述相对时间确定模块702具体用于:
确定所述T1与所述T2的中间时刻,作为所述本端相对时间T0。
在本实施例的一种可能的实施方式中,所述发送时间预测模块703具体用于:
将所述T0加上所述t得到的时间作为视频生产端在发送缓冲区中放入所述视频帧的时间Tx'。
在本实施例的一种可能的实施方式中,所述传输时延确定模块704具体用于:
计算所述Tx与所述Tx'的差值,得到所述视频帧的传输时延。
请参考图8,示出了本申请一示例性实施例示出的一种视频帧传输装置实施例的结构框图,所述装置应用于视频生产端,具体可以包括如下模块:
取流请求接收模块801,用于接收视频请求端发送的取流请求,并记录接收到所述取流请求的时刻T1';
响应消息反馈模块802,用于向所述视频请求端反馈响应消息,并记录发送所述响应消息的时刻T2';
相对时间确定模块803,用于根据所述T1'与所述T2',确定本端的相对时间T0',所述T0'与视频请求端的相对时间T0表示同一时刻;
时间戳信息确定模块804,用于确定用于响应所述取流请求的视频帧放入预设的发送缓冲区的时间Tx',并根据所述Tx'与所述T0'确定该视频帧的时间戳信息;
视频帧发送模块805,用于将所述视频帧及对应的所述时间戳信息发送至所述视频请求端。
在本实施例的一种可能的实施方式中,所述相对时间确定模块803具体用于:
确定所述T1'与所述T2'的中间时刻,作为所述本端的相对时间T0'。
在本实施例的一种可能的实施方式中,所述时间戳信息确定模块804具体用于:
将所述Tx'减去所述T0'得到该视频帧的时间戳信息。
请参考图9,示出了本申请一示例性实施例示出的一种视频处理***实施例的结构框图,所述视频处理***包括视频请求端10以及视频生产端20,所述视频请求端10用于执行图1及图2中所述的确定视频帧传输延时的方法实施例中的步骤,所述视频生产端20用于执行图5中的所述的视频帧传输的方法实施例中的步骤。
对于装置及***实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。
以上所描述的装置及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述方法实施例的步骤。
本申请实施例还提供了一种终端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法实施例的步骤。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如车载终端、移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位***(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种***模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和***通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (7)
1.一种确定视频帧传输延时的方法,其特征在于,所述方法应用于视频请求端,所述视频请求端与视频生产端间往返的传输路径一致,所述方法包括:
接收来自所述视频生产端的视频帧并将所述视频帧存入预设的接收缓冲区,所述视频帧携带时间戳信息t,所述t由所述视频生产端根据在发送缓冲区放入所述视频帧的时刻减去预先获得的所述视频生产端的相对时间T0'确定;
确定本端中与所述T0'表示同一时刻的本端相对时间T0;
将所述t以及所述T0相加以预测所述视频生产端在发送缓冲区中放入所述视频帧的时间Tx';
当需要从所述接收缓冲区取出所述视频帧时,根据当前时刻Tx与预测的所述Tx',确定所述视频帧的传输时延。
2.根据权利要求1所述的方法,其特征在于,在所述接收来自所述视频生产端的视频帧之前,所述方法还包括:
向所述视频生产端发送取流请求,并记录发送所述取流请求的时刻T1;
接收所述视频生产端针对所述取流请求反馈的响应消息,并记录接收到所述响应消息的时刻T2;
所述确定本端中与所述T0'表示同一时刻的本端相对时间T0,包括:
确定所述T1与所述T2的中间时刻,作为所述本端相对时间T0。
3.根据权利要求1或2所述的方法,其特征在于,所述根据当前时刻Tx与预测的所述Tx',确定所述视频帧的传输时延,包括:
计算所述Tx与所述Tx'的差值,得到所述视频帧的传输时延。
4.一种视频帧传输方法,其特征在于,所述方法应用于视频生产端,所述视频生产端与视频请求端间往返的传输路径一致,所述方法包括:
接收所述视频请求端发送的取流请求,并记录接收到所述取流请求的时刻T1';
向所述视频请求端反馈响应消息,并记录发送所述响应消息的时刻T2';
确定所述T1'与所述T2'的中间时刻,作为本端的相对时间T0',所述T0'与视频请求端的相对时间T0表示同一时刻;
确定用于响应所述取流请求的视频帧放入预设的发送缓冲区的时间Tx',并将所述Tx'减去所述T0'确定该视频帧的时间戳信息;
将所述视频帧及对应的所述时间戳信息发送至所述视频请求端。
5.一种确定视频帧传输延时的装置,其特征在于,所述装置应用于视频请求端,所述视频请求端与视频生产端间往返的传输路径一致,所述装置包括:
视频帧接收模块,用于接收来自所述视频生产端的视频帧并将所述视频帧存入预设的接收缓冲区,所述视频帧携带时间戳信息t,所述t由所述视频生产端根据在发送缓冲区放入所述视频帧的时刻减去预先获得的所述视频生产端的相对时间T0'确定;
相对时间确定模块,用于确定本端中与所述T0'表示同一时刻的本端相对时间T0;
发送时间预测模块,用于将所述t以及所述T0相加以预测所述视频生产端在发送缓冲区中放入所述视频帧的时间Tx';
传输时延确定模块,用于当需要从所述接收缓冲区取出所述视频帧时,根据当前时刻Tx与预测的所述Tx',确定所述视频帧的传输时延。
6.一种视频帧传输装置,其特征在于,所述装置应用于视频生产端,所述视频生产端与视频请求端间往返的传输路径一致,所述装置包括:
取流请求接收模块,用于接收所述视频请求端发送的取流请求,并记录接收到所述取流请求的时刻T1';
响应消息反馈模块,用于向所述视频请求端反馈响应消息,并记录发送所述响应消息的时刻T2';
相对时间确定模块,用于确定所述T1'与所述T2'的中间时刻,作为本端的相对时间T0',所述T0'与视频请求端的相对时间T0表示同一时刻;
时间戳信息确定模块,用于确定用于响应所述取流请求的视频帧放入预设的发送缓冲区的时间Tx',并将所述Tx'减去所述T0'确定该视频帧的时间戳信息;
视频帧发送模块,用于将所述视频帧及对应的所述时间戳信息发送至所述视频请求端。
7.一种视频处理***,其特征在于,所述视频处理***包括视频请求端以及视频生产端,所述视频请求端用于执行权利要求1-3任一项所述的确定视频帧传输延时的方法,所述视频生产端用于执行权利要求4所述的视频帧传输的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910599378.0A CN111294666B (zh) | 2019-07-04 | 2019-07-04 | 视频帧传输方法与确定视频帧传输延时方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910599378.0A CN111294666B (zh) | 2019-07-04 | 2019-07-04 | 视频帧传输方法与确定视频帧传输延时方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111294666A CN111294666A (zh) | 2020-06-16 |
CN111294666B true CN111294666B (zh) | 2022-07-01 |
Family
ID=71024103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910599378.0A Active CN111294666B (zh) | 2019-07-04 | 2019-07-04 | 视频帧传输方法与确定视频帧传输延时方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111294666B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114071120A (zh) * | 2020-08-03 | 2022-02-18 | 炬才微电子(深圳)有限公司 | 摄像头测试***、方法、存储介质及电子设备 |
CN113891065B (zh) * | 2021-09-09 | 2023-11-28 | 武汉中海庭数据技术有限公司 | 一种单帧图像传输延时测量方法和*** |
CN115002526A (zh) * | 2022-05-23 | 2022-09-02 | 阿里巴巴(中国)有限公司 | 视频帧时延确定方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102428704A (zh) * | 2009-03-23 | 2012-04-25 | 生命力有限公司 | 基于延时测量及其他反馈来压缩视频的方法及*** |
CN106375793A (zh) * | 2016-08-29 | 2017-02-01 | 东方网力科技股份有限公司 | 一种视频结构化信息的叠加方法、用户终端及叠加*** |
CN106998485A (zh) * | 2016-01-25 | 2017-08-01 | 百度在线网络技术(北京)有限公司 | 视频直播方法及装置 |
WO2018226232A1 (en) * | 2017-06-08 | 2018-12-13 | Rovi Guides, Inc. | Systems and methods for monitoring content distribution |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10638192B2 (en) * | 2017-06-19 | 2020-04-28 | Wangsu Science & Technology Co., Ltd. | Live streaming quick start method and system |
-
2019
- 2019-07-04 CN CN201910599378.0A patent/CN111294666B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102428704A (zh) * | 2009-03-23 | 2012-04-25 | 生命力有限公司 | 基于延时测量及其他反馈来压缩视频的方法及*** |
CN106998485A (zh) * | 2016-01-25 | 2017-08-01 | 百度在线网络技术(北京)有限公司 | 视频直播方法及装置 |
CN106375793A (zh) * | 2016-08-29 | 2017-02-01 | 东方网力科技股份有限公司 | 一种视频结构化信息的叠加方法、用户终端及叠加*** |
WO2018226232A1 (en) * | 2017-06-08 | 2018-12-13 | Rovi Guides, Inc. | Systems and methods for monitoring content distribution |
Also Published As
Publication number | Publication date |
---|---|
CN111294666A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111294666B (zh) | 视频帧传输方法与确定视频帧传输延时方法、装置及*** | |
US20190311526A1 (en) | Three-dimensional model distribution method, three-dimensional model receiving method, three-dimensional model distribution device, and three-dimensional model receiving device | |
WO2022127606A1 (zh) | 基于网络通信质量的自适应云渲染***及方法 | |
US8881220B2 (en) | Managed video services at edge-of-the-network | |
US9866604B2 (en) | Progressive download playback | |
CN110225347A (zh) | 视频数据传输方法、装置、电子设备和存储介质 | |
CN111683273A (zh) | 视频卡顿信息的确定方法及装置 | |
RU2013137437A (ru) | Кодирование и декодирование видео с повышенной устойчивостью к ошибкам | |
US9253105B2 (en) | Methods and apparatuses for facilitating determination of a state of a receiver buffer | |
CN102037453A (zh) | 具有任意处理功能的中央dma | |
WO2017094847A1 (ja) | 体感品質最適化装置、ネットワーク品質推定装置、モバイル端末、体感品質最適化方法、ネットワーク品質推定方法、及びプログラム | |
TW201733315A (zh) | 對於網路科技的多串流交錯 | |
WO2016118668A1 (en) | Multiple protocol media streaming | |
CN108259998B (zh) | 播放器及播放控制方法、装置、电子设备及播放*** | |
CN106688015B (zh) | 处理用于当解码图像时对于块的操作的参数 | |
US11218746B2 (en) | Method, system, and non-transitory computer readable record medium for video quality control | |
CN106717079A (zh) | 使用wifi信标的时钟同步 | |
CN105847729B (zh) | 具有证据保全功能的北斗网络摄像机 | |
CN109862019B (zh) | 数据处理方法、装置以及*** | |
JP5335354B2 (ja) | 情報送信装置、情報送信装置の制御方法及びコンピュータプログラム | |
CN114827682A (zh) | 投屏方法、***、设备及存储介质 | |
CN109587517B (zh) | 一种多媒体文件的播放方法及装置、服务器及存储介质 | |
CN113839829A (zh) | 云游戏延时测试方法、装置、***及电子设备 | |
WO2023078232A1 (zh) | 一种传输方法及装置 | |
US8670852B2 (en) | Audio streaming system and method for performing distributed audio processing within the system |
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 |