一种动态切换视频流的直播转码方法及系统

文档序号:1548184 发布日期:2020-01-17 浏览:18次 >En<

阅读说明:本技术 一种动态切换视频流的直播转码方法及系统 (Live transcoding method and system for dynamically switching video streams ) 是由 唐杰 刘冰 王喆 于 2019-10-21 设计创作,主要内容包括:本发明公开了一种动态切换视频流的直播转码方法及系统,该方法包括以下步骤:接收切流请求,根据切流请求接收目标输入信号;保持对原始输入信号进行转码的转码进程输出的同时,在转码进程中,创建目标线程对目标输入信号进行解封装与解码,其中,对原始输入信号进行转码的转码进程中包括对原始输入信号进行解封与解码的原始线程、对原始线程输出的原始数据流进行编码与封装的输出线程;待得到目标线程输出的目标数据流时,销毁原始线程,并切断原始输入信号;通过输出线程对目标数据流进行编码与封装,输出得到目标输入信号转码后的目标输出流。本发明具有播放切换无缓冲、不卡顿、不闪屏、不黑屏、声音连续、播放数据不丢失的技术特点。(The invention discloses a live transcoding method and a live transcoding system for dynamically switching video streams, wherein the method comprises the following steps: receiving a current switching request, and receiving a target input signal according to the current switching request; the method comprises the steps that when the output of a transcoding process for transcoding an original input signal is kept, a target thread is created to decapsulate and decode the target input signal in the transcoding process, wherein the transcoding process for transcoding the original input signal comprises an original thread for decapsulating and decoding the original input signal and an output thread for encoding and encapsulating an original data stream output by the original thread; when a target data stream output by the target thread is obtained, destroying the original thread and cutting off an original input signal; and encoding and packaging the target data stream through the output thread, and outputting to obtain a target output stream after transcoding the target input signal. The invention has the technical characteristics of no buffer, no blockage, no screen flashing, no screen blacking, continuous sound and no loss of playing data during playing switching.)

一种动态切换视频流的直播转码方法及系统

技术领域

本发明属于音视频直播技术领域,尤其涉及一种动态切换视频流的直播转码方法及系统。

背景技术

随着电视直播和现场直播等直播形式需求量的激增,流媒体在直播转码方面的应用得到迅速发展。随着流媒体技术的发展,直播节目的实时性、画面清晰度等技术方面的性能有了很大的改善。但在直播过程中存在的人为方面的因素很难通过技术的改进来避免其发生,因此直播的动态切流技术逐渐得到重视。

通过动态切流切术能够为技术人员解决直播过程中不符合法律规定或道德规范的内容,防止直播内容给社会造成不良的影响,从而保证直播的正常。参看图1,目前直播切流的方法主要是停止当前流整个的转码进程,然后对新的直播流或文件进行解封装、解码、编码输出后开始新的视频流传输,即当输入信号A切换成输入信号B后,转码器需要退出进程A,然后重新启动进程B,待进程B得到输出流后,在客户端才可观看到内容。这种方法不仅在运行上造成资源的浪费,而且为此还需要很长的退出与启动的时间,直接地,即在观看过程中需要进行缓冲,这还会导致输入信号的丢失、以及播放端出现卡顿、黑屏等现象。

发明内容

本发明的技术目的是提供涉及一种动态切换视频流的直播转码方法及系统,具有播放切换无缓冲、不卡顿、不闪屏、不黑屏、声音连续、播放数据不丢失的技术特点。

为解决上述问题,本发明提供的技术方案为:

一种动态切换视频流的直播转码方法,包括以下步骤:

接收切流请求,根据切流请求接收目标输入信号;

保持对原始输入信号进行转码的转码进程输出的同时,在转码进程中,创建目标线程对目标输入信号进行解封装与解码,其中,对原始输入信号进行转码的转码进程中包括对原始输入信号进行解封与解码的原始线程、对原始线程输出的原始数据流进行编码与封装的输出线程;

待得到目标线程输出的目标数据流时,销毁原始线程,并切断原始输入信号;

通过输出线程对目标数据流进行编码与封装,输出得到目标输入信号转码后的目标输出流。

进一步优选地,切流请求包括直播切流请求、主信号切换请求、备用信号切换请求、垫片切换请求,根据切流请求接收目标输入信号具体为:若接收到直播切流请求,则接收的目标输入信号为直播切流请求中要求的直播输入信号;若接收到主信号切换请求,则接收的目标输入信号为原始输入信号的主信号;若接收到备用信号切换请求,则接收的目标输入信号为原始输入信号的备用信号;若接收到垫片切换请求,则接收的目标输入信号为垫片信号。

进一步优选地,接收切流请求之前还包括以下步骤:建立直播任务,并且配置主信号、备用信号、垫片信号;启动直播任务,建立转码进程对主信号进行转码输出,在转码输出过程中:若主信号断流,则自动发送备用信号切换请求;若主信号且备用信号均断流,则自动发送垫片切换请求;若主信号断流恢复,则自动发送主信号切换请求;若备用信号断流恢复且主信号断流,则自动发送备用信号切换请求;若要求切换指定的直播内容,则发送直播切流请求。

进一步优选地,得到目标输出流之后包括步骤:发送目标输出流进行播放。

本发明还提供一种动态切换视频流的直播转码系统,包括:

接收模块,用于接收切流请求,根据切流请求接收目标输入信号;

转码模块,用于保持对原始输入信号进行转码的转码进程输出的同时,在转码进程中,创建目标线程对目标输入信号进行解封装与解码,其中,对原始输入信号进行转码的转码进程中包括对原始输入信号进行解封与解码的原始线程、对原始线程输出的原始数据流进行编码与封装的输出线程;

切流模块,用于待得到目标线程输出的目标数据流时,销毁原始线程,并切断原始输入信号;

转码模块还用于通过输出线程对目标数据流进行编码与封装,输出得到目标输入信号转码后的输出流。

进一步优选地,切流请求包括直播切流请求、主信号切换请求、备用信号切换请求、垫片切换请求,接收模块用于根据切流请求接收目标输入信号:若接收到直播切流请求,则接收的目标输入信号为直播切流请求中要求的直播输入信号;若接收到主信号切换请求,则接收的目标输入信号为原始输入信号的主信号;若接收到备用信号切换请求,则接收的目标输入信号为原始输入信号的备用信号;若接收到垫片切换请求,则接收的目标输入信号为垫片信号。

进一步优选地,还包括:配置模块,用于建立直播任务,并且配置主信号、备用信号、垫片信号;转码模块还用于启动直播任务,建立转码进程对主信号进行转码输出;请求生成模块,用于在转码输出过程中:若主信号断流,则自动发送备用信号切换请求;若主信号且备用信号均断流,则自动发送垫片切换请求;若主信号断流恢复,则自动发送主信号切换请求;若备用信号断流恢复且主信号断流,则自动发送备用信号切换请求;若要求切换指定的直播内容,则发送直播切流请求;

进一步优选地,还包括播放模块,用于得到目标输出流之后,发送目标输出流进行播放。

本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如前所述的动态切换视频流的直播转码方法。

本发明还提供了一种计算机设备,包括存储器和处理器以及存储在存储器上并可被处理器调用的计算机程序,处理器执行计算机程序时,实现如前所述的动态切换视频流的直播转码方法。

本发明与现有技术相比具有以下的优点和积极效果:

本发明在不引入外部组件的情况下,通过在同一个转码进程中,开启多个线程进行处理,其中,在接受到切流请求后,重新开启一路线程进行对目标输入信号进行解封装与解码,并待输出目标数据流后,对原始输入信号进行解封装与解码的原始线程进行销毁,从而实现动态切换视频流,同时还保证转码一直有输出、不中断,从而达到切流后播放端无数据丢失,而且不再进行整个转码进程的重新创建与销毁,大大减小了切换的时间间隔,做到了帧级的低延时切换,达到了播放切换无缓冲、不卡顿、不闪屏、不黑屏、声音连续、播放数据不丢失的技术效果。

附图说明

图1为传统的切换视频流的框架示意图;

图2为本发明的一种动态切换视频流的直播转码方法的流程示意图;

图3为本发明的一种动态切换视频流的直播转码系统的框架示意图。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。

以下结合附图和具体实施例对本发明提出的一种动态切换视频流的直播转码方法及系统作进一步详细说明。

实施例1

参看图2,为解决上述技术问题,本申请提供了一种动态切换视频流的直播转码方法,包括以下步骤:

接收切流请求,根据切流请求接收目标输入信号;

保持对原始输入信号进行转码的转码进程输出的同时,在转码进程中,创建目标线程对目标输入信号进行解封装与解码,其中,对原始输入信号进行转码的转码进程中包括对原始输入信号进行解封与解码的原始线程、对原始线程输出的原始数据流进行编码与封装的输出线程;

待得到目标线程输出的目标数据流时,销毁原始线程,并切断原始输入信号;

通过输出线程对目标数据流进行编码与封装,输出得到目标输入信号转码后的目标输出流。

下面对本发明的方法进行更具体的描述,但不应以此为限。

本实施例的原始输入信号与目标输入信号支持UPD,HLS,RTSP,RTMP等协议流以及MP4,MKV,TS,MOV以及JPG,PNG等封装格式文件。

处理器或计算单元接收切流请求,根据切流请求接收目标输入信号。具体地,切流请求包括直播切流请求、主信号切换请求、备用信号切换请求、垫片切换请求。当用户端需要切换播放节目时,可以发送携带有所要观看的节目输入信号地址的直播切流请求,当用户端需要切换播放画质时,可以发送主信号切换请求或者备用信号切换请求,此时,主备信号之间代表不同的画质,当直播端在直播过程中要插播垫片时,可以发送垫片切换请求,垫片为已经录制好的音视频内容,如广告视频、图片、歌曲等等。

具体地,处理器或计算单元接收切流请求,根据切流请求接收目标输入信号:若接收到直播切流请求,则接收的目标输入信号为直播切流请求中要求的直播输入信号,即根据用户的需求进行切流;若接收到主信号切换请求,则接收的目标输入信号为原始输入信号的主信号,该主信号切换请求可以为用户端发出,也可以为处理器或计算单元自动发出;若接收到备用信号切换请求,则接收的目标输入信号为原始输入信号的备用信号,该备用信号切换请求可以为用户端发出,也可以为处理器或计算单元自动发出;若接收到垫片切换请求,则接收的目标输入信号为垫片信号,该主信号切换请求可以为直播端发出,也可以为处理器或计算单元自动发出。

较优地,接收切流请求之前还包括以下步骤:

处理器或计算单元建立直播任务,并且配置主信号、备用信号、垫片信号。根据用户端发出的请求建立直播任务,并且配置直播任务相关的主信号、备用信号、垫片信号,主信号与备用信号可以为同一直播内容不同设置的信号,通过切换主备信号可以调整直播设置,也可以是不同直播内容的信号,垫片信号为已经录制好的音视频内容的信号;

处理器或计算单元启动直播任务,建立转码进程对主信号进行转码输出,在转码输出过程中:若主信号断流,则自动发送备用信号切换请求;若主信号且备用信号均断流,则自动发送垫片切换请求;若主信号断流恢复,则自动发送主信号切换请求;若备用信号断流恢复且主信号断流,则自动发送备用信号切换请求;若用户要求切换指定的直播内容,则发送直播切流请求。本实施例的自动切流优先级设定为主信号>备用信号>垫片信号,即直播中信号断流时可以自动切换为它的下一优先级信号,当优先信号断流恢复时,可自动切换为优先信号,同样地,也可以通过直播切流请求,手动切换输入信号,以根据需求进行切换。这样,可以保证直播的不中断,还可以直播中出现当不符合法律规定或道德规范的内容,可立即切流,防止直播内容给社会造成不良的影响,从而保证直播的正常。

参看图2和图3,处理器或计算单元保持对原始输入信号进行转码的转码进程输出的同时,在转码进程中,创建目标线程对目标输入信号进行解封装与解码,其中,对原始输入信号进行转码的转码进程中包括对原始输入信号进行解封与解码的原始线程、对原始线程输出的原始数据流进行编码与封装的输出线程。当原始输入信号请求切换为目标输入信号时,首先保持转码进程中的原始线程与输出线程的工作,即保持对原始输入信号保持转码输出,也就说当前播放内容并未切断,于此同时,在同一转码进程中创建启动一目标线程对目标输入信号开始进行解封装(demux)与解码(decoder)。

参看图2和图3,处理器或计算单元待得到目标线程输出的目标数据流时,销毁原始线程,并切断原始输入信号。目标线程输出目标数据流时,销毁原始线程即停止对原始输入信号的解封装(demux)与解码(decoder)。于此同时,处理器或计算单元通过输出线程对目标数据流进行编码(encoder)与封装(mux),输出得到目标输入信号转码后的目标输出流。如此,本实施例的输出线程不需要销毁后又重新创建,输出线程处理的数据流会自动由原来的对原始线程输出的原始数据流转换为对目标线程输出的目标数据流,输出线程保持持续输出,即在播放端看到的内容是连续的,切换间隔可以做到帧级的低延时切换,即肉眼无法识别的切流间隔。

较优地,处理器或者计算单元得到目标输出流之后包括步骤:发送目标输出流至播放端进行播放。

本实施例在不引入外部组件的情况下,通过在同一个转码进程中,开启多个线程进行处理,其中,在接受到切流请求后,重新开启一路线程进行对目标输入信号进行解封装与解码,并待输出目标数据流后,对原始输入信号进行解封装与解码的原始线程进行销毁,从而实现动态切换视频流,同时还保证转码一直有输出、不中断,从而达到切流后播放端无数据丢失,而且不再进行整个转码进程的重新创建与销毁,大大减小了切换的时间间隔,做到了帧级的低延时切换,达到了播放切换无缓冲、不卡顿、不闪屏、不黑屏、声音连续、播放数据不丢失的技术效果。

实施例2

参看图3,本实施例提供一种基于实施例1的动态切换视频流的直播转码系统,包括:

接收模块,用于接收切流请求,根据切流请求接收目标输入信号;

转码模块,用于保持对原有输入信号进行转码的转码进程输出的同时,在转码进程中,创建目标线程对目标输入信号进行解封装与解码,其中,对原有输入信号进行转码的转码进程中包括对原有输入信号进行解封与解码的原始线程、对原始线程输出的原始数据流进行编码与封装的输出线程;

切流模块,用于待得到目标线程输出的目标数据流时,销毁原始线程,并切断原有输入信号;

转码模块还用于通过输出线程对目标数据流进行编码与封装,输出得到目标输入信号转码后的输出流。

下面对本发明的系统进行更具体的描述,但不应以此为限。

本实施例的原始输入信号与目标输入信号支持UPD,HLS,RTSP,RTMP等协议流以及MP4,MKV,TS,MOV以及JPG,PNG等封装格式文件。

接收模块接收切流请求,根据切流请求接收目标输入信号。具体地,切流请求包括直播切流请求、主信号切换请求、备用信号切换请求、垫片切换请求。当用户端需要切换播放节目时,可以发送携带有所要观看的节目输入信号地址的直播切流请求,当用户端需要切换播放画质时,可以发送主信号切换请求或者备用信号切换请求,此时,主备信号之间代表不同的画质,当直播端在直播过程中要插播垫片时,可以发送垫片切换请求,垫片为已经录制好的音视频内容,如广告视频、图片、歌曲等等。

具体地,接收模块接收切流请求,根据切流请求接收目标输入信号:若接收到直播切流请求,则接收的目标输入信号为直播切流请求中要求的直播输入信号,即根据用户的需求进行切流;若接收到主信号切换请求,则接收的目标输入信号为原始输入信号的主信号,该主信号切换请求可以为用户端发出,也可以为接收模块自动生成;若接收到备用信号切换请求,则接收的目标输入信号为原始输入信号的备用信号,该备用信号切换请求可以为用户端发出,也可以为接收模块自动生成;若接收到垫片切换请求,则接收的目标输入信号为垫片信号,该主信号切换请求可以为直播端发出,也可以为接收模块自动生成。

较优地,接收切流请求之前还包括以下步骤:

配置模块建立直播任务,并且配置主信号、备用信号、垫片信号。根据用户端发出的请求建立直播任务,并且配置直播任务相关的主信号、备用信号、垫片信号,主信号与备用信号可以为同一直播内容不同设置的信号,通过切换主备信号可以调整直播设置,也可以是不同直播内容的信号,垫片信号为已经录制好的音视频内容的信号;

转码模块启动直播任务,建立转码进程对主信号进行转码输出,在转码输出过程中:若主信号断流,则自动发送备用信号切换请求;若主信号且备用信号均断流,则自动发送垫片切换请求;若主信号断流恢复,则自动发送主信号切换请求;若备用信号断流恢复且主信号断流,则自动发送备用信号切换请求;若用户要求切换指定的直播内容,则发送直播切流请求。本实施例的自动切流优先级设定为主信号>备用信号>垫片信号,即直播中信号断流时可以自动切换为它的下一优先级信号,当优先信号断流恢复时,可自动切换为优先信号,同样地,也可以通过直播切流请求,手动切换输入信号,以根据需求进行切换。这样,可以保证直播的不中断,还可以直播中出现当不符合法律规定或道德规范的内容,可立即切流,防止直播内容给社会造成不良的影响,从而保证直播的正常。

参看图3,转码模块保持对原始输入信号进行转码的转码进程输出的同时,在转码进程中,创建目标线程对目标输入信号进行解封装与解码,其中,对原始输入信号进行转码的转码进程中包括对原始输入信号进行解封与解码的原始线程、对原始线程输出的原始数据流进行编码与封装的输出线程。当原始输入信号请求切换为目标输入信号时,首先保持转码进程中的原始线程与输出线程的工作,即保持对原始输入信号保持转码输出,也就说当前播放内容并未切断,于此同时,在同一转码进程中创建启动一目标线程对目标输入信号开始进行解封装(demux)与解码(decoder)。

参看图3,切流模块待得到目标线程输出的目标数据流时,销毁原始线程,并切断原始输入信号。目标线程输出目标数据流时,销毁原始线程即停止对原始输入信号的解封装(demux)与解码(decoder)。于此同时,转码模块通过输出线程对目标数据流进行编码(encoder)与封装(mux),输出得到目标输入信号转码后的目标输出流。如此,本实施例的输出线程不需要销毁后又重新创建,输出线程处理的数据流会自动由原来的对原始线程输出的原始数据流转换为对目标线程输出的目标数据流,输出线程保持持续输出,即在播放端看到的内容是连续的,切换间隔可以做到帧级的低延时切换,即肉眼无法识别的切流间隔。

较优地,播放模块得到目标输出流之后包括步骤:发送目标输出流至播放端进行播放。

本实施例在不引入外部组件的情况下,通过在同一个转码进程中,开启多个线程进行处理,其中,在接受到切流请求后,重新开启一路线程进行对目标输入信号进行解封装与解码,并待输出目标数据流后,对原始输入信号进行解封装与解码的原始线程进行销毁,从而实现动态切换视频流,同时还保证转码一直有输出、不中断,从而达到切流后播放端无数据丢失,而且不再进行整个转码进程的重新创建与销毁,大大减小了切换的时间间隔,做到了帧级的低延时切换,达到了播放切换无缓冲、不卡顿、不闪屏、不黑屏、声音连续、播放数据不丢失的技术效果。

实施例3

基于如实施例1相同的发明构思,本实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如实施例1的动态切换视频流的直播转码方法。

本实施例中的计算机可读存储介质存储有能够被处理器执行的计算机程序,该计算机程序在执行时,首先接收切流请求,根据切流请求接收目标输入信号,再保持对原始输入信号进行转码的转码进程输出的同时,在转码进程中,创建目标线程对目标输入信号进行解封装与解码,待得到目标线程输出的目标数据流时,销毁原始线程,并切断原始输入信号,通过输出线程对目标数据流进行编码与封装,输出得到目标输入信号转码后的目标输出流。

本实施例在不引入外部组件的情况下,通过在同一个转码进程中,开启多个线程进行处理,其中,在接受到切流请求后,重新开启一路线程进行对目标输入信号进行解封装与解码,并待输出目标数据流后,对原始输入信号进行解封装与解码的原始线程进行销毁,从而实现动态切换视频流,同时还保证转码一直有输出、不中断,从而达到切流后播放端无数据丢失,而且不再进行整个转码进程的重新创建与销毁,大大减小了切换的时间间隔,做到了帧级的低延时切换,达到了播放切换无缓冲、不卡顿、不闪屏、不黑屏、声音连续、播放数据不丢失的技术效果。

实施例4

基于如实施例1相同的发明构思,本实施例还提供了一种计算机设备,包括存储器和处理器以及存储在存储器上并可被处理器调用的计算机程序,处理器执行计算机程序时,实现如实施例1的动态切换视频流的直播转码方法。

本实施例中的计算机设备的处理器在执行动态切换视频流的直播转码方法过程中,首先接收切流请求,根据切流请求接收目标输入信号,再保持对原始输入信号进行转码的转码进程输出的同时,在转码进程中,创建目标线程对目标输入信号进行解封装与解码,待得到目标线程输出的目标数据流时,销毁原始线程,并切断原始输入信号,通过输出线程对目标数据流进行编码与封装,输出得到目标输入信号转码后的目标输出流。

本实施例在不引入外部组件的情况下,通过在同一个转码进程中,开启多个线程进行处理,其中,在接受到切流请求后,重新开启一路线程进行对目标输入信号进行解封装与解码,并待输出目标数据流后,对原始输入信号进行解封装与解码的原始线程进行销毁,从而实现动态切换视频流,同时还保证转码一直有输出、不中断,从而达到切流后播放端无数据丢失,而且不再进行整个转码进程的重新创建与销毁,大大减小了切换的时间间隔,做到了帧级的低延时切换,达到了播放切换无缓冲、不卡顿、不闪屏、不黑屏、声音连续、播放数据不丢失的技术效果。

上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式。即使对本发明作出各种变化,倘若这些变化属于本发明权利要求及其等同技术的范围之内,则仍落入在本发明的保护范围之中。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:直播互动方法、装置、服务器及机器可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类