CN109618208A - 一种直播流分布式切片同步方法及装置 - Google Patents
一种直播流分布式切片同步方法及装置 Download PDFInfo
- Publication number
- CN109618208A CN109618208A CN201811589813.3A CN201811589813A CN109618208A CN 109618208 A CN109618208 A CN 109618208A CN 201811589813 A CN201811589813 A CN 201811589813A CN 109618208 A CN109618208 A CN 109618208A
- Authority
- CN
- China
- Prior art keywords
- slice
- sei
- sliced
- information
- duration
- 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.)
- Pending
Links
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/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/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
-
- 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/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- 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/8547—Content authoring involving timestamps for synchronizing content
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
本发明公开了一种直播流分布式切片同步方法及装置,在视频内容的生成端或中心源站***带切片信息的SEI:将切片信息随同视频其他码流一同传输到达边缘节点;边缘节点解析码流,得到切片信息的准信信息后,完成切片。本发明有效解决了全网切片同步不一致的问题。在任何一台边缘节点切片,保证切出来的片内容和片文件名都是一致的。播放请求从一个边缘上切换到另外任何一个边缘或源站都是可行的,不影响播放流畅性。从边缘直接返回内容,有效减少了回源的带宽,同时对中心源站也起到了保护作用。
Description
技术领域
本发明涉及视频直播领域,具体为一种直播流分布式切片同步方法及装置。
背景技术
现有直播***中,直播中心源站一般需要提供直播流热备,搭建源站集群。当边缘回源时,如果上层服务出现异常,需要及时切换到另外一个上层服务,来保证不间断的直播服务。HLS是一种基于切片的直播流,边缘如果从某一个源站取不到切片时,就会从另外一个源站上去取,所以要保证多个源站上的切片完全一样,才能保证在切换源站时播放不出现花屏,绿屏,画面切换等异常现象。
现有切片同步方法一般有下面3种:这里假设有A,B,C三台机器搭建中心源站集群:
1)A机器切片,其他机器B,C不切片,同步A机器上的切片到B,C两台机器上;
2)A,B,C机器通过某种通信同步机制(比如redis,数据库,消息队列等)来同步切片内容,保证A,B,C切片一致,这种方式也很难做到完全同步;
3)通过编码器发送RTMP ATC(绝对时间),A,B,C机器根据绝对时间来切片,保证切片一致,这种方案对编码器有要求,而且商业CDN传输过程中不能篡改时间戳;
上述3种方法主要解决在中心源站集群内的切片同步问题,无法跨多家商业CDN达到全网同步,边缘回源还是需要从中心源站拿HLS切片和m3u8文件。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种直播流分布式切片同步方法及装置,解决全网切片同步不一致的问题。
为解决上述技术问题,本发明所采用的技术方案是:一种直播流分布式切片同步方法,包括以下步骤:
1)在视频内容的生成端或中心源站***带切片信息的SEI,即补充的增强信息:
2)将带切片信息的SEI随同视频其他码流一同传输到达边缘节点;
3)边缘节点解析码流,得到切片描述后,执行切片。
步骤1)的具体实现过程包括:
1)初始化切片大小为一个预设值,切片时长等于零,切片序列号等于1;
2)读取码流;
3)判断码流是否结束,如果结束,则跳到步骤12);若未结束,则进入步骤4);
4)解析视频帧,获得nal_unit_type,即NAL单元类型;
5)判断nal_unit_type是否是IDR,IDR表示即时解码刷新;若是IDR,则进入步骤6);否则,返回步骤2);
6)计算切片时长,其中切片时长计算方法为:切片时长=当前切片时长+当前视频帧解码时间戳与前一个视频帧解码时间戳的差值;
7)判断切片时长是否大于设置的切片大小,如果大于,则进入步骤8),否则跳到步骤11);
8)生成带切片描述的SEI;其中切片描述包含切片序列号和不连续状态标识;
9)切片序列号递增,步长为1,切片时长重新置零;
10)在IDR前***带切片描述的SEI;
11)继续接收码流,转到步骤2);
12)结束。
执行切片的具体实现过程包括:
1)边缘节点接收码流;
2)初始化切片序列号为零,不连续状态标识为真;
3)判断码流是否结束,若是,则结束,跳到步骤16);否则,进入步骤4);
4)解析视频帧,获得nal_unit_type;
5)判断nal_unit_type是否是IDR,若是,则进入步骤6);否则,进入步骤7);
6)判断切片是否创建,如果切片不存在则跳到步骤12);否则进入步骤14);
7)判断nal_unit_type是否是SEI,若不是,则跳到步骤14);
8)解析SEI,判断SEI是否带有切片描述,若是,则进入9);否则,进入步骤14);
9)解析切片描述,获取切片序列号和不连续状态标识;
10)丢弃带切片描述的SEI;
11)判断是否存在正在写的切片信息,若是,则关闭正在写的切片;
12)命名切片,其中命名规则为:流名_切片序列号_自定义字段.后缀名;
13)创建新切片;
14)向新切片写入帧数据,如果此时新切片没有创建,则丢弃掉写入的帧数据;
15)继续接收码流,跳转到步骤3);
16)结束。
相应地,本发明还提供了一种直播流分布式切片同步装置,包括:
***模块,用于在视频内容的生成端或中心源站***带切片描述的SEI;
传输模块,用于将切片信息随同视频其他码流一同传输到达边缘节点;
边缘节点,用于解析码流,得到切片信息的准信信息后,完成切片。
与现有技术相比,本发明所具有的有益效果为:本发明有效解决了全网切片同步不一致的问题。在任何一台边缘节点切片,保证切出来的片内容和片文件名都是一致的。播放请求从一个边缘上切换到另外任何一个边缘或源站都是可行的,不影响播放流畅性。从边缘直接返回内容,有效减少了回源的带宽,同时对中心源站也起到了保护作用。
附图说明
图1为本发明***带切片描述SEI的基本流程图;
图2为本发明边缘或接收端切片的基本流程图;
图3为本发明实施例流程图。
具体实施方式
直播视频编码目前主要采用H264和H265两种编码格式,H264规范
《ISO/IEC 14496-10:2014》和H265规范《ISO/IEC 23008-2:2015》都描述了SEI即补充增强信息(Supplemental Enhancement Information),它提供了向视频码流中加入额外信息的方法,是H.264/H.265视频压缩标准的特性之一。SEI描述类型在ISO/IEC 14496-10:2014》和《ISO/IEC 23008-2:2015》中Annex D Supplemental enhancementinformation章节描述。如图1所示,SEI payloadType等于5时(User data unregisteredSEI message)可以添加一些用户自定义描述,所以我们也可以在SEI加入切片信息(切片序列号)。
技术实现如下:
首先,我们在视频内容的生成端或传输过程(中心源站)***带切片描述的SEI,***流程如下,见图1:
1)在视频编码时或者在中心源站对已发布的流解析处理,假设切片时间大小segment_size为10秒钟;
2)初始化切片序列号sequence_number和切片时长segment_duration,sequence_number=1,segment_duration=0
3)检测流是否结束,如果结束,则退出整个***切片流程,跳到步骤16
4)解析视频帧
5)计算当前帧与前一帧解码时间戳差值dts_delta=dts-pre_dts,其中dts为当前帧解码时间戳,pre_dts为前一帧解码时间戳
6)计算切片时长segment_duration,segment_duration+=dts_delta,其中要求dts_delta大于零
7)获取视频帧的nal_unit_type,其中nal_unit_type在Rec.ITU-T H.264(01/2012)中Table 7-1中和Rec.ITU-T H.265v3(04/2015)中Table 7-1定义
8)检测nal_unit_type是否是IDR,如果不是则跳到步骤3
9)检测当前切片时长是否大于切片大小segment_size,如果小于,则跳到步骤3
10)检测dts_delta是否大于预设间隔阀值,如果大于,则设置切片不连续状态标识
11)计算切片序列号sequence_number,sequence_number+=1
12)产生SEI(sequence_number,不连续状态标识)
13)在IDR前***SEI
14)***SEI之后,当前的直播码流中就包含了切片信息,这些切片信息随同视频其他码流一同经过网络传输到达边缘节点;
15)重复步骤3至步骤13;
16)结束。
边缘接收直播流,解析视频帧,得到切片的准信信息后,执行切片。切片流程如下,见图2:
1)接收直播流
2)初始化切片索引号segment_number和不连续状态标识discontinuity,其中segment_number=0,discontinuity=true
3)检测流是否结束,如果结束,则退出整个流程,跳到步骤18
4)解析直播码流,如果是音频帧,则跳到步骤16
5)解析视频帧
6)获得nal_unit_type,其中nal_unit_type在Rec.ITU-T H.264(01/2012)中Table 7-1中和Rec.ITU-T H.265v3(04/2015)中Table 7-1定义
7)检测nal_unit_type是否是IDR,如果是IDR且是第一个GOP,则跳到步骤12
8)检测nal_unit_type是否是SEI,如果不是,则跳到步骤16
9)解析SEI信息,检测是否带切片描述,如果不是,则跳到步骤16
10)解析带切片描述的SEI,得到切片序列号sequece_number和不连续状态discontinuity
11)丢弃掉带切片描述的SEI
12)切片命名规则:流名_切片序列号_自定义字段.后缀名,例如:xxx_seqno_suffix.ts,其中xxx表示流名,seqno表示切片序列号sequence_number,suffix表示自定义字段,后缀名可以是ts,m4s等等
13)检测是否存在正在写入的切片,如果不存在,则跳到步骤15
14)关闭正在写入的切片
15)创建新切片,例如JYKTMPP360_seqno_hls.ts,其中JYKTMPP360表示流名,seqno表示切片序列号sequence_number,hls表示自定义字段,后缀名是ts。
16)向切片写入帧数据,如果此时切片没有创建,则丢弃写入的帧数据
17)重复步骤3至步骤15
18)结束
边缘此时扮演了源站的角色,实现了直播流的回源,分发,缓存和切片。观众向边缘请求HLS直播流,边缘直接返回切片内容。
本发明实施例实现过程如下,见图3:
1)选择在中心源站上对已发布的直播流做处理,***带切片描述的SEI;
2)中心源站有A,B,C三台机器搭建集群,对直播流做热备处理;
3)当中的任何一台机器接收到直播推流时,解析码流,每隔一个切片大小时长,在下一个GOP开始前位置***带切片描述的SEI,其中切片描述为:“切片序列号,不连续状态标识”;其中切片序列号为64位有符号整型,不连续状态标识如果为真,则填入切片描述里,如果为假,则缺失;GOP全称为Group of pictures,中文解释为画面组,一个GOP就是指两个IDR之间的一组连续的画面;
4)将当前直播流转推到另外2台机器中;
5)中心源站机器不切片,只当做直播流回源访问服务;
6)播放器向边缘请求HLS直播流;
7)边缘向中心源站回源rtmp;
8)边缘解析码流,获取带切片描述的SEI内容,按照切片描述规则执行切片;
9)边缘返回HLS流给播放器。
在具体实施中,我们在中心源站处解析所有推送过来的直播流,在适当的时机***带切片描述的SEI。当客户访问边缘节点时,触发边缘回源rtmp,同时在边缘节点上执行切片。以后其他客户访问这台边缘,边缘直接返回流数据和切片内容。
Claims (4)
1.一种直播流分布式切片同步方法,其特征在于,包括以下步骤:
1)在视频内容的生成端或中心源站***带切片信息的SEI,即补充的增强信息:
2)将带切片信息的SEI随同视频其他码流一同传输到达边缘节点;
3)边缘节点解析码流,得到切片描述后,执行切片。
2.根据权利要求1所述的直播流分布式切片同步方法,其特征在于,步骤1)的具体实现过程包括:
1)初始化切片大小为一个预设值,切片时长等于零,切片序列号等于1;
2)读取码流;
3)判断码流是否结束,如果结束,则跳到步骤12);若未结束,则进入步骤4);
4)解析视频帧,获得nal_unit_type,即NAL单元类型;
5)判断nal_unit_type是否是IDR,IDR表示即时解码刷新;若是IDR,则进入步骤6);否则,返回步骤2);
6)计算切片时长,其中切片时长计算方法为:切片时长=当前切片时长+当前视频帧解码时间戳与前一个视频帧解码时间戳的差值;
7)判断切片时长是否大于设置的切片大小,如果大于,则进入步骤8),否则跳到步骤11);
8)生成带切片描述的SEI;其中切片描述包含切片序列号和不连续状态标识;
9)切片序列号递增,步长为1,切片时长重新置零;
10)在IDR前***带切片描述的SEI;
11)继续接收码流,转到步骤2);
12)结束。
3.根据权利要求2所述的直播流分布式切片同步方法,其特征在于,执行切片的具体实现过程包括:
1)边缘节点接收码流;
2)初始化切片序列号为零,不连续状态标识为真;
3)判断码流是否结束,若是,则结束,跳到步骤16);否则,进入步骤4);
4)解析视频帧,获得nal_unit_type;
5)判断nal_unit_type是否是IDR,若是,则进入步骤6);否则,进入步骤7);
6)判断切片是否创建,如果切片不存在则跳到步骤12);否则进入步骤14);
7)判断nal_unit_type是否是SEI,若不是,则跳到步骤14);
8)解析SEI,判断SEI是否带有切片描述,若是,则进入9);否则,进入步骤14);
9)解析切片描述,获取切片序列号和不连续状态标识;
10)丢弃带切片描述的SEI;
11)判断是否存在正在写的切片信息,若是,则关闭正在写的切片;
12)命名切片,其中命名规则为:流名_切片序列号_自定义字段.后缀名;
13)创建新切片;
14)向新切片写入帧数据,如果此时新切片没有创建,则丢弃掉写入的帧数据;
15)继续接收码流,跳转到步骤3);
16)结束。
4.一种直播流分布式切片同步装置,其特征在于,包括:
***模块,用于在视频内容的生成端或中心源站***带切片描述的SEI;
传输模块,用于将切片信息随同视频其他码流一同传输到达边缘节点;
边缘节点,用于解析码流,得到切片信息的准信信息后,完成切片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811589813.3A CN109618208A (zh) | 2018-12-25 | 2018-12-25 | 一种直播流分布式切片同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811589813.3A CN109618208A (zh) | 2018-12-25 | 2018-12-25 | 一种直播流分布式切片同步方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109618208A true CN109618208A (zh) | 2019-04-12 |
Family
ID=66011413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811589813.3A Pending CN109618208A (zh) | 2018-12-25 | 2018-12-25 | 一种直播流分布式切片同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109618208A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958466A (zh) * | 2019-12-17 | 2020-04-03 | 杭州当虹科技股份有限公司 | 一种基于rtmp传输的sdi信号同步回传方法 |
CN111193936A (zh) * | 2019-12-27 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 视频流传输方法、装置、电子设备及计算机可读存储介质 |
CN113542815A (zh) * | 2021-09-17 | 2021-10-22 | 广州易方信息科技股份有限公司 | 视频直播同步方法及*** |
CN114071790A (zh) * | 2021-12-16 | 2022-02-18 | 中国联合网络通信集团有限公司 | 通信方法、装置、设备及存储介质 |
CN114302254A (zh) * | 2021-12-28 | 2022-04-08 | 天翼云科技有限公司 | 直播视频转码切片的方法及装置、存储介质及电子设备 |
WO2023241057A1 (zh) * | 2022-06-13 | 2023-12-21 | 京东科技信息技术有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105744290A (zh) * | 2016-01-27 | 2016-07-06 | 观止云(北京)信息技术有限公司 | 一种hls热备的方法 |
CN108055594A (zh) * | 2017-11-14 | 2018-05-18 | 北京百度网讯科技有限公司 | 边缘切片的实现方法、装置、计算机设备及存储介质 |
US20180241793A1 (en) * | 2017-02-17 | 2018-08-23 | Disney Enterprises, Inc. | Virtual slicer appliance |
CN108495151A (zh) * | 2018-03-22 | 2018-09-04 | 深圳牛视科技有限公司 | 一种m3u8格式视频直播***和方法 |
-
2018
- 2018-12-25 CN CN201811589813.3A patent/CN109618208A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105744290A (zh) * | 2016-01-27 | 2016-07-06 | 观止云(北京)信息技术有限公司 | 一种hls热备的方法 |
US20180241793A1 (en) * | 2017-02-17 | 2018-08-23 | Disney Enterprises, Inc. | Virtual slicer appliance |
CN108055594A (zh) * | 2017-11-14 | 2018-05-18 | 北京百度网讯科技有限公司 | 边缘切片的实现方法、装置、计算机设备及存储介质 |
CN108495151A (zh) * | 2018-03-22 | 2018-09-04 | 深圳牛视科技有限公司 | 一种m3u8格式视频直播***和方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958466A (zh) * | 2019-12-17 | 2020-04-03 | 杭州当虹科技股份有限公司 | 一种基于rtmp传输的sdi信号同步回传方法 |
CN111193936A (zh) * | 2019-12-27 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 视频流传输方法、装置、电子设备及计算机可读存储介质 |
CN111193936B (zh) * | 2019-12-27 | 2021-11-12 | 腾讯科技(深圳)有限公司 | 视频流传输方法、装置、电子设备及计算机可读存储介质 |
CN113542815A (zh) * | 2021-09-17 | 2021-10-22 | 广州易方信息科技股份有限公司 | 视频直播同步方法及*** |
CN113542815B (zh) * | 2021-09-17 | 2022-03-08 | 广州易方信息科技股份有限公司 | 视频直播同步方法及*** |
CN114071790A (zh) * | 2021-12-16 | 2022-02-18 | 中国联合网络通信集团有限公司 | 通信方法、装置、设备及存储介质 |
CN114071790B (zh) * | 2021-12-16 | 2023-05-12 | 中国联合网络通信集团有限公司 | 通信方法、装置、设备及存储介质 |
CN114302254A (zh) * | 2021-12-28 | 2022-04-08 | 天翼云科技有限公司 | 直播视频转码切片的方法及装置、存储介质及电子设备 |
WO2023241057A1 (zh) * | 2022-06-13 | 2023-12-21 | 京东科技信息技术有限公司 | 数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109618208A (zh) | 一种直播流分布式切片同步方法及装置 | |
KR101558116B1 (ko) | 코딩된 멀티미디어 데이터의 네트워크 스트리밍 동안의 표현들 사이의 전환 | |
KR101594351B1 (ko) | 다수의 소스들로부터의 멀티미디어 데이터의 스트리밍 | |
KR101442999B1 (ko) | 코딩된 비디오 데이터의 네트워크 스트리밍을 위한 매니페스트 파일 업데이트들 | |
EP2594073B1 (en) | Video switching for streaming video data | |
CA2939250C (en) | Processing continuous multi-period content | |
KR101453239B1 (ko) | 인코딩된 비디오 데이터의 스트리밍 | |
US9843844B2 (en) | Network streaming of media data | |
EP3095247B1 (en) | Robust live operation of dash | |
US20070174880A1 (en) | Method, apparatus, and system of fast channel hopping between encoded video streams | |
KR20170116027A (ko) | 저 레이턴시 비디오 스트리밍 | |
KR100837720B1 (ko) | 디지털 멀티미디어 방송에서 비디오 서비스와 동기화된 데이터 서비스를 제공하는 방법 및 그 장치와 데이터 서비스의 실행 방법 | |
EP2754302A1 (en) | Network streaming of coded video data | |
CN108494792A (zh) | 一种flash播放器播放hls视频流的转换***及其工作方法 | |
KR20130056829A (ko) | 3dtv 방송을 위한 송수신 장치 및 그 제어 방법 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190412 |
|
RJ01 | Rejection of invention patent application after publication |