CN110809179A - Hls协议下切换直播时移时间轴的方法及系统 - Google Patents
Hls协议下切换直播时移时间轴的方法及系统 Download PDFInfo
- Publication number
- CN110809179A CN110809179A CN201911044796.XA CN201911044796A CN110809179A CN 110809179 A CN110809179 A CN 110809179A CN 201911044796 A CN201911044796 A CN 201911044796A CN 110809179 A CN110809179 A CN 110809179A
- Authority
- CN
- China
- Prior art keywords
- time
- time shift
- pts value
- offset
- terminal
- 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
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/25—Management 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/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种HLS协议下切换直播时移时间轴的方法及系统,涉及视频播放领域,该方法包括流媒体服务器对媒体流进行切片生成TS分片时,记录每一个关键帧切入点的起始PTS值;当进行时移操作时,基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值;基于目标时移点的PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片,从查找到的TS分片开始,生成对应的m3u8文件,并将生成的m3u8文件下发至终端。本发明中终端仅需一次请求便能得到实际时移想要的分片,减少终端和服务器间额外的建立链接次数,大幅度优化起播速度。
Description
技术领域
本发明涉及视频播放领域,具体涉及一种HLS协议下切换直播时移时间轴的方法及系统。
背景技术
基于高带宽利用率以及很强的网络适应能力,HLS(HTTP Live Streaming,基于HTTP的媒体流传输协议)在OTT(Over The Top,在Internet上层)业务和IPTV(InternetProtocol Television,交互式网络电视)系统中的应用也越来越广泛。HLS协议主要特点是将大媒体流切分成多个连续的小TS分片,并将这些分片信息写入m3u8文件中,终端通过解析m3u8文件,获取TS分片信息后,再一个个请求这些分片来实现连续的播放。
在直播转时移业务中,终端会使用平台提供的时移地址,拼接用户操作的时移时间点,然后向服务器请求,服务端则会返回一个时移m3u8文件,此m3u8文件中的第一个分片为接近终端请求的时移时间点的分片。
现有HLS协议下的时移技术中,一般采用以下方法实现:
(1)操作时移后,终端使用服务器规定的时移字段进行拼接,现有技术方案拼接的时移内容主要包括以下a和b两种:
a.拼接时移的绝对时间戳,即相对当前系统时间操作的时移时间点,然后向服务器进行请求,例如playseek=20190522T193352Z,则表示请求的时移点是终端系统时间2019年5月22日19点33分52秒;
b.拼接时移的相对时间,即终端上的时移点与终端当前系统时间的时间偏移量,然后向服务器进行请求,例如npt=3600,则表示相对当前终端系统时间偏移3600秒;
(2)服务端收到终端请求后,根据时移字段内容,相对当前直播系统时间,生成对应的时移时间的m3u8文件返回给终端,此m3u8文件中,第一个分片为接近时移时间的分片。
(3)终端解析m3u8,根据进时移的场景进行区分:
1.定位播放进时移:若时移点解析出来的分片序号大于当前分片序号,则说明直播时延过高,若直接下载第一个分片进行播放,则会产生“内容快进”的现象,使用户无法回看当前播放内容,终端需将时移时间往左偏移合适的时间间隔,然后返回(1)重新请求;
2.暂停进时移,操作恢复播放:若解析出来的分片序号与当前分片序号不连续,则说明当前时移m3u8的分片与暂停下载的分片不连续,若直接播放,则会出现内容跳变的现象,终端需将时移时间往左偏移合适的时间间隔,然后返回(1)重新请求;
可以发现,现有技术中存在重复建立链接过程,且终端对于同一时移点,还可能存在不同的内容表现,其根本原因在于HLS本身具有的时延性,从而导致当前直播的分片并非是当前系统时间对应的分片,存在一个时间偏差,同时,当前播放系统中,终端和服务端的时移时间计算都是基于各自的当前系统直播时间。
同时,当进行定位播放时移步长过短时,终端若不做对应的处理,则会出现“快进播放”的现象。终端为了保证此异常现象不会发生,各厂家则会有自己对应的算法实现,但本质上都是对时间戳的处理即往左偏移,尽量包含时移点对应的实际时间,这会导致,各终端厂商在处理同一时间点的时移时,表现出来的播放内容却不一致,且时移起播速度慢。在直播暂停恢复过程中,需要将时移分片与当前直播分片衔接上,当终端处理的时间太往左偏移时(例如暂停时间再往左偏移5分钟),容易导致恢复播放时,由于请求的时移时间不合理,一直在等待新的分片,导致终端播放完一段内容后,进入缓冲状态。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种HLS协议下切换直播时移时间轴的方法,终端仅需一次请求便能得到实际时移想要的分片,减少终端和服务器间额外的建立链接次数,大幅度优化起播速度。
为达到以上目的,本发明采取的技术方案是,包括:
流媒体服务器对媒体流进行切片生成TS分片时,记录每一个关键帧切入点的起始PTS值;
当进行时移操作时,基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值;
基于目标时移点的PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片,从查找到的TS分片开始,生成对应的m3u8文件,并将生成的m3u8文件下发至终端。
在上述技术方案的基础上,所述流媒体服务器对媒体流进行切片生成TS分片时,记录每一个关键帧切入点的起始PTS值,具体步骤包括:
流媒体服务器的HLS流媒体服务系统中,对所接收的音视频媒体流进行编码封装;
对封装后的媒体流进行切片,解析记录切入点视频帧的PTS时间,作为每个切入点对应TS分片的起始PTS值;
扩展HLS协议的标签字段,用于标志每个TS分片的起始PTS值。
在上述技术方案的基础上,所述基于目标时移点的PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片,从查找到的TS分片开始,生成对应的m3u8文件,具体步骤包括:
终端中,将得到的目标时移点的PTS值拼接至时移地址中,然后向服务器发起时移请求;
服务器接收终端所发送的时移请求,基于时移请求中时移地址内的目标时移点PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片;
从查找到的TS分片开始,获取连续的TS分片,生成对应的m3u8文件。
在上述技术方案的基础上,所述当进行时移操作时,基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,其中,若时移操作为拖动进度条操作,则对于本次时移偏移量的计算过程为:
当shifttime≤minTime时,则offset为0,终端重新进入直播播放;
当shifttime>timeshiftLen时,则offset为currentPlayTime-(now-timeshiftLen);
当minTime<shifttime≤timeshiftLen时,则offset为currentPlayTime–targetTime;
其中,offset为本次时移偏移量,shifttime为进行时移操作后当前频道发生的时移时长,shifttime=now-targetTime,now为当前终端直播系统时间,targetTime为进行时移操作后目标时移点对应的终端系统时间,minTime为当前频道可接受的最小时移时长,currentPlayTime为进行时移操作前播放画面对应的终端系统时间,timeshiftLen为当前频道支持的最大时移时长。
在上述技术方案的基础上,所述当进行时移操作时,基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,其中,若时移操作为暂停恢复播放操作,则对于本次时移偏移量的计算过程为:
当shifttime≤timeshiftLen时,则offset为0;
当shifttime>timeshiftLen时,则offset为currentPlayTime-(now-timeshiftLen);
其中,offset为本次时移偏移量,shifttime为进行时移操作后当前频道发生的时移时长,shifttime=now-targetTime,now为当前终端直播系统时间,targetTime为进行时移操作后目标时移点对应的终端系统时间,timeshiftLen为当前频道支持的最大时移时长,currentPlayTime为进行时移操作前播放画面对应的终端系统时间。
本发明提供的一种HLS协议下切换直播时移时间轴的系统,包括流媒体服务器和终端;
所述流媒体服务器包括:
记录模块,其用于在流媒体服务器对媒体流进行切片生成TS分片时,记录每一个关键帧切入点的起始PTS值;
查找模块,其用于基于目标时移点的PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片,从查找到的TS分片开始,生成对应的m3u8文件,并将生成的m3u8文件下发至终端;
所述终端包括:
计算模块,其用于当进行时移操作时,基于当前播放视频帧对应的PTS值,以及本次时移偏移量,得到目标时移点的PTS值;
请求模块,其用于将计算模块得到的目标时移点的PTS值拼接至时移地址中,然后向服务器发起时移请求。
在上述技术方案的基础上,在流媒体服务器对媒体流进行切片生成TS分片时,所述记录模块记录每一个关键帧切入点的起始PTS值,具体步骤包括:
流媒体服务器的HLS流媒体服务系统中,对所接收的音视频媒体流进行编码封装;
对封装后的媒体流进行切片,解析记录切入点视频帧的PTS值,作为每个切入点对应TS分片的起始PTS值;
扩展HLS协议的标签字段,用于标志每个TS分片的起始PTS时间。
在上述技术方案的基础上,所述查找模块基于目标时移点的PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片,从查找到的TS分片开始,生成对应的m3u8文件,具体过程包括:
服务器接收终端所发送的时移请求,基于时移请求中时移地址内的目标时移点PTS值,查找服务器中起始PTS值最接近该PTS时间的TS分片;
从查找到的TS分片开始,获取连续的TS分片,生成对应的m3u8文件。
在上述技术方案的基础上,当进行时移操作时,所述计算模块基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,其中,若时移操作为拖动进度条操作,则对于本次时移偏移量的计算过程为:
当shifttime≤minTime时,则offset为0,终端重新进入直播播放;
当shifttime>timeshiftLen时,则offset为currentPlayTime-(now-timeshiftLen);
当minTime<shifttime≤timeshiftLen时,则offset为currentPlayTime–targetTime;
其中,offset为本次时移偏移量,shifttime为进行时移操作后当前频道发生的时移时长,shifttime=now-targetTime,now为当前终端直播系统时间,targetTime为进行时移操作后目标时移点对应的终端系统时间,minTime为当前频道可接受的最小时移时长,currentPlayTime为进行时移操作前播放画面对应的终端系统时间,timeshiftLen为当前频道支持的最大时移时长。
在上述技术方案的基础上,当进行时移操作时,所述计算模块基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,其中,若时移操作为暂停恢复播放操作,则对于本次时移偏移量的计算过程为:
当shifttime≤timeshiftLen时,则offset为0;
当shifttime>timeshiftLen时,则offset为currentPlayTime-(now-timeshiftLen);
其中,offset为本次时移偏移量,shifttime为进行时移操作后当前频道发生的时移时长,shifttime=now-targetTime,now为当前终端直播系统时间,targetTime为进行时移操作后目标时移点对应的终端系统时间,timeshiftLen为当前频道支持的最大时移时长,currentPlayTime为进行时移操作前播放画面对应的终端系统时间。
与现有技术相比,本发明的优点在于:切片生成TS分片时,记录每一个TS分片的起始PTS值,当进行时移操作时,基于当前播放视频帧对应的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,从而当终端进行时移操作时,服务器和终端通过PTS值来实现直播时移时间轴的精准对齐,且终端仅需一次请求便能得到实际时移想要的分片,减少终端和服务器间额外的建立链接次数,大幅度优化起播速度,并且能规范终端表现,在直播起播TS分片统一的情况下,操作同一时间点的时移,各终端播放的内容也一致。
附图说明
图1为本发明实施例中一种HLS协议下切换直播时移时间轴的方法的流程图;
图2为本发明实施例中流媒体服务器对媒体流进行切片的流程图;
图3为本发明实施例中生成m3u8文件的示意图;
图4为本发明实施例中一种HLS协议下切换直播时移时间轴的系统的结构示意图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
本发明实施例提供一种HLS协议下切换直播时移时间轴的方法,基于PTS(Presentation Time Stamp,显示时间戳)值实现时移操作时的时间轴精准对齐。本发明实施例还相应的提供了一种HLS协议下切换直播时移时间轴的系统。需要说明的是:本发明实施例中,PTS值的概念对应为一个33位比特值,该值用于视频流的显示单元在系统目标解码器中对应显示时间的计算;在对应TS流相应规范中,PTS值的计算如下:
27000000-810≤system_clock_frequency≤27000000+810
PTS(k)=((system_clock_frequency×tpn(k)DIV300)%×233
其中,PTS(k)表示PTS值,tpn(k)为显示单元pn(k)的显示时间,单元为ms,DIV表示散度。对上述公式进行换算,忽略系统时钟频率上下浮动的810,当PTS值改变90时,对应的显示时间改变为1ms,PTS值改变90000时,对应的显示单元的显示时间改变为1s。
同时,PTS值与显示视频帧具有一一对应关系;在时移过程中,PTS值跟播放器进度条上显示的系统时间(系统时间为终端时间,是跟时间服务器同步后的北京时间,如进度条显示的系统时间,左边界为17:00,右边界为19:00)具有对应关系;在进行时移操作时,播放器获取当前终端直播系统时间以及当前播放视频帧的PTS值,例如当前直播系统时间为19:00,当前播放视频帧对应的PTS值为7339883420,此时当前直播时间19:00跟PTS值建立了一个对应关系,假设时移点为18:00,则发生了一小时的时移,对应请求的PTS即为19点对应的PTS值减去1小时对应的PTS改变值,即请求目标点PTS值为7339883420-90000*3600=7015883420(1s对应的PTS改变值为90000,1h对应的PTS改变值为90000*3600);在时移过程中,终端播放器进度条显示的终端系统时间与PTS值具有对应的换算关系,在时移完毕后,正常播放过程中,会实时获取当前视频帧的PTS值,以更新对应进度条对应的终端时间,同时,在时移操作过程中,终端根据时移偏移量来换算目标点的PTS值,向服务器进行请求目标点PTS值对应的TS分片。
参见图1所示,本发明实施例提供的一种HLS协议下切换直播时移时间轴的方法可选实施例中,本发明实施例的方法具体包括以下步骤:
S1:流媒体服务器对媒体流进行切片生成TS分片时,记录每一个关键帧切入点的起始PTS值。
本发明实施例中,因为TS分片是由服务器分发给终端,故对于媒体流的切片操作,在服务器中进行。参见图2所示,步骤S1的具体步骤包括:
S101:流媒体服务器的HLS流媒体服务系统中,对所接收的音视频媒体流进行编码封装;
S102:对封装后的媒体流进行切片,在进行切片操作时,需要选取合适的关键帧切入点,尽量保证切分出等时长的TS分片,然后解析记录关键帧切入点的PTS值,作为每个切入点对应TS分片的起始PTS值,因此,每切分完一个TS分片,除了输出HLS协议规范要求的信息外,均输出一个<PTS,.ts>信息对,如<7715091740,001.ts>,用于表示当前TS分片对应的起始PTS值。
S103:扩展HLS协议的标签字段,用于标志每个TS分片的起始PTS值。对于每一个TS分片,根据m3u8生成规则,除了生成HLS协议本身支持的标签字段外,扩展EXT-X-FIRST-PTS-VALUE标签字段,用以标志当前TS分片的起始PTS值,从而对应生成的m3u8文件的内容可以为:
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10.0,
#EXT-X-FIRST-PTS-VALUE:7715091740
001.ts
#EXTINF:10.0,
#EXT-X-FIRST-PTS-VALUE:7714191740
002.ts
S2:在终端与时钟服务器同步后,用户开始进入播放,当进行时移操作时,基于当前播放视频帧对应的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,本发明中,时移偏移量指终端中,当前播放对应的系统时间与用户时移操作后将播出的系统时间点的差值,例如,当前播放画面对应的时间为12:00,用户拖动进度条到11:00进行播放,则本次时移偏移量为1小时。
S3:基于目标时移点的PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片,从查找到的TS分片开始,生成对应的m3u8文件,并将生成的m3u8文件下发至终端。参见图3所示,该步骤具体为:
S301:终端中,将得到的目标时移点的PTS值拼接至时移地址中,然后向服务器发起时移请求;
S302:服务器接收终端所发送的时移请求,基于时移请求中时移地址内的目标时移点对应的PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片。
假设时移请求的时移地址中,拼接目标时移点PTS时间的特殊字段为shifttimePts,则终端发送给服务器的时移请求,可以为http://IP:port/index.m3u8?shifttimePts=7715091740,服务器收到终端发送的时移请求后,解析shifttimePts字段,获取时移点的PTS值为7715091740。
S303:从查找到的TS分片开始,获取连续的TS分片,生成对应的m3u8文件。
本发明实施例的HLS协议下切换直播时移时间轴的方法,切片生成TS分片时,记录每一个TS分片的起始PTS值,当进行时移操作时,基于当前播放视频帧对应的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,从而当终端进行时移操作时,服务器和终端间通过PTS实现直播时移时间轴的精准对齐,且终端仅需一次请求便能得到实际时移想要的分片,减少终端和服务器间额外的建立链接次数,大幅度优化起播速度,并且能规范终端表现,在直播起播TS分片统一的情况下,操作同一时间点的时移,实现同样内容的播放。
可选地,在上述图1对应实施例的基础上,本发明实施例提供的一种HLS协议下切换直播时移时间轴的方法的第一个可选实施例中,当进行时移操作时,基于当前播放视频帧对应的PTS值,以及本次时移偏移量offset(取值分正负,单位为毫秒),得到目标时移点的PTS,根据RFC《ISO/IEC 13818-1》文档中PTS与显示时间的转换关系,对应显示时间变化1ms左右时,PTS值变化90,因此目标时移点的PTS值为curPTS–offset*90,curPTS为进行时移操作前播放画面视频帧的PTS值。
若时移操作为拖动进度条操作,则对于本次时移偏移量的计算过程为:
当shifttime≤minTime时,则offset为0,终端重新进入直播播放;
当shifttime>timeshiftLen时,则offset为currentPlayTime-(now-timeshiftLen);
当minTime<shifttime≤timeshiftLen时,则offset为currentPlayTime–targetTime;
其中,offset为本次时移偏移量,shifttime为进行时移操作后当前频道发生的时移时长(取值分正负),shifttime=now-targetTime,now为当前终端直播系统时间(例如终端上正在观看直播,此时终端的系统时间为12:00,则当前终端直播系统时间为12:00),targetTime为进行时移操作后目标时移点对应的终端系统时间,minTime为当前频道可接受的最小时移时长,currentPlayTime为进行时移操作前播放画面对应的终端系统时间,timeshiftLen为当前频道支持的最大时移时长。
对于上述shifttime>timeshiftLen时的情况,例如,当前终端系统时间为12:00,当前频道支持的最大回看时长为2小时,表明可观看范围为10:00~12:00的内容,若正在播放11:00的内容,此时向左拖动进度条后产生的时移时长为3小时,则说明时移时长大于当前频道支持的最大时移时长,需触发左边界保护,则给用户播放10:00处的内容,本次时移偏移量为11:00点到10:00点的差值,即1小时,对应3600000毫秒。
对于上述shifttime≤minTime时的情况,用户在往右拖动进度条时,可能出现进行时移操作后目标时移点对应的终端系统时间大于当前终端直播系统时间,此时shifttime为负值,则触发右边界保护,此时终端重新进入直播播放。
进一步的,当进行时移操作时,基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,其中,若时移操作为暂停恢复播放操作,则对于本次时移偏移量的计算过程为:
当shifttime≤timeshiftLen时,则offset为0;
当shifttime>timeshiftLen时,则offset为currentPlayTime-(now-timeshiftLen);
其中,offset为本次时移偏移量,shifttime为进行时移操作后当前频道发生的时移时长,shifttime=now-targetTime,now为当前终端直播系统时间,targetTime为进行时移操作后目标时移点对应的终端系统时间,timeshiftLen为当前频道支持的最大时移时长,currentPlayTime为进行时移操作前播放画面对应的终端系统时间。
参见图4所示,本发明实施例提供的一种HLS协议下切换直播时移时间轴的系统的实施例中,该系统流媒体服务器和终端;
所述流媒体服务器包括:
记录模块,其用于在流媒体服务器对媒体流进行切片生成TS分片时,记录每一个关键帧切入点的起始PTS值;
查找模块,其用于基于目标时移点的PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片,从查找到的TS分片开始,生成对应的m3u8文件,并将生成的m3u8文件下发至终端;
所述终端包括:
计算模块,其用于当进行时移操作时,基于当前播放视频帧对应的PTS值,以及本次时移偏移量,得到目标时移点的PTS值;
请求模块,其用于将计算模块得到的目标时移点的PTS值拼接至时移地址中,然后向服务器发起时移请求。
可选的,在上述HLS协议下切换直播时移时间轴的系统的可选实施例基础上,在流媒体服务器对媒体流进行切片生成TS分片时,记录模块记录每一个关键帧切入点的起始PTS值,具体步骤包括:
流媒体服务器的HLS流媒体服务系统中,对所接收的音视频媒体流进行编码封装;
对封装后的媒体流进行切片,解析记录切入点视频帧的PTS值,作为每个切入点对应TS分片的起始PTS值;
扩展HLS协议的标签字段,用于标志每个TS分片的起始PTS时间。
查找模块基于目标时移点的PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片,从查找到的TS分片开始,生成对应的m3u8文件,具体过程包括:
服务器接收终端所发送的时移请求,基于时移请求中时移地址内的目标时移点PTS值,查找服务器中起始PTS值最接近该PTS时间的TS分片;
从查找到的TS分片开始,获取连续的TS分片,生成对应的m3u8文件。
当进行时移操作时,计算模块基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,其中,若时移操作为拖动进度条操作,则对于本次时移偏移量的计算过程为:
当shifttime≤minTime时,则offset为0,终端重新进入直播播放;
当shifttime>timeshiftLen时,则offset为currentPlayTime-(now-timeshiftLen);
当minTime<shifttime≤timeshiftLen时,则offset为currentPlayTime–targetTime;
其中,offset为本次时移偏移量,shifttime为进行时移操作后当前频道发生的时移时长,shifttime=now-targetTime,now为当前终端直播系统时间,targetTime为进行时移操作后目标时移点对应的终端系统时间,minTime为当前频道可接受的最小时移时长,currentPlayTime为进行时移操作前播放画面对应的终端系统时间,timeshiftLen为当前频道支持的最大时移时长。
当进行时移操作时,计算模块基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,其中,若时移操作为暂停恢复播放操作,则对于本次时移偏移量的计算过程为:
当shifttime≤timeshiftLen时,则offset为0;
当shifttime>timeshiftLen时,则offset为currentPlayTime-(now-timeshiftLen);
其中,offset为本次时移偏移量,shifttime为进行时移操作后当前频道发生的时移时长,shifttime=now-targetTime,now为当前终端直播系统时间,targetTime为进行时移操作后目标时移点对应的终端系统时间,timeshiftLen为当前频道支持的最大时移时长,currentPlayTime为进行时移操作前播放画面对应的终端系统时间。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种HLS协议下切换直播时移时间轴的方法,其特征在于,包括以下步骤:
流媒体服务器对媒体流进行切片生成TS分片时,记录每一个关键帧切入点的起始PTS值;
当进行时移操作时,基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值;
基于目标时移点的PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片,从查找到的TS分片开始,生成对应的m3u8文件,并将生成的m3u8文件下发至终端。
2.如权利要求1所述的一种HLS协议下切换直播时移时间轴的方法,其特征在于,所述流媒体服务器对媒体流进行切片生成TS分片时,记录每一个关键帧切入点的起始PTS值,具体步骤包括:
流媒体服务器的HLS流媒体服务系统中,对所接收的音视频媒体流进行编码封装;
对封装后的媒体流进行切片,解析记录切入点视频帧的PTS时间,作为每个切入点对应TS分片的起始PTS值;
扩展HLS协议的标签字段,用于标志每个TS分片的起始PTS值。
3.如权利要求1所述的一种HLS协议下切换直播时移时间轴的方法,其特征在于,所述基于目标时移点的PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片,从查找到的TS分片开始,生成对应的m3u8文件,具体步骤包括:
终端中,将得到的目标时移点的PTS值拼接至时移地址中,然后向服务器发起时移请求;
服务器接收终端所发送的时移请求,基于时移请求中时移地址内的目标时移点PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片;
从查找到的TS分片开始,获取连续的TS分片,生成对应的m3u8文件。
4.如权利要求1所述的一种HLS协议下切换直播时移时间轴的方法,其特征在于,所述当进行时移操作时,基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,其中,若时移操作为拖动进度条操作,则对于本次时移偏移量的计算过程为:
当shifttime≤minTime时,则offset为0,终端重新进入直播播放;
当shifttime>timeshiftLen时,则offset为currentPlayTime-(now-timeshiftLen);
当minTime<shifttime≤timeshiftLen时,则offset为currentPlayTime–targetTime;
其中,offset为本次时移偏移量,shifttime为进行时移操作后当前频道发生的时移时长,shifttime=now-targetTime,now为当前终端直播系统时间,targetTime为进行时移操作后目标时移点对应的终端系统时间,minTime为当前频道可接受的最小时移时长,currentPlayTime为进行时移操作前播放画面对应的终端系统时间,timeshiftLen为当前频道支持的最大时移时长。
5.如权利要求1所述的一种HLS协议下切换直播时移时间轴的方法,其特征在于,所述当进行时移操作时,基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,其中,若时移操作为暂停恢复播放操作,则对于本次时移偏移量的计算过程为:
当shifttime≤timeshiftLen时,则offset为0;
当shifttime>timeshiftLen时,则offset为currentPlayTime-(now-timeshiftLen);
其中,offset为本次时移偏移量,shifttime为进行时移操作后当前频道发生的时移时长,shifttime=now-targetTime,now为当前终端直播系统时间,targetTime为进行时移操作后目标时移点对应的终端系统时间,timeshiftLen为当前频道支持的最大时移时长,currentPlayTime为进行时移操作前播放画面对应的终端系统时间。
6.一种HLS协议下切换直播时移时间轴的系统,其特征在于,包括流媒体服务器和终端;
所述流媒体服务器包括:
记录模块,其用于在流媒体服务器对媒体流进行切片生成TS分片时,记录每一个关键帧切入点的起始PTS值;
查找模块,其用于基于目标时移点的PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片,从查找到的TS分片开始,生成对应的m3u8文件,并将生成的m3u8文件下发至终端;
所述终端包括:
计算模块,其用于当进行时移操作时,基于当前播放视频帧对应的PTS值,以及本次时移偏移量,得到目标时移点的PTS值;
请求模块,其用于将计算模块得到的目标时移点的PTS值拼接至时移地址中,然后向服务器发起时移请求。
7.如权利要求6所述的一种HLS协议下切换直播时移时间轴的系统,其特征在于,在流媒体服务器对媒体流进行切片生成TS分片时,所述记录模块记录每一个关键帧切入点的起始PTS值,具体步骤包括:
流媒体服务器的HLS流媒体服务系统中,对所接收的音视频媒体流进行编码封装;
对封装后的媒体流进行切片,解析记录切入点视频帧的PTS值,作为每个切入点对应TS分片的起始PTS值;
扩展HLS协议的标签字段,用于标志每个TS分片的起始PTS时间。
8.如权利要求6所述的一种HLS协议下切换直播时移时间轴的系统,其特征在于,所述查找模块基于目标时移点的PTS值,查找服务器中起始PTS值最接近该PTS值的TS分片,从查找到的TS分片开始,生成对应的m3u8文件,具体过程包括:
服务器接收终端所发送的时移请求,基于时移请求中时移地址内的目标时移点PTS值,查找服务器中起始PTS值最接近该PTS时间的TS分片;
从查找到的TS分片开始,获取连续的TS分片,生成对应的m3u8文件。
9.如权利要求6所述的一种HLS协议下切换直播时移时间轴的系统,其特征在于,当进行时移操作时,所述计算模块基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,其中,若时移操作为拖动进度条操作,则对于本次时移偏移量的计算过程为:
当shifttime≤minTime时,则offset为0,终端重新进入直播播放;
当shifttime>timeshiftLen时,则offset为currentPlayTime-(now-timeshiftLen);
当minTime<shifttime≤timeshiftLen时,则offset为currentPlayTime–targetTime;
其中,offset为本次时移偏移量,shifttime为进行时移操作后当前频道发生的时移时长,shifttime=now-targetTime,now为当前终端直播系统时间,targetTime为进行时移操作后目标时移点对应的终端系统时间,minTime为当前频道可接受的最小时移时长,currentPlayTime为进行时移操作前播放画面对应的终端系统时间,timeshiftLen为当前频道支持的最大时移时长。
10.如权利要求6所述的一种HLS协议下切换直播时移时间轴的系统,其特征在于,当进行时移操作时,所述计算模块基于当前播放视频帧的PTS值,以及本次时移偏移量,得到目标时移点的PTS值,其中,若时移操作为暂停恢复播放操作,则对于本次时移偏移量的计算过程为:
当shifttime≤timeshiftLen时,则offset为0;
当shifttime>timeshiftLen时,则offset为currentPlayTime-(now-timeshiftLen);
其中,offset为本次时移偏移量,shifttime为进行时移操作后当前频道发生的时移时长,shifttime=now-targetTime,now为当前终端直播系统时间,targetTime为进行时移操作后目标时移点对应的终端系统时间,timeshiftLen为当前频道支持的最大时移时长,currentPlayTime为进行时移操作前播放画面对应的终端系统时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911044796.XA CN110809179A (zh) | 2019-10-30 | 2019-10-30 | Hls协议下切换直播时移时间轴的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911044796.XA CN110809179A (zh) | 2019-10-30 | 2019-10-30 | Hls协议下切换直播时移时间轴的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110809179A true CN110809179A (zh) | 2020-02-18 |
Family
ID=69489557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911044796.XA Pending CN110809179A (zh) | 2019-10-30 | 2019-10-30 | Hls协议下切换直播时移时间轴的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110809179A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114786065A (zh) * | 2022-03-29 | 2022-07-22 | 广州埋堆堆科技有限公司 | 一种基于FFmpeg的HLS视频播放进度精准切换方法 |
CN115022730A (zh) * | 2022-06-13 | 2022-09-06 | 北京达佳互联信息技术有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN115883916A (zh) * | 2022-12-09 | 2023-03-31 | 北京数码视讯软件技术发展有限公司 | 媒体频道切换方法、装置及电子设备 |
WO2024002264A1 (zh) * | 2022-06-29 | 2024-01-04 | 杭州海康威视数字技术股份有限公司 | 视频处理设备、进度条时间更新方法及装置、电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103517157A (zh) * | 2013-09-27 | 2014-01-15 | 武汉市烽视威科技有限公司 | 实现hls频道时移播放的方法及系统 |
CN103581693A (zh) * | 2013-11-12 | 2014-02-12 | 北京清源新创科技有限公司 | 面向互联网的基于分片传输的大尺度直播时移方法及系统 |
US20170272498A1 (en) * | 2016-03-21 | 2017-09-21 | Le Holdings (Beijing) Co., Ltd. | Streaming media file distribution method and system |
CN107707937A (zh) * | 2017-09-22 | 2018-02-16 | 烽火通信科技股份有限公司 | 基于hls协议的时移优化方法及系统 |
CN109040769A (zh) * | 2018-08-22 | 2018-12-18 | 广东省南方数字电视无线传播有限公司 | 基于hls协议的直播时移方法及装置 |
-
2019
- 2019-10-30 CN CN201911044796.XA patent/CN110809179A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103517157A (zh) * | 2013-09-27 | 2014-01-15 | 武汉市烽视威科技有限公司 | 实现hls频道时移播放的方法及系统 |
CN103581693A (zh) * | 2013-11-12 | 2014-02-12 | 北京清源新创科技有限公司 | 面向互联网的基于分片传输的大尺度直播时移方法及系统 |
US20170272498A1 (en) * | 2016-03-21 | 2017-09-21 | Le Holdings (Beijing) Co., Ltd. | Streaming media file distribution method and system |
CN107707937A (zh) * | 2017-09-22 | 2018-02-16 | 烽火通信科技股份有限公司 | 基于hls协议的时移优化方法及系统 |
CN109040769A (zh) * | 2018-08-22 | 2018-12-18 | 广东省南方数字电视无线传播有限公司 | 基于hls协议的直播时移方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114786065A (zh) * | 2022-03-29 | 2022-07-22 | 广州埋堆堆科技有限公司 | 一种基于FFmpeg的HLS视频播放进度精准切换方法 |
CN115022730A (zh) * | 2022-06-13 | 2022-09-06 | 北京达佳互联信息技术有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN115022730B (zh) * | 2022-06-13 | 2024-04-30 | 北京达佳互联信息技术有限公司 | 数据传输方法、装置、电子设备及存储介质 |
WO2024002264A1 (zh) * | 2022-06-29 | 2024-01-04 | 杭州海康威视数字技术股份有限公司 | 视频处理设备、进度条时间更新方法及装置、电子设备 |
CN115883916A (zh) * | 2022-12-09 | 2023-03-31 | 北京数码视讯软件技术发展有限公司 | 媒体频道切换方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110809179A (zh) | Hls协议下切换直播时移时间轴的方法及系统 | |
US11765414B2 (en) | Transmitting method, receiving method, transmitting apparatus, and receiving apparatus | |
US11917323B2 (en) | System and method for modifying media streams using metadata | |
CA2784779C (en) | Audio splitting with codec-enforced frame sizes | |
EP2665261A1 (en) | Content reproduction device, content reproduction method, delivery system, content reproduction program, recording medium, and data structure | |
US10410222B2 (en) | Messaging service for providing updates for multimedia content of a live event delivered over the internet | |
CN113411616A (zh) | 计算设备、播放装置、播放视频广播流的方法和计算机可读介质 | |
US11039203B2 (en) | Channel changing method and apparatus thereof | |
WO2018103696A1 (zh) | 媒体文件的播放方法、服务端、客户端及系统 | |
KR20140031929A (ko) | 미디어 컨텐트 송수신 방법 및 그를 이용한 송수신 장치 | |
US20230379519A1 (en) | Transmitting method, receiving method, transmitting apparatus, and receiving apparatus | |
KR101829497B1 (ko) | 중지된 미디어를 재개하기 위한 방법 및 장치 | |
CN103491430A (zh) | 流媒体数据处理方法和电子设备 | |
CN106331763B (zh) | 无缝播放分片媒体文件的方法及实现该方法的装置 | |
CN112087642A (zh) | 云导播播放方法、云导播服务器及远程管理终端 | |
CN113923502B (zh) | 直播视频播放方法及装置 | |
US20230164398A1 (en) | Video stream control | |
WO2016090916A1 (zh) | 码流传输方法和装置 | |
WO2012094992A1 (zh) | 一种实现数据获取的方法和系统 | |
CN114401376A (zh) | 一种多画面视频播放方法及装置 | |
AU2011245930B2 (en) | Method and apparatus for playing live content | |
US20220279229A1 (en) | Method, device, system, program for computer and medium for program for generating a streaming linear channel (streaming linear channel) | |
CN114339267A (zh) | 文件轮播推流方法、装置及直播推流服务器 | |
JP2020129734A (ja) | コンテンツ生成装置、受信装置、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200218 |