CN110708564A - 一种动态切换视频流的直播转码方法及系统 - Google Patents
一种动态切换视频流的直播转码方法及系统 Download PDFInfo
- Publication number
- CN110708564A CN110708564A CN201910999759.8A CN201910999759A CN110708564A CN 110708564 A CN110708564 A CN 110708564A CN 201910999759 A CN201910999759 A CN 201910999759A CN 110708564 A CN110708564 A CN 110708564A
- Authority
- CN
- China
- Prior art keywords
- input signal
- transcoding
- signal
- switching request
- target
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 101
- 238000004806 packaging method and process Methods 0.000 claims abstract description 7
- 238000004590 computer program Methods 0.000 claims description 13
- 230000000694 effects Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 208000003028 Stuttering Diseases 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008092 positive effect Effects 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234363—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- 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/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/4402—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 reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440263—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 reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
-
- 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/85406—Content authoring involving a specific file format, e.g. MP4 format
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种动态切换视频流的直播转码方法及系统,该方法包括以下步骤:接收切流请求,根据切流请求接收目标输入信号;保持对原始输入信号进行转码的转码进程输出的同时,在转码进程中,创建目标线程对目标输入信号进行解封装与解码,其中,对原始输入信号进行转码的转码进程中包括对原始输入信号进行解封与解码的原始线程、对原始线程输出的原始数据流进行编码与封装的输出线程;待得到目标线程输出的目标数据流时,销毁原始线程,并切断原始输入信号;通过输出线程对目标数据流进行编码与封装,输出得到目标输入信号转码后的目标输出流。本发明具有播放切换无缓冲、不卡顿、不闪屏、不黑屏、声音连续、播放数据不丢失的技术特点。
Description
技术领域
本发明属于音视频直播技术领域,尤其涉及一种动态切换视频流的直播转码方法及系统。
背景技术
随着电视直播和现场直播等直播形式需求量的激增,流媒体在直播转码方面的应用得到迅速发展。随着流媒体技术的发展,直播节目的实时性、画面清晰度等技术方面的性能有了很大的改善。但在直播过程中存在的人为方面的因素很难通过技术的改进来避免其发生,因此直播的动态切流技术逐渐得到重视。
通过动态切流切术能够为技术人员解决直播过程中不符合法律规定或道德规范的内容,防止直播内容给社会造成不良的影响,从而保证直播的正常。参看图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的动态切换视频流的直播转码方法。
本实施例中的计算机设备的处理器在执行动态切换视频流的直播转码方法过程中,首先接收切流请求,根据切流请求接收目标输入信号,再保持对原始输入信号进行转码的转码进程输出的同时,在转码进程中,创建目标线程对目标输入信号进行解封装与解码,待得到目标线程输出的目标数据流时,销毁原始线程,并切断原始输入信号,通过输出线程对目标数据流进行编码与封装,输出得到目标输入信号转码后的目标输出流。
本实施例在不引入外部组件的情况下,通过在同一个转码进程中,开启多个线程进行处理,其中,在接受到切流请求后,重新开启一路线程进行对目标输入信号进行解封装与解码,并待输出目标数据流后,对原始输入信号进行解封装与解码的原始线程进行销毁,从而实现动态切换视频流,同时还保证转码一直有输出、不中断,从而达到切流后播放端无数据丢失,而且不再进行整个转码进程的重新创建与销毁,大大减小了切换的时间间隔,做到了帧级的低延时切换,达到了播放切换无缓冲、不卡顿、不闪屏、不黑屏、声音连续、播放数据不丢失的技术效果。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式。即使对本发明作出各种变化,倘若这些变化属于本发明权利要求及其等同技术的范围之内,则仍落入在本发明的保护范围之中。
Claims (10)
1.一种动态切换视频流的直播转码方法,其特征在于,包括以下步骤:
接收切流请求,根据所述切流请求接收目标输入信号;
保持对原始输入信号进行转码的转码进程输出的同时,在所述转码进程中,创建目标线程对所述目标输入信号进行解封装与解码,其中,对所述原始输入信号进行转码的所述转码进程中包括对所述原始输入信号进行解封与解码的原始线程、对所述原始线程输出的原始数据流进行编码与封装的输出线程;
待得到所述目标线程输出的目标数据流时,销毁所述原始线程,并切断所述原始输入信号;
通过所述输出线程对所述目标数据流进行编码与封装,输出得到所述目标输入信号转码后的目标输出流。
2.根据权利要求1所述的动态切换视频流的直播转码方法,其特征在于,所述切流请求包括直播切流请求、主信号切换请求、备用信号切换请求、垫片切换请求,根据所述切流请求接收所述目标输入信号具体为:
若接收到所述直播切流请求,则接收的所述目标输入信号为所述直播切流请求中要求的直播输入信号;
若接收到所述主信号切换请求,则接收的所述目标输入信号为所述原始输入信号的主信号;
若接收到所述备用信号切换请求,则接收的所述目标输入信号为所述原始输入信号的备用信号;
若接收到所述垫片切换请求,则接收的所述目标输入信号为垫片信号。
3.根据权利要求2所述的动态切换视频流的直播转码方法,其特征在于,接收所述切流请求之前还包括以下步骤:
建立直播任务,并且配置所述主信号、所述备用信号、所述垫片信号;
启动直播任务,建立所述转码进程对所述主信号进行转码输出,在转码输出过程中:
若所述主信号断流,则自动发送所述备用信号切换请求;若所述主信号且所述备用信号均断流,则自动发送所述垫片切换请求;若所述主信号断流恢复,则自动发送所述主信号切换请求;若所述备用信号断流恢复且所述主信号断流,则自动发送所述备用信号切换请求;若要求切换指定的直播内容,则发送所述直播切流请求。
4.根据权利要求1所述的动态切换视频流的直播转码方法,其特征在于,得到所述目标输出流之后包括步骤:发送所述目标输出流进行播放。
5.一种动态切换视频流的直播转码系统,其特征在于,包括:
接收模块,用于接收切流请求,根据所述切流请求接收目标输入信号;
转码模块,用于保持对原始输入信号进行转码的转码进程输出的同时,在所述转码进程中,创建目标线程对所述目标输入信号进行解封装与解码,其中,对所述原始输入信号进行转码的所述转码进程中包括对所述原始输入信号进行解封与解码的原始线程、对所述原始线程输出的原始数据流进行编码与封装的输出线程;
切流模块,用于待得到所述目标线程输出的目标数据流时,销毁所述原始线程,并切断所述原始输入信号;
所述转码模块还用于通过所述输出线程对所述目标数据流进行编码与封装,输出得到所述目标输入信号转码后的输出流。
6.根据权利要求5所述的动态切换视频流的直播转码系统,其特征在于,所述切流请求包括直播切流请求、主信号切换请求、备用信号切换请求、垫片切换请求,所述接收模块用于根据所述切流请求接收所述目标输入信号:
若接收到所述直播切流请求,则接收的所述目标输入信号为所述直播切流请求中要求的直播输入信号;
若接收到所述主信号切换请求,则接收的所述目标输入信号为所述原始输入信号的主信号;
若接收到所述备用信号切换请求,则接收的所述目标输入信号为所述原始输入信号的备用信号;
若接收到所述垫片切换请求,则接收的所述目标输入信号为垫片信号。
7.根据权利要求6所述的动态切换视频流的直播转码系统,其特征在于,还包括:
配置模块,用于建立直播任务,并且配置所述主信号、所述备用信号、所述垫片信号;
所述转码模块还用于启动直播任务,建立所述转码进程对所述主信号进行转码输出;
请求生成模块,用于在转码输出过程中:若所述主信号断流,则自动发送所述备用信号切换请求;若所述主信号且所述备用信号均断流,则自动发送所述垫片切换请求;若所述主信号断流恢复,则自动发送所述主信号切换请求;若所述备用信号断流恢复且所述主信号断流,则自动发送所述备用信号切换请求;若要求切换指定的直播内容,则发送所述直播切流请求。
8.根据权利要求5所述的动态切换视频流的直播转码系统,其特征在于,还包括播放模块,用于得到所述目标输出流之后,发送所述目标输出流进行播放。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被处理器执行时,实现如权利要求1-4中任意一项所述的动态切换视频流的直播转码方法。
10.一种计算机设备,其特征在于,包括存储器和处理器以及存储在存储器上并可被处理器调用的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-4中任意一项所述的动态切换视频流的直播转码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910999759.8A CN110708564B (zh) | 2019-10-21 | 2019-10-21 | 一种动态切换视频流的直播转码方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910999759.8A CN110708564B (zh) | 2019-10-21 | 2019-10-21 | 一种动态切换视频流的直播转码方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110708564A true CN110708564A (zh) | 2020-01-17 |
CN110708564B CN110708564B (zh) | 2021-12-07 |
Family
ID=69201941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910999759.8A Active CN110708564B (zh) | 2019-10-21 | 2019-10-21 | 一种动态切换视频流的直播转码方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110708564B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112565808A (zh) * | 2020-12-10 | 2021-03-26 | 央视国际网络无锡有限公司 | 一种在直播流中插播垫片的方法 |
CN112637626A (zh) * | 2020-12-16 | 2021-04-09 | 创盛视联数码科技(北京)有限公司 | 推流方法、系统、装置、电子设备及存储介质 |
CN113923503A (zh) * | 2021-11-24 | 2022-01-11 | 京东方科技集团股份有限公司 | 图片播放方法、设备及计算机可读存储介质 |
CN114173150A (zh) * | 2021-12-22 | 2022-03-11 | Oppo广东移动通信有限公司 | 一种直播视频录制方法、装置、系统和终端设备 |
CN114302155A (zh) * | 2021-12-08 | 2022-04-08 | 中广创思网络科技有限公司 | 一种直播延时方法及装置 |
CN114827640A (zh) * | 2021-01-28 | 2022-07-29 | 北京锐马视讯科技有限公司 | 安全实时编转码方法和装置、设备及存储介质 |
CN115695833A (zh) * | 2022-09-29 | 2023-02-03 | 北京国际云转播科技有限公司 | 直播方法、系统及介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1045590A2 (en) * | 1999-04-13 | 2000-10-18 | Matsushita Electric Industrial Co., Ltd. | Transcoder and transcoding method with bit rate regulation |
CN102811382A (zh) * | 2012-08-08 | 2012-12-05 | 无锡天脉聚源传媒科技有限公司 | 一种多媒体信号采集的方法及装置 |
CN104768051A (zh) * | 2015-03-06 | 2015-07-08 | 深圳市九洲电器有限公司 | 多编码格式节目流的自适应切换方法及系统 |
CN106658184A (zh) * | 2015-11-02 | 2017-05-10 | 中兴通讯股份有限公司 | 播放视频直播容灾方法及装置 |
CN107070686A (zh) * | 2016-12-23 | 2017-08-18 | 武汉烽火众智数字技术有限责任公司 | 一种视频监控平台码流并行转码的系统和方法 |
CN107734362A (zh) * | 2017-10-11 | 2018-02-23 | 咪咕视讯科技有限公司 | 一种视频源的确定方法、装置及计算机可读存储介质 |
US9986269B1 (en) * | 2017-03-03 | 2018-05-29 | Akamai Technologies, Inc. | Maintaining stream continuity counter in a stateless multiplexing system |
CN108712422A (zh) * | 2018-05-18 | 2018-10-26 | 网宿科技股份有限公司 | 一种创建转码任务的方法和装置 |
US20190068975A1 (en) * | 2011-07-14 | 2019-02-28 | Comcast Cable Communications, Llc | Preserving Image Quality in Temporally Compressed Video Streams |
CN109803151A (zh) * | 2017-11-16 | 2019-05-24 | 腾讯科技(深圳)有限公司 | 多媒体数据流切换方法、装置、存储介质及电子装置 |
CN110248192A (zh) * | 2019-06-12 | 2019-09-17 | 腾讯科技(深圳)有限公司 | 编码器切换、解码器切换、屏幕分享方法和屏幕分享系统 |
-
2019
- 2019-10-21 CN CN201910999759.8A patent/CN110708564B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1045590A2 (en) * | 1999-04-13 | 2000-10-18 | Matsushita Electric Industrial Co., Ltd. | Transcoder and transcoding method with bit rate regulation |
US6590936B1 (en) * | 1999-04-13 | 2003-07-08 | Matsushita Electric Industrial Co., Ltd. | Coded data transform method, transcoding method, transcoding system, and data storage media |
US20190068975A1 (en) * | 2011-07-14 | 2019-02-28 | Comcast Cable Communications, Llc | Preserving Image Quality in Temporally Compressed Video Streams |
CN102811382A (zh) * | 2012-08-08 | 2012-12-05 | 无锡天脉聚源传媒科技有限公司 | 一种多媒体信号采集的方法及装置 |
CN104768051A (zh) * | 2015-03-06 | 2015-07-08 | 深圳市九洲电器有限公司 | 多编码格式节目流的自适应切换方法及系统 |
CN106658184A (zh) * | 2015-11-02 | 2017-05-10 | 中兴通讯股份有限公司 | 播放视频直播容灾方法及装置 |
CN107070686A (zh) * | 2016-12-23 | 2017-08-18 | 武汉烽火众智数字技术有限责任公司 | 一种视频监控平台码流并行转码的系统和方法 |
US9986269B1 (en) * | 2017-03-03 | 2018-05-29 | Akamai Technologies, Inc. | Maintaining stream continuity counter in a stateless multiplexing system |
CN107734362A (zh) * | 2017-10-11 | 2018-02-23 | 咪咕视讯科技有限公司 | 一种视频源的确定方法、装置及计算机可读存储介质 |
CN109803151A (zh) * | 2017-11-16 | 2019-05-24 | 腾讯科技(深圳)有限公司 | 多媒体数据流切换方法、装置、存储介质及电子装置 |
CN108712422A (zh) * | 2018-05-18 | 2018-10-26 | 网宿科技股份有限公司 | 一种创建转码任务的方法和装置 |
CN110248192A (zh) * | 2019-06-12 | 2019-09-17 | 腾讯科技(深圳)有限公司 | 编码器切换、解码器切换、屏幕分享方法和屏幕分享系统 |
Non-Patent Citations (2)
Title |
---|
李志昂: "HLS流媒体服务器的设计与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
詹亘: "面向动态自适应流视频传输的码率控制算法研究", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112565808A (zh) * | 2020-12-10 | 2021-03-26 | 央视国际网络无锡有限公司 | 一种在直播流中插播垫片的方法 |
CN112637626A (zh) * | 2020-12-16 | 2021-04-09 | 创盛视联数码科技(北京)有限公司 | 推流方法、系统、装置、电子设备及存储介质 |
CN114827640A (zh) * | 2021-01-28 | 2022-07-29 | 北京锐马视讯科技有限公司 | 安全实时编转码方法和装置、设备及存储介质 |
CN114827640B (zh) * | 2021-01-28 | 2024-03-01 | 北京锐马视讯科技有限公司 | 安全实时编转码方法和装置、设备及存储介质 |
CN113923503A (zh) * | 2021-11-24 | 2022-01-11 | 京东方科技集团股份有限公司 | 图片播放方法、设备及计算机可读存储介质 |
CN113923503B (zh) * | 2021-11-24 | 2024-05-24 | 京东方科技集团股份有限公司 | 图片播放方法、设备及计算机可读存储介质 |
CN114302155A (zh) * | 2021-12-08 | 2022-04-08 | 中广创思网络科技有限公司 | 一种直播延时方法及装置 |
CN114173150A (zh) * | 2021-12-22 | 2022-03-11 | Oppo广东移动通信有限公司 | 一种直播视频录制方法、装置、系统和终端设备 |
CN115695833A (zh) * | 2022-09-29 | 2023-02-03 | 北京国际云转播科技有限公司 | 直播方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110708564B (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110708564B (zh) | 一种动态切换视频流的直播转码方法及系统 | |
JP7410107B2 (ja) | 受信方法、及び、受信装置 | |
US11785289B2 (en) | Receiving device, transmitting device, and data processing method | |
EP2082571B1 (en) | Method for reducing channel change times and synchronizing audio/video content during channel change | |
US10250664B2 (en) | Placeshifting live encoded video faster than real time | |
EP3562163B1 (en) | Audio-video synthesis method and system | |
US9038114B2 (en) | Media content shifting | |
US9686593B2 (en) | Decoding of closed captions at a media server | |
US8788933B2 (en) | Time-shifted presentation of media streams | |
KR102464061B1 (ko) | 미디어 데이터를 송수신하는 방법 및 장치 | |
US8782721B1 (en) | Closed captions for live streams | |
US10171530B2 (en) | Devices and methods for transmitting adaptively adjusted documents | |
JPWO2018016295A1 (ja) | 受信装置、およびデータ処理方法 | |
CN113938470B (zh) | 一种浏览器播放rtsp数据源的方法、装置以及流媒体服务器 | |
CN109640162B (zh) | 码流转换方法及系统 | |
KR102391586B1 (ko) | 시청각 콘텐츠 스트림을 mpeg2 사설 섹션내에 캡슐화하는 방법, mpeg2 전송 스트림 내에 멀티플렉스되어질 mpeg2 사설 섹션내에 시청각 콘텐츠를 캡슐화하는 장치, 디지털 tv용의 양방향 어플리케이션, 사용자 장치, 시청각 콘텐츠 또는 데이터의 전송을 위한 방법 및 데이터 네트워크를 위한 통신 프로토콜 | |
KR102393158B1 (ko) | 메타데이터를 포함하는 비트 스트림을 이용한 서비스 제공 방법 및 장치 | |
JP2010148141A (ja) | 放送受信端末装置 | |
GB2586693A (en) | Method and apparatus for the utilization of content associated with supplementary information |
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 |