流媒体协议变换过程中的延时判断方法、设备、存储介质与流程

文档序号:33628537发布日期:2023-03-28 22:04阅读:45来源:国知局
流媒体协议变换过程中的延时判断方法、设备、存储介质与流程

1.本技术涉及视音频制作技术领域,尤其涉及一种流媒体协议变换过程中的延时判断方法、设备、存储介质。


背景技术:

2.目前广播电视台融合媒体直播中,常常需要合理应对互联网信号传输和台内专网制作传输,因此往往需要两种不同的视频压缩编码结合,如互联网采用srt(secure reliable transport,安全可靠传输协议),内网采用ndi(network device interface,局域网络设备接口协议)进行统一调度处理。
3.通常在进行流媒体处理时涉及到srt到ndi的转换(可能包含转码、加logo、调整曝光、调整色调等操作以及这些操作的叠加),在此过程中不可避免地会出现延时的情况,为了保持不同信号之间的同步,需要知道转换过程中的产生的延迟帧数。


技术实现要素:

4.为了解决上述技术缺陷之一,本技术提供了一种流媒体协议变换过程中的延时判断方法、设备、存储介质。
5.本技术第一个方面,提供了一种流媒体协议变换过程中的延时判断方法,方法包括:
6.获取安全可靠传输协议srt流媒体数据;
7.将srt流媒体数据转换为局域网络设备接口协议ndi流媒体数据;
8.根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时。
9.可选地,将srt流媒体数据转换为局域网络设备接口协议ndi流媒体数据,包括:
10.对srt流媒体数据进行解码,获得视音频裸数据,视音频裸数据中包括yuv模式的视频数据和脉冲编码调制pcm的音频数据;
11.采用ndi-hx协议对视音频裸数据进行重新编码,得到ndi流媒体数据。
12.可选地,根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时,包括:
13.对srt流媒体数据进行i帧标定,得到第一序列;
14.对ndi流媒体数据进行i帧标定,得到第二序列;
15.根据第一序列和第二序列判断流媒体协议变换过程中的延时。
16.可选地,对srt流媒体数据进行i帧标定,包括:
17.以srt流媒体数据中的第一个完整的gop组的i帧为标定起始帧i0;
18.确定后续所有i帧至i0之间的帧数据量;
19.按i帧之间的位置关系形成第一序列[a1,a2,

,an],其中,n为后续i帧标识,an为第n个后续i帧至i0之间的帧数据量。
[0020]
可选地,对ndi流媒体数据进行i帧标定,包括:
[0021]
以ndi流媒体数据中的第一个完整的gop组的i帧为标定起始帧i
′0;
[0022]
确定后续预设时长内的所有i帧至i
′0之间的帧数据量;
[0023]
按i帧之间的位置关系形成第二序列[a1,a2,

,am],其中,m为后续预设时长内i帧标识,am为后续预设时长内第m个i帧至i
′0之间的帧数据量。
[0024]
可选地,根据第一序列和第二序列判断流媒体协议变换过程中的延时,包括:
[0025]
获取预设的比较数量q;
[0026]
设置比较初始值q=1;
[0027]
根据第一序列、第二序列和q,确定第q个位置偏差;
[0028]
如果q《q,则q=q+1后,重新执行根据第一序列、第二序列和q,确定第q个位置偏差的步骤;
[0029]
如果q=q,则根据各位置偏差判断流媒体协议变换过程中的延时。
[0030]
可选地,根据第一序列、第二序列和q,确定第q个位置偏差,包括:
[0031]
第q个位置偏差
[0032]
可选地,根据各位置偏差判断流媒体协议变换过程中的延时,包括:
[0033]
确定各位置偏差中0的数量;
[0034]
将0的数量最多的位置偏差对应的q确定为流媒体协议变换过程中的延时。
[0035]
本技术第二个方面,提供了一种电子设备,包括:
[0036]
存储器;
[0037]
处理器;以及
[0038]
计算机程序;
[0039]
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如上述第一个方面所述的方法。
[0040]
本技术第三个方面,提供了一种计算机可读存储介质,其上存储有计算机程序;所述计算机程序被处理器执行以实现如上述第一个方面所述的方法。
[0041]
本技术提供一种流媒体协议变换过程中的延时判断方法、设备、存储介质,该方法包括:获取srt流媒体数据;将srt流媒体数据转换为ndi流媒体数据;根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时。本技术先将srt流媒体数据转换为ndi流媒体数据,再根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时,实现了srt-ndi流媒体协议变换过程中无需解码直接判断延迟帧数的快速判断。
附图说明
[0042]
此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
[0043]
图1为本技术实施例提供的一种流媒体协议变换过程中的延时判断方法的流程示意图;
[0044]
图2为本技术实施例提供的一种srt流媒体数据的i帧分布的示意图;
[0045]
图3为本技术实施例提供的一种srt流与ndi流中的i帧分布以及gop变化的示意图;
[0046]
图4为本技术实施例提供的一种srt流转为ndi流后的帧延时的示意图;
[0047]
图5为本技术实施例提供的一种srt流中的起始i帧标定的示意图;
[0048]
图6为本技术实施例提供的一种ndi流中的起始i帧标定的示意图;
[0049]
图7为本技术实施例提供的一种srt流媒体数据的i帧分布示意图。
具体实施方式
[0050]
为了使本技术实施例中的技术方案及优点更加清楚明白,以下结合附图对本技术的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本技术的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
[0051]
在实现本技术的过程中,发明人发现,通常在进行流媒体处理时涉及到srt到ndi的转换,在此过程中不可避免地会出现延时的情况,为了保持不同信号之间的同步,需要知道转换过程中的产生的延迟帧数。
[0052]
针对上述问题,本技术实施例中提供了一种流媒体协议变换过程中的延时判断方法、设备、存储介质,该方法包括:获取srt流媒体数据;将srt流媒体数据转换为ndi流媒体数据;根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时。本技术先将srt流媒体数据转换为ndi流媒体数据,再根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时,实现了srt-ndi流媒体协议变换过程中无需解码直接判断延迟帧数的快速判断。
[0053]
参见图1,本实施例提供的流媒体协议变换过程中的延时判断方法的实现流程如下:
[0054]
101,获取srt流媒体数据。
[0055]
srt(secure reliable transport,安全可靠传输协议)流媒体数据是采用h.264编码的srt媒体流数据,其生成过程会基于srt协议对媒体数据进行封装,获得压缩的h.264编码的媒体数据,该数据即为srt流媒体数据。本步骤会获取srt流媒体数据。
[0056]
102,将srt流媒体数据转换为ndi流媒体数据。
[0057]
实现时,先对srt流媒体数据进行解码,获得视音频裸数据,视音频裸数据中包括yuv模式的视频数据和脉冲编码调制pcm(pulse code modulation,脉冲编码调制)的音频数据。再采用ndi-hx协议对视音频裸数据进行重新编码,得到ndi(network device interface,局域网络设备接口协议)流媒体数据。
[0058]
其中,yuv模式是一种色彩编码模式,y表示亮度(luminance)也就是灰度值,uv分别表示色度(chrominance)和浓度(chroma),作用是描述图像色彩和饱和度,用于指定像素的颜色。
[0059]
ndi-hx协议是ndi的低带宽版本,是一种压缩版的长gop h.264变体,优点是低带宽要求,允许简单千兆网络承载多个视频流,而不会占用大量网络流量。
[0060]
步骤102中,会对srt流媒体数据进行解码,获得视音频裸数据(视频流压缩编码数据还原成yuv图像数据、音频流压缩编码数据为pcm音频数据)。对视频流压缩编码数据还原
成yuv图像数据、音频流压缩编码数据为pcm音频数据进行ndi-hx的重新编码,其中ndi-hx同样采用h.264,之后采用ndi sdk对编码数据进行协议封装,完成srt到ndi的流媒体协议转换。
[0061]
103,根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时。
[0062]
执行完成步骤102则完成了srt到ndi的流媒体协议转换。在srt传输的流媒体数据中,根据h.264的编码规则,包括i帧、p帧、b帧,其中i帧为关键帧,在h.264中会对i帧进行帧内压缩处理,p帧、b帧是帧间预测数据。在一段视频流中包括数个转场片段,其中由于编码器特性,转场帧(每个转场片段的第一帧)由于画面变化剧烈,往往编码为i帧,同时每个转场中包括数个gop(group of pictures),每个gop长度不定,gop的范围普遍取在1s到数十秒之间,每个gop的首帧同样为i帧,需要注意i帧不一定是转场帧,转场帧往往为i帧。srt流媒体数据的i帧分布示意图如图2所示。
[0063]
在进行ndi协议转换后,仍包括与原srt媒体流数据中同样数量的转场片段,且转场片段的帧长度和转场帧的数量也与原srt媒体流数据中的相同。由于媒体流数据经过了解码和再编码,gop的长度经过了新的定义,造成gop的i帧数量与之前的不同,但由于协议转换后转场片段仍相同,所以转场i帧数量仍一致,如图3所示,其中定义srt流中转场帧为ndi流中的转场帧为
[0064]
实际应用时,如图4所示,在进行srt到ndi协议转换后会产生一定延时,通过对i帧的标定以计算srt到ndi转换后的延时。
[0065]
因此,步骤103会根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时
[0066]
具体的,
[0067]
1、对srt流媒体数据进行i帧标定,得到第一序列。
[0068]
具体实现时,
[0069]
1)以srt流媒体数据中的第一个完整的gop组的i帧为标定起始帧i0。
[0070]
2)确定后续所有i帧至i0之间的帧数据量。
[0071]
例如,i0后第n个i帧至i0之间的帧数据量为an。
[0072]
3)按i帧之间的位置关系形成第一序列[a1,a2,

,an]。
[0073]
其中,n为后续i帧标识,an为第n个后续i帧至i0之间的帧数据量。
[0074]
在得到第一序列过程中,会对srt的编码数据进行i帧标定,以srt流中的第一个完整的gop组的i帧为标定起始帧i0,如图5所示。srt流中的所有帧按整数序列排布,定义a为i帧到i0之间的帧数量,以此得到srt的编码数据中i帧之间的位置关系描述,即第一序列[a1,a2,

,an]。
[0075]
2、对ndi流媒体数据进行i帧标定,得到第二序列。
[0076]
具体实现时,
[0077]
1)以ndi流媒体数据中的第一个完整的gop组的i帧为标定起始帧i
′0。
[0078]
2)确定后续预设时长(如1分钟)内的所有i帧至i
′0之间的帧数据量。
[0079]
例如,i
′0后一分钟内第m个i帧至i
′0之间的帧数据量为am。
[0080]
3)按i帧之间的位置关系形成第二序列[a1,a2,

,am],其中,m为后续预设时长内i
帧标识,am为后续预设时长内第m个i帧至i
′0之间的帧数据量。
[0081]
在得到第二序列过程中,对ndi的编码数据进行i帧标定,以转换后的ndi流中第一个完整的gop组的i帧为标定起始帧i
′0,如图6所示。后续限定时间内(如1分钟)所有帧按整数序列排布,定义a为i帧至i
′0之间的帧数量,以此得到ndi的编码数据中i帧之间的位置关系描述,即第二序列[a1,a2,

,am]。
[0082]
3、根据第一序列和第二序列判断流媒体协议变换过程中的延时。
[0083]
具体实现时,
[0084]
1)获取预设的比较数量q。
[0085]
例如q=100。
[0086]
2)设置比较初始值q=1。
[0087]
其中,q即为计数作用,保证了后续比较q次。
[0088]
3)根据第一序列、第二序列和q,确定第q个位置偏差。
[0089]
其中,第q个位置偏差
[0090]
以q=100为例,q=1时,
[0091]
q=2时,
[0092]

[0093]
q=100时,
[0094]
4)如果q《q,则q=q+1后,重新执行根据第一序列、第二序列和q,确定第q个位置偏差的步骤。
[0095]
如果q《q,说明比较次数不足q次,需要继续比较,因此计数值自加一,然后重新执行3)。循环执行3)直至比较次数达到q次,即直至q=q。
[0096]
5)如果q=q,则根据各位置偏差判断流媒体协议变换过程中的延时。
[0097]
如果q=q则说明比较次数达到q次,可以进行延时判断。
[0098]
判断时,会确定各位置偏差中0的数量。将0的数量最多的位置偏差对应的q确定为流媒体协议变换过程中的延时。
[0099]
以q=100为例,在判断时用r来记录矩阵z1~z
100
中每个矩阵含0的数量,得到[r1,
r2,

,r
100
],取r1,r2,

,r
100
中的最大值,最大值对应r的下标系数即为最可能的延迟帧数,也就是流媒体协议变换过程中的延时(因转场i帧数量相同,此时为最多i帧重合时的值)。
[0100]
另外,在具体实现时,还可以随着视频进度继续,持续更新上述第一序列和第二序列队列,并通过步骤103得到延时,如果连续一定时间内延时稳定,则整个系统锁定该延时。
[0101]
本实施例提供的方法,其实现过程如图7所示,针对采用h.264(gop》1)编码的srt协议的流媒体数据,先将srt流媒体数据转换为ndi流媒体数据,再根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时,实现了srt-ndi流媒体协议变换过程中无需解码直接判断延迟帧数的快速判断。
[0102]
本实施例提供一种流媒体协议变换过程中的延时判断方法,获取srt流媒体数据;将srt流媒体数据转换为ndi流媒体数据;根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时,实现了srt-ndi流媒体协议变换过程中无需解码直接判断延迟帧数的快速判断。
[0103]
基于流媒体协议变换过程中的延时判断方法的同一发明构思,本实施例提供一种电子设备,该电子设备包括:存储器,处理器,以及计算机程序。
[0104]
其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现上述流媒体协议变换过程中的延时判断方法。
[0105]
具体的,
[0106]
获取安全可靠传输协议srt流媒体数据。
[0107]
将srt流媒体数据转换为局域网络设备接口协议ndi流媒体数据。
[0108]
根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时。
[0109]
可选地,将srt流媒体数据转换为局域网络设备接口协议ndi流媒体数据,包括:
[0110]
对srt流媒体数据进行解码,获得视音频裸数据,视音频裸数据中包括yuv模式的视频数据和脉冲编码调制pcm的音频数据。
[0111]
采用ndi-hx协议对视音频裸数据进行重新编码,得到ndi流媒体数据。
[0112]
可选地,根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时,包括:
[0113]
对srt流媒体数据进行i帧标定,得到第一序列。
[0114]
对ndi流媒体数据进行i帧标定,得到第二序列。
[0115]
根据第一序列和第二序列判断流媒体协议变换过程中的延时。
[0116]
可选地,对srt流媒体数据进行i帧标定,包括:
[0117]
以srt流媒体数据中的第一个完整的gop组的i帧为标定起始帧i0。
[0118]
确定后续所有i帧至i0之间的帧数据量。
[0119]
按i帧之间的位置关系形成第一序列[a1,a2,

,an],其中,n为后续i帧标识,an为第n个后续i帧至i0之间的帧数据量。
[0120]
可选地,对ndi流媒体数据进行i帧标定,包括:
[0121]
以ndi流媒体数据中的第一个完整的gop组的i帧为标定起始帧i
′0。
[0122]
确定后续预设时长内的所有i帧至i
′0之间的帧数据量。
[0123]
按i帧之间的位置关系形成第二序列[a1,a2,

,am],其中,m为后续预设时长内i帧标识,am为后续预设时长内第m个i帧至i
′0之间的帧数据量。
[0124]
可选地,根据第一序列和第二序列判断流媒体协议变换过程中的延时,包括:
[0125]
获取预设的比较数量q。
[0126]
设置比较初始值q=1。
[0127]
根据第一序列、第二序列和q,确定第q个位置偏差。
[0128]
如果q《q,则q=q+1后,重新执行根据第一序列、第二序列和q,确定第q个位置偏差的步骤。
[0129]
如果q=q,则根据各位置偏差判断流媒体协议变换过程中的延时。
[0130]
可选地,根据第一序列、第二序列和q,确定第q个位置偏差,包括:
[0131]
第q个位置偏差
[0132]
可选地,根据各位置偏差判断流媒体协议变换过程中的延时,包括:
[0133]
确定各位置偏差中0的数量。
[0134]
将0的数量最多的位置偏差对应的q确定为流媒体协议变换过程中的延时。
[0135]
本实施例提供的电子设备,其上计算机程序被处理器执行以先将srt流媒体数据转换为ndi流媒体数据,再根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时,实现了srt-ndi流媒体协议变换过程中无需解码直接判断延迟帧数的快速判断。
[0136]
基于流媒体协议变换过程中的延时判断方法的同一发明构思,本实施例提供一种计算机,且其上存储有计算机程序。计算机程序被处理器执行以实现上述流媒体协议变换过程中的延时判断方法。
[0137]
具体的,
[0138]
获取安全可靠传输协议srt流媒体数据。
[0139]
将srt流媒体数据转换为局域网络设备接口协议ndi流媒体数据。
[0140]
根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时。
[0141]
可选地,将srt流媒体数据转换为局域网络设备接口协议ndi流媒体数据,包括:
[0142]
对srt流媒体数据进行解码,获得视音频裸数据,视音频裸数据中包括yuv模式的视频数据和脉冲编码调制pcm的音频数据。
[0143]
采用ndi-hx协议对视音频裸数据进行重新编码,得到ndi流媒体数据。
[0144]
可选地,根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时,包括:
[0145]
对srt流媒体数据进行i帧标定,得到第一序列。
[0146]
对ndi流媒体数据进行i帧标定,得到第二序列。
[0147]
根据第一序列和第二序列判断流媒体协议变换过程中的延时。
[0148]
可选地,对srt流媒体数据进行i帧标定,包括:
[0149]
以srt流媒体数据中的第一个完整的gop组的i帧为标定起始帧i0。
[0150]
确定后续所有i帧至i0之间的帧数据量。
[0151]
按i帧之间的位置关系形成第一序列[q1,q2,

,an],其中,n为后续i帧标识,an为
第n个后续i帧至i0之间的帧数据量。
[0152]
可选地,对ndi流媒体数据进行i帧标定,包括:
[0153]
以ndi流媒体数据中的第一个完整的gop组的i帧为标定起始帧i
′0。
[0154]
确定后续预设时长内的所有i帧至i
′0之间的帧数据量。
[0155]
按i帧之间的位置关系形成第二序列[a1,a2,

,am],其中,m为后续预设时长内i帧标识,am为后续预设时长内第m个i帧至i
′0之间的帧数据量。
[0156]
可选地,根据第一序列和第二序列判断流媒体协议变换过程中的延时,包括:
[0157]
获取预设的比较数量q。
[0158]
设置比较初始值q=1。
[0159]
根据第一序列、第二序列和q,确定第q个位置偏差。
[0160]
如果q《q,则q=q+1后,重新执行根据第一序列、第二序列和q,确定第q个位置偏差的步骤。
[0161]
如果q=q,则根据各位置偏差判断流媒体协议变换过程中的延时。
[0162]
可选地,根据第一序列、第二序列和q,确定第q个位置偏差,包括:
[0163]
第q个位置偏差
[0164]
可选地,根据各位置偏差判断流媒体协议变换过程中的延时,包括:
[0165]
确定各位置偏差中0的数量。
[0166]
将0的数量最多的位置偏差对应的q确定为流媒体协议变换过程中的延时。
[0167]
本实施例提供的计算机可读存储介质,其上的计算机程序被处理器执行以先将srt流媒体数据转换为ndi流媒体数据,再根据srt流媒体数据和ndi流媒体数据中i帧判断流媒体协议变换过程中的延时,实现了srt-ndi流媒体协议变换过程中无需解码直接判断延迟帧数的快速判断。
[0168]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本技术实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言java和直译式脚本语言javascript等。
[0169]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0170]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0171]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0172]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0173]
尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
[0174]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1