CN102932670B - 一种流媒体切片方法及系统 - Google Patents

一种流媒体切片方法及系统 Download PDF

Info

Publication number
CN102932670B
CN102932670B CN201210501658.1A CN201210501658A CN102932670B CN 102932670 B CN102932670 B CN 102932670B CN 201210501658 A CN201210501658 A CN 201210501658A CN 102932670 B CN102932670 B CN 102932670B
Authority
CN
China
Prior art keywords
section
timestamp
stream
slices
streaming media
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
CN201210501658.1A
Other languages
English (en)
Other versions
CN102932670A (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.)
Baishitong Network TV Technology Development Co Ltd
Original Assignee
Baishitong Network TV Technology Development 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 Baishitong Network TV Technology Development Co Ltd filed Critical Baishitong Network TV Technology Development Co Ltd
Priority to CN201210501658.1A priority Critical patent/CN102932670B/zh
Publication of CN102932670A publication Critical patent/CN102932670A/zh
Application granted granted Critical
Publication of CN102932670B publication Critical patent/CN102932670B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Television Signal Processing For Recording (AREA)

Abstract

本发明涉及一种流媒体切片方法及系统,包括:解析流媒体ES流;根据所得随机切入点的时间戳序列及给定预期切片时长,通过最小最大数值优化方法,以切片后所得各切片时长与给定预期切片时长的差值序列中的最大值最小为优化目标,计算出流媒体ES流切片时间戳的最佳序列值;并据此进行切片处理。本发明提供的方法及系统,能生成符合HLS协议的切片文件,即能使隶属于同一多媒体流的不同切片时长尽可能地接近,进而降低了对终端播放器的缓冲机制的要求;同时保证了系统运行的稳定性,使切片文件的播放更为流畅,提高用户观看体验的质量。

Description

一种流媒体切片方法及系统
技术领域
本发明涉及流媒体技术领域,更具体地,涉及一种流媒体无转码切片方法及系统。
背景技术
HLS协议(HTTP Live Streaming,HLS)是由Internet工程任务组(InternetEngineering Task Force,IETF)制定的一种基于HTTP的流媒体通信协议(协议详细内容参见http://tools.ietf.org/html/draft-pantos-http-live-streaming-08)。近年来,HLS协议在流媒体领域得到了广泛应用,因为该协议采用了HTTP传输,可以根据网络带宽自适应地调整码率,即允许服务器为同一节目内容存放多个不同码率的多媒体流,终端可根据实际的网络下载速度自适应地调整所要下载的多媒体流的码率,在网络带宽紧张时,终端可通过降低码率实现不间断播放;并且相对于其他流媒体通信协议,HLS协议在服务部署时能够更好地与其他相关技术兼容。
该协议要求服务器为每个节目(比如一部电影)存储一组时长和大小相近的媒体文件,同时为这些媒体文件形成一个m3u8播放列表。在HLS协议中,这些媒体文件被称切片。HLS切片(HLS segments)以文件形式存储于内容分发网络(Content Delivery Network,CDN)的内容服务器上,终端首先下载m3u8播放列表,再根据播放列表以HTTP方式依次下载每个切片进行播放,即终端根据m3u8播放列表,采用HTTP协议从内容服务器依次下载每个切片进行播放。
中央媒资管理系统将流媒体文件通过CDN分发到边缘内容服务器。边缘内容服务器因地制宜地采用通信协议为终端提供流媒体服务,而HLS是边缘内容服务器可采纳的通信协议之一。由于内容服务器通常位于边缘节点,数量多,存储量大,但性能相对较弱。而转码服务的计算量较大,内容服务器不会提供转码服务,因此在内容服务器上部署HLS协议会使用无转码切片来产生HLS播放所需的切片文件。
目前有两种方式可生成符合HLS协议的切片文件:一种是在转码过程中直接生成符合要求的切片,该方式能对切片时长作较高精度的控制,但需要转码器支持切片功能;另一种是对转码后的文件进行切片,该方式将转码和切片分为两个相互独立模块,使用方便。
针对内容服务器不会提供转码服务,中央媒资管理系统采用第二种生成符合HLS协议的切片文件方式,即对转码后的文件进行切片,但该方式对切片精度的控制提出了较高的要求:隶属于同一个多媒体流的不同切片的时长应当尽可能地接近。
现有两种常用无切码切片方法为:第一种方法按时间由小到大依次产生每个切片,每个切片的终点为尚未被切片的ES流中与当前切片起点距离最接近T的随机接入点。第二种方法每个切片(例如第k个)的终点为尚未被切片的ES流中与零点距离最接近kT的随机接入点。T为给定预期切片时长。实践数据表明此两种切片方法生成的切片时长文件大小波动性较大,不符合HLS协议的要求。
一方面,切片文件大小波动较大,使得对不同切片文件进行操作所消耗的时间可能相差较多。例如,在包含内容数字版权加密保护技术(Digital RightManagement,DRM)的HLS系统中,终端需要对每个切片作解密操作,解密时间通常是切片大小的线性函数,如果切片大小参差不齐,则不同切片的解密用时上下浮动,这对播放器的缓冲机制提出了更高的要求。
另一方面,由于每个切片文件的大小可能不相近,则终端在下载切片文件之前无法对切片文件的大小做出较准确的估计,也就是说,终端无法根据某一个切片大小的估计值为所有的切片一次性分配足够大的动态内存空间。如果该已分配的动态内存空间过小,终端需要在动态内存用尽时停止下载,重新开辟新的内存空间,这会对系统运行带来额外的开销。
发明内容
为解决上述现有技术的缺点,本发明的主要目的在于提供一种流媒体切片方法及系统,能够控制所生成的不同切片大小波动幅度至最小,从而使得对不同切片文件进行操作所消耗的时间尽可能相近,进而对终端播放器的缓冲机制的要求降至最低。
本发明的另一目的在于提供一种多媒体切片方法及系统,能够控制所生成的不同切片大小波动幅度至最小,从而能够在下载切片文件之前能对切片文件的大小做出较准确地估计,即终端能够根据生成的最大波动幅度的切片大小,一次性地分配足够大的动态内存空间,避免了在动态内存用尽时停止下载的情形,使得系统运行能够平稳地进行,也就是说,播放能够流畅进行,进而提高了用户观看体验的质量。
为达成上述目的,本发明提供一种多媒体切片方法,包括以下步骤:
a)解析流媒体ES流,取得PTS及DTS信息,进而得到流媒体ES流的随机切入点的时间戳序列;
b)根据所述随机切入点的时间戳序列及给定预期切片时长,以切片后所得各切片时长与给定预期切片时长的差值序列中的最大值最小为优化目标,通过采用最小最大(minimax)数值优化方法的第一切片计算模型,计算得出流媒体ES流的切片时间戳的最佳序列值;以及
c)依据所述计算得出的切片时间戳的最佳序列值,对流媒体ES流进行切片。
上述流媒体切片方法生成的切片符合HLS协议要求。
上述ES流为音频ES流,所述音频ES流的随机切入点为每一音频帧的起始样本。
上述ES流为视频ES流,所述视频ES流的随机切入点为I帧IDR帧。
上述的步骤c)后,还包括以下步骤:
d)解析音频流,取得PTS及DTS信息,进而得到音频流的随机切入点的时间戳序列;
e)根据步骤b)取得的ES流的切片时间戳的最佳序列值及步骤d)取得的音频流的随机切入点的时间戳序列,通过与相应视频ES流切片的最佳切片时间戳的序列值最相近原则的第二切片计算模型,计算得出音频流的切片时间戳的最佳序列值;
f)依据所述计算得出的音频流的切片时间戳的最佳序列值,对音频流进行切片;以及
g)将根据步骤c)取得的视频ES流切片及根据步骤f)取得的音频流切片对应进行音视频封装,生成m3u8流媒体文件。
上述的步骤d)中,音频流的随机切入点为每一音频帧的起始样本。
上述的步骤e)中,所述与相应视频ES流切片的最佳切片时间戳的序列值最相近原则的第二切片计算模型的数学表达式为:
对每个k=1,2,……,Kj,依次执行
m i , j , k = arg min m | | t i , j ( m ) - t j ( n j , k ) | |
s.t m>mi,j,k-1
根据计算得出的mi,j,k序列值,得到第i个音频流ASi的切片时间戳序列值:{ti,j(mi,j,0),ti,j(mi,j,1),ti,j(mi,j,2),……,ti,j(mi,j,Kj)},
其中:
{ti(0),ti(1),ti(2),……,ti(Mi)}:第i个音频流ASi的随机切入点的时间戳,ti(0)=0,ti(Mi)=L,L为音频流的时长
Kj:音频流的切片个数,且等于视频ES流的切片个数
mi,j,k:音频ES流的切片时间戳的序号,属于集合{0,1,2,……,Mi},对所有k,0≤k≤Kj,mi,j,0=0,mi,j,Kj=Mi
tj(nj,k):视频流VSj的切片时间戳
ti,j(mi,j,k-1):第k个切片的起始时间戳
ti,j(mi,j,k):第k个切片的结束时间戳
本发明还提供一种多媒体切片系统,该系统包括以下装置:
第一解析装置,用以解析流媒体ES流,取得PTS及DTS信息,进而得到流媒体ES流的随机切入点的时间戳序列;
第一切片计算装置,连接于所述第一解析装置,用以根据所述随机切入点的时间戳序列及给定预期切片时长,以切片后所得各切片时长与给定预期切片时长的差值序列中的最大值最小为优化目标,通过采用最小最大数值优化方法的第一切片计算模型,计算得出流媒体ES流的切片时间戳的最佳序列值;以及
第一切片装置,连接于所述第一切片计算装置,用以依据所述计算得出的切片时间戳的最佳序列值,对流媒体ES流进行切片。
上述流媒体切片系统生成的切片符合HLS协议要求。
上述ES流为音频ES流,所述音频ES流的随机切入点为每一音频帧的起始样本。
上述ES流为视频ES流,所述视频ES流的随机切入点为I帧或IDR帧。
上述的流媒体切片系统还包括以下装置:
第二解析装置,用以解析音频流,取得PTS及DTS信息,进而得到音频流的随机切入点的时间戳序列;
第二切片计算装置,分别连接于所述第一切片计算装置及第二解析装置,用以根据所述第一切片计算装置得出的ES流的切片时间戳的最佳序列值及第二解析装置取得的音频流的随机切入点的时间戳序列,通过与相应视频ES流切片的最佳切片时间戳的序列值最相近原则的第二切片计算模型,计算得出音频流的切片时间戳的最佳序列值;
第二切片装置,连接于所述第二切片计算装置,用以依据所述计算得出的音频流的切片时间戳的最佳序列值,对音频流进行切片;以及
音视频封装装置,分别连接于所述第一切片装置及第二切片装置,用以将第一切片装置取得的视频ES流切片及第二切片装置取得的音频流切片对应进行音视频封装,生成m3u8流媒体文件。
上述的第二切片计算装置中,音频流的随机切入点为每一音频帧的起始样本。
上述第二切片计算装置中,所述与相应视频ES流切片的最佳切片时间戳的序列值最相近原则的第二切片计算模型的数学表达式为:
对每个k=1,2,……,Kj,依次执行
m i , j , k = arg min m | | t i , j ( m ) - t j ( n j , k ) | |
s.t m>mi,j,k-1
根据计算得出的mi,j,k序列值,得到第i个音频流ASi的切片时间戳序列值:{ti,j(mi,j,0),ti,j(mi,j,1),ti,j(mi,j,2),……,ti,j(mi,j,Kj)},
其中:
{ti(0),ti(1),ti(2),……,ti(Mi)}:第i个音频流ASi的随机切入点的时间戳,ti(0)=0,ti(Mi)=L,L为音频流的时长
Kj:音频流的切片个数,且等于视频ES流的切片个数
mi,j,k:音频ES流的切片时间戳的序号,属于集合{0,1,2,……,Mi},对所有k,0≤k≤Kj,mi,j,0=0,mi,j,Kj=Mi
tj(nj,k):视频流VSj的切片时间戳
ti,j(mi,j,k-1):第k个切片的起始时间戳
ti,j(mi,j,k):第k个切片的结束时间戳
本发明针对传统的流媒体切片技术的各种缺陷和缺点,利用流媒体解码所得随机切入点的时间戳序列及给定预期切片时长,通过采用最小最大(minimax)数值优化方法,以切片后所得各切片时长与给定预期切片时长的差值序列中的最大值最小为优化目标,计算得出流媒体ES流的切片时间戳的最佳序列值,并据此进行切片处理,从而能生成符合HLS协议要求的切片文件,即隶属于同一个多媒体流的不同切片的时长尽可能地接近,这使得终端对不同切片文件进行操作所消耗的时间基本相近,降低了播放器的缓冲机制要求;由于不同切片的大小相近,终端在下载切片文件前可对切片文件大小做出较准确的估计,并根据估计值为每个切片一次性分配足够大的动态内存空间,从而保证了系统运行的稳定性,使切片文件的播放变得更为流畅,进而提高用户观看体验的质量。
附图说明
图1为本发明的流媒体切片方法的流程示意图;
图2为本发明的纯音频流切片方法的流程示意图;
图3为本发明的流媒体切片系统的结构框图;
图4为本发明的第一实施例的专利实施后的切片时长控制图;
图5为本发明的第二实施例的专利实施后的切片时长控制图;
图6为本发明的第三实施例的专利实施后的切片时长控制图;
图7为本发明的第四实施例的专利实施后的切片时长控制图;以及
图8为本发明的第五实施例的专利实施后的切片时长控制图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明,但本发明的保护范围并不限于此。
图1为本发明的流媒体切片方法的流程示意图,该方法包括以下步骤:
在步骤S1中,解析视频基本码流(Elementary Stream,ES),接着进行步骤S2。其中,解析视频ES流,取得演示时间戳(Presentation Time-Stamp,PTS)及解码时间戳(Decoding Time-Stamp,DTS)信息,进而得到视频ES流的随机切入点的时间戳序列,该视频ES流的随机切入点为I帧或IDR(InstantaneousDecoding Refresh)帧,例如视频ES流为H.264流,则一个IDR帧对应一个随机切入点。终端可以从任何一个随机切入点截取码流开始播放,而不需要对该切入点之前的数据作解码。
(一)多媒体流及其包含的视频ES流及音频ES流信息的数学描述如下:
记多媒体流为S,S包含J个视频ES流,分别记为VS1,VS2,……VSJ,包含I个音频ES流,分别记为AS1,AS2,……ASI。记期望的切片时长为T,记S的持续时间为L,通常S中所有ES流的时长也是L(例如,L可能是一部电影的总时长,而其中的音频流和视频流的持续时间通常也是L)。
(二)随机切入点的数学描述如下:
设一视频基本码流的随机切入点为{t(0),t(1),t(2),……,t(N)},
其中:
每个t(n),1≤n≤N:相应的随机切入点(random access point)的时间戳(timestamp);
t(0):码流起点;
t(N):码流终点;
N:随机切入点的个数。
在步骤S2中,采用最小最大(minimax)数值优化方法,计算出视频ES流切片时间戳的最佳序列值,接着进行步骤S3。其中,采用最小最大数值优化方法,是根据随机切入点的时间戳序列及给定预期切片时长,以切片后所得各切片时长与给定预期切片时长的差值序列中的最大值最小为优化目标,通过第一切片计算模型,计算得出视频ES流的切片时间戳的最佳序列值。
上述优化目标及第一切片计算模型的数学描述如下:
(一)最小最大数值优化方法的优化目标数学描述如下:
设视频ES流的切片可用序列为{t(n0),t(n1),t(n2),……,t(nK)},采用最小最大数值优化方法的优化目标为:对任何数值T,产生最小最大误差意义下切片时长与T最接近的切片序列,即产生K和{n0,n1,n2,……,nK},使得max{‖t(nk)-t(nk-1)–T‖:1≤k≤K}最小,
其中:
K:切片个数;
{n0,n1,n2,……,nK}:切片的序号的集合,它属于随机切入点的序号的集合{0,1,2,……,N}其中n0=0,nK=N;
nK:随机切入点的序号;
t(nk-1):第k(k≥1)个切片的起始时间戳;
t(nk):第k(k≥1)个切片的终止时间戳,同时也是第k+1个切片的起始时间戳,因为本发明切片方法为无转码切片方法,流媒体文件是先由转码器转码,再通过CDN分发到内容服务器,再在内容服务器上采用本发明的切片方法进行切片处理,所以本发明的切片方法不能更改已有的随机切入点,也不能产生新的随机切入点,每个切片必须从某个随机切入点开始。
t(nk)-t(nk-1):第k个切片的时长;
‖·‖:可以是包含绝对值在内的任何一种范数。
(二)通过第一切片计算模型,计算得出视频ES流的切片时间戳的最佳序列值的数学描述如下:
设视频ES流共有J个,第j个视频ES流记为VSj,1≤j≤J,又记VSj中的所有随机接入点的时间戳为{tj(0),tj(1),tj(2),……,tj(Nj)},其中,tj(0)为VSj的起始时刻,tj(Nj)为VSj的结束时刻。对VSj做本发明最优无转码切片的伪代码如下:
令bj(n)=0,cj(n)=‖tj(n)-tj(0)-T‖,kj(n)=1,n=0,1,2,……,Nj
1)对n=2,……,Nj,依次执行下列步骤:
1.1)对m=1,2,……,n-1,依次执行
如果max{‖tj(n)-tj(m)-T‖,cj(m)}<cj(n),则
cj(n)=max{‖tj(n)-tj(m)-T‖,cj(m)}
kj(n)=kj(m)+1
bj(n)=m
2)Kj=kj(Nj)
3)令nj,Kj=Nj,对k=Kj-1,Kj-2,……,0依次执行
3.1)m=bj(nj,k+1)
3.2)nj,k=bj(m)
4)ES流VSj的切片起始时间戳为:
{tj(nj,0),tj(nj,1),tj(nj,2),……,tj(nj,Kj)}。
上述伪代码求出的切片个数Kj和切片时间戳tj(nj,k),0≤k≤Kj,使下式最小
max{‖tj(n'j,k)-tj(n'j,k-1)-T‖:1≤k≤K'}    (1)
相应的约束条件为:
1)n'j,k:任意一种切片方法的切片序号,它属于随机切入点的集合{0,1,2,……,Nj};
2)n'j,0=0,n'j,K’=Nj
即对于任意满足上述约束的切片个数K'和切片时间戳tj(n'j,k),0≤k≤K',下式成立:
max{‖tj(nj,k)-tj(nj,k-1)-T‖:1≤k≤Kj}
≤max{‖tj(n'j,k)-tj(n'j,k-1)-T‖:1≤k≤K'}。
上述对VSj切片的伪代码的运算复杂度为O(Nj 2)。
上述计算过程,求得第j个视频ES流VSj的切片起始时间戳为:{tj(nj,0),tj(nj,1),tj(nj,2),……,tj(nj,Kj)},实际操作中,是按顺序依次取j为1,2,…J,求出视频ES流VSj的切片起始时间戳序列。
在步骤S3中,对视频ES流进行切片,接着进行步骤S4。其中,依据所述计算得出的切片时间戳的最佳序列值,对视频ES流进行切片。
由于多媒体流里包含J个视频ES流,分别记为VS1,VS2,……VSJ,对这些视频ES流按j为1,2,…J的顺序,依次为每个视频ES流按步骤S1,S2,S3的顺序做解析ES流VSj,求出视频ES流VSj的切片起始时间戳序列,按此切片起始时间戳序列做切片处理。
在步骤S4中,解析音频流,接着进行步骤S5。其中,解析音频流,为取得PTS及DTS信息,进而得到音频流的随机切入点的时间戳序列,而音频ES流的随机切入点为每一音频帧的起始样本。
在步骤S5中,依据与视频ES流切片的最佳切片时间戳的序列值最相近原则,计算出音频流的切片时间戳的最佳序列值,接着进行步骤S6。其中,根据步骤S2取得的视频ES流的切片时间戳的最佳序列值及步骤S4取得的音频流的随机切入点的时间戳序列,通过与相应视频ES流切片的最佳切片时间戳的序列值最相近原则的第二切片计算模型,计算得出音频流的切片时间戳的最佳序列值。
通过第二切片计算模型,计算得出音频流的切片时间戳的最佳序列值的数学描述如下:
除了纯音频流外,音频流在切片时以视频流的切片时间戳为基准。记第i个音频流ASi的随机接入点的时间戳为{ti(0),ti(1),ti(2),……,ti(Mi)}。其中,ti(0)=0,ti(Mi)=L。记音频流ASi以VSj为基准做切片得到的切片时间戳为
{ti,j(mi,j,0),ti,j(mi,j,1),ti,j(mi,j,2),……,ti,j(mi,j,Kj)},
其中,
Kj:音频流ASi的切片个数,且等于视频ES流VSj的切片个数;
mi,j,k:音频流ASi的切片时间戳的序号,属于集合{0,1,2,……,Mi},对所有k,0≤k≤Kj,mi,j,0=0,mi,j,Kj=Mi
tj(nj,k):视频流VSj的切片时间戳
ti,j(mi,j,k-1):第k个切片的起始时间戳
ti,j(mi,j,k):第k个切片的结束时间戳
音频流ASi以视频ES流VSj的切片时间戳为基准做切片时,对每个k=1,2,……,Kj,依次执行
m i , j , k = arg min m | | t i , j ( m ) - t j ( n j , k ) | |
s.t m>mi,j,k-1
根据计算得出的mi,j,k序列值,得到第i个音频流ASi的切片时间戳序列值:{ti,j(mi,j,0),ti,j(mi,j,1),ti,j(mi,j,2),……,ti,j(mi,j,Kj)}。
在步骤S6中,对音频流进行切片,接着进行步骤S7。其中,依据步骤S5中计算得出的音频流的切片时间戳的最佳序列值,对音频流进行切片。
在步骤S7中,将视频ES流切片及音频流切片进行音视频封装,生成m3u8多媒体文件。其中,将根据步骤S3取得的视频ES流切片及根据步骤S6取得的音频流切片对应进行音视频封装,数学描述具体为:每个视频ES流与I个音频流组成一个独立的多媒体文件,生成m3u8流媒体文件。而生成的m3u8多媒体文件符合HLS协议要求。
本发明的流媒体切片方法,通过分析ES流中的PTS和DTS信息获得随机切入点的时间戳,先对视频流切片,再以视频切片为基准对音频切片,最后做音视频切片封装,产生符合HLS标准的切片文件。
该方法以最短路径理论为理论基础,以ES流为实现途径,所产生的切片的时长误差在最小最大准则下是最优的,进而使得不同切片的播放时长尽可能接近,以利于终端流畅播放,并使得生成的切片文件符合现正被大量应用的HLS协议的要求。
图2为本发明的本发明的纯音频流切片方法的流程示意图,该方法包括以下步骤:
在步骤S21中,解析纯音频流,接着进行步骤S22。
在步骤S22中,采用最小最大数值优化方法,计算出音频流切片时间戳的最佳序列值,接着进行步骤S23。
在步骤S23中,对音频流进行切片。
图3为本发明的流媒体切片系统的结构框图,该系统包括以下装置:
第一解析装置,用以解析流媒体ES流,取得PTS及DTS信息,进而得到流媒体ES流的随机切入点的时间戳序列。在本实施例中,ES流为音频ES流时,所述音频ES流的随机切入点为每一音频帧的起始样本;ES流为视频ES流时,所述视频ES流的随机切入点为I帧或IDR帧。第一解析装置为解析器。多媒体流及其包含的视频ES流及音频ES流信息及随机切入点的数学描述,同步骤S1中所述,此处不再赘述。
第一切片计算装置,连接于第一解析装置,用以根据随机切入点的时间戳序列及给定预期切片时长,以切片后所得各切片时长与给定预期切片时长的差值序列中的最大值最小为优化目标,通过采用最小最大数值优化方法的第一切片计算模型,计算得出流媒体ES流的切片时间戳的最佳序列值。在本实施例中,上述优化目标及第一切片计算模型的数学描述同步骤S2中所述,此处不再赘述。
第一切片装置,连接于第一切片计算装置,用以依据计算得出的切片时间戳的最佳序列值,对流媒体ES流进行切片。在本实施例中,所述的流媒体切片系统还包括以下装置:
第二解析装置,用以解析音频流,取得PTS及DTS信息,进而得到音频流的随机切入点的时间戳序列;
第二切片计算装置,分别连接于第一切片计算装置及第二解析装置,用以根据第一切片计算装置得出的ES流的切片时间戳的最佳序列值及第二解析装置取得的音频流的随机切入点的时间戳序列,通过与相应视频ES流切片的最佳切片时间戳的序列值最相近原则的第二切片计算模型,计算得出音频流的切片时间戳的最佳序列值;其中,通过第二切片计算模型,计算得出音频流的切片时间戳的最佳序列值的数学描述同步骤S5,此处不再赘述。
第二切片装置,连接于第二切片计算装置,用以依据计算得出的音频流的切片时间戳的最佳序列值,对音频流进行切片;其中,第二切片计算装置中,音频流的随机切入点为每一音频帧的起始样本。
音视频封装装置,分别连接于第一切片装置及第二切片装置,用以将第一切片装置取得的视频ES流切片及第二切片装置取得的音频流切片对应进行音视频封装,生成m3u8流媒体文件。具体为:每个视频ES流与所有的音频流组成一个独立的多媒体文件,生成m3u8流媒体文件。而生成的m3u8多媒体文件符合HLS协议要求。
下面将从理论证明及实施例数据对比两个方面,分别来阐明本发明的流媒体切片方法的步骤S2中所述:伪代码求出的切片个数Kj和切片时间戳tj(nj, k),0≤k≤Kj,使下式最小
max{‖tj(n'j,k)-tj(n'j,k-1)-T‖:1≤k≤K'}    (1)
相应的约束条件为:
1)n'j,k:任意一种切片方法的切片序号,它属于随机切入点的集合{0,1,2,……,Nj};
2)n'j,0=0,n'j,K’=Nj
(一)理论证明
式(1)的最优解满足下列性质:
性质1:对于任意的k1,k2,0≤k1≤k2≤Kj,k1以及时间戳tj(nj,k),0≤k≤k1,使下式最小
max{‖tj(n'j,k)-tj(n'j,k-1)-T‖:1≤k≤K'}        (2)
相应的约束条件为:
1)切片时间戳序号n'j,k属于集合{0,1,2,……,nj,k1};
2)n'j,0=0,n'j,K’=nj,k1
证明:假设存在k'1以及时间戳tj(n'j,k),0≤k≤k'1使得下式成立
max{‖tj(n'j,k)-tj(n'j,k-1)-T‖:1≤k≤k'1}
<max{‖tj(nj,k)-tj(nj,k-1)-T‖:1≤k≤k1}。
由于n'j,k’1=nj,k1,则下列时间戳
{tj(n'j,0),tj(n'j,1),……,tj(n'j,k’1)=t(nj,k1),t(nj,k1+1),……,tj(nj,Kj)}
对应的切片时长最大误差为:
max{max{‖tj(n'j,k)-tj(n'j,k-1)-T‖:1≤k≤k'1},
max{‖tj(nj,k)-tj(nj,k-1)-T‖:k1+1≤k≤Kj}}
<max{‖tj(nj,k)-tj(nj,k-1)-T‖:1≤k≤Kj},与假设“最优解”相矛盾。
由性质1可递归地得出上述步骤S2中的伪代码的最优性,即由该代码求得的切片个数Kj和时间戳tj(nj,k),0≤k≤Kj使得(1)式最小,即在切片时长误差最小最大准则下是最优的。
证明:当Nj=1时,结论成立。假设当Nj=1,2,……,N时结论成立,当Nj=N+1时,由伪代码步骤2.1以及性质1可知,结论成立。
(二)实施例数据对比
以下为本发明的五个实施例。源文件的参数中能够对无转码切片的精确度产生影响的有:帧率、GOP长度、I(IDR)帧插入频率等。下列实施例涵盖了这些参数值的不同组合。切片的精确程度采用统计特征描述,以反映本发明在实际应用环境中的效果。
图4为本发明的第一实施例的专利实施后的切片时长控制图。第一实施例中转码源文件参数为:
时长:02:34:24
视频编码:h.264
视频参数:逐行,profile=high,level=4.0,GOP长度=50,帧率=24.03fps
音频编码:eac3
音频参数:采样率=48kHz
切片预期时长10秒。图4给出了采用本发明对该文件切片后得到的前100个切片文件的时长。切片时长的平均值为:10.42秒,标准差为:0.14。
图5为本发明的第二实施例的专利实施后的切片时长控制图。第二实施例中转码源文件参数为:
时长:00:25:33
视频编码:h.264
视频参数:逐行,profile=baseline,level=3.1,GOP长度=75(在一个GOP内可以自适应插入I帧),帧率=25fps
音频编码:aac
音频参数:采样率=48kHz
切片预期时长10秒。如图5所示,给出了采用本发明对该文件切片后得到的所有切片文件的时长。切片时长的平均值为:9.75秒,标准差为:0.89。
图6为本发明的第三实施例的专利实施后的切片时长控制图。第三实施例中转码源文件参数为:
时长:02:13:33
视频编码:h.264
视频参数:逐行,profile=high,level=4.1,GOP长度不固定,自适应I帧插入(I帧出现频率:平均每秒1.08个I帧),帧率=25fps
音频编码:mp2
音频参数:采样率=48kHz
切片预期时长10秒。如图6所示,给出了采用本发明对该文件切片后得到的所有切片文件的时长。切片时长的平均值为:9.99秒,标准差为:0.27。由于I帧插入频率较高,所以切片的平均值非常接近预期值(10秒)。
图7为本发明的第四实施例的专利实施后的切片时长控制图。第四实施例中转码源文件参数为:
时长:01:59:33
视频编码:h264
视频参数:隔行,profile=high,level=2.0,GOP长度33±3,帧率=25fps
音频编码:mp2
音频参数:采样率=48kHz
切片预期时长10秒。图7给出了采用本发明对该文件切片后得到的前200个切片文件的时长。切片时长的平均值为:10.15秒,标准差为:0.41。
图8为本发明的第五实施例的专利实施后的切片时长控制图;第五实施例中转码源文件参数为:
时长:00:12:22
视频编码:h264
视频参数:隔行,profile=main,level=4.0,GOP长度不固定,自适应I帧插入(I帧出现频率:平均每秒0.7个I帧),帧率不固定
音频编码:mp2
音频参数:采样率=48kHz
切片预期时长10秒。图8给出了采用本发明对该文件切片后得到的切片文件的时长。切片时长的平均值为:10.03秒,标准差为:0.42。
综上,本发明以能够对无转码切片的精确度产生影响的参数值的不同组合所形成的五个源文件分别为第一实施例、第二实施例、第三实施例、第四实施例及第五实施例,对比专利实施前后切片时长平均值、切片时长波动范围及切片时长标准差,具体说明如下:
实施本专利技术前,两种常用无切码切片方法为:第一种方法按时间由小到大依次产生每个切片,每个切片的终点为尚未被切片的ES流中与当前切片起点距离最接近T的随机接入点。第二种方法每个切片(例如第k个)的终点为尚未被切片的ES流中与零点距离最接近kT的随机接入点。T为给定预期切片时长。
记ES流中视频流VSj的所有随机接入点的时间戳为{tj(0),tj(1),tj(2),……,tj(Nj)}则上述两种切片方法的伪代码如下:
现有方法1:
1)tj(nj,0)=0,Kj=0
2)对于k=1,2,……
2.1) n j , k = arg min n | | t j ( n ) - t j ( n j , k - 1 ) - T | |
subject to n属于{nj,k-1+1,……,Nj}
2.2)Kj←Kj+1
2.3)如果n=Nj
跳出循环。
3)返回{tj(nj,0),tj(nj,1),tj(nj,2),……,tj(nj,Kj)}
现有方法2:
1)tj(nj,0)=0,Kj=0
2)对于k=1,2,……
2.1) n j , k = arg min n | | t j ( n ) - t j ( n j , k - 1 ) - T | |
subject to n属于{nj,k-1+1,……,Nj}
2.2)Kj←Kj+1
2.3)如果n=Nj
跳出循环。
3)返回{tj(nj,0),tj(nj,1),tj(nj,2),……,tj(nj,Kj)}
表1五个多媒体源文件实施前后数据对比
如表1所示,多媒体源1至多媒体源5分别对应于实施例1至实施例5中的片源,M1为现有方法1,M2为现有方法2,OPT为本发明提出的最优方法,给定预期切片时长为10秒。对多媒体源1至多媒体源5分别实施现有方法1、现有方法2及本发明提出的最优方法进行切片,所得的切片又分别以“切片时长平均值”、“切片时长波动范围”、“切片时长标准差”作比较。其中,每组比较的最优结果用粗体字标识。
实验结果显示本发明相对现有方法1及2具有优势,以多媒体源3为例,实施现有方法1,所得切片时长波动范围为:9至10.48,实施现有方法2,所得切片时长波动范围为:3至10.92,由于切片文件大小波动较大,使得对不同切片文件进行操作所消耗的时间可能相差较多,这对播放器的缓冲机制提出了更高的要求;另由于所生成的每个切片文件的大小不相近,则终端在下载切片文件之前无法对切片文件的大小做出较准确的估计,如果该已分配的动态内存空间过小,终端需要在动态内存用尽时停止下载,重新开辟新的内存空间,这会使系统运行不够稳定。
而实施本发明最优方法,所得切片时长波动范围为:9.52至10.48,从表1的数据可以看出,本切片技术实施后,多媒体源3的切片时长的标准差较之现有方法1及现有方法2时比较,分别下降了50%和84%,波动的范围已经明显变小,切片精准度得到显著提升。
综上可得,本发明提供的方法及系统,生成的切片文件大小波动最小,符合HLS协议的要求,即能使隶属于同一多媒体流的不同切片时长尽可能地接近,由于不同切片时长相近,使终端对不同切片文件进行操作所消耗的时间基本相近,从而降低了对终端播放器的缓冲机制的要求;因为每个切片文件的大小相近,终端在下载切片文件之前可以对切片文件的大小做出较准确的估计,使得终端能根据切片大小的估计值为每个切片一次性分配足够大的动态内存空间,进而保证了系统运行的稳定性,使切片文件的播放更为流畅,提高用户观看体验的质量;且。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种流媒体切片方法,其特征是,该方法包括以下步骤:
a)解析流媒体ES流,取得PTS及DTS信息,进而得到流媒体ES流的随机切入点的时间戳序列;
b)根据所述随机切入点的时间戳序列及给定预期切片时长,以切片后所得各切片时长与给定预期切片时长的差值序列中的最大值最小为优化目标,通过采用最小最大(minimax)数值优化方法的第一切片计算模型,计算得出流媒体ES流的切片时间戳的最佳序列值;以及
c)依据所述计算得出的切片时间戳的最佳序列值,对流媒体ES流进行切片。
2.根据权利要求1所述的流媒体切片方法,其特征是,采用所述流媒体切片方法生成的切片符合HLS协议要求。
3.根据权利要求1所述的流媒体切片方法,其特征是,所述ES流为音频ES流,所述音频ES流的随机切入点为每一音频帧的起始样本。
4.根据权利要求1所述的流媒体切片方法,其特征是,所述ES流为视频ES流,所述视频ES流的随机切入点为I帧或IDR帧。
5.根据权利要求4所述的流媒体切片方法,其特征是,所述的步骤c)后,还包括以下步骤:
d)解析音频流,取得PTS及DTS信息,进而得到音频流的随机切入点的时间戳序列;
e)根据步骤b)取得的ES流的切片时间戳的最佳序列值及步骤d)取得的音频流的随机切入点的时间戳序列,通过与相应视频ES流切片的最佳切片时间戳的序列值最相近原则的第二切片计算模型,计算得出音频流的切片时间戳的最佳序列值;
f)依据所述计算得出的音频流的切片时间戳的最佳序列值,对音频流进行切片;以及
g)将根据步骤c)取得的视频ES流切片及根据步骤f)取得的音频流切片对应进行音视频封装,生成m3u8流媒体文件。
6.根据权利要求5所述的流媒体切片方法,其特征是,所述的步骤d)中,音频流的随机切入点为每一音频帧的起始样本。
7.根据权利要求5所述的流媒体切片方法,其特征是,所述的步骤e)中,所述与相应视频ES流切片的最佳切片时间戳的序列值最相近原则的第二切片计算模型的数学表达式为:
对每个k=1,2,……,Kj,依次执行
s.t m>mi,j,k-1
根据计算得出的mi,j,k序列值,得到第i个音频流ASi的切片时间戳序列值: {ti,j(mi,j,0),ti,j(mi,j,1),ti,j(mi,j,2),……,ti,j(mi,j,Kj)},
其中:
{ti(0),ti(1),ti(2),……,ti(Mi)}:第i个音频流ASi的随机切入点的时间戳,ti(0)=0,ti(Mi)=L,L为音频流的时长
Kj:音频流的切片个数,且等于视频ES流的切片个数
mi,j,k:音频ES流的切片时间戳的序号,属于集合{0,1,2,……,Mi},对所有k,0≤k≤Kj,mi,j,0=0,mi,j,Kj=Mi
tj(nj,k):视频流VSj的切片时间戳
ti,j(mi,j,k-1):第k个切片的起始时间戳
ti,j(mi,j,k):第k个切片的结束时间戳 。
8.一种流媒体切片系统,其特征是,该系统包括以下装置:
第一解析装置,用以解析流媒体ES流,取得PTS及DTS信息,进而得到流媒体ES流的随机切入点的时间戳序列;
第一切片计算装置,连接于所述第一解析装置,用以根据所述随机切入点的时间戳序列及给定预期切片时长,以切片后所得各切片时长与给定预期切片时长的差值序列中的最大值最小为优化目标,通过采用最小最大数值优化方法的第一切片计算模型,计算得出流媒体ES流的切片时间戳的最佳序列值;以及
第一切片装置,连接于所述第一切片计算装置,用以依据所述计算得出的切片时间戳的最佳序列值,对流媒体ES流进行切片。
9.根据权利要求8所述的流媒体切片系统,其特征是,采用所述流媒体切片系统生成的切片符合HLS协议要求。
10.根据权利要求8所述的流媒体切片系统,其特征是,所述ES流为音频ES流,所述音频ES流的随机切入点为每一音频帧的起始样本。
11.根据权利要求8所述的流媒体切片系统,其特征是,所述ES流为视频ES流,所述视频ES流的随机切入点为I帧或IDR帧。
12.根据权利要求11所述的流媒体切片系统,其特征是,所述的流媒体切片系统还包括以下装置:
第二解析装置,用以解析音频流,取得PTS及DTS信息,进而得到音频流的随机切入点的时间戳序列;
第二切片计算装置,分别连接于所述第一切片计算装置及第二解析装置,用以根据所述第一切片计算装置得出的ES流的切片时间戳的最佳序列值及第二解析装置取得的音频流的随机切入点的时间戳序列,通过与相应视频ES流切片的最佳切片时间戳的序列值最相近原则的第二切片计算模型,计算得出音频流的切片时间戳的最佳序列值;
第二切片装置,连接于所述第二切片计算装置,用以依据所述计算得出的音频流的切片时间戳的最佳序列值,对音频流进行切片;以及
音视频封装装置,分别连接于所述第一切片装置及第二切片装置,用以将第一切片装置取得的视频ES流切片及第二切片装置取得的音频流切片对应进行音视频封装,生成m3u8流媒体文件。
13.根据权利要求12所述的流媒体切片系统,其特征是,所述的第二切片计算装置中,音频流的随机切入点为每一音频帧的起始样本。
14.根据权利要求12所述的流媒体切片系统,其特征是,所述第二切片计算装置中,所述与相应视频ES流切片的最佳切片时间戳的序列值最相近原则的第二切片计算模型的数学表达式为:
对每个k=1,2,……,Kj,依次执行
s.t m>mi,j,k-1
根据计算得出的mi,j,k序列值,得到第i个音频流ASi的切片时间戳序列值:{ti,j(mi,j,0),ti,j(mi,j,1),ti,j(mi,j,2),……,ti,j(mi,j,Kj)},
其中:
{ti(0),ti(1),ti(2),……,ti(Mi)}:第i个音频流ASi的随机切入点的时间戳,ti(0)=0,ti(Mi)=L,L为音频流的时长
Kj:音频流的切片个数,且等于视频ES流的切片个数
mi,j,k:音频ES流的切片时间戳的序号,属于集合{0,1,2,……,Mi},对所有k,0≤k≤Kj,mi,j,0=0,mi,j,Kj=Mi
tj(nj,k):视频流VSj的切片时间戳
ti,j(mi,j,k-1):第k个切片的起始时间戳
ti,j(mi,j,k):第k个切片的结束时间戳 。
CN201210501658.1A 2012-11-29 2012-11-29 一种流媒体切片方法及系统 Active CN102932670B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210501658.1A CN102932670B (zh) 2012-11-29 2012-11-29 一种流媒体切片方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210501658.1A CN102932670B (zh) 2012-11-29 2012-11-29 一种流媒体切片方法及系统

Publications (2)

Publication Number Publication Date
CN102932670A CN102932670A (zh) 2013-02-13
CN102932670B true CN102932670B (zh) 2015-09-02

Family

ID=47647354

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210501658.1A Active CN102932670B (zh) 2012-11-29 2012-11-29 一种流媒体切片方法及系统

Country Status (1)

Country Link
CN (1) CN102932670B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104023278B (zh) * 2013-03-01 2018-08-10 联想(北京)有限公司 流媒体数据处理方法和电子设备
CN103442259B (zh) * 2013-08-21 2017-02-22 杭州浦禾通信技术有限公司 媒体数据的重组方法和装置
CN103686245B (zh) * 2013-11-22 2017-03-15 乐视致新电子科技(天津)有限公司 一种基于hls协议的点播与直播切换方法和装置
CN104023244A (zh) * 2014-05-29 2014-09-03 深圳市云宙多媒体技术有限公司 一种cdn系统中流媒体数据的切片方法和装置
CN105282627B (zh) * 2014-07-22 2019-09-10 南京中兴新软件有限责任公司 一种获取直播视频切片的方法及服务器
CN104301805B (zh) * 2014-09-26 2018-06-01 北京奇艺世纪科技有限公司 一种视频时间长度的估计方法和装置
FR3031862B1 (fr) * 2015-01-16 2017-02-17 Sagemcom Broadband Sas Procede de transmission d'un flux de donnees utilisant un protocole de diffusion en direct.
CN105357544A (zh) * 2015-10-29 2016-02-24 浪潮软件集团有限公司 一种基于hls的多媒体文件处理方法及服务器
CN105898319A (zh) * 2015-12-22 2016-08-24 乐视云计算有限公司 视频转码方法和装置
CN105933282A (zh) * 2016-03-30 2016-09-07 深圳市宽宏科技有限公司 一种基于ott业务的视音屏码流自适应的方法
CN106911941B (zh) * 2017-03-02 2019-08-16 上海幻电信息科技有限公司 一种自适应视频切片方法
CN107071529B (zh) * 2017-03-29 2018-10-26 咪咕视讯科技有限公司 一种hls视频播放方法、终端及服务器
CN111222140B (zh) * 2018-11-26 2022-04-26 中国电信股份有限公司 安全内存分配方法和装置
CN110113623B (zh) * 2019-04-18 2021-07-27 浙江工业大学 一种基于sip协议的音视频切片传输平台
CN111866542B (zh) * 2019-04-30 2022-11-04 腾讯科技(深圳)有限公司 音频信号处理方法、多媒体信息处理方法、装置及电子设备
CN113709412B (zh) * 2020-05-21 2023-05-19 中国电信股份有限公司 直播流处理方法、装置和系统、计算机可读存储介质
CN111726651A (zh) * 2020-07-03 2020-09-29 浪潮云信息技术股份公司 一种基于hils协议的音视频流直播方法及系统
CN113259694A (zh) * 2021-04-22 2021-08-13 北京金山云网络技术有限公司 数据切片方法、装置和电子设备
CN114697025A (zh) * 2022-04-12 2022-07-01 京东方科技集团股份有限公司 数据加解密方法及相关设备
CN114979721B (zh) * 2022-05-18 2024-02-23 咪咕文化科技有限公司 视频切片方法、装置、设备及存储介质
CN115243077A (zh) * 2022-07-21 2022-10-25 平安信托有限责任公司 音视频资源点播方法、装置、计算机设备及存储介质
CN115695902A (zh) * 2022-11-07 2023-02-03 百视通网络电视技术发展有限责任公司 盲人无障碍电影音频处理方法、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102333089A (zh) * 2011-09-26 2012-01-25 南京邮电大学 基于超文本传输协议流化的多码率媒体流自适应控制方法
CN102572555A (zh) * 2012-01-16 2012-07-11 深圳市同洲视讯传媒有限公司 一种实现hls客户端视频直播回看的方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664020B2 (en) * 2005-11-07 2010-02-16 Hanan Luss Bandwidth allocation for video-on-demand networks
US8379851B2 (en) * 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US8819269B2 (en) * 2010-06-30 2014-08-26 Cable Television Laboratories, Inc. Adaptive bit rate method and system using retransmission and replacement

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102333089A (zh) * 2011-09-26 2012-01-25 南京邮电大学 基于超文本传输协议流化的多码率媒体流自适应控制方法
CN102572555A (zh) * 2012-01-16 2012-07-11 深圳市同洲视讯传媒有限公司 一种实现hls客户端视频直播回看的方法及系统

Also Published As

Publication number Publication date
CN102932670A (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
CN102932670B (zh) 一种流媒体切片方法及系统
JP6928038B2 (ja) ライブビデオエンコーディングおよびストリーミングにおけるフレーム複写およびフレーム拡張のためのシステムおよび方法
US10880620B2 (en) Playback synchronization across playback devices
EP3136732B1 (en) Converting adaptive bitrate chunks to a streaming format
JP6054398B2 (ja) 適応httpストリーミングのための表示の改善された切り替えを提供する切替シグナリング方法
US9609049B2 (en) Frame-rate conversion in a distributed computing system
KR102009124B1 (ko) 이벤트 스트리밍 프레젠테이션 확립
US20140140417A1 (en) System and method for providing alignment of multiple transcoders for adaptive bitrate streaming in a network environment
US9521469B2 (en) Carriage of quality information of content in media formats
JP2006115477A (ja) メディアストリームから得られるメディアの提示を行う方法およびシステム
CN102812674A (zh) 适应的流方法和装置
CN102714624A (zh) 用于使用分割的自适应流传输的方法和装置
CN109792547B (zh) 将视频内容从服务器传送至客户端设备的方法
US10231007B2 (en) Transmission device, transmitting method, reception device, and receiving method
Timmerer et al. Over-the-top content delivery: State of the art and challenges ahead
Jung et al. A client-driven media synchronization mechanism for RTP packet-based video streaming
Gorostegui et al. Broadcast delivery system for broadband media content
CN103222277B (zh) 基于用于确定内容质量的多个元素的自适应流传输的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant