CN107864406B - 时移视频播放方法、装置和系统 - Google Patents
时移视频播放方法、装置和系统 Download PDFInfo
- Publication number
- CN107864406B CN107864406B CN201711003359.4A CN201711003359A CN107864406B CN 107864406 B CN107864406 B CN 107864406B CN 201711003359 A CN201711003359 A CN 201711003359A CN 107864406 B CN107864406 B CN 107864406B
- Authority
- CN
- China
- Prior art keywords
- video
- file
- time shift
- video segment
- index 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.)
- Expired - Fee Related
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/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47217—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/71—Indexing; Data structures therefor; Storage structures
-
- 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/235—Processing of additional data, e.g. scrambling of additional data or processing 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/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
- H04N21/26291—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 for providing content or additional data updates, e.g. updating software modules, stored at the client
-
- 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/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/458—Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
- H04N21/4586—Content update operation triggered locally, e.g. by comparing the version of software modules in a DVB carousel to the version stored locally
-
- 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/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47214—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for content reservation or setting reminders; for requesting event notification, e.g. of sport results or stock market
-
- 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/8455—Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明涉及一种时移视频播放方法和系统,其中方法包括:创建直播索引文件和时移索引文件,分别记录直播时的视频切片文件和未删除的视频切片文件;响应观看终端的播放请求,将所述直播索引文件和时移索引文件下发至所述观看终端,以用于在观看终端上创建视频切片文件数据缓存队列;接收观看终端基于所述视频切片文件数据缓存队列发送的时移视频直播请求,将与所述时移视频直播请求相应的视频切片文件发送至所述观看终端进行播放。本发明在进行时移视频直播时无需频繁刷新直播索引文件,并可以实现大时间跨度的时移直播,提高了时移视频直播的效果。
Description
技术领域
本发明涉及流媒体直播点播技术领域,特别是涉及一种时移视频播放方法、装置和系统。
背景技术
随着互联网多媒体技术的发展,在网络带宽不断增长的今天,基于互联网的视频直播由于观看的便利性,受到越来越多观众的欢迎。
传统视频直播技术,观看终端只能被动观看最新的视频画面和声音,观众不可以暂停和回退观看旧的视频内容;随着直播视频时移技术的出现,一定程度上解决了这个问题,使得观众在观看视频直播的时候可以对直播暂停,并随时从暂停点恢复播放,观众也可以选择跳到直播最新点观看最新实时的内容,也可以往回退观看已经播放过的视频内容。
但是现有技术实现的视频直播时移技术中,需要频繁刷新直播索引文件,而且无法不能实现大时间跨度的时移直播,影响了时移视频直播的效果。
发明内容
基于此,有必要针对影响时移视频直播的效果的问题,提供一种时移视频播放方法和装置。
一种时移视频播放方法,包括如下步骤:
创建直播索引文件和时移索引文件;其中,所述直播索引文件记录直播时的视频切片文件,所述时移索引文件记录未删除的视频切片文件;
响应观看终端的播放请求,将所述直播索引文件和时移索引文件下发至所述观看终端,用于在观看终端上创建视频切片文件数据缓存队列;
接收观看终端基于所述视频切片文件数据缓存队列发送的时移视频直播请求,将与所述时移视频直播请求相应的视频切片文件发送至所述观看终端进行播放。
上述时移视频播放方法,创建直播索引文件和时移索引文件记录直播时的视频切片文件和未删除的视频切片文件的切片文件路径及其播放时间;在直播视频时,将直播索引文件和时移索引文件下发至所述观看终端创建视频切片文件数据缓存队列,使得观看终端基于该视频切片文件数据缓存队列进行时移视频直播请求,播放相应的视频切片文件。该方案在进行时移视频直播时无需频繁刷新直播索引文件,可以实现大时间跨度的时移直播,提高了时移视频直播的效果。在一个实施例中,所述的时移视频播放方法还可以包括:对直播视频流进行切片,生成可配置时间长度的视频切片文件。
在一个实施例中,所述的时移视频播放方法中所述直播索引文件记录频道最新的若干个视频切片文件,所述时移索引文件记录频道所有未删除的视频切片文件。
在一个实施例中,所述对直播视频流进行切片的过程包括:
接收直播信号源的音视频帧数据的音视频帧,若当前没有视频切片文件或者当前视频切片文件的音视频内容时间长度已经大于等于预设的切片时间间隔且新收到的帧是视频关键帧,关闭当前的视频切片文件;
把当前视频切片文件的路径和时长以及当前视频切片文件的开始时间码写入直播索引文件;保留直播索引信息文件中的后设定个数的视频切片文件信息,其余的视频切片文件信息从直播索引文件中移除;把当前视频切片文件的路径和时长以及当前视频切片文件的开始时间码写入时移索引文件;
从时移索引文件中移除早于最新时间点减去最大时移时间长度的视频切片文件信息,并将这些视频切片文件从文件系统中删除;记录新的视频切片文件的开始时间码;创建新的视频切片文件作为当前视频切片文件。
在一个实施例中,所述的时移视频播放方法还可以包括:在观看终端检测到视频切片文件序号发生跳跃时,响应观看终端重新刷新时移索引文件的请求,将跳跃的视频切片文件信息下发至观看终端对时移索引文件进行更新。
在一个实施例中,所述观看终端可以按视频切片文件的平均时长为间隔重新加载所述直播索引文件,将新增的视频切片文件信息从队列前面加入视频切片文件数据缓存队列中;当最新加载的直播索引文件中记录的最旧的视频切片文件序号大于所述视频切片文件数据缓存队列中最新的视频文件切片文件的序号加1时,判定所述视频切片文件序号发生跳跃。
在一个实施例中,所述的时移视频播放方法还可以包括由录制服务器执行的步骤:
依据频道电子节目单对频道的直播索引文件和频道的视频切片文件进行录制,得到频道直播内容的视频文件;将所述视频文件进行存储,并将存储的对外可访问路径、节目名称和节目开始时间写入对应频道的点播视频列表。
一种时移视频播放装置,包括:
创建模块,用于创建直播索引文件和时移索引文件;其中,所述直播索引文件记录直播时的视频切片文件,所述时移索引文件记录未删除的视频切片文件;
响应模块,用于响应观看终端的播放请求,将所述直播索引文件和时移索引文件下发至所述观看终端,用于在观看终端上创建视频切片文件数据缓存队列;
播放模块,用于接收观看终端基于所述视频切片文件数据缓存队列发送的时移视频直播请求,将与所述时移视频直播请求相应的视频切片文件发送至所述观看终端进行播放。
上述时移视频播放装置,创建模块用于创建直播索引文件和时移索引文件记录直播时的视频切片文件和未删除的视频切片文件的切片文件路径及其播放时间;在直播视频时,响应模块用于将直播索引文件和时移索引文件下发至所述观看终端创建视频切片文件数据缓存队列,播放模块用于接收观看终端基于该视频切片文件数据缓存队列发送的时移视频直播请求,播放相应的视频切片文件。该方案在进行时移视频直播时无需频繁刷新直播索引文件,可以实现大时间跨度的时移直播,提高了时移视频直播的效果。
在一个实施例中,所述的时移视频播放装置中的观看终端在播放频道视频时,加载直播索引文件,依据视频切片文件顺序创建视频切片文件数据缓存队列;并加载所述时移索引文件,根据时移索引文件记录信息将视频切片文件信息从队列尾部加入所述视频切片文件数据缓存队列。
在一个实施例中,所述的时移视频播放系统中的所述观看终端加载直播索引文件后,依据所述直播索引文件中记录的切片文件路径加载视频切片文件并进入直播播放状态。
一种时移视频播放系统,包括视频服务器,以及用于播放视频的观看终端,所述视频服务器实现如上所述的时移视频播放方法。
上述时移视频播放系统,在进行时移视频直播时,观看终端无需频繁从所述视频服务器加载和刷新直播索引文件,可以实现大时间跨度的时移直播,提高了时移视频直播的效果。
在一个实施例中,所述的时移视频播放系统还包括录制服务器;
所述录制服务器依据频道电子节目单对频道的直播索引文件和频道的视频切片文件进行录制,得到频道直播内容的视频文件,将所述视频文件发送至所述视频服务器进行存储;
所述视频服务器将存储的对外可访问路径、节目名称和节目开始时间写入对应频道的点播视频列表。
一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的时移视频播放方法。
一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的时移视频播放方法。
附图说明
图1是一实施例的时移视频播放方法流程图;
图2是一个示例的直播索引文件和时移索引文件的结构示意图;
图3是一个示例的观看终端的工作示意图;
图4是一实施例的时移视频直播系统结构示意图;
图5是一个实施例的时移视频直播系统的视频服务器时移直播切片流程图;
图6是一个实施例的时移视频直播系统的录制服务器的录制流程图;
图7是一个实施例的时移视频直播装置结构示意图。
具体实施方式
下面结合附图阐述本发明的时移视频播放方法和系统、视频直播系统的实施例。
本发明实施例的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或(模块)单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明的时移视频播放方法、装置和系统的技术方案,可以应用在视频服务器上,在观看终端进行时移视频播放中,实现大时间跨度的时移直播。
参考图1所示,图1是一实施例的时移视频播放方法流程图,包括如下步骤:
步骤S101,创建直播索引文件和时移索引文件;其中,所述直播索引文件记录直播时的视频切片文件,所述时移索引文件记录未删除的视频切片文件。
此步骤中,可以在视频服务器对直播的视频流进行切片,生成直播视频切片文件和视频直播索引文件;
对于对直播视频流进行切片的过程,可以包括如下步骤:
接收直播信号源的音视频帧数据的音视频帧,若当前没有视频切片文件或者当前视频切片文件的音视频内容时间长度已经大于等于预设的切片时间间隔且新收到的帧是视频关键帧,关闭当前的视频切片文件;
把当前视频切片文件的路径和时长以及当前视频切片文件的开始时间码写入直播索引文件;保留直播索引信息文件中的后设定个数的视频切片文件信息,其余的视频切片文件信息从直播索引文件中移除;把当前视频切片文件的路径和时长以及当前视频切片文件的开始时间码写入时移索引文件;从时移索引文件中移除早于最新时间点减去最大时移时间长度的视频切片文件信息,并将这些视频切片文件从文件系统中删除;
记录新的视频切片文件的开始时间码;创建新的视频切片文件作为当前视频切片文件。
在一个实施例中,可以对直播视频流进行切片,生成可配置时间长度的视频切片文件;通过保留可配置时间长度的视频切片文件,如保留最新4个小时的视频切片文件不删除,可以根据需要配置视频切片文件的时间长度,便于实现所需跨度的时移播放。
在一个实施例中,对于直播频道,可以通过所述直播索引文件记录频道最新的若干个视频切片文件,通过所述时移索引文件记录频道所有未删除的视频切片文件。
例如,在对直播的频道的视频流切片时,产生两个视频直播索引文件:即直播索引文件,记为LIVE_INDEX_FILE,一般情况下,可以仅记录频道最新的3-5个视频切片文件;另一个时移索引文件,记为TS_INDEX_FILE,用于记录频道所有未删除的视频切片文件。
可以将各个视频切片文件的切片文件路径及其播放时间分别记录在所述直播索引文件和时移索引文件中。将每个视频切片文件的相关信息记录在直播索引文件和时移索引文件中。
可选的,可以将每个视频切片文件的视频内容信息以及视频内容开始点对应的UTC(Coordinated Universal Time,世界统一时间)时间分别记录在所述直播索引文件和时移索引文件中。
例如,在记录每个视频切片文件的文件路径及视频内容开始点对应的UTC时间,即时间码,可以记为TC。
参考图2所示,图2是一个示例的直播索引文件和时移索引文件的结构示意图,基于RTP协议,索引文件中:
#EXTM3U:每个M3U8文件第一行必须是这个tag;
#EXT-X-MEDIA-SEQUENCE:音频和视频帧号;
#EXT-X-TARGETDURATION:指定最大的媒体段时间长度(秒);
#EXTINF:指定的时间长度必须小于或等于这个最大值;
#EXT-X-SEG-TIMECODE:时间码。
步骤S102,响应观看终端的播放请求,将所述直播索引文件和时移索引文件下发至所述观看终端,以用于在观看终端上创建视频切片文件数据缓存队列。
此步骤中,在视频服务器响应观看终端的播放请求,在观看终端进行频道直播时,将相应频道的直播索引文件和时移索引文件下发至所述观看终端,观看终端创建视频切片文件数据缓存队列。
作为实施例,观看终端在播放频道视频时,可以首先加载直播索引文件,依据视频切片文件顺序创建视频切片文件数据缓存队列;进一步的,观看终端加载直播索引文件后,依据所述直播索引文件中记录的切片文件路径加载视频切片文件并进入直播播放状态。
此后,观看终端加载所述时移索引文件,根据时移索引文件记录信息将视频切片文件信息从队列尾部加入所述视频切片文件数据缓存队列。
例如,观看终端在播放所述时移直播频道时,首先加载直播索引文件,在内存中按切片序号建立视频切片文件数据缓存队列,可以记为LIVE_PLAY_QUEUE,并依据所述直播索引文件里的切片文件路径加载视频切片文件快速进入播放状态;此时称为直播状态;
所述观看终端在加载直播文件索引的同时,加载时移索引文件,解析时移索引文件,把更多的视频切片文件信息从队列尾部加入LIVE_PLAY_QUEUE。
在一个算法示例中,所述LIVE_PLAY_QUEUE队列的节点SEGMENT可以记录如下信息:
SEGMENT{
SeqNo:视频切片序号;
Uri:视频切片的相对文件路径;其中,(Uniform Resource Identifier,Uri),即统一资源标识符;
Duration:视频切片的时长;
Time Code:该视频切片的内容播出的UTC时间;
Buffer:该视频切片文件的数据缓存;
};
通过上述视频切片文件数据缓存队列,可以观看终端对频道进行直播播放过程中进行大时间跨度的时移直播。
步骤S103,接收观看终端基于所述视频切片文件数据缓存队列发送的时移视频直播请求,将与所述时移视频直播请求相应的视频切片文件发送至所述观看终端进行播放。
上述步骤中,所述观看终端可以接收用户对播放进度发送的请求,从而可以在视频切片文件数据缓存队列检索相应的节点,将请求视频文件路径发送至视频服务器,下载相应视频文件进行播放,实现所需时间跨度的时移直播。
在一个实施例中,本发明的时移视频播放方法,在播放过程中,还可以按频道EPG(Electronic Program Guide,电子节目指南)对直播频道视频数据进行录制,所述录制方法通过录制服务器来执行,便于观看播放终端在播放过程中,进行直播状态、直播时移状态以及点播时移状态之间的切换。
具体的,依据频道电子节目单对频道的直播索引文件和频道的视频切片文件进行录制,得到频道直播内容的视频文件;将所述视频文件进行存储,并将存储的对外可访问路径、节目名称和节目开始时间写入对应频道的点播视频列表。
录制的数据源为频道的直播索引文件和频道视频切片文件;所述频道EPG为电子节目单,包括节目的名称,开始时间,按开始时间排序的(节目开始时间,节目名称)二元组数组。
对直播频道进行录制,可以以一个EPG条目为开始点,下一个EPG条目为结束点,将直播内容录制为完整的视频文件,一个节目录制完成时,将对应的节目名称,节目开始时间和所述的完整视频文件传输到视频服务器,视频服务器将该视频文件切片存储,将存储后的对外可访问的路径,节目名称,节目开始时间写入对应频道的点播视频列表;
所述直播频道的点播视频列表,可以记为CHANNEL_VOD_LIST;CHANNEL_VOD_LIST中的每个条目记为VOD_ITEM,VOD_ITEM包含如下信息:
VOD_ITEM{
Title:该点播视频的节目名称;
Time Code:该节目在直播频道播出时的起始UTC时间;
Uri:该点播视频存储在视频服务器上的Web路径;
};
另外,随着录制过程不断继续,CHANNEL_VOD_LIST会变得越来越长,越来越大,因此对于CHANNEL_VOD_LIST可以采用数据库表存储,便于观看终端检索一段时间内的CHANNEL_VOD_LIST,也便于移除太旧的VOD_ITEM;所述直播频道可配置保存所需周期的点播文件,例如保存1个月,则早于1个月前的点播文件将被移除,对应的VOD_ITEM也将其从数据库表中移除。
结合上述实施例,可以发现本发明的技术方案,实现了大时间跨度时移视频直播,通过对直播视频流切片时保存为时移索引文件和直播索引文件,解决了随着切片文件越来越多,索引文件越来越大,降低响应速度和浪费带宽的问题;通过将直播视频录制成单个的带有时间码的点播视频文件,关联到直播频道,解决了大时间跨度的时移直播问题。
作为实施例,所述观看终端通过检测视频切片文件序号是否发生跳跃来进行视频切片文件的播放;对于判定视频切片文件序号是否发生跳跃的方法,具体的,所述观看终端可以按视频切片文件的平均时长为间隔重新加载所述直播索引文件,将新增的视频切片文件信息从队列前面加入视频切片文件数据缓存队列中;当最新加载的直播索引文件中记录的最旧的视频切片文件序号大于所述视频切片文件数据缓存队列中最新的视频文件切片文件的序号加1时,判定所述视频切片文件序号发生跳跃。
参考图3所示,图3是一个示例的观看终端的工作示意图,对于所述观看终端,播放方案可以如下:
在频道直播过程中,所述观看终端可以按视频切片的平均时长为间隔重新加载直播索引文件,把新增的切片文件信息从队列前面加入队列LIVE_PLAY_QUEUE,如果最新加载的直播索引文件中记录最旧的视频切片序号小于等于所述队列LIVE_PLAY_QUEUE中最新视频文件切片的序号+1,则表明视频切片文件序号未发生跳跃,直接将新增的切片文件信息从队列前部填入队列LIVE_PLAY_QUEUE中。
在一个实施例中,若观看终端检测到视频切片文件序号发生跳跃,此时重新刷新时移索引文件,根据时移索引文件记录的视频切片文件,将队列LIVE_PLAY_QUEUE中跳跃的视频切片文件信息补齐。
在一个实施例中,当队列LIVE_PLAY_QUEUE中节点的总时长超出了视频切片中所配置的时移时长(如4个小时)时,把队列LIVE_PLAY_QUEUE尾部的视频切片文件信息移除。
在一个实施例中,当所述观看终端对播放进度发出请求时,根据所请求视频切片文件的对应的UTC时间(即时间码)从队列LIVE_PLAY_QUEUE中检索节点,如SEGMENT节点。可以根据时间码在时间轴上定位播放点,实现直播、直播时移、点播时移等状态,具体方案可以如下:
(1)直播状态:
如果以检索到的节点距离最新节点差值小于等于m,则观看终端进入直播状态,从最新节点回退m个节点处对应的视频切片文件开始播放;一般情况下,m取值为3。
(2)直播时移状态:
如果检索到的节点距离最新节点大于m,则观看终端进入直播时移状态,从检索到的节点对应的视频切片文件开始播放。
(3)点播时移状态:
如果所述请求的节点的时间码小于最旧的节点的时间码,观看终端从视频服务器加载频道在所请求时间码前后一定时间内的点播视频文件列表CHANNEL_VOD_LIST,从所述列表CHANNEL_VOD_LIST中检索出所请求时间码对应的VOD_ITEM,初始化一个点播播放队列VOD_PLAY_QUEUE,结构与队列LIVE_PLAY_QUEUE相同,并加载该VOD_ITEM对应的点播视频的索引信息文件,将该点播的视频切片文件信息填入列表VOD_PLAY_QUEUE;进一步地,从所述VOD_PLAY_QUEUE中检索所请求的时间码对应的视频切片文件,从该视频切片文件开始播放,此时播放终端进入点播时移状态。
上述实施例的技术方案中,所述观看终端在播放直播频道时,可以完全采用时间码在时间轴上定位播放点,从而实现层面从直播状态、直播时移状态与点播时移状态之间的切换,实现了在直播频道上大时间跨度视频直播时移。
下面结合附图阐述本发明的视频直播系统的实施例。
参考图4,图4是一个实施例的时移视频播放系统结构示意图,包括视频服务器,以及用于播放视频的观看终端,所述视频服务器实现前面各个实施例的时移视频播放方法。
进一步的,该视频直播系统还可以包括录制服务器;所述录制服务器依据频道电子节目单对频道的直播索引文件和频道的视频切片文件进行录制,得到频道直播内容的视频文件;将所述视频文件发送至所述视频服务器进行存储;所述视频服务器将存储的对外可访问路径、节目名称和节目开始时间写入对应频道的点播视频列表。
如上述实施例,该视频直播系统包括:观看终端,视频服务器,录制服务器;所述视频服务器支持直播和点播视频;对直播频道建立频道数据库,对直播频道的电子节目单(EPG),直播频道录制下来的点播视频列表按视频节目的播出时间进行索引和管理;对直播的视频流进行切片,生成直播视频切片文件和视频直播索引文件;
所述录制服务器对直播频道视频数据按频道EPG进行录制,录制数据源为频道的直播索引文件和频道视频切片文件;对直播频道进行录制,以一个EPG条目为开始点,下一个EPG条目为结束点,将直播内容录制为完整的视频文件,一个节目录制完成时,将对应的节目名称,节目开始时间和所述的完整视频文件传输到视频服务器,视频服务器将该视频文件切片存储,将存储后的对外可访问的路径,节目名称,节目开始时间写入对应频道的点播视频列表;
所述观看终端在播放所述时移直播频道时,首先加载直播索引文件,在内存中按切片序号建立视频切片文件数据缓存队列,并依据所述直播索引文件里的切片文件路径加载视频切片文件快速进入直播状态;所述观看终端在加载直播文件索引的同时,加载时移索引文件,解析时移索引文件,把更多的视频切片文件信息从队列尾部加入视频切片文件数据缓存队列;在播放直播频道时,根据时间码在时间轴上定位播放点,在直播状态、直播时移状态、点播时移状态之间进行切换,在直播频道上进行大时间跨度视频直播时移。
参考图5所示,图5是一个实施例的时移视频播放系统的视频服务器时移直播切片流程图;所述视频服务器切片包括如下步骤:
步骤s501,源源不断地接收来自直播信号源音视频帧数据,每接收到一帧音视频帧,需要执行如下操作:
判断是否需要产生新的视频切片文件,判断逻辑为:当前没有视频切片文件或者当前视频切片文件的音视频内容时间长度已经大于等于预设的切片时间间隔且新收到的帧是视频关键帧;满足所述条件即需要生成新的切片文件;如果不需要产生新的视频切片文件,执行步骤s509;
步骤s502,如果需要产生新的视频切片文件,需要关闭当前的视频切片文件;
步骤s503,把当前视频切片文件的URI和时长以及当前视频切片文件的开始时间码写入直播索引文件;
步骤s504,保留直播索引信息文件中的后3个视频切片文件信息,其余的视频切片文件信息从直播索引文件中移除;
步骤s505,把当前视频切片文件的URI和时长以及当前视频切片文件的开始时间码写入时移索引文件;
步骤s506,从时移索引文件中移除早于最新时间点减去最大时移时间长度的视频切片文件信息,并将这些视频切片文件从文件系统中删除;
步骤s507,记录新的视频切片文件的开始时间码;
步骤s508,创建新的视频切片文件作为当前视频切片文件。
步骤s509,将音视频帧打包转换后写入当前视频切片文件。
参考图6所示,图6是一个实施例的时移视频播放系统的录制服务器的录制流程图;所述录制过程包括如下步骤:
步骤s601,从直播索引中取出下一个视频切片作为当前视频切片文件;
步骤s602,下载当前视频切片文件数据;
步骤s603,解析当前视频切片文件数据为音视频帧;
步骤s604,判断当前视频切片解析完毕?若是,执行步骤s611;否则执行步骤s605;
步骤s605,计算音视频的时间码
步骤s606,判断是否需要录制到另外一个文件?若是,执行步骤s607;否则执行步骤s610;
步骤s607,关闭当前录制视频文件;
步骤s608,将当前录制视频文件和开始时间码提交到上传队列;
步骤s609,创建新的录制视频文件,将新的录制视频文件作为当前录制视频文件,记录当前视频帧的时间码作为开始时间码;
步骤s610,将音视频帧打包写入当前录制视频文件,步骤s603继续解析音视频帧;
步骤s611,判断是否还有下一个视频切片?若是,执行步骤s601;否则执行步骤s612;
步骤s612,载入直播索引文件;
步骤s613,解析直播索引文件,返回步骤s611。
在上传录制的视频文件到视频服务器过程中,先判断当前队列是否为空,若是,休眠,然后执行下一次判断,如果不为空,则将录制的视频文件上传到视频服务器。
下面结合附图阐述本发明的提供的时移视频播放装置。
参考图7,图7是一个实施例的时移视频播放装置结构示意图,包括:
创建模块101,用于创建直播索引文件和时移索引文件;其中,所述直播索引文件记录直播时的视频切片文件,所述时移索引文件记录未删除的视频切片文件;
响应模块102,用于响应观看终端的播放请求,将所述直播索引文件和时移索引文件下发至所述观看终端,用于在观看终端上创建视频切片文件数据缓存队列;
播放模块103,用于接收观看终端基于所述视频切片文件数据缓存队列发送的时移视频直播请求,将与所述时移视频直播请求相应的视频切片文件发送至所述观看终端进行播放。
上述时移视频播放装置,在进行时移视频直播时无需频繁刷新直播索引文件,可以实现大时间跨度的时移直播,提高了时移视频直播的效果。
本发明的时移视频直播装置与本发明的时移视频播放方法一一对应,在上述时移视频播放方法的实施例阐述的技术特征及其有益效果均适用于时移视频直播装置的实施例中,特此声明。
基于如上所述的示例,在一个实施例中还提供一种计算机设备,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现如上述各实施例中的任意一种时移视频播放方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各时移视频播放方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
据此,在一个实施例中还提供一种存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上述各实施例中的任意一种时移视频播放方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种时移视频播放方法,其特征在于,包括如下步骤:
创建直播索引文件和时移索引文件;其中,所述直播索引文件记录直播时指定数量的最新的视频切片文件,所述时移索引文件记录未删除的视频切片文件;
响应观看终端的播放请求,将所述直播索引文件和时移索引文件下发至所述观看终端,以用于在观看终端上创建视频切片文件数据缓存队列;观看终端在播放频道视频时,首先加载所述直播索引文件,依据视频切片文件顺序创建视频切片文件数据缓存队列;然后,观看终端加载所述时移索引文件,根据时移索引文件记录信息将视频切片文件信息从队列尾部加入所述视频切片文件数据缓存队列;
接收观看终端基于所述视频切片文件数据缓存队列发送的时移视频直播请求,将与所述时移视频直播请求相应的视频切片文件发送至所述观看终端进行播放。
2.根据权利要求1所述的时移视频播放方法,其特征在于,还包括:对直播视频流进行切片,生成可配置时间长度的视频切片文件。
3.根据权利要求1所述的时移视频播放方法,其特征在于,还包括对直播视频流进行切片的步骤:
接收直播信号源的音视频帧数据的音视频帧,若当前没有视频切片文件或者当前视频切片文件的音视频内容时间长度已经大于等于预设的切片时间间隔且新收到的帧是视频关键帧,关闭当前的视频切片文件;
把当前视频切片文件的路径和时长以及当前视频切片文件的开始时间码写入直播索引文件;保留直播索引信息文件中的后设定个数的视频切片文件信息,其余的视频切片文件信息从直播索引文件中移除;把当前视频切片文件的路径和时长以及当前视频切片文件的开始时间码写入时移索引文件;从时移索引文件中移除早于最新时间点减去最大时移时间长度的视频切片文件信息,并将这些视频切片文件从文件系统中删除;
记录新的视频切片文件的开始时间码;创建新的视频切片文件作为当前视频切片文件。
4.根据权利要求1所述的时移视频播放方法,其特征在于,所述直播索引文件记录频道最新的若干个视频切片文件,所述时移索引文件记录频道所有未删除的视频切片文件。
5.根据权利要求1所述的时移视频播放方法,其特征在于,还包括:
在观看终端检测到视频切片文件序号发生跳跃时,响应观看终端重新刷新时移索引文件的请求,将跳跃的视频切片文件信息下发至观看终端对时移索引文件进行更新。
6.根据权利要求5所述的时移视频播放方法,其特征在于,所述观看终端按视频切片文件的平均时长为间隔重新加载所述直播索引文件,将新增的视频切片文件信息从队列前面加入视频切片文件数据缓存队列中;
当最新加载的直播索引文件中记录的最旧的视频切片文件序号大于所述视频切片文件数据缓存队列中最新的视频文件切片文件的序号加1时,判定所述视频切片文件序号发生跳跃。
7.根据权利要求1至6任一项所述的时移视频播放方法,其特征在于,还包括由录制服务器执行的步骤:
依据频道电子节目单对频道的直播索引文件和频道的视频切片文件进行录制,得到频道直播内容的视频文件;
将所述视频文件进行存储,并将存储的对外可访问路径、节目名称和节目开始时间写入对应频道的点播视频列表。
8.一种时移视频播放装置,其特征在于,包括:
创建模块,用于创建直播索引文件和时移索引文件;其中,所述直播索引文件记录直播时指定数量的最新的视频切片文件,所述时移索引文件记录未删除的视频切片文件;
响应模块,用于响应观看终端的播放请求,将所述直播索引文件和时移索引文件下发至所述观看终端,用于在观看终端上创建视频切片文件数据缓存队列;观看终端在播放频道视频时,首先加载所述直播索引文件,依据视频切片文件顺序创建视频切片文件数据缓存队列;然后,观看终端加载所述时移索引文件,根据时移索引文件记录信息将视频切片文件信息从队列尾部加入所述视频切片文件数据缓存队列;
播放模块,用于接收观看终端基于所述视频切片文件数据缓存队列发送的时移视频直播请求,将与所述时移视频直播请求相应的视频切片文件发送至所述观看终端进行播放。
9.根据权利要求8所述的时移视频播放装置,其特征在于,所述观看终端在播放频道视频时,加载直播索引文件,依据视频切片文件顺序创建视频切片文件数据缓存队列;并加载所述时移索引文件,根据时移索引文件记录信息将视频切片文件信息从队列尾部加入所述视频切片文件数据缓存队列。
10.根据权利要求9所述的时移视频播放装置,其特征在于,所述观看终端加载直播索引文件后,依据所述直播索引文件中记录的切片文件路径加载视频切片文件并进入直播播放状态。
11.一种时移视频播放系统,包括视频服务器,以及用于播放视频的观看终端,其特征在于,所述视频服务器实现如权利要求1至7任一项所述的时移视频播放方法。
12.根据权利要求11所述的时移视频播放系统,其特征在于,还包括录制服务器;
所述录制服务器依据频道电子节目单对频道的直播索引文件和频道的视频切片文件进行录制,得到频道直播内容的视频文件,将所述视频文件发送至所述视频服务器进行存储;
所述视频服务器将存储的对外可访问路径、节目名称和节目开始时间写入对应频道的点播视频列表。
13.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任意一项所述的时移视频播放方法。
14.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5任意一项所述的时移视频播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711003359.4A CN107864406B (zh) | 2017-10-24 | 2017-10-24 | 时移视频播放方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711003359.4A CN107864406B (zh) | 2017-10-24 | 2017-10-24 | 时移视频播放方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107864406A CN107864406A (zh) | 2018-03-30 |
CN107864406B true CN107864406B (zh) | 2019-03-26 |
Family
ID=61697375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711003359.4A Expired - Fee Related CN107864406B (zh) | 2017-10-24 | 2017-10-24 | 时移视频播放方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107864406B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108260024B (zh) * | 2018-04-12 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、装置、计算机设备和存储介质 |
CN113068062B (zh) * | 2021-04-06 | 2022-06-17 | 上海网梯数码科技有限公司 | 一种自动化排片推流直播的方法 |
CN113207007B (zh) * | 2021-04-29 | 2022-11-15 | 杭州当虹科技股份有限公司 | 基于hls协议的直播录制方法 |
CN114827735A (zh) * | 2022-04-21 | 2022-07-29 | 咪咕文化科技有限公司 | 视频回看方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231860A (zh) * | 2011-06-03 | 2011-11-02 | 南京远古科技有限公司 | 一种直播时移数据存储方法 |
CN103686245A (zh) * | 2013-11-22 | 2014-03-26 | 乐视致新电子科技(天津)有限公司 | 一种基于hls协议的点播与直播切换方法和装置 |
CN106791988A (zh) * | 2016-11-23 | 2017-05-31 | 青岛海信电器股份有限公司 | 多媒体数据轮播方法和终端 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102572555B (zh) * | 2012-01-16 | 2014-06-18 | 深圳市龙视传媒有限公司 | 一种实现hls客户端视频直播回看的方法及系统 |
CN104469433B (zh) * | 2013-09-13 | 2018-09-07 | 深圳市腾讯计算机系统有限公司 | 一种视频直播回看方法及装置 |
US20160014477A1 (en) * | 2014-02-11 | 2016-01-14 | Benjamin J. Siders | Systems and Methods for Synchronized Playback of Social Networking Content |
CN104080011A (zh) * | 2014-07-08 | 2014-10-01 | 浪潮软件集团有限公司 | 一种基于hls协议实现时移系统的方法 |
CN106686471A (zh) * | 2015-11-06 | 2017-05-17 | 中国电信股份有限公司 | 用于实现网络视频直播的方法和客户端 |
CN106534878A (zh) * | 2016-11-01 | 2017-03-22 | 乐视控股(北京)有限公司 | 一种直播节目的回看方法、系统和服务器 |
-
2017
- 2017-10-24 CN CN201711003359.4A patent/CN107864406B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231860A (zh) * | 2011-06-03 | 2011-11-02 | 南京远古科技有限公司 | 一种直播时移数据存储方法 |
CN103686245A (zh) * | 2013-11-22 | 2014-03-26 | 乐视致新电子科技(天津)有限公司 | 一种基于hls协议的点播与直播切换方法和装置 |
CN106791988A (zh) * | 2016-11-23 | 2017-05-31 | 青岛海信电器股份有限公司 | 多媒体数据轮播方法和终端 |
Also Published As
Publication number | Publication date |
---|---|
CN107864406A (zh) | 2018-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107864382B (zh) | 视频播放方法、装置和系统 | |
CN107864406B (zh) | 时移视频播放方法、装置和系统 | |
US9432745B2 (en) | Playback of interactive programs | |
US9654815B2 (en) | Advertising detection in adaptive bitrate streaming | |
US9027057B2 (en) | System and method for creating and managing custom media channels | |
US10057646B2 (en) | Storing same channel overlapping recordings | |
JP4628629B2 (ja) | プッシュされたデータを記録するシステムおよび方法 | |
KR102013088B1 (ko) | 개선된 트릭 플레이 기능을 위한 시스템 및 방법 | |
EP1234446B1 (en) | Playback of interactive programs | |
US20140082652A1 (en) | Dynamic rebroadcast scheduling of videos | |
US8561108B2 (en) | Video episode order adherence | |
US8930984B2 (en) | Method of content substitution | |
CA2738430A1 (en) | Delete viewed portions of recorded programs | |
RU2644122C2 (ru) | Электронный медиа-сервер | |
EP2435968A1 (en) | Continuous re-insertion of advertisements in video content | |
US8665963B2 (en) | Communication terminal, content reproduction method, content reproduction program, and content reproduction system for distributing and reproducing video contents with reduced stress | |
WO2009006768A1 (fr) | Système sans serveur pour prendre en charge un service de décalage temporel | |
JP4586343B2 (ja) | 情報処理装置および方法、記録媒体、並びにプログラム | |
JP6077007B2 (ja) | サブレコーディングの作成および管理 | |
CN102340705B (zh) | 一种获取关键帧的系统及方法 | |
US20140282758A1 (en) | Method of time shifting in a digital tv and apparatus using the same | |
CN1476719A (zh) | 游艺时间表改编器 | |
JP2011146879A (ja) | コンテンツ再生装置 | |
JP2003174608A (ja) | デジタル放送受信装置 | |
Tan et al. | Solutions and systems for recording interactive TV |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190326 Termination date: 20211024 |