CN112637694B - 一种hls信源一倍速发送控制方法 - Google Patents

一种hls信源一倍速发送控制方法 Download PDF

Info

Publication number
CN112637694B
CN112637694B CN202011484180.7A CN202011484180A CN112637694B CN 112637694 B CN112637694 B CN 112637694B CN 202011484180 A CN202011484180 A CN 202011484180A CN 112637694 B CN112637694 B CN 112637694B
Authority
CN
China
Prior art keywords
data
slice
time
pcr
file
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.)
Active
Application number
CN202011484180.7A
Other languages
English (en)
Other versions
CN112637694A (zh
Inventor
孙伟涛
徐扬法
车蓉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Arcvideo Technology Co ltd
Original Assignee
Hangzhou Arcvideo Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Arcvideo Technology Co ltd filed Critical Hangzhou Arcvideo Technology Co ltd
Priority to CN202011484180.7A priority Critical patent/CN112637694B/zh
Publication of CN112637694A publication Critical patent/CN112637694A/zh
Application granted granted Critical
Publication of CN112637694B publication Critical patent/CN112637694B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种HLS信源一倍速发送控制方法。它具体包括如下步骤:(1)经过HLS协议处理后,视频数据分为视频段ts文件和m3u8文件;(2)下载m3u8文件,HLS的ts切片以本地时钟基准安装信源的PCR来发送以实现1倍速发送;(3)调整信源时钟和本地时钟的偏差,最终按照信源时钟为基准1倍速发送。本发明的有益效果是:可以保证转码器输出的码率基本上按照HLS信源时钟1倍速平稳发送,实现了精确地一倍速控制,降低了下游设备以及终端播放器的要求。

Description

一种HLS信源一倍速发送控制方法
技术领域
本发明涉及在线转码相关技术领域,尤其是指一种HLS信源一倍速发送控制方法。
背景技术
有时候实时流通过HLS协议传输,转码设备需要把HLS的信源转换为rtmp或http等协议发送出去。由于各个转码环节和rtmp协议不做1倍速控制,以及HLS协议的特殊性(切片),会造成码率剧烈波动,下游的设备以及终端设备除非有很大的缓冲,否则会卡顿严重,影响观看体验。
如果做1倍速控制,则存在另一个问题,本地时钟和信源时钟不一致,长时间运行会造成延时增大或数据发空的情况,同样会造成播放卡顿。
发明内容
本发明是为了克服现有技术中存在上述的不足,提供了一种能够平稳发送的HLS信源一倍速发送控制方法。
为了实现上述目的,本发明采用以下技术方案:
一种HLS信源一倍速发送控制方法,具体包括如下步骤:
(1)经过HLS协议处理后,视频数据分为视频段ts文件和m3u8文件;
(2)下载m3u8文件,HLS的ts切片以本地时钟基准安装信源的PCR来发送以实现1倍速发送;
(3)调整信源时钟和本地时钟的偏差,最终按照信源时钟为基准1倍速发送。
HLS(Http实时流)协议是Apple基于HTML(超文本标记语言)实现的。连续媒体数据通过HLS协议进行分片,将其分割成大量的小文件进行传输,适合基于网页服务器的文件传输,并使用了一个轻量级的索引文件不断更新,控制分片后小媒体文件的下载和广播,可以实现流媒体直播和点播请求。经过HLS协议处理后,视频数据分为视频段ts文件和m3u8文件。m3u8是一种索引文件,用于记录分片文件资源路径,用于下载播放。
对于实时流,M3U8索引文件中,一般保存三个TS片的描述,每次更新一片。在M3U8文件中,存在和时间相关的Tag信息:其中#EXTINF标签指示出下面TS片的时间长度(并不精确),单位是秒,可以是整数也可以浮点数,浮点数一般精确到小数点后面3位。同时,EXTINF也影响了播放器刷新M3U8文件的间隔,正常情况下,播放器会把当前下载的TS片的EXTINF的值作为每次刷新M3U8文件的间隔;如果播放器发现本次取到的M3U8文件内容没有更新,会在1-2秒内再次刷新。
由于HLS基于切片文件来传输实时流,所以造成流媒体数据被分割成多个小段来传输,所以需要把分段的数据重新流化,流化时需要:足够平滑,保证和ts的瞬时码率基本一致;流化后的时钟基准和信源一致。
本发明提供了上述解决方案,可以保证转码器输出的码率基本上按照HLS信源时钟1倍速平稳发送。从项目实施效果看,实现了精确地一倍速控制,降低了下游设备以及终端播放器的要求。
作为优选,在步骤(2)中,下载m3u8文件的逻辑如下:
(21)开始时下载m3u8文件,判断是否已经有3个ts切片,如果有,则下载前两个切片进行缓冲;
(22)解析最后一个切片的EXTINF的duration,等待duration时长;
(23)等待到期后再次下载m3u8文件,如果下一个切片尚未生成,则等待时长设为1秒间隔,继续检查m3u8文件直到下一个切片生成;
(24)如果下一个切片生成,则下载当前切片,重复步骤(22)。
作为优选,在步骤(2)中,实现1倍速发送具体如下:基于PCR的速率控制器获取一个PCR间隔内的数据块,根据PCR间隔计算该间隔内数据的平均码率Rn,然后把数据以及平均码率Rn发送到环形缓冲区中,环形缓冲区内数据按PCR块管理,发送控制器把当前缓冲内PCR块内数据发送完成后取下一块,获得下一PCR块的数据以及发送码率,并以该PCR块的平均码率Rn发送这个块内的数据。
作为优选,在步骤(3)中,调整信源时钟和本地时钟的偏差具体如下:缓冲器内数据量使用总时长D来表示,精度间隔为pcr间隔,切片时长分析根据前一个切片第一个I帧PTS和当前切片的第一个I帧的PTS之间的差计算出切片总时长Dts,送到缓冲器内,在下载一个新的ts切片后缓冲器总时长需要加上切片总时长Dts,即更新缓冲器内数据总时长D=D+Dts;从缓冲器内读取数据的逻辑是消耗数据,由于一倍速控制过程中一次取一个PCR间隔内的数据,读取数据的每次时长为Dpcr,故而修改缓冲器内数据的总时长D=D–Dpcr
作为优选,由于第1个切片的时长并无法获得,所以从第二个切片开始跟踪总时长D,切片更新会造成缓冲器内数据总时长的剧烈波动,跟踪新的切片放入缓冲器前的总时长,通过一个统计周期dur后,会得到统计周期内的累积偏差delta,意味着在统计周期dur时长内本地时钟与信源时钟相差delta,也就是单位时间内本地时钟相对信源时钟相差delta/dur,故而1倍速控制码率需要修正为Rdelta=R*(1+delta/dur),R初始值为Rn。
本发明的有益效果是:可以保证转码器输出的码率基本上按照HLS信源时钟1倍速平稳发送,实现了精确地一倍速控制,降低了下游设备以及终端播放器的要求。
附图说明
图1是本发明中的1倍速控制逻辑图;
图2是本发明中的信源时钟和本地时钟偏差调整逻辑图;
图3是本发明中的本地时钟比信源时钟慢时总时长变化图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
一种HLS信源一倍速发送控制方法,由于HLS基于切片文件来传输实时流,所以造成流媒体数据被分割成多个小段来传输,所以需要把分段的数据重新流化,流化时需要:足够平滑,保证和ts的瞬时码率基本一致;流化后的时钟基准和信源一致;具体包括如下步骤:
(1)经过HLS协议处理后,视频数据分为视频段ts文件和m3u8文件;
(2)下载m3u8文件,HLS的ts切片以本地时钟基准安装信源的PCR来发送以实现1倍速发送;
其中:下载m3u8文件的逻辑如下:
(21)开始时下载m3u8文件,判断是否已经有3个ts切片,如果有,则下载前两个切片进行缓冲;
(22)解析最后一个切片的EXTINF的duration,等待duration时长;
(23)等待到期后再次下载m3u8文件,如果下一个切片尚未生成,则等待时长设为1秒间隔,继续检查m3u8文件直到下一个切片生成;
(24)如果下一个切片生成,则下载当前切片,重复步骤(22)。
其中,HLS的ts切片一般是ABR,所以1倍速发送必须以本地时钟基准安装信源的PCR来发送,可以保证信源的一倍速发送。如图1所示,实现1倍速发送具体如下:基于PCR的速率控制器获取一个PCR间隔内的数据块,根据PCR间隔计算该间隔内数据的平均码率Rn,然后把数据以及平均码率Rn发送到环形缓冲区中,环形缓冲区内数据按PCR块管理,发送控制器把当前缓冲内PCR块内数据发送完成后取下一块,获得下一PCR块的数据以及发送码率,并以该PCR块的平均码率Rn发送这个块内的数据。环形缓冲区很小,只要能存储2,3个PCR间隔的数据即可。
(3)调整信源时钟和本地时钟的偏差,最终按照信源时钟为基准1倍速发送;
由于信源设备的时钟可能和本地时钟不一致,如果本地时钟比信源时钟慢,会导致数据在缓冲器中累积,最终上溢;如果本地时钟比信源时钟快,则会导致缓冲器下溢。上溢则导致数据丢失,下溢则造成码率的波动加剧,最终影响下游终端的播放。所以必须调整信源时钟和本地时钟的偏差,最终按照信源时钟为基准一倍速发送。如图2所示,调整信源时钟和本地时钟的偏差具体如下:缓冲器内数据量使用总时长D来表示,精度间隔为pcr间隔,切片时长分析根据前一个切片第一个I帧PTS和当前切片的第一个I帧的PTS之间的差计算出切片总时长Dts,送到缓冲器内,在下载一个新的ts切片后缓冲器总时长需要加上切片总时长Dts,即更新缓冲器内数据总时长D=D+Dts;从缓冲器内读取数据的逻辑是消耗数据,由于一倍速控制过程中一次取一个PCR间隔内的数据,读取数据的每次时长为Dpcr,故而修改缓冲器内数据的总时长D=D–Dpcr。理想情况下(假设切片时长相同,忽略虑网络下载延时)总时长D是个锯齿形波动函数。
读取线程是按照本地时钟控制“一倍速”从缓冲器内“读取”。而下载线程放入缓冲器内的速度是根据上游设备的时钟控制的“一倍速”“写入”。因为信源的产生是上游设备按照它的本地时钟一倍速产生的。经过长时间的累计,两个时钟的偏差会体现在缓冲器内的数据逐渐增加(本地时钟慢)或逐渐减少(本地时钟快)。
由于EXTINF的duration并不精确,所以开始时缓冲两个切片,同时解析每个切片的第一个I帧的PTS,根据I帧的PTS的差值获得当前切片的精确时长。由于第1个切片的时长并无法获得,所以从第二个切片开始跟踪总时长D,由于切片的关系,切片更新会造成缓冲器内数据总时长的剧烈波动,跟踪新的切片放入缓冲器前的总时长,如图3所示,通过一个统计周期dur后,会得到统计周期内的累积偏差delta,意味着在统计周期dur时长内本地时钟与信源时钟相差delta,也就是单位时间内本地时钟相对信源时钟相差delta/dur,故而1倍速控制码率需要修正为Rdelta=R*(1+delta/dur),R初始值为Rn,根据本地时钟做码率R控制,然后再调整偏差,delta可以为正值或负值。因为上游信源设备不规范,所以切片文件时长不固定,网络拥堵等原因造成的抖动,造成数据统计时有波动,影响计算的准确性,需要平滑处理,去掉一些干扰。
HLS(Http实时流)协议是Apple基于HTML(超文本标记语言)实现的。连续媒体数据通过HLS协议进行分片,将其分割成大量的小文件进行传输,适合基于网页服务器的文件传输,并使用了一个轻量级的索引文件不断更新,控制分片后小媒体文件的下载和广播,可以实现流媒体直播和点播请求。经过HLS协议处理后,视频数据分为视频段ts文件和m3u8文件。m3u8是一种索引文件,用于记录分片文件资源路径,用于下载播放。
直播的M3U8示例如下:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:8
#EXT-X-MEDIA-SEQUENCE:2680
#EXTINF:7.975,
1234.ts
#EXTINF:7.941,
1235.ts
#EXTINF:7.975,
1236.ts
对于实时流,M3U8索引文件中,一般保存三个TS片的描述,每次更新一片,在上例中,生成TS新片时,M3U8文件内容变化如下:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:8
#EXT-X-MEDIA-SEQUENCE:2681
#EXTINF:7.941,
1235.ts
#EXTINF:7.975,
1236.ts
#EXTINF:7.971,
1237.ts
在M3U8文件中,存在和时间相关的Tag信息:其中#EXTINF标签指示出下面TS片的时间长度(并不精确),单位是秒,可以是整数也可以浮点数,浮点数一般精确到小数点后面3位。在示例中,1236.ts的时长为7.975秒。同时,EXTINF也影响了播放器刷新M3U8文件的间隔,正常情况下,播放器会把当前下载的TS片的EXTINF的值作为每次刷新M3U8文件的间隔;如果播放器发现本次取到的M3U8文件内容没有更新,会在1-2秒内再次刷新。
本发明提供了上述解决方案,可以保证转码器输出的码率基本上按照HLS信源时钟1倍速平稳发送。从项目实施效果看,实现了精确地一倍速控制,降低了下游设备以及终端播放器的要求。

Claims (1)

1.一种HLS信源一倍速发送控制方法,其特征是,具体包括如下步骤:
(1)经过HLS协议处理后,视频数据分为视频段ts文件和m3u8文件;
(2)下载m3u8文件,HLS的ts切片以本地时钟基准安装信源的PCR来发送以实现1倍速发送;下载m3u8文件的逻辑如下:
(21)开始时下载m3u8文件,判断是否已经有3个ts切片,如果有,则下载前两个切片进行缓冲;
(22)解析最后一个切片的EXTINF的duration,等待duration时长;
(23)等待到期后再次下载m3u8文件,如果下一个切片尚未生成,则等待时长设为1秒间隔,继续检查m3u8文件直到下一个切片生成;
(24)如果下一个切片生成,则下载当前切片,重复步骤(22);
其中,实现1倍速发送具体如下:基于PCR的速率控制器获取一个PCR间隔内的数据块,根据PCR间隔计算该间隔内数据的平均码率Rn,然后把数据以及平均码率Rn发送到环形缓冲区中,环形缓冲区内数据按PCR块管理,发送控制器把当前缓冲内PCR块内数据发送完成后取下一块,获得下一PCR块的数据以及发送码率,并以该PCR块的平均码率Rn发送这个块内的数据;
(3)调整信源时钟和本地时钟的偏差,最终按照信源时钟为基准1倍速发送;调整信源时钟和本地时钟的偏差具体如下:缓冲器内数据量使用总时长D来表示,精度间隔为PCR间隔,切片时长分析根据前一个切片第一个I帧PTS和当前切片的第一个I帧的PTS之间的差计算出切片总时长Dts,送到缓冲器内,在下载一个新的ts切片后缓冲器总时长需要加上切片总时长Dts,即更新缓冲器内数据总时长D = D + Dts;从缓冲器内读取数据的逻辑是消耗数据,由于一倍速控制过程中一次取一个PCR间隔内的数据,读取数据的每次时长为Dpcr,故而修改缓冲器内数据的总时长D = D – Dpcr;由于第1个切片的时长并无法获得,所以从第二个切片开始跟踪总时长D,切片更新会造成缓冲器内数据总时长的剧烈波动,跟踪新的切片放入缓冲器前的总时长,通过一个统计周期dur后,会得到统计周期内的累积偏差delta,意味着在统计周期dur时长内本地时钟与信源时钟相差delta,也就是单位时间内本地时钟相对信源时钟相差delta/dur,故而1倍速控制码率需要修正为Rdelta= R * ( 1+ delta/dur),R初始值为Rn。
CN202011484180.7A 2020-12-16 2020-12-16 一种hls信源一倍速发送控制方法 Active CN112637694B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011484180.7A CN112637694B (zh) 2020-12-16 2020-12-16 一种hls信源一倍速发送控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011484180.7A CN112637694B (zh) 2020-12-16 2020-12-16 一种hls信源一倍速发送控制方法

Publications (2)

Publication Number Publication Date
CN112637694A CN112637694A (zh) 2021-04-09
CN112637694B true CN112637694B (zh) 2023-03-21

Family

ID=75313492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011484180.7A Active CN112637694B (zh) 2020-12-16 2020-12-16 一种hls信源一倍速发送控制方法

Country Status (1)

Country Link
CN (1) CN112637694B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109348292A (zh) * 2018-11-20 2019-02-15 广州易方信息科技股份有限公司 一种基于切片文件字节阈值的视频切片方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795755B (zh) * 2012-10-31 2017-10-20 中国电信股份有限公司 流媒体发送速率控制方法、系统和流媒体服务器
KR101470599B1 (ko) * 2014-04-01 2014-12-11 주식회사 더즈텍 복원된 클럭을 이용하여 송신한 데이터를 수신하는 장치
CN107154918B (zh) * 2016-03-03 2019-11-08 北京大学 基于pid控制的视频直播传输控制方法及系统
CN109525893A (zh) * 2018-11-20 2019-03-26 广州易方信息科技股份有限公司 基于切片文件时长阈值的视频切片方法
CN110933253B (zh) * 2019-11-25 2022-04-19 广州市奥威亚电子科技有限公司 一种数据帧同步的信源端、主机端、同步装置及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109348292A (zh) * 2018-11-20 2019-02-15 广州易方信息科技股份有限公司 一种基于切片文件字节阈值的视频切片方法

Also Published As

Publication number Publication date
CN112637694A (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
US10499071B2 (en) Dynamic bit rate adaptation over bandwidth varying connection
US11190567B2 (en) Low-latency HTTP live streaming
US9722936B2 (en) Method and system for rate adaption of HTTP stream media
US20230269423A1 (en) Fast Tune-In for Low Latency Streaming
US9438652B2 (en) Tiered content streaming
US11509949B2 (en) Packager for segmenter fluidity
US20210076086A1 (en) Digital data streaming using server driven adaptive bitrate
CN110996038B (zh) 一种面向多人互动直播的自适应码率调节方法
CN111886875B (zh) 一种通过网络传送媒体内容的方法及服务器
CN106453270B (zh) 基于pi控制流媒体的自适应传输算法
US11206442B2 (en) Methods and apparatus for video streaming with improved synchronization
CN112637694B (zh) 一种hls信源一倍速发送控制方法
US11089386B1 (en) Accommodating irregular timing information in streamed media data
US20230121792A1 (en) Low latency content delivery
US11206295B1 (en) System and method for streaming content selection
EP4099710A1 (en) Buffer management for live video streaming
GB2593696A (en) Low latency content delivery

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