一种网络直播及录制方法

文档序号:7898967阅读:158来源:国知局
专利名称:一种网络直播及录制方法
技术领域
本发明涉及一种网络直播及录制方法,属于网络视频播放及录制领域。
背景技术
随着科技的发展,越来越多的网络电视(Internet Protocol Television or Interactive Personal Television, IPTV)禾口数字电视(Digital Television, DTV)走向用户。人们可以在网上观看到自己喜欢的电视节目,而不用受时间的限制。对于自己喜欢的节目,大多数人总是倾向于多次观看的,然而每次在线观看同一个视频都需要大量的缓冲时间,下载到本地也会浪费时间,且不能满足观众一睹为快的心情,因此网络个人视频录制(Network Personal Video Recorder,NPVR)成为了众多网民的首选。申请号为200610056789. 8的专利公开了一种互联网个人视频录制系统及其终端,该个人录制系统采用P2p传输模式,视频录制方法为文件下载。这种互联网网个人视频录制系统在资源不好的时候下载速度极为缓慢,而且该系统终端请求下载的文件为流媒体服务器上分割好的视频文件,不能根据客户需求分段录制。申请号为200810102228. 6的专利公开了一种网络个人视频录制的方法和系统, 该录制系统包含了电子节目表单服务器、网络个人视频录制服务器、门户服务器、视频服务器接口模块、视频服务器、机顶盒、用户终端。这种网络个人视频录制系统的硬件要求比较高,且该系统录制的文件为整个节目,不能按照客户需求分段录制。

发明内容
本发明的目的在于提出一种网络直播录制方法,其能够解决上述技术问题。本发明提出的直播电视录制的方法,依次包含节目列表下载过程、HTTP请求响应过程,录制过程。优选的是,HTTP请求响应过程采用内容分发网络(Content Delivery Network,简称CDN)体系架构与p2p技术相结合的网络传输模式。优选的是,录制过程采用pkp. dll模块进行数据接收和录制。在节目列表下载过程中,用户启动直播模式后,客户端会从节目列表数据库中查询所有支持网络直播的电视频道以及每个频道近期(今天、明天、后天)的直播节目预告,然后将其下载下来显示在客户端界面上。优选的是,节目列表数据库运行在一台单独的服务器上,和客户端连接,为客户提供近期电视直播节目预告。优选的是,客户端包含Flash播放器、信令解析模块proxy、p2sp. dll,其中proxy 是对接收到的信令进行解析功能的软件模块,即信令解析模块;pkp. dll是一实现p2p功能逻辑的功能实体。HTTP请求响应过程包含以下步骤
步骤一、客户端向其连接的p2p节点请求数据,若存在该客户端所需文件,则直接传送,若不存在该客户端所需文件,则所述客户端向其连接的边界CDN节点,也就是该客户端的父CDN节点,发出视频数据请求;所述边界CDN节点接收到该视频数据请求后,查询本地缓存,判断是否存在所述客户端请求的视频数据,若存在则将该视频数据发送至所述客户端,若不存在则继续步骤二 ;
步骤二、所述边界CDN节点向与其连接的内部CDN节点,也就是其父CDN节点,发出视频数据请求,所述内部CDN节点判断该CDN节点是否存在所述边界CDN节点请求的视频数据;若存在则将该数据发送至所述边界CDN节点,所述边界CDN节点再将该视频数据保存在缓冲区并发送至所述客户端;若不存在则继续步骤三;
步骤三、所述内部CDN节点向直播源发出视频数据请求,所述直播源查找是否存在该视频数据,若存在则将该数据发送至所述内部CDN节点,所述CDN节点再将该视频数据在缓冲区进行保存并发送至所述边界CDN节点,所述边界CDN节点再将该视频数据在缓冲区进行保存并发送至所述客户端;若不存在则继续步骤四;
步骤四所述直播源服务器向流媒体服务器发送视频数据请求,所述流媒体服务器通过RTMP协议将其请求的视频流传入所述直播源的切片服务器;所述切片服务器将视频流转换为多个视频切片,并存储在直播源中的web服务器上,然后将视频切片发送给内部CDN 节点。优选的是,所述切片的播放时长为8-15秒,所述Web服务器上存放总计时长不超过两分钟的视频文件,过期文件将予以删除。优选的是,所述web服务器上生成并维护描述文件,所述描述文件用于记录当前 web服务器上的所有有效视频数据,该描述文件为一列表结构,内容包括每一有效视频数据的文件块编号、起始偏移、结束偏移;所述描述文件的内容可以动态更新,列表头部元素不断被去除,并且不断在列表尾部新增元素,表示切片服务器新生成的单位大小的视频文件。优选的是,所述播放器与边界⑶N节点、边界⑶N与内部⑶N节点、内部⑶N节点与直播源服务器之间的通信采用HTTP协议。所述录制阶段有直接手工录制、录制指定节目、录制指定时间段内的节目录制三种选择。优选的是,在直接手工录制方法中,用户在客户端界面上启用录制功能后,Flash 播放器传送record指令至信令解析模块ftx)Xy,信令解析模块Proxy将指令解析后,告知 p2sp. dll开始录制;pkp. dll在接收到边界⑶N节点或者p2p节点传送来的数据后,将数据传送至Flash播放器并且将数据写入本地的文件内,达到录制的目的。优选的是,在录制指定节目时,用户在客户端界面上选择需要录制的节目后, Flash播放器向信令解析模块ftOxy发送record指令和按直播开始时间先后排序完毕的录制列表。录制列表中每个列表元素为〈节目开始时间,节目所属频道,节目名 >。信令解析模块与时间同步服务器进行时间同步,对于列表中的每个节目,到其直播时间时,信令解析模块I^oxy向pkp. dll发送录制指令,告知其开启相应的频道,由pkp. dll向⑶N 节点或p2p节点所要数据,当边界⑶N节点将数据向应给p2sp. dll后,pkp. dll在将数据传送至Flash播放器的同时,将数据写入本地的文件内,即达到录制的目的。为录制多个节目,p2sp. dll此时为多线程工作。优选的是,在录制指定时间段内的节目时,用户在客户端界面上选择需要录制的某时间段内的节目后,Flash播放器向信令解析模块Proxy发送record指令和按直播开始时间先后排序完毕的录制列表,进行录制。每个列表元素为〈开始时间,结束时间,所属频道 >。信令解析模块Proxy先与时间同步服务器做时间同步,对于列表中的每一项,到其直播开始时间时,信令解析模块I^roxy向pkp. dll发送指令,告知其开启相应的频道, 由p2sp. dll向CDN节点或p2p节点所要数据,当边界CDN节点将数据向应给p2sp. dll后, p2sp. dll在将数据传送至Flash播放器的同时,将数据写入本地的文件内,即达到录制的目的。到其直播结束时间时,信令解析模块I^roxy向pkp. dll发送STOP指令停止该频道的录制。为录制多个节目,pkp.dll此时为多线程工作。本发明包括上述各方案的任意组合。本发明综合了⑶N与p2p网络的优点,在资源丰富的时候p2p网络承担主要传送任务,在资源欠缺的时候CDN承担了主要传送任务,使得用户在线观看与录制十分流畅。本发明录制过程不但包括了同步录制还包扩了异步录制,即无论用户在不在观看视频,都可以对视频进行录制,真正方便了用户,解放了用户。


图1是实施本发明的网络直播录制方法的直播录制系统架构的一优选实施例的示意图
图2是按照图1所示架构的直播录制时序图
图3是按照图1所示架构的录制指定节目时序图
图4是按照图1所示架构的录制指定时间段内的节目时序图。
具体实施例方式为了更好地阐述本发明,以下结合图示具体实施方式
来更详细地说明本发明提供的技术方案。图1所示为直播录制系统架构图。图1所示的系统包括一流媒体服务器、一直播源服务器、若干客户端、多个CDN节点,以及一个节目列表数据库。所述CDN节点为CDN服务器,所述多个CDN节点被组织为内部⑶N节点和边界⑶N节点,所述内部⑶N节点连接所述直播源与边界⑶N节点;而与内部 CDN节点连接的边界CDN节点作为该内部CDN节点的子节点;所述边界CDN节点连接所述内部CDN节点与所述客户端,所述边界CDN节点不直接访问直播源服务器;与边界CDN节点连接的内部CDN节点作为该边界CDN节点的父节点;所述播放终端仅连接到所述边界CDN 节点,作为与其连接的边界CDN节点的叶节点;如此,所有CDN节点组织成树状结构,每一台 CDN设备在其本地配置文件中指明其父CDN节点的地址,整棵树的根节点即为直播源中的 web服务器。所述客户端为一个p2p节点,每个客户端之间通过hternet连接,构成一个p2p 网络。所述流媒体服务器与所述直播源服务器连接,该直播源服务器进一步包括切片服务器与Web服务器;流媒体服务器通过RTMP协议将视频流传入直播源服务器中的切片服务
ο
所述web服务器上生成并维护描述文件,所述描述文件用于记录当前web服务器上的所有有效视频数据,该描述文件为一列表结构,内容包括每一有效视频数据的文件块编号、起始偏移、结束偏移;所述描述文件的内容可以动态更新,列表头部元素不断被去除, 并且不断在列表尾部新增元素,表示切片服务器新生成的单位大小的视频文件。所述客户端连接所述边界CDN节点与所述节目列表数据库,所述客户端通过连接所述节目列表数据库下载节目列表到用户界面,方便用户勾选需要下载的节目。所述客户端连所述接边界CDN节点,当客户下达录制指令时,所述客户端向所述边界CDN节点发送数据请求索要数据,并接收所述边界CDN节点传输的数据。所述节目列表数据库存储了所有支持网络直播的电视频道以及每个频道近期(今天、明天、后天)的直播节目预告,在所述客户端需要录制节目时候,客户端会将节目列表按时间进行排序制成录制列表。图1所示网络直播录制系统工作流程叙述如下,可进一步参照图2所示直播录制时序图,图3是录制指定节目时序图,图4是录制指定时间段内的节目时序图,更清楚理解本发明
图1所述客户端包括Flash播放器、信令解析模块ft~0Xy、p2Sp. dll。如图2直播录制时序图所示,当用户启动播放器开启直播后,所述Flash播放器会向pkp. all发送HTTP请求,然后经由所述p2sp. all连接⑶N节点或p2p节点获取数据。当用户下达开始录制指令后,所述Flash播放器传送record指令至所述信令解析模块 I^roxy,所述信令解析模块将指令解析后告知所述p2sp. all,然后经由所述p2sp. all 连接CDN节点与p2p节点获取数据。在接收到CDN节点或p2p节点传送过来的数据后所述 p2sp. dll先将数据保存在本地文件内,然后传送至所述Flash播放器。直到用户下达停止录制指令,所述Flash播放器向所述信令解析模块Proxy发送停止录制指令,经过指令解析后发送给所述p2sp. all,之后再次经由CDN节点或p2p节点传送过来的数据将不再在本地保存一份,直接传送给所述Flash播放器。如图3录制指定节目时序图所示,在用户下达录制指定节目命令后,所述Flash播放器先按时间顺序将所述节目列表中所需录制节目进行排序制成录制列表,然后将record 指令和所述录制列表发送至所述信令解析模块ft~0Xy,每个列表元素为〈节目开始时间, 节目所属频道,节目名〉。所述信令解析模块先与时间同步服务器做时间同步。当到列表中的第一个节目直播时间时,所述信令解析模块I^roxy向所述p2sp. dll发送开启第一个节目的录制指令,告知所述p2sp. dll开启相应的频道,通过所述p2sp. dll向⑶N或p2p 节点获取该频道节目的数据并在本地保存。当到达所述录制列表中第二个节目直播时间时,所述信令解析模块Proxy将建立一个新的线程,向所述p2sp. dll发送开启另一个节目的录制指令,通过所述p2sp. dll向CDN或p2p节点获取该频道节目的数据并在本地保存。 以此类推,直到所述录制列表中所有表项全部录制完毕。如图4录制指定时间段内的节目时序图所示,用户在用户界面上选择需要录制的某时间段内的节目后,所述Flash播放器先按开始时间顺序将所述节目列表中所需录制时间段进行排序制成录制列表,再向所述信令解析模块Proxy发送record指令和按直播开始时间先后排序完毕的录制列表,每个列表元素为〈开始时间,结束时间,所属频道〉。所述信令解析模块先与时间同步服务器进行时间同步。当所述录制列表中第一个频道开始录制时间到时,所述信令解析模块I^roxy向所述p2sp. dll发送对第一个频道的录制指令,告知其开启相应的频道,所述P2sp. dll向CDN或p2p节点获取该频道节目的数据并在本地保存。到结束时间,所述信令解析模I^roxy向所述p2sp. dll发送STOP指令,所述p2sp. dll停止所述频道的录制。当所述录制列表中第二个频道开始录制时间到时,所述信令解析模块向所述p2sp. dll发送对第二个频道的录制指令,告知其开启相应的频道,所述 p2sp.dll向CDN或p2p节点获取该频道节目的数据并在本地保存。到结束时间,所述信令解析模I^roxy向所述p2sp.dll发送STOP指令,所述p2sp.dll停止该频道的录制。以此类推,直到所述录制列表中所有表项全部录制完毕。
权利要求
1.直播电视录制方法,依次包含节目列表下载过程、HTTP请求响应过程、录制过程,其特征在于HTTP请求响应过程采用内容分发网络体系架构与p2p技术相结合的网络传输模式;录制过程采用P^P. dll模块进行数据接收和录制。
2.根据权利要求1所述的方法,其特征在于所述节目列表下载过程为,用户启动直播模式后,客户端从节目列表数据库中查询所有支持网络直播的电视频道以及每个频道近期的直播节目预告并制成录制列表,然后将其下载到本地显示在客户端界面上。
3.根据权利要求2所述的方法,其特征在于所述节目列表数据库运行在一台单独的服务器上,该节目列表数据库与所述客户端连接,为客户提供近期电视直播节目预告。
4.根据权利要求2、3所述的方法,其特征在于所述客户端为一个p2p节点,包含 Flash播放器、Proxy, p2sp. dll,其中Proxy是对接收到的信令进行解析功能的软件模块, 即信令解析模块;pkp. dll是一实现p2p功能逻辑的功能实体。
5.根据权利要求1所述的方法,其特征在于HTTP请求响应过程包含以下步骤步骤一、客户端向其连接的p2p节点请求数据,若存在该客户端所需文件,则直接传送,若不存在该客户端所需文件,则所述客户端向其连接的边界CDN节点,也就是该客户端的父CDN节点,发出视频数据请求;所述边界CDN节点接收到该视频数据请求后,查询本地缓存,判断是否存在所述客户端请求的视频数据,若存在则将该视频数据发送至所述客户端,若不存在则继续步骤二 ;步骤二、所述边界CDN节点向与其连接的内部CDN节点,也就是其父CDN节点,发出视频数据请求,所述内部CDN节点判断该CDN节点是否存在所述边界CDN节点请求的视频数据;若存在则将该数据发送至所述边界CDN节点,所述边界CDN节点再将该视频数据保存在缓冲区并发送至所述客户端;若不存在则继续步骤三;步骤三、所述内部CDN节点向直播源发出视频数据请求,所述直播源查找是否存在该视频数据,若存在则将该数据发送至所述内部CDN节点,所述CDN节点再将该视频数据在缓冲区进行保存并发送至所述边界CDN节点,所述边界CDN节点再将该视频数据在缓冲区进行保存并发送至所述客户端;若不存在则继续步骤四;步骤四所述直播源服务器向流媒体服务器发送视频数据请求,所述流媒体服务器通过RTMP协议将其请求的视频流传入所述直播源的切片服务器;所述切片服务器将视频流转换为多个视频切片,并存储在直播源中的web服务器上,然后将视频切片发送给内部CDN 节点。
6.根据权利要求5所述的方法,其特征在于所述切片的播放时长为8-15秒,所述Web 服务器上存放总计时长不超过两分钟的视频文件,过期文件将予以删除。
7.根据权利要求6所述的方法,其特征在于所述web服务器上生成并维护描述文件, 所述描述文件用于记录当前web服务器上的所有有效视频数据,该描述文件为一列表结构,内容包括每一有效视频数据的文件块编号、起始偏移、结束偏移;所述描述文件的内容可以动态更新,列表头部元素不断被去除,并且不断在列表尾部新增元素,表示切片服务器新生成的单位大小的视频文件。
8.根据权利要求5所述的方法,其特征在于所述播放器与边界CDN节点、边界CDN与内部⑶N节点、内部⑶N节点与直播源服务器之间的通信采用HTTP协议。
9.根据权利要求1所述的方法,其特征在于录制过程包括直接手工录制、录制指定节目、录制指定时间段内的节目录制三种方法。
10.根据权利要求9所述的方法,其特征在于所述录制过程采用直接手工录制方法, 其中用户在客户端界面上启用录制功能后,Flash播放器传送record指令至信令解析模块 Proxy,信令解析模块Proxy将指令解析后,告知p2sp. dll开始录制;pkp. dll在接收到边界⑶N节点或者p2p节点传送来的数据后,将数据传送至Flash播放器并且将数据写入本地的文件内,达到录制的目的。
全文摘要
本发明提供一种网络直播录制方法,按照本发明的方法,用户对某个视频文件下达录制指令后,客户端的Flash播放器通过proxy告知p2sp.dll开始录制,p2sp.dll通过CDN以及p2p网络发送HTTP请求,接到该HTTP请求的某台边界CDN节点或者p2p节点在本地查询是否存在所需数据,存在则与发送端建立HTTP连接;不存在则p2p节点不响应,边界CDN节点向上游内部CDN节点索要数据,直到某个内部CDN节点找到直播源或该内部CDN节点本地存有所需数据。CDN节点收到所需数据后,在本地缓存并分发给其下游节点。客户端收到所需数据后,p2sp.dll将该数据写入本地文件并传送至Flash播放器,达到录制的目的。
文档编号H04N21/63GK102281474SQ20111025841
公开日2011年12月14日 申请日期2011年9月2日 优先权日2011年9月2日
发明者李茗, 邵长松 申请人:乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1