CN116489342B - 确定编码延时的方法、装置、及电子设备、存储介质 - Google Patents
确定编码延时的方法、装置、及电子设备、存储介质 Download PDFInfo
- Publication number
- CN116489342B CN116489342B CN202310729514.XA CN202310729514A CN116489342B CN 116489342 B CN116489342 B CN 116489342B CN 202310729514 A CN202310729514 A CN 202310729514A CN 116489342 B CN116489342 B CN 116489342B
- Authority
- CN
- China
- Prior art keywords
- frame
- coding
- source
- determining
- video data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000001360 synchronised effect Effects 0.000 claims abstract description 36
- 238000004590 computer program Methods 0.000 claims description 20
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 12
- 238000012360 testing method Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N17/00—Diagnosis, testing or measuring for television systems or their details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例图像编码解码技术领域,特别涉及一种确定编码延时的方法、装置、及电子设备、存储介质,该方法包括:获取源视频数据每帧的源录制时刻与每帧的编码录制时刻;根据编码关键帧的第一位置、源关键帧的第二位置,编码关键帧的类型和编码视频数据确定编码同步帧的目标编码位置和源同步帧的目标源位置;根据编码录制时刻与源录制时刻,确定编码器的编码延时时间。本申请的方法通过录制的方式,获得视频数据的每帧进入编码器的时间,每帧从编码器输出的时间,能够根据两者的时间差专门确定编码器的延时时间;本申请确定延时所使用的帧是唯一确定的帧,根据帧进入编码器的时间和从编码器输出的时间,能够更准确地确定编码器的延时时间。
Description
技术领域
本申请涉及图像编码解码技术领域,特别涉及一种确定编码延时的方法、装置、及电子设备、存储介质。
背景技术
音视频远距离传播需要利用编码器进行编码,在解码终端利用解码器进行解码。为了保证解码终端能够按照发送端的时间要求的准时地播放音视频,需要对编码和解码造成的延时时间进行检测。
现有技术中对编码和解码的延时时间的检测方式如图1所示。利用监视器1播放进行编码前的测试视频,利用监视器2播放解码后的测试视频。视频测试中具有逐帧变化的时码(即每帧画面上的时码能够表征当前帧的帧序号)。分别获取两个监视器播放同一时码的一帧的播放时间,然后求两个播放时间之间的差值,即可得到编码和解码的延时时间。
上述编码解码延时时间的检测方法有以下缺点:
1) 不宜在运行***全链路上频繁进行测试;
2) 只能测试全链路的编码解码总延时时间,缺乏灵活度,无法确定编码或者解码对延时的影响。应用在编码器和解码器应用比较灵活的场景下时,无论编码器或者解码器发生变化,都需要重新检测,需要大量用于检测的资源。
3) 若被监看的信号源的精度较高。例如若信源是SMPTE ST 2110格式的8K无压缩信号,对监看设备的要求较高,目前测试中尚不具备能直接监看基于SMPTE ST-2110的8K无压缩全IP信号的分析设备,使用IP转SDI(Serial Digital Interface,数字分量串行接口)网关转换后进行监看会引入网关转换延时误差,且无法检测编码器的编码延时、解码器的解码延时。
“百城千屏”的“百城千屏随身听”业务是当前政府重点推广的项目。该业务在公共大屏不宜播放声音的情况下,采用专线传输8K超高清视频、互联网额外传输一路电视伴音(本文以下简称“独立传输伴音”),并利用视频中嵌入的时间戳实现解码终端音频同步于大屏视频播放,满足了观众在观看大屏节目时听到同步高质量音频的需求。在直播过程中,为了保证用户的终端能获得实时性较高的视频,需要采用低延时的编码器和解码器,并测量编码解码的延时时间。
“百城千屏”的“百城千屏随身听”业务为了保证通用性,解码终端可以使用多种品牌的解码器对互联网传输的经过编码的音频进行解码。不同品牌解码器的接收缓冲、解码模型和图像后处理实现可能不同,上报的嵌入UTC(Universal Time Coordinated,协调世界时)时间基于的时钟与编码器所在的***基于的时钟可能存在差异,从而影响了检测延时时间的准确性,另外只能测量整个链路的延时时间,无法针对性更强地确定编码器或者解码器的延时时间,进而对编码器或者解码器进行相应的调整。
因此,需要一种精度不受终端解码器影响,可以对独立的编码器端进行测试而不需要全链路***的配合的测试方法。
发明内容
为了解决上述技术缺陷之一,本申请实施例中提供了一种确定编码延时的方法、装置、及电子设备、存储介质。
本申请实施例的第一个方面,提供了一种确定编码延时的方法,包括:
获取源视频数据在输入编码器时每帧的源录制时刻与编码器输出编码视频数据时每帧的编码录制时刻;
根据编码关键帧在编码录制序列中的第一位置、源关键帧在源录制序列中的第二位置,以及编码关键帧的类型和编码视频数据确定编码关键帧对应的编码同步帧的目标编码位置,和源关键帧对应的源同步帧的目标源位置;
根据目标编码位置对应的编码录制时刻与源同步帧的源视频顺序号对应的源录制时刻,确定编码器的编码延时时间。
本申请实施例的第二个方面,提供了一种确定编码延时的装置,包括:
获取模块,用于获取源视频数据在输入编码器时每帧的源录制时刻与编码器输出编码视频数据时每帧的编码录制时刻;
第一确定模块,用于根据编码关键帧在编码录制序列中的第一位置、源关键帧在源录制序列中的第二位置,以及编码关键帧的类型和编码视频数据确定编码关键帧对应的编码同步帧的目标编码位置,和源关键帧对应的源同步帧的目标源位置;
第二确定模块,用于根据目标编码位置对应的编码录制时刻与源同步帧的源视频顺序号对应的源录制时刻,确定编码器的编码延时时间。
本申请实施例的第三个方面,提供了一种电子设备,包括:
存储器;
处理器;以及
计算机程序;
其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现如上述任一项确定编码延时的方法。
本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现如上述任一项确定编码延时的方法。
本申请实施例的方法通过录制的方式,获得视频数据的每帧进入编码器的时间,以及经过编码的视频数据的每帧从编码器输出的时间,因而能够通过同一帧输入编码器的时间与从编码器输出的时间差专门确定编码器的延时;并且,本申请实施例确定延时所使用的帧是与前一帧发生场景变化的帧,是视频中位置可以唯一确定的帧,根据该内容和位置可以唯一确定的帧进入编码器的时间和从编码器输出的时间,能够更准确地确定编码器的延时。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为现有技术的一种确定编码解码延时时间的方法原理示意图;
图2为现有技术的另一种确定编码解码延时时间的方法原理示意图;
图3为本申请一个实施例提供的确定编码延时的方法的流程图;
图4为本申请一个实施例提供的确定编码延时的方法的原理示意图;
图5为本申请一个实施例提供的确定编码延时的方法的流程图;
图6为本申请一个实施例提供的确定编码延时的方法的流程图;
图7为本申请一个实施例提供的确定编码延时的方法的流程图;
图8为本申请一个实施例提供的确定编码延时的方法的流程图;
图9为本申请一个实施例提供的确定编解码延时的方法的原理示意图;
图10为本申请一个实施例提供的确定编解码延时的方法的流程图;
图11为本申请一个实施例提供的确定编码延时的装置的流程图;
图12为本申请一个实施例提供的计算机设备结构示意图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图2所示,本申请实施例的应用场景可以是“百城千屏”的“百城千屏随身听”业务的编解码***。
“百城千屏随身听”业务的编解码***包括:
(1)视频信号源,用于提供未经编码的源视频数据。源视频数据可以8K超高清视频帧率为50fps,每帧持续时间为20ms,为了准确实现视频同步需要每一帧携带时间戳。
(2)信源交换机,用于将源视频数据分配给一个或者多个编码器按照相同或者不同的编码协议进行编码。
(3)编码器,用于根据编码协议对源视频数据进行编码,使用的协议可以是满足《T/UWA 012.2—2022 标准》的协议。编码器将用于同步播放的时间戳,打包放入如下表所示的满足《T/UWA 012.2—2022 标准》的Time_Stamp(时间戳)的语法结构中:
其中,utc_time用于存储源视频数据的一帧进入编码器的时间。编码器在进行编码的过程中将一帧的utc_time存储于该帧的PES(Packetized Elementary Streams,打包基本码流)包头中。包含视频数据进入编码器的时间戳的PES包头存储在数据包中发送给交换机。
(4)TS流输出交换机
用于将视频经过编码后得到的数据包分配给解码器。
(5)解码器
解码器用于对数据包进行解码,得到解码后的视频,以及视频每帧的时间戳。
在实现本申请的过程中发现,如图2所示,现有技术的检测编解码延时的方法是按照图1的背景技术中的利用两个监视器对比包含时码的测试视频的同一帧的方法,另一种是根据视频数据进入编码器的时间戳和解码器解码得到该帧视频的解码数据时,解码器所在的解码终端的***时间来求解。上文中两种方法都只能获得整个编码解码链路的总延时时间,无法专门获得编码器的延时时间或者解码器的延时时间。
本申请实施例执行主体可以是终端或者服务器的电脑,或者其他具有计算能力的设备。针对上述问题,本申请实施例中提供了一种确定编码延时的方法,如图3所示,包括如下步骤301-步骤303:
步骤301,获取源视频数据在输入编码器时每帧的源录制时刻与编码器输出编码视频数据时每帧的编码录制时刻。
确定每帧的源录制时刻和每帧的编码录制时刻可以基于相同的时钟源,例如NTP(Network Time Protocol,网络时间协议)时钟源。检测源录制时刻和编码录制时刻的检测***也可以使用编码器所使用的时钟源。编码器可以采用基于PTP(Precise Timeprotocol,高精度时间同步协议)时钟的编码器。被录制的源视频数据可以是没有加入时码的非测试视频。例如,“百城千屏”业务中时,被录制的视频是在公众场合的大屏幕中播放的视频,视频的图像中不包含时码。
如图4所示,本申请实施例的方法可以在信号源的视频数据进入编码器之前的位置(录制点a)和经过编码的数据从编码器输出的位置(录制点b)进行录制,并且同时获取未经编码的源视频数据的每帧进入编码器的时刻(即源录制时刻),以及每帧从编码器输出的时间(即编码录制时刻)。录制点a录制的是从视频信号源接收到的视频,录制得到的源视频数据可以以文件的形式保存。例如,录制信号源通过ST2110协议传输的视频,并保存为“YUV文件”。b录制点录制的是经过编码的包含TS(Transport Stream,传输流)流的数据包。录制之后以文件形式进行保存。TS流由TS包组成,在存储TS包后即时对TS包进行解析。一帧图像的数据通常存储在多个连续传输的TS包中,将录制这些TS包中包含PES包头的TS包的***时间确定为这帧经过编码的编码图像数据的录制时刻(即编码录制时刻)。对录制点a和录制点b进行录制可以采用不同的录制设备,也可以采取同一个录制设备,录制之后的文件发送给计算机进行处理。
步骤302,根据编码关键帧在编码录制序列中的第一位置、源关键帧在源录制序列中的第二位置,以及编码关键帧的类型和编码视频数据确定编码关键帧对应的编码同步帧的目标编码位置,和源关键帧对应的源同步帧的目标源位置。
如上文所述,经过编码视频数据的形式为数据包,编码关键帧实际为经过解码得到的视频中的一帧。编码关键帧是经过解码的视频中跟前一帧相比,场景发生明显变化的一帧。例如,前一帧的画面为风景,编码关键帧的画面为人物。使用编码关键帧作为确定编码延时时间的依据的原因是,编码关键帧是唯一的,根据该编码关键帧能够在源视频数据中确定与编码关键帧内容相同,且前一帧也与编码关键帧的前一帧相同的源视频关键帧。要确定编码延时,需要确定源视频数据中位置唯一的一帧与经过编码的该帧数据从编码器输出的时间差。
要确定发生场景变化的编码关键帧,对TS流的数据包进行解码,获得可以使用播放软件播放的ES(Elemental Stream,基本流)流,然后在视频播放软件播放。例如,源视频数据为8K解析度的YUV格式文件,经过编码后,通过AV3解码器进行解码,得到用于播放的YUV格式文件,然后在用于播放YUV格式文件的播放器YUVplayer上进行播放。可以通过人工的方式从播放的画面中确定确定编码关键帧的PTS(Presentation Time Stamp,显示时间戳),即为编码关键帧在编码录制序列中的第一位置。确定源关键帧在源录制序列中的第二位置(PTS)的方式也可以是通过人工的方式。
编码同步帧可以是与编码关键帧最近的I帧(即帧内参考编码帧)。要确定编码同步帧的原因是。编码后B帧和P帧的传输顺序和上文中解码后利用播放器进行播放的播放顺序不一致。若编码关键帧不是I帧,则编码关键帧从编码器输出的时间不能根据代表编码关键帧的播放顺序的PTS(第一位置)唯一确定。因而,编码关键帧的类型若不是I帧,不容易准确地确定编码关键帧的录制时刻。因此,需要确定PTS值与编码关键帧的PTS值最接近的编码同步帧(I帧)。这样能够根据编码同步帧的PTS(即目标编码位置)唯一确定编码同步帧从编码器输出的时间,进而根据编码同步帧输入编码器的时刻与编码同步帧从编码器输出的时刻确定编码器的延时时间。若编码关键帧是I帧,则可以将编码关键帧作为编码同步帧,同样可以将源关键帧作为源同步帧。
本申请实施例提供了编码关键帧是I帧或不是I帧时,获取编码同步帧和源同步帧的方法。
在本申请一个可选实施例中,根据编码关键帧在编码录制序列中的第一位置、源关键帧在源录制序列中的第二位置,以及编码关键帧的类型和编码视频数据确定编码关键帧对应的编码同步帧的目标编码位置,和源关键帧对应的源同步帧的目标源位置:
若确定编码关键帧的类型是帧内参考编码帧,则将第一位置确定为目标编码位置,第二位置确定为源同步帧的目标源位置;若确定编码关键帧的类型不是帧内参考编码帧,则将与第一位置最接近的帧内参考编码帧的第四位置确定为目标编码位置;根据编码关键帧的当前时间戳与最接近的帧内参考编码帧的当前时间戳的差值、源同步关键帧的源视频顺序号、当前时间戳时钟周期和源视频数据的帧频确定目标源位置。
实际应用中,若编码关键帧的类型不是I帧,以当前时间戳时钟周期为90kHz,帧频为50帧/每秒为例,人工确定的编码关键帧的PTS为B1,源关键帧的PTS为A1,距离编码关键帧最近的I帧(编码同步帧)的PTS为B2(目标编码位置),则可以根据如下公式(1)和公式(2)确定源同步帧的目标源位置A2:
D=(B2-P1)÷90÷20; (1)
A2=A1+D (2)
其中,D为源同步帧与源关键帧之间的偏移量。
本申请实施例提供了一种确定用于计算编码器延时的视频帧的方法,由于用于确定延时的帧为I帧,因此能够根据该帧的显示时间戳更准确地确定该帧从编码器输出的时间,进而能够更准确地根据该帧从编码器输出的时刻与该帧输入编码器的时刻之差得到的编码器的延时时间。
步骤303,根据目标编码位置对应的编码录制时刻与源同步帧的源视频顺序号对应的源录制时刻,确定编码器的编码延时时间。
由于步骤301中获取了每帧的编码录制时刻,因而能够根据编码视频数据中的目标编码位置的编码同步帧的编码录制时间,源同步帧的源视频顺序号同样也能够得到该帧输入编码器的源录制时刻。编码同步帧和源同步帧分别对应了一帧从编码器输出的时刻和输入编码器的时刻,两者求差,能够得到一帧图像数据通过编码器的延时时间。
本申请实施例的方法通过录制的方式,获得视频数据的每帧进入编码器的时间,以及经过编码的视频数据的每帧从编码器输出的时间,因而能够通过同一帧输入编码器的时间与从编码器输出的时间差专门确定编码器的延时;并且,本申请实施例确定延时所使用的帧是与前一帧发生场景变化的帧,是视频中位置可以唯一确定的帧,根据该内容和位置可以唯一确定的帧进入编码器的时间和从编码器输出的时间,能够更准确地确定编码器的延时。解决了检测编码延时精度不受终端解码器影响,无法对独立的编码器端进行测试而不需要全链路***配合的技术问题,可以实现精准确定编码器的延时的技术效果。
在本申请一个可选实施例中,如图5所示,提供了一种确定经过编码的编码视频数据中的时间戳是否准确的方法,包括步骤501-502:
步骤501,根据目标源位置、编码视频数据的每帧的打包基本码流包头确定源关键帧进入编码器的目标进入时间。
步骤502,确定目标进入时刻和目标源时刻之间的差值。
本申请实施例用于确定在编码器嵌入视频数据中的时间戳时间是否准确。通常,在编码器对源视频数据进行编码时,将每帧视频数据进入编码器的时间戳存入编码的文件包的包头中(即打包基本码流包头)。因而,根据录制源关键帧进入编码器的编码时刻(目标源位置),能够确定源关键帧进入编码器的时刻,进而能够判断编码关键帧的时间戳是否准确。
在本申请一个可选实施例中,如图6所示,提供了一种从编码器输出的数据包中提取未编码的源视频数据的每帧输入编码器的时间戳的方法,包括步骤601-步骤602:
步骤601,针对编码器输出的每个用户数据报协议包,获取用户数据报协议包和用户数据报协议包的协议包录制时刻。
步骤602,获得用户数据报协议包中包含的每个传输流包。
步骤603,若每个传输流包中包含打包基本码流包头,则将协议包录制时刻确定为一帧的编码录制时刻,则将协议包录制时刻确定为一帧的编码录制时刻。
其中,每个用户数据报协议包包含一个或多个传输流包,作为编码视频数据的一帧的开头的传输流包中包含打包基本码流包头。
编码器对视频数据进行编码后,将源视频数据ES封存在PES中,再通过编码将PES转换成TS包,将多个TS包打包在UDP(User Datagram Protocol)包,用于发送给解码器。相应的,要获得每帧的经过编码的编码视频数据从编码器输出的时刻需要按照上文中提供的方式:首先需要记录每个UDP包从编码器输出的时刻(即协议包录制时刻);然后确定哪个UDP包中的TS包中包含PES包头,包含PES包头的UDP包从编码器输出的时刻,即为编码图像数据的一帧从编码器输出的时刻。
本申请实施例确定包含PES包头的UDP包从编码器的输出时刻,由于包含PES包头的TS包的对应了一帧视频的多个TS包的开始,本申请实施例能够更准确的定位一帧视频从编码器输出的时刻,进而更准确地根据该时刻计算编码器的延时时间。
在本申请一个可选实施例中,如图7所示,提供了一种从编码视频数据中提取用于播放器播放的基本码流的方法,包括步骤701-步骤704:
步骤701,根据节目关联表确定指定节目的节目映射表;
如上文,编码视频数据通常以数据包的形式从编码器输出。为了确定编码视频数据的编码关键帧,需要对编码视频数据进行解码,再用播放器对解码之后的视频进行播放。为了满足播放器的播放要求,需要从编码数据中提取PAT(Program Association Table,节目关联表)和PMT(Program Map Table,节目映射表)。确定PAT可以首先根据PAT的特殊PID,PAT的PID为0,依次确定每个TS包的TS包头的PID是否是0,以确定PAT。PAT中包含要录制的指定节目的PMT。
步骤702,根据所述节目映射表确定所述指定节目的视频的视频传输流包编号。
根据PMT中视频的传输流包号PID(即视频传输流包号)能够获取所有TS包头中满足该视频传输流包号的TS包。根据所有视频传输流包号的TS包解码出ES。利用TS包解码出的ES可能对应多种类型的帧,为了方便后续视频播放器进行播放,可以在ES中找到I帧,视频播放器可以从这个I帧开始播放。
本申请实施例能够获取经过编码的TS流中的PAT和PMT数据,因而能够根据PAT和PMT从TS流中获得用于播放的ES,进而能够用于在视频播放器中进行播放,因而能够更方便地用于确定编码后视频数据的场景切换的关键帧,进而根据该关键帧确定编码器的延时时间。
在本申请一个可选实施例中,如图8所示,提供了一种确定编码器和解码器全链路延时的方法,包括步骤801-步骤803:
步骤801,获取解码器输出解码视频数据时每帧的解码录制时刻。
如图9所示,本申请实施例在解码器输出端可以设置一个录制点c用于录制从解码器输出的视频数据(即解码视频数据),并在录制的同时获取解码视频数据的每帧的解码录制时刻。确定编码器和解码器全链路延时时间,即为录制点a录制一帧源视频数据进入编码器的时刻,与内容相同的该帧从解码器输出到录制点c的录制设备的时间差。
例如,编码器输出TS流通过解码器解码为4*12G-SDI信号,SDI基带信号录制设备录制解码器通过SDI接口输出的视频帧,并记录每一帧录制时的***时间。
步骤802,根据目标编码位置和解码关键帧在解码录制序列中的第三位置确定解码关键帧对应的解码同步帧的目标解码位置。
确定解码关键帧可以通过视频播放软件对解码视频数据进行播放。解码视频数据可以保存成YUV格式的文件,由上文中的播放YUV格式视频的视频播放器进行播放。解码关键帧为解码视频数据中与编码关键帧内容相同的一帧,可以由人工确定。
根据解码关键帧确定解码同步帧的方式与上文中根据源关键帧确定源同步帧的方法类似。也是根据编码关键帧的类型,区别实现。若编码关键帧是I帧,则解码关键帧确即为解码同步帧。若若编码关键帧不是I帧,则可以根据公式(2)和公式(3)得到解码同步帧:
C2=C1+D (3)
其中D为上文中公式(2)得到的结果,C1为解码关键帧的PTS,C2为解码同步帧的PTS。
步骤803,根据目标解码位置对应的解码录制时刻与目标源位置对应的源录制时刻,确定由编码器和解码器组成的编解码链路的编解码总延时时间。
本申请实施例能够获取解码器输出的每帧解码视频的时刻,并能确定解码器输出的视频中播放序列中位置确定唯一一帧,因而能根据这一帧输入编码器的时刻和这帧从解码器输出的时刻,更准确地确定编码器和解码器构成的全链路的总延时时间。
在本申请一个可选实施例中,提供了一种确定解码器的解码延时时间的方法,还包括:根据目标解码位置对应的解码录制时刻与目标编码位置对应的编码录制时刻,确定解码器的解码延时时间。
本申请实施例的确定编码延时时间和解码延时时间的方法示例框图如图10所示。在录制点a对来自视频信号源的ST2110信号进行录制,得到源视频数据,记录源视频数据每一帧到达的主机UTC时间也即每一帧到达编码器的时刻。主机UTC时间是指检测***基于的时钟源。使用定制编写的程序录制TS、实时解析PES中时间戳,并记录该PES头所在TS包到达的主机UTC时间,对应上文中从UDP包中提取TS包,根据每个包括PES包头TS包到达的时间确定每一帧编码视频数据从编码器输出的时间。使用定制编写的程序找到第一个PAT/PMT后的第一个I帧,并提取该帧以及该帧以后的ES,即对应上文从编码视频数据中提取用于播放器播放的基本码流的方法的步骤701-步骤704。使用定制编写的程序录制SDI信号,保存为V210格式文件,并记录每一帧到达的主机时间,对应上文中获取从解码器输出的解码视频数据,以及每帧解码视频数据从解码器输出的时刻。源视频数据,解码视频数据和经过解码的编码视频数据都为YUV格式文件,用播放YUV文件的播放器进行播放,通过播放的每一帧的内容,人工确定编码关键帧、源关键帧和解码关键帧。在编码关键帧、源关键帧和解码关键帧的基础上获得编码同步帧、源同步帧和解码同步帧。跟据编码同步帧、源同步帧和解码同步帧的顺序号,确定每种帧对应的UTC时间,进而确定编码延时时间和解码延时时间。
如图11所示,本申请实施例提供了一种确定编码延时的装置1100,包括第一获取模块1110、第一确定模块1120和第二确定模块1130:
该第一获取模块1110,用于获取源视频数据在输入编码器时每帧的源录制时刻与编码器输出编码视频数据时每帧的编码录制时刻;
该第一确定模块1120,用于根据编码关键帧在编码录制序列中的第一位置、源关键帧在源录制序列中的第二位置,以及编码关键帧的类型和编码视频数据确定编码关键帧对应的编码同步帧的目标编码位置,和源关键帧对应的源同步帧的目标源位置;
该第二确定模块1130,用于根据目标编码位置对应的编码录制时刻与源同步帧的源视频顺序号对应的源录制时刻,确定编码器的编码延时时间。
在本申请一个可选实施例中,该第一获取模块1110具体用于:
针对编码器输出的每个用户数据报协议包,获取用户数据报协议包和用户数据报协议包的协议包录制时刻;
获得用户数据报协议包中包含的每个传输流包;
若每个传输流包中包含打包基本码流包头,则将协议包录制时刻确定为一帧的编码录制时刻,则将协议包录制时刻确定为一帧的编码录制时刻。
在本申请一个可选实施例中,该第一获取模块1110还包括:
第一确定子模块,若至少一个所述传输流包中包含所述节目关联表,则根据节目关联表确定节目映射表的视频或音频的节目编号;
第一提取子模块,用于从每个传输流包中提取包号为节目编号的节目传输流包;
第二提取子模块,用于从所有节目传输流包中提取包含打包基本码流包头且对应最早的协议包录制时刻的目标传输流包;
第三提取子模块,用于根据目标传输流包的打包基本码流包头从所有节目传输流包提取基本流数据。
在本申请一个可选实施例中,该装置1100还包括:
第二获取模块,用于获取解码器输出解码视频数据时每帧的解码录制时刻;
第三确定模块,用于根据编码关键帧在编码录制序列中的第一位置、源关键帧在源录制序列中的第二位置,以及编码关键帧的类型和编码视频数据确定编码关键帧对应的编码同步帧的目标编码位置,和源关键帧对应的源同步帧的目标源位置之后,还包括:
第四确定模块,用于根据目标编码位置和解码关键帧在解码录制序列中的第三位置确定解码关键帧对应的解码同步帧的目标解码位置;
第五确定模块,用于根据目标解码位置对应的解码录制时刻与目标源位置对应的源录制时刻,确定由编码器和解码器组成的编解码链路的编解码总延时时间。
在本申请一个可选实施例中,该第四确定模块,还用于:
根据目标解码位置对应的解码录制时刻与目标编码位置对应的编码录制时刻,确定解码器的解码延时时间。
在本申请一个可选实施例中,该第三确定模块,还用于:
根据目标源位置、编码视频数据的每帧的打包基本码流包头确定源关键帧进入编码器的目标进入时间;确定目标进入时刻和目标源时刻之间的差值。
在本申请一个可选实施例中,该第三确定模块,具体用于:
若确定编码关键帧的类型是帧内参考编码帧,则将第一位置确定为目标编码位置,第二位置确定为源同步帧的目标源位置;
若确定编码关键帧的类型不是帧内参考编码帧,则将与第一位置最接近的帧内参考编码帧的第四位置确定为目标编码位置;根据编码关键帧的当前时间戳与最接近的帧内参考编码帧的当前时间戳的差值、源同步关键帧的源视频顺序号、当前时间戳时钟周期和源视频数据的帧频确定目标源位置。
在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图12所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种确定编码延时的方法。包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上确定编码延时的方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请实施例中的方案可以采用各种计算机语言实现,例如,C语言、VHDL语言、Verilog语言、面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
本申请是参照本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本申请中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接或可以互相通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种确定编码延时的方法,其特征在于,包括:
获取源视频数据在输入编码器时每帧的源录制时刻与所述编码器输出编码视频数据时每帧的编码录制时刻;其中,所述源视频数据是指按照源录制序列进行录制的视频数据,所述源录制序列包括源关键帧和源同步帧;
从所述编码视频数据中获取编码关键帧;其中,所述编码关键帧是指经过编码的视频中跟前一帧相比,场景发生明显变化的一帧;
根据所述编码关键帧在编码录制序列中的第一位置、所述源关键帧在所述源录制序列中的第二位置,以及所述编码关键帧的类型和所述编码视频数据确定所述编码关键帧对应的编码同步帧的目标编码位置;其中,所述编码同步帧是指与所述编码关键帧最近的帧内参考编码帧;所述编码同步帧与所述编码关键帧的对应关系是指,所述编码同步帧和所述源同步帧分别对应了一帧从所述编码器输出的时刻和输入编码器的时刻;
根据所述编码同步帧的所述目标编码位置与所述源视频数据确定所述源关键帧对应的源同步帧的目标源位置;
根据所述目标编码位置对应的编码录制时刻与所述源同步帧的所述目标源位置对应的源录制时刻,确定所述编码器的编码延时时间。
2.如权利要求1所述确定编码延时的方法,其特征在于,所述获取所述编码器输出编码视频数据时每帧的编码录制时刻,包括:
针对所述编码器输出的每个用户数据报协议包,获取所述用户数据报协议包和所述用户数据报协议包的协议包录制时刻;
获得所述用户数据报协议包中包含的每个传输流包;
若所述传输流包中包含打包基本码流包头,则将所述协议包录制时刻确定为一帧的所述编码录制时刻。
3.如权利要求2所述确定编码延时的方法,其特征在于,所述获得所述用户数据报协议包中包含的每个传输流包之后,所述方法还包括:
根据节目关联表确定指定节目的节目映射表;
根据所述节目映射表确定所述指定节目的视频的视频传输流包编号。
4.如权利要求1所述确定编码延时的方法,其特征在于,所述编码器输出所述编码视频数据到解码器,在所述获取源视频数据在输入编码器时每帧的源录制时刻与所述编码器输出编码视频数据时每帧的编码录制时刻之后,所述方法还包括:
获取所述解码器输出解码视频数据时每帧的解码录制时刻;
在所述根据编码关键帧在编码录制序列中的第一位置、源关键帧在源录制序列中的第二位置,以及编码关键帧的类型和所述编码视频数据确定编码关键帧对应的编码同步帧的目标编码位置,和源关键帧对应的源同步帧的目标源位置之后,所述方法还包括:
根据所述目标编码位置和解码关键帧在解码录制序列中的第三位置确定解码关键帧对应的解码同步帧的目标解码位置;
根据所述目标解码位置对应的解码录制时刻与所述目标源位置对应的源录制时刻,确定由所述编码器和所述解码器组成的编解码链路的编解码总延时时间。
5.如权利要求4所述确定编码延时的方法,其特征在于,在所述根据所述目标编码位置和解码关键帧在解码录制序列中的第三位置确定解码关键帧对应的解码同步帧的目标解码位置之后,所述方法还包括:
根据所述目标解码位置对应的解码录制时刻与所述目标编码位置对应的所述编码录制时刻,确定所述解码器的解码延时时间。
6.如权利要求1所述确定编码延时的方法,其特征在于,所述根据所述编码关键帧在编码录制序列中的第一位置、所述源关键帧在所述源录制序列中的第二位置,以及所述编码关键帧的类型和所述编码视频数据确定所述编码关键帧对应的编码同步帧的目标编码位置,包括:
若确定所述编码关键帧的类型是帧内参考编码帧,则将所述第一位置确定为所述目标编码位置,所述第二位置确定为所述源同步帧的目标源位置;
若确定所述编码关键帧的类型不是帧内参考编码帧,则将与所述第一位置最接近的帧内参考编码帧的第四位置确定为所述目标编码位置;根据所述编码关键帧的当前时间戳与所述最接近的帧内参考编码帧的当前时间戳的差值、所述源同步帧的所述目标源位置、当前时间戳时钟周期和所述源视频数据的帧频确定所述目标源位置。
7.一种确定编码延时的装置,其特征在于,包括:
获取模块,用于获取源视频数据在输入编码器时每帧的源录制时刻与所述编码器输出编码视频数据时每帧的编码录制时刻;其中,所述源视频数据是指按照源录制序列进行录制的视频数据,所述源录制序列包括源关键帧和源同步帧;以及,
从所述编码视频数据中获取编码关键帧;其中,所述编码关键帧是指经过编码的视频中跟前一帧相比,场景发生明显变化的一帧;
第一确定模块,用于根据所述编码关键帧在编码录制序列中的第一位置、所述源关键帧在所述源录制序列中的第二位置,以及所述编码关键帧的类型和所述编码视频数据确定所述编码关键帧对应的编码同步帧的目标编码位置;其中,所述编码同步帧是指与所述编码关键帧最近的帧内参考编码帧;所述编码同步帧与所述编码关键帧的对应关系是指,所述编码同步帧和所述源同步帧分别对应了一帧从所述编码器输出的时刻和输入编码器的时刻;
第二确定模块,用于根据所述编码同步帧的所述目标编码位置与所述源视频数据确定所述源关键帧对应的源同步帧的目标源位置;以及
根据所述目标编码位置对应的编码录制时刻与所述源同步帧的所述目标源位置对应的源录制时刻,确定所述编码器的编码延时时间。
8.一种电子设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-6任一项所述确定编码延时的方法。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;所述计算机程序被处理器执行以实现如权利要求1-6任一项所述确定编码延时的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310729514.XA CN116489342B (zh) | 2023-06-20 | 2023-06-20 | 确定编码延时的方法、装置、及电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310729514.XA CN116489342B (zh) | 2023-06-20 | 2023-06-20 | 确定编码延时的方法、装置、及电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116489342A CN116489342A (zh) | 2023-07-25 |
CN116489342B true CN116489342B (zh) | 2023-09-15 |
Family
ID=87221692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310729514.XA Active CN116489342B (zh) | 2023-06-20 | 2023-06-20 | 确定编码延时的方法、装置、及电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116489342B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017177675A1 (zh) * | 2016-04-11 | 2017-10-19 | 华为技术有限公司 | 视频编码方法和装置 |
CN113141522A (zh) * | 2020-01-17 | 2021-07-20 | 北京达佳互联信息技术有限公司 | 资源传输方法、装置、计算机设备及存储介质 |
WO2022000350A1 (zh) * | 2020-06-30 | 2022-01-06 | 深圳市大疆创新科技有限公司 | 视频传输方法、可移动平台、终端设备、***及存储介质 |
WO2023010992A1 (zh) * | 2021-08-02 | 2023-02-09 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、计算机可读介质及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9192859B2 (en) * | 2002-12-10 | 2015-11-24 | Sony Computer Entertainment America Llc | System and method for compressing video based on latency measurements and other feedback |
-
2023
- 2023-06-20 CN CN202310729514.XA patent/CN116489342B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017177675A1 (zh) * | 2016-04-11 | 2017-10-19 | 华为技术有限公司 | 视频编码方法和装置 |
CN113141522A (zh) * | 2020-01-17 | 2021-07-20 | 北京达佳互联信息技术有限公司 | 资源传输方法、装置、计算机设备及存储介质 |
WO2022000350A1 (zh) * | 2020-06-30 | 2022-01-06 | 深圳市大疆创新科技有限公司 | 视频传输方法、可移动平台、终端设备、***及存储介质 |
WO2023010992A1 (zh) * | 2021-08-02 | 2023-02-09 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、计算机可读介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116489342A (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220078491A1 (en) | Transmitting method | |
KR101828639B1 (ko) | 멀티미디어 흐름을 동기화시키기 위한 방법 및 대응하는 장치 | |
CN110868600B (zh) | 目标跟踪视频推流方法、显示方法、装置和存储介质 | |
KR100972792B1 (ko) | 스테레오스코픽 영상을 동기화하는 장치 및 방법과 이를 이용한 스테레오스코픽 영상 제공 장치 및 방법 | |
US20100110199A1 (en) | Measuring Video Quality Using Partial Decoding | |
CN102037728B (zh) | 用于同步交互标记与流传输内容的设备和方法 | |
CN101828351B (zh) | 存储和读取具有媒体数据容器和元数据容器的文件的设备和方法 | |
KR20190029551A (ko) | Mmt 시스템을 위한 미디어 데이터 전송 장치 및 방법, 그리고 미디어 데이터 수신 장치 및 방법 | |
US20130336379A1 (en) | System and Methods for Encoding Live Multimedia Content with Synchronized Resampled Audio Data | |
KR20120084252A (ko) | 복수의 실시간 전송 스트림을 수신하는 수신 장치와 그 송신 장치 및 멀티미디어 컨텐츠 재생 방법 | |
KR20160099736A (ko) | 미디어 세그먼트 송수신 방법 및 그를 이용한 송수신 장치 | |
JP5720051B2 (ja) | デジタル・ストリーム内の遅延変動測定方法及び装置 | |
EP2429136A1 (en) | Method and apparatus for carrying transport stream | |
KR102171652B1 (ko) | 송신 장치, 송신 방법, 수신 장치 및 수신 방법 | |
CN112565224A (zh) | 一种视频处理方法及装置 | |
JP2018182677A (ja) | 情報処理装置、情報処理方法、プログラム、および記録媒体製造方法 | |
JP2010531087A (ja) | 一定のビットレートのストリームの伝送のためのシステム及び方法 | |
JP2007522696A (ja) | オーディオとビデオの提示を同期させる方法および装置 | |
JP6957186B2 (ja) | 情報処理装置、情報処理方法、プログラム、および記録媒体製造方法 | |
CN116489342B (zh) | 确定编码延时的方法、装置、及电子设备、存储介质 | |
KR20170083844A (ko) | 영상프레임의 손실을 측정하기 위한 iptv 셋탑박스 및 그 동작방법 | |
TWI762980B (zh) | 數位串流錯誤檢查方法與電路系統 | |
TWI713364B (zh) | 藉由現有hd視訊架構編碼原始高幀率視訊的方法 | |
EP2150066A1 (en) | Procedure for measuring the change channel time on digital television | |
JPWO2018066385A1 (ja) | 情報処理装置、情報処理方法、およびプログラム |
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 |