IP视音频码流切换方法和装置、设备及存储介质与流程

文档序号:20918461发布日期:2020-05-29 13:50阅读:457来源:国知局
IP视音频码流切换方法和装置、设备及存储介质与流程

本公开涉及广播电视领域,尤其涉及一种ip视音频码流切换方法和装置、设备及存储介质。



背景技术:

传统的广播电视前端,使用串行数字接口(sdi)进行视音频节目未压缩信号的传送,或者使用异步串行接口(asi)进行视音频节目压缩信号的传送。对sdi信号进行调度和切换需要使用sdi矩阵,对asi信号进行调度和切换需要使用asi矩阵。

随着互联网的迅速发展,iptv和互联网电视迅速普及,广播电视、iptv以及互联网电视前端系统迅速全ip化。原来所有的sdi信号、asi信号都被转换为ip信号进行传输和调度。前端ip化有很多优点:更大的带宽、更灵活的布线和路由、更加方便的信号控制与调度。

ip化之后,需要有功能与sdi/asi矩阵对应的设备,实现主、备信号切换,以及节目调度等功能。现有的设备,利用网络交换机的基本功能,在网络传输层直接对数据包进行替换,虽然可以实现基本的切换功能,但是无法实现平滑的节目切换(无缝切换),导致切换过程中出现视音频卡顿、马赛克。



技术实现要素:

有鉴于此,本公开提出了一种ip视音频码流切换方法,包括:

获取待切换的ip码流;其中,所述ip码流至少两路;

对所述ip码流进行视音频分析,基于视音频分析结果得到所述ip码流的分割点;

根据得到的所述分割点对所述ip码流分割得到数据块;

在接收到读取指令时,根据所述读取指令中指定的目标数据源,由所述目标数据源中读取目标ip码流;其中,所述目标数据源为对所述ip码流进行分割得到的数据块中的至少一个;

对所述目标ip码流中的所述数据块进行平滑处理,并输出平滑处理后的数据。

在一种可能的实现方式中,还包括:

对每一路所述ip码流进行健康度分析得到分析结果。

在一种可能的实现方式中,对所述ip码流进行视音频分析,基于视音频分析结果得到所述ip码流的分割点包括:

若所述ip码流中含有视频数据,则将所述视频数据的起始点作为分割点;

若所述ip码流中含有音频数据,则将所述音频数据的起始点作为分割点;

若所述ip码流中不含有音频数据或视频数据,则以设定间隔作为分割点。

在一种可能的实现方式中,将所述数据块进行平滑处理包括:

pmtpid重新映射、视频pid重新映射、音频pid重新映射、pcrpid重新映射、serviceid重新映射、pcr时间基准校正、pts时间基准校正、dts时间基准校正和连续计数校正中的至少一种。

在一种可能的实现方式中,所述健康度分析包括:

依据分析项目进行得分统计;

所述得分统计高的ip码流的健康度为高。

在一种可能的实现方式中,所述分析项目包括:

判断所述ip码流是否在预设时间内到达、码流同步头0x47检测、pat检测、pid检测、pmt检测、空包率检测和连续计数检测中的至少一种。

在一种可能的实现方式中,所述设定间隔的范围为:1秒—8秒。

根据本公开的一方面,提供了一种ip视音频码流切换装置,其特征在于,包括ip码流获取模块、分割点设置模块、数据块分割模块、指令接收模块和平滑处理模块;

所述ip码流获取模块,被配置为获取待切换的ip码流;其中,所述ip码流至少两路;

所述分割点设置模块,被配置为对所述ip码流进行视音频分析,基于视音频分析结果得到所述ip码流的分割点;

所述数据块分割模块,被配置为根据得到的所述分割点对所述ip码流分割得到数据块;

所述指令接收模块,被配置为在接收到读取指令时,根据所述读取指令中指定的目标数据源,由所述目标数据源中读取目标ip码流;其中,所述目标数据源为对所述ip码流进行分割得到的数据块中的至少一个;

所述平滑处理模块,被配置为对所述目标ip码流中的所述数据块进行平滑处理,并输出平滑处理后的数据。

根据本公开的另一方面,提供了一种ip视音频码流切换设备,其特征在于,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述可执行指令时实现前面任一所述的方法。

根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现前面任一所述的方法。

通过获取至少两路ip码流,分析ip码流数据得到其中每一路的ip码流的分割点,再以分割点将对应的ip码流分割得到数据块,接着在接收到读取指令时,根据读取指令中指定的目标数据源,由目标数据源中读取目标ip码流,其中,目标ip码流可以是手动设定,也可以根据健康度自动切换,对目标ip码流中的数据块进行平滑处理并输出平滑处理后的数据,可以实现视音频ip码流的平滑切换(无缝切换),码流切换过程对下游设备和终端设备透明,可以对码流健康度进行实时分析,并且根据分析结果自动切换到最优码流进行输出。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1示出本公开实施例的ip视音频码流切换方法的流程图;

图2示出本公开实施例的ip视音频码流切换方法的总流程图;

图3示出本公开实施例的ip视音频码流切换方法的原理图;

图4示出本公开实施例的ip视音频码流切换方法的示意图;

图5示出本公开实施例的ip视音频码流切换方法的另一示意图;

图6示出本公开实施例的ip视音频码流装置的框图;

图7示出本公开实施例的ip视音频码流设备的框图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

图1示出根据本公开一实施例的ip视音频码流切换方法的流程图。如图1所示,该ip视音频码流切换方法包括:

步骤s100,获取待切换的ip码流;其中,ip码流至少两路;

步骤s200,对ip码流进行视音频分析,基于视音频分析结果得到ip码流的分割点;

步骤s300,根据得到的分割点对ip码流分割得到数据块;

步骤s400,在接收到读取指令时,根据读取指令中指定的目标数据源,由目标数据源中读取目标ip码流;其中,目标数据源为对ip码流进行分割得到的数据块中的至少一个;

步骤s500,对目标ip码流中的数据块进行平滑处理,并输出平滑处理后的数据。

通过获取至少两路ip码流,分析ip码流数据得到其中每一路的ip码流的分割点,再以分割点将对应的ip码流分割得到数据块,接着在接收到读取指令时,根据读取指令中指定的目标数据源,由目标数据源中读取目标ip码流,其中,目标ip码流可以是手动设定,也可以根据健康度自动切换,对目标ip码流中的数据块进行平滑处理并输出平滑处理后的数据,可以实现视音频ip码流的平滑切换(无缝切换),码流切换过程对下游设备和终端设备透明,可以对码流健康度进行实时分析,并且根据分析结果自动切换到最优码流进行输出。

具体的,参见图1,执行步骤s100,获取待切换的ip码流;其中,ip码流至少两路。

在一种可能的实现方式中,参见图2,执行步骤ds1,通过以太网进行连接,传输协议采用udp,码流封装格式采用标准ts流,每个udp包中包含7个ts包。ip码流输入端至少两路,例如:参见图3和图4,图3为ip码流切换的原理图,即表示可多路输入、多路输出,ip码流输入端包括工程接收机、视频转码器、视频编码器、流媒体服务器和播出服务器。

进一步的,参见图1,执行步骤s200,对ip码流进行视音频分析,基于视音频分析结果得到ip码流的分割点。

在一种可能的实现方式中,首先检测码流是否含有视频数据,如果包含视频数据,则在码流数据中持续不断检测视频gop(groupofpicture)的起始点,将检测到的起始点作为分割点,不再进行其他分析,再进行检测码流是否含有音频数据,如果包含有音频信息,则在码流数据中持续不断检测音频帧的起始点,将检测到的起始点作为分割点,不再进行其他分析,若检测到不含有视频数据,也不含有音频数据的码流,定义为私有数据,则按固定时间间隔作为分割点,间隔时长的范围为1秒—8秒,例如:从流媒体服务器中接收第一路ip码流,从播出服务器中接收第二路ip码流,从视频编码器接收第三路ip码流,在第一路码流中检测接收到视频数据,则在接收的码流数据中不断检测视频数据的起始点,将检测到的所有视频起始点作为第一路ip码流的分割点,在第二路ip码流中检测到包含音频数据,则在接受的码流数据中不断检测音频数据的起始点,将检测到的音频起始点作为第二路ip码流数据的分割点,在第三路ip码流中检测到没有视频数据也没有音频数据,则在本实例中以2秒为间隔进行分割的,在对三路ip码流数据的分割点确定完毕后,即得到每一路ip码流的分割点。

需要指出的是,参见图2和图5,在接收到ip码流并对其进行分割成数据块的同时,还将接收到的ip码流进行健康度分析,即执行步骤ds6,其中,健康度分析包括将每一路ip码流进行健康度分析得到分析结果,依据分析结果选择一路ip码流作为目标ip码流。其中,健康度分析包括:依据分析项目进行得分统计,得分统计高的ip码流的健康度为高。其中,分析项目包括:判断ip码流是否在预设时间内到达,码流同步头0x47检测,连续计数检测和tr101-290指标检测。判断码流在预设时间内到达的对应分值为64,码流同步头0x47检测对应分值为32,连续计数检测对应分值为16,tr101-290指标检测对应分值为8,如果某个检测项不合格,则减去对应的分值,假定健康度满分为0,得分越少的码流,健康度越差。

进一步的,参见图1,即可执行步骤s300,根据得到的分割点对ip码流分割得到数据块。

在一种可能的实现方式中,参见图2,可执行步骤ds2,以得到的分割点为依据,在每一路ip码流中将相邻的分割点间的数据进行分割,即每一路ip码流中相邻的分割点间的数据作为一个数据块,参见图2和图5,执行步骤ds3,并将数据块储存到先入先出缓冲中,即为fifo缓冲,例如:将第一路ip码流数据依据对应的分割点进行分割完成后,得到多个数据块,将所有数据块存入第一个fifo,第二路ip码流数据依据对应的分割点进行分割后,得到多个数据块,则将所有数据块存入第二个fifo。

需要说明的是,每个先入先出缓冲(即fifo)与一个输入端对应,用于存储码流数据,码流数据均以块为单位进行存储和读取,每个缓冲可以存储n个数据块,n≥2;每个缓冲只有一个写者(即对应的输入端),每个缓冲可以有0个、1个或者多个读者(输出端),采用读写锁对数据块内容进行同步保护,具体地,写者先获取数据块的写锁,然后再写入数据,在写入的同时,读操作被禁止,读者先获取数据块的读锁,然后再读取数据,在读取的同时,写操作被禁止,但是多个读者可以同时获得一个数据块的读锁,并同时读取其数据。

进一步的,即可执行步骤s400,在接收到读取指令时,根据读取指令中指定的目标数据源,由目标数据源中读取目标ip码流;其中,目标数据源为对ip码流进行分割得到的数据块中的至少一个。

在一种可能的实现方式中,参见图2,首先获取指令信息,其中,指令信息包括目标数据源的地址,分为自动模式cs1和手动模式cs2,若选择了自动模式cs1,则执行cs3,对当前路ip码流进行健康度分析,其在预设时间内到达,即获得64分,码流同步头0x47检测合格,即获得32分,连续计数检测合格,即获得16分,其他的tr101-290指标检测合格,即获得8分,将得分相加,总得分为120分,在另一路中未按时间到达,则判定为未锁定状态,码流同步头0x47检测合格,即获得32分,连续计数检测合格,即获得16分,其他的tr101-290指标检测合格,即获得8分,总得分为56分,(其中,其他tr101-290指标检测包括pat检测、pid检测、pmt检测和空包率检测)则选择总分为120分的ip码流的数据块作为数据源,即执行不进行码流切换cs5。若为手动模式,则以设定的fifo作为目标数据源,从中读取数据块。

对应的,控制模块有两种工作模式,一种是自动切换模式,一种是手动切换模式;自动模式下,对于每一个输出模块,预先设定s个输入码流作为其备选数据源:第一个为主数据源,第二个为备份数据源1,第三个为备选数据源2,s≥2,控制模块通知输出模块取健康度分析得分最高的码流作为数据源,从对应的先入先出缓冲获取数据块,具体过程是,控制模块从健康度分析模块实时获取每个码流的健康度得分,按从高到低的顺序对备选数据源进行排序,如果多个码流健康度得分相同,则按如下优先顺序选择输入码流:主数据源、备份数据源1、备份数据源2,如果当前数据源就是第一备选数据源,则不需要通知输出模块,如果当前数据源不是第一备选数据源,则通知输出模块,需要切换到新的数据源进行输出,输出模块收到通知后,在完成当前数据块的所有数据输出后,下一个数据块将从新的数据源读取,在手动切换模式下,每个码流的健康度得分被提供给用户,由用户人工干预确定是否进行码流切换,以及切换到哪个码流;在手动切换模式下,用户也可以根据其他外部信息,比如节目编排信息,手动切换到需要的码流,实现节目内容调度。

进一步的,即可执行步骤s500,对目标ip码流中的数据块进行平滑处理,并输出平滑处理后的数据。

在一种可能的实现方式中,参见图2,可执行步骤ds4,其中,平滑处理包括:pmtpid重新映射,视频pid重新映射,音频pid重新映射,pcrpid重新映射,serviceid重新映射,pcr时间基准校正,pts时间基准校正,dts时间基准校正,连续计数校正。其中,pid重新映射,是指如果码流切换后的pid与切换前的pid不相同,则修改切换后码流中的pid数据,以及对应的psi信息表,使得pid与切换前的pid相同,serviceid重新映射,是指如果码流切换后的serviceid与切换前的serviceid不同,则修改切换后码流中的pat、pmt和sdt表,使得serviceid与切换前的serviceid相同,时间基准校正,是指计算切换后的第一个时间戳与假设未发生切换的情况下对应的时间戳之差作为校正偏移,之后所有时间戳都减去该校正偏移,连续计数校正,是指码流切换前,记录每个pid的最后一个连续计数,码流切换后,在所记录的连续计数基础上,每个ts包依次加1。每个输出端输出一路ip码流,输出端接收控制模块的指令,选择指定的输入端对应的先入先出缓冲作为数据源,从先入先出缓冲中以块为单位读取数据,通过平滑处理后,即可执行步骤ds5,输出到用户指定的ip地址和端口。例如:在输出ip码流时,选择一个fifo作为目标ip码流从中读取ip码流的数据块,对每个数据块进行平滑处理操作,即进行pmtpid重新映射,视频pid重新映射,音频pid重新映射,pcrpid重新映射,serviceid重新映射,pcr时间基准校正,pts时间基准校正,dts时间基准校正,连续计数校正。待平滑处理完成后,即可输出ip码流数据。

需要说明的是,尽管以上述步骤作为示例介绍了ip视音频码流切换方法如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定ip视音频码流切换方法,只要达到所需功能即可。

这样,通过获取至少两路ip码流,分析ip码流数据得到其中每一路的ip码流的分割点,再以分割点将对应的ip码流分割得到数据块,接着在接收到读取指令时,根据读取指令中指定的目标数据源,由目标数据源中读取目标ip码流,其中,目标ip码流可以是手动设定,也可以根据健康度自动切换,对目标ip码流中的数据块进行平滑处理并输出平滑处理后的数据,可以实现视音频ip码流的平滑切换(无缝切换),码流切换过程对下游设备和终端设备透明,可以对码流健康度进行实时分析,并且根据分析结果自动切换到最优码流进行输出。

进一步的,根据本公开的另一方面,还提供了一种ip视音频码流切换装置100。由于本公开实施例的ip视音频码流切换100的工作原理与本公开实施例的ip视音频码流切换方法的原理相同或相似,因此重复之处不再赘述。参见图6,本公开实施例的ip视音频码流切换装置100包括ip码流获取模块110、分割点设置模块120、数据块分割模块130、指令接收模块140和平滑处理模块150。

ip码流获取模块110,被配置为获取待切换的ip码流;其中,ip码流至少两路;

分割点设置模块120,被配置为对ip码流进行视音频分析,基于视音频分析结果得到ip码流的分割点设置每一路ip码流的分割点;

数据块分割模块130,被配置为根据得到的分割点对ip码流分割得到数据块;

指令接收模块140,被配置为在接收到读取指令时,根据读取指令中指定的目标数据源,由目标数据源中读取目标ip码流;其中,目标数据源为对ip码流进行分割得到的数据块中的至少一个;

平滑处理模块150,被配置为对目标ip码流中的数据块进行平滑处理,并输出平滑处理后的数据。

更进一步地,根据本公开的另一方面,还提供了一种ip视音频码流切换设备200。参阅图7,本公开实施例ip视音频码流切换设备200包括处理器210以及用于存储处理器210可执行指令的存储器220。其中,处理器210被配置为执行可执行指令时实现前面任一的ip视音频码流切换方法。

此处,应当指出的是,处理器210的个数可以为一个或多个。同时,在本公开实施例的ip视音频码流切换设备200中,还可以包括输入装置230和输出装置240。其中,处理器210、存储器220、输入装置230和输出装置240之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。

存储器220作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本公开实施例的ip视音频码流切换方法所对应的程序或模块。处理器210通过运行存储在存储器220中的软件程序或模块,从而执行ip视音频码流切换设备200的各种功能应用及数据处理。

输入装置230可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器的用户设置以及功能控制有关的键信号。输出装置240可以包括显示屏等显示设备。

根据本公开的另一方面,还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器210执行时实现前面任一的ip视音频码流切换方法。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1