电视节目的录制方法和服务器
技术领域
本申请涉及智能电视技术领域,尤其涉及一种电视节目的录制方法和服务器。
背景技术
目前,家庭电视用户对直播电视节目的预约录制需求不断增强,满足用户的预约录制需求成为亟待解决的问题。
在现有技术中,通常在用户端(电视机上)使用复杂的条件接收(ConditionalAccess,简称CA)策略和节目版权管理策略(包括版权录制保护(Content Protection forRecordable Media,简称CPRM)和传输内容保护(High-bandwidth Digital ContentProtection,简称HDCP)来实现节目的预约录制功能。但是,这种预约录制技术实现方案较为复杂,并且对电视机硬件成本要求较高,具体体现在:
1、电视端的条件接收方案实现比较复杂;
2、录制的节目存储在本地,因此需要超大容量的存储器存储,增加了存储成本;
3、录制过程需要对解扰、解码后的视频进行重新编码,这对视频编码芯片的性能、以及CPU计算能力和内存大小要求也较高,增加了硬件成本;而且很重要的是,由于缺乏专业昂贵的多媒体编码设备,编码后的视频相比原始视频的质量大为下降;
4、无人监管情况下的家庭长时间预约自动录制,其过程的可靠性很难得到保证,偶发的断电、断网、干扰、存储空间不足等情况极大的影响用户体验。
综上所述可知,现有技术中的电视直播节目的预约录制的成本较高,因此有必要提出改进的技术手段解决上述问题。
发明内容
本申请的主要目的在于提供一种电视节目的录制方法和服务器,以克服现有技术中的电视节目的预约录制的成本较高的问题。
本申请实施例提供一种电视节目的录制方法,其包括:接收一个或多个用户的多个节目预约请求;将每一节目预约请求分别分解为多个预定格式的子任务单元;收集所述多个节目预约请求分解后的多个预定格式的子任务单元;将所述多个节目预约请求的子任务单元进行去重,生成由多个去重后的子任务单元组成的录制需求集合;依照所述录制需求集合对电视节目进行统一录制。
其中,所述子任务单元包括以下信息:频道、节目、时间段;所述将所述多个节目预约请求的子任务单元进行去重,包括:以频道信息为索引,将相同频道的相同的节目信息和时间段信息进行去重。
其中,所述方法还包括:对每个频道一一对应设置节目接收机,具有该频道信息的各子任务单元对应的电视节目通过该节目接收机接收。
其中,所述依照所述录制需求集合对电视节目进行统一录制,包括:根据频道信息确定相对应的节目接收机,并根据节目信息和时间段信息对所述节目接收机接收的节目进行录制。
其中,所述方法还包括:将录制的电视节目对应子任务单元分块存储;接收到对应所述节目预约请求的节目播放请求;根据所述节目播放请求确定对应的子任务单元;根据所述节目播放请求对应的子任务单元确定对应该子任务单元存储的电视节目的链接地址,并将所述电视节目的链接地址提供给客户端。
本申请实施例提供还一种服务器,其包括:第一接收模块,用于接收一个或多个用户的多个节目预约录制请求;分解模块,用于将每一节目预约请求分别分解为多个预定格式的子任务单元;收集模块,用于收集所述多个节目预约请求分解后的多个预定格式的子任务单元;去重模块,用于将所述多个节目预约请求的子任务单元进行去重,生成由多个去重后的子任务单元组成的录制需求集合;录制模块,用于依照所述录制需求集合对电视节目进行统一录制。
其中,所述子任务单元包括以下信息:频道、节目、时间段;所述去重模块用于,以频道信息为索引,将相同频道的相同的节目信息和时间段信息进行去重。
其中,所述服务器还包括:节目接收机,其与每个频道一一对应设置,用于接收具有该频道信息的各子任务单元对应的电视节目。
其中,所述录制模块用于,根据频道信息确定相对应的节目接收机,并根据节目信息和时间段信息对所述节目接收机接收的节目进行录制。
其中,服务器还包括:存储模块,用于将录制的电视节目对应子任务单元分块存储;第二接收模块,用于接收到对应所述节目预约请求的节目播放请求;地址确定模块,用于根据所述节目播放请求确定对应的子任务单元,根据所述节目播放请求对应的子任务单元确定对应该子任务单元存储的电视节目的链接地址;服务提供模块,用于将所述电视节目的链接地址提供给客户端。
根据本申请的技术方案,将分散的不同用户的节目预约请求去重后合并为录制需求集合并进行电视节目的统一录制,相同的电视节目只在服务端录制一次,通过本申请能够在满足录制需求的情况下大幅降低了录制成本。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请一个实施例的服务器的结构框图;
图2是根据本申请另一实施例的服务器的结构框图;
图3是根据本申请一个实施例的电视节目的录制方法的流程图;
图4是根据本申请另一实施例的电视节目的录制方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的主要思想在于,客户端向服务端(云端)提交节目预约录制请求,在服务端进行统一的节目录制并完成存储,用户可以在任意时间在线观看存储在服务端的私人预约录制的直播电视节目。在本申请中,用户鉴权管理、节目预约录制、节目的版权管理、节目复制和存储等都在服务端统一管理,下面分别从服务端和客户端两方面详细描述。
图1是根据本申请一个实施例的服务器的结构框图,如图1所示,该服务器至少包括:第一接收模块110、分解模块120、收集模块130、去重模块140和录制模块150,下面详细描述各模块的结构和功能。
第一接收模块110用于通过网络接收一个或多个用户的多个节目预约录制请求,节目预约录制请求,所述的多个节目预约录制请求可以是来自于一个客户端、也可以是来自于不同的客户端。
分解模块120,用于将每一节目预约请求分别分解为多个预定格式的子任务单元。在本申请的实施例中,所述节目预约录制请求中可以包含预约录制内容相关信息的一项或多项子任务单元。而每一子任务单元包含频道、节目和时间段等三个属性信息,可以以“{频道X,节目Y,时间段Z}”这样的格式表示。每一子任务单元中的频道、节目和时间段信息能够唯一标识电视节目。其中,频道信息是指电视台及其频道数字,一般地一个电视台可以包括多个频道,而每个频道播放不同的电视节目,每个频道在一定的频率范围内传输电视信号,例如频道信息可以是CCTV-1、BTV-2、或东方卫视-1等;节目信息是该频道所播放的具体节目信息,例如电视剧、电影、体育赛事等;时间段则表示具体的电视节目对应的时间长短。综上,分解模块120将第一接收模块110接收的多个节目预约请求按照上述的格式进行分解,并得到多个子任务单元。
结合表1举例说明,接收模块110接收到来自3个客户端的预约录制请求,分解模块120将来自客户端A的预约录制请求分解得到{频道1,连续剧X的第1集,时间段10:00-10:50}、将来自客户端B的预约录制请求分解得到{频道1,连续剧X的第1集,时间段10:00-10:50}和{频道1,连续剧X的第2集,时间段11:00-11:50}、将来自客户端C的预约录制请求分解得到{频道1,连续剧X第2集,时间段11:00-11:50}和{频道2,连续剧Y的第1集,时间段11:30-12:20}。如表1所示,通过分解模块120对来自3个客户端的预约录制请求进行分解处理后,得到5个子任务单元。
表1
序号 |
客户端 |
频道 |
节目 |
时间段 |
1 |
A |
1 |
连续剧X的第1集 |
10:00-10:50 |
2 |
B |
1 |
连续剧X的第1集 |
10:00-10:50 |
3 |
B |
1 |
连续剧X的第2集 |
11:00-11:50 |
4 |
C |
1 |
连续剧X的第2集 |
11:00-11:50 |
5 |
C |
2 |
连续剧Y的第1集 |
11:30-12:20 |
收集模块130用于收集所述多个节目预约请求分解后的多个预定格式的子任务单元。由于第一接收模块110接收到的多个节目录制请求是分散的来自于多个客户端的,并且这些节目录制请求的数量是随着时间动态变化(增加)的,因此需要先将这些分散的多个子任务单元统一集中起来,然后才能够判断其中相同的子任务单元。
去重模块140用于将所述多个节目预约的子任务单元进行去重处理,生成由多个去重后的子任务单元组成的录制需求集合。在收集模块130收集得到的大量的子任务单元中存在着大量相同的子任务单元,或者说这些多个子任务单元中存在对应相同预约录制内容的子任务单元,所述相同的子任务单元是指包括的频道、节目和时间段信息相同的子任务单元。并且,相同的子任务单元的数量随着接收到的节目预约请求总量的增加而增加。如表1所示,子任务单元1和子任务单元2、子任务单元3和子任务单元4,都是重复的子任务单元。基于上述分析,本申请采用了将动态变化的多用户的节目预约请求去重技术,核心是将节目预约请求分解后的重复的子任务单元进行去重处理。具体地,每个子任务单元包含:频道、节目、时间段等三个属性信息,去重处理时以频道信息为索引,将相同频道的相同的节目信息和时间段信息进行去重合并,这样,通过去重处理后生成由多个去重后的子任务单元组成的录制需求集合,换句话说,所述录制需求集合中不存在相同的子任务单元,录制需求集合中的子任务单元分别对应不同的预约录制内容。所述录制需求集合可以以录制需求集合表的形式存储在服务端。
承上述例子,去重模块140负责将收集模块130所收集到的5个子任务单元进行去重处理,通过表1可以看出,子任务单元1和子任务单元2、子任务单元3和子任务单元4的频道、节目和时间段信息是完全相同的,去重模块140将相同的子任务单元进行去重合并,生成一个不包括相同子任务单元的录制需求集合,参考表2,是去重合并之后的录制需求集合表,其中没有相同的电视节目。
表2
频道 |
节目 |
时间段 |
1 |
连续剧X的第1集 |
10:00-10:50 |
1 |
连续剧X的第2集 |
11:00-11:50 |
2 |
连续剧Y的第1集 |
11:30-12:20 |
录制模块150用于依照所述录制需求集合对电视节目进行统一录制,从而为用户端提供预约录制节目的播放服务。由于录制模块150是根据去重处理后的录制需求集合对电视节目进行统一录制,因此相同的电视节目只录制一次,并不重复录制相同的节目,在满足录制需求的情况下大幅降低了录制成本。
图2是根据本申请另一实施例的服务端装置的结构框图,如图2所示,该装置包括:第一接收模块210、分解模块220、收集模块230、去重模块240和录制模块250、节目接收机260、存储模块270、第二接收模块280、地址确定模块290和服务提供模块295。其中,第一接收模块210、分解模块220、收集模块230、去重模块240和录制模块250分别与图1中所示的第一接收模块110、分解模块120、收集模块130、去重模块140和录制模块150类似,此处不再赘述。
节目接收机260与每个频道一一对应设置,用于接收具有该频道信息的各子任务单元对应的电视节目。例如,如果电视的频道信息包括1~N,则设置对应的节目接收机1~N接收电视节目。具体地,在所述录制需求集合的子任务单元中包括有频道、节目、时间段等信息,节目接收机260负责接收每个子任务单元中的频道信息对应的频道所播放的电视节目。
在本申请的实施例中,节目接收机260通过统一授权的条件接受(CA)系统,将加扰的电视信号解扰(解码)为清流信号,从而接收到该频道播放的电视节目。所述录制模块250根据频道信息确定相对应的节目接收机,并根据节目信息和时间段信息对所述节目接收机接收的节目进行录制。在本申请的一个实施例中,服务器将每个预约录制的完成情况、进度等节目的录制状态信息发送至客户端装置,客户端将节目的录制状态列表展示,用户可以获知节目录制的实时信息。
承上述例子,需要对频道1的连续剧X的第1集进行预约录制。首先设置节目接收机1接收频道1播放的节目,然后根据频道1确定对应的节目接收机1,并在连续剧X的第1集的播放时间段10:00-10:50期间,由录制模块250对节目接收机1接收的节目进行录制,从而实现了预约节目(连续剧X的第1集)的录制。在实际应用中,可以采用HLS(HTTP LiveStreaming)协议支持的码流格式进行节目录制。根据本申请实施例,每个频道配置一台对应的节目接收机(节目接收机的数量等于电视频道数量),从而减少了使用的节目接收机的数量,降低了录制成本。
存储模块270用于将录制的电视节目对应子任务单元分块存储。具体地,存储模块270将录制模块250预约录制的电视节目统一存储在服务端,在存储时将电视节目与其对应的子任务单元建立对应关系并分块存储,每个分块存储的电视节目具有对应的存储地址,通过子任务单元能够确定其对应的电视节目的存储链接地址(URL)。具体地可以使用分布式网络存储方案进行存储,此处不再赘述。由于录制的电视节目统一存储在服务端,客户端本地不再需要下载和存储电视节目,因此降低了用户的使用成本。在实际应用中,存储模块270可以是设置在服务端的分布式存储装置或者直接设置在云端服务器中。
第二接收模块280,用于接收到来自用户的对应所述节目预约请求的节目播放请求。在实际应用中,用户必须在发送节目预约请求后才能够发送节目播放请求,也就是说,节目预约请求对应的电视节目与节目播放请求对应的电视节目是相一致的。
地址确定模块290,用于根据所述节目播放请求确定对应的子任务单元,根据所述节目播放请求对应的子任务单元确定对应该子任务单元存储的电视节目的链接地址。具体地,在接收到来自客户端的对应节目预约请求的节目播放请求后,首先调出该客户端的节目预约请求,然后根据该节目预约请求确定对应的子任务单元,并从存储模块270统一存储的电视节目中确定该子任务单元对应的电视节目的链接地址(URL)。承上述例子,接收到来自客户端A的播放连续剧X的第1集的节目播放请求。首先,根据该节目播放请求查找到对应的节目预约请求,并继续查找该节目预约请求所对应的子任务单元,该子任务单元包括信息为:频道1,连续剧X的第1集,时间段10:00-10:50;然后在统一存储的电视节目中查找该子任务单元对应存储的电视节目,从而将存储的频道1的时间段在10:00-10:50之间的电视节目连续剧X的第1集的URL地址分离出来。
服务提供模块295用于将分离出的电视节目的链接地址(URL)发送给客户端,当客户端点击该URL时调用本地的视频播放器播放该电视节目,并且用户还可以通过预约录制请求中包含的时间段信息,对节目播放的时间长度进行控制。需要说明,由于相同的电视节目只在服务器录制一次,当多个用户请求播放同一个电视节目时,所提供的电视节目的URL地址是相同的,这些用户通过同一个URL地址观看该电视节目,而这并不会影响用户的观看效果和体验。
根据本申请的实施例,将分散的不同用户的节目预约录制需求去重后合并为录制需求集合进行统一电视节目录制,并将录制的节目统一存储在服务端;接收到个人用户的播放请求后从统一存储的节目中分离出个人请求播放的电视节目的链接地址并提供给客户端,通过本申请能够以较低的成本实现直播电视节目的预约录制服务。
在本申请的一个实施例中,用户在客户端装置编辑电视节目的预约录制内容,客户端装置根据预约录制的电视节目设置节目预约请求,并将该节目预约请求发送到服务端。之后,可以在客户端装置列表展示所预约录制的电视节目的状态信息,包括每个预约录制请求的进度以及完成情况等信息;并且,还可以通过客户端装置管理已完成录制的电视节目,包括列表展示电视节目存储的URL、展示观看状态信息(未观看、已观看、观看进度)等。
图3是根据本申请一个实施例的电视节目的录制方法的流程图,如图3所示,所述方法包括:
步骤S302,通过网络接收到一个或多个用户的多个节目预约请求;
步骤S304,将每一节目预约请求分别分解为多个预定格式的子任务单元;
具体地,所述节目预约录制请求中可以包含预约录制内容相关信息的一项或多项子任务单元。而每一子任务单元包含频道、节目和时间段等三个属性信息,可以以“{频道X,节目Y,时间段Z}”这样的格式表示。每一子任务单元中的频道、节目和时间段信息能够唯一标识电视节目。
步骤S306,收集所述多个节目预约请求分解后的多个预定格式的子任务单元;由于接收到的多个节目录制请求是分散的来自于多个客户端的,并且这些节目录制请求的数量是随着时间动态变化(增加)的,因此需要先将这些分散的多个子任务单元统一集中起来,然后才能够判断其中相同的子任务单元。
步骤S308,将所述多个节目预约请求的子任务单元进行去重,生成由多个去重后的子任务单元组成的录制需求集合;
在将所述多个任务单元进行去重时,以频道信息作为索引,将相同频道的相同的节目信息和时间段信息进行去重合并。这样通过本步骤的去重处理后,生成由多个去重后的子任务单元组成的录制需求集合,换句话说,所述录制需求集合中不存在相同的子任务单元。
步骤S310,依照所述录制需求集合对电视节目进行统一录制,以便为客户端提供预约录制节目的播放服务。
进一步地,对每个频道一一对应设置节目接收机,具有该频道信息的各子任务单元对应的电视节目通过节目接收机接收,也就是说,根据频道信息确定相对应的节目接收机,并根据节目信息和时间段信息对所述节目接收机接收的节目进行录制。
图4是根据本申请另一实施例的电视节目的录制方法的流程图,如图4所示,在步骤S310之后,所述方法还包括:
步骤S402,将录制的电视节目对应子任务单元分块存储;
其中,将预约录制的电视节目统一存储在服务端,在存储时将电视节目与其对应的子任务单元建立对应关系并分块存储,每个分块存储的电视节目具有对应的存储地址,通过子任务单元能够确定其对应的电视节目的存储链接地址(URL)。由于录制的电视节目统一存储在服务端,客户端本地不再需要下载和存储电视节目,因此降低了用户的使用成本。
步骤S404,接收到对应所述节目预约请求的节目播放请求;
步骤S406,根据所述节目播放请求确定对应的子任务单元,根据所述节目播放请求对应的子任务单元确定对应该子任务单元存储的电视节目的链接地址;
具体地,在接收到来自客户端的对应节目预约请求的节目播放请求后,首先调出该客户端的节目预约请求,然后根据该节目预约请求确定对应的子任务单元,并从统一存储的电视节目中确定该子任务单元对应的电视节目的链接地址(URL)。
步骤S408,将所述电视节目的链接地址提供给客户端,从而客户端调用本地的视频播放器通过所述链接地址观看节目。
本申请的方法的操作步骤与装置的结构特征对应,可以相互参照,不再一一赘述。
综上所述,根据本申请的技术方案,将分散的不同用户的节目预约录制请求去重后合并为录制需求集合并进行电视节目的统一录制,对于相同的电视节目只在服务端录制一次,通过本申请能够在满足录制需求的情况下大幅降低录制成本。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。