WO2007104236A1 - Method of providing vedio-on-demand, method, server and terminal for video-on-demand - Google Patents

Method of providing vedio-on-demand, method, server and terminal for video-on-demand Download PDF

Info

Publication number
WO2007104236A1
WO2007104236A1 PCT/CN2007/000722 CN2007000722W WO2007104236A1 WO 2007104236 A1 WO2007104236 A1 WO 2007104236A1 CN 2007000722 W CN2007000722 W CN 2007000722W WO 2007104236 A1 WO2007104236 A1 WO 2007104236A1
Authority
WO
WIPO (PCT)
Prior art keywords
multicast
program data
unicast
demand
terminal
Prior art date
Application number
PCT/CN2007/000722
Other languages
French (fr)
Chinese (zh)
Other versions
WO2007104236A8 (en
Inventor
Wei Ma
Lei Gao
Original Assignee
Huawei Technologies 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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of WO2007104236A1 publication Critical patent/WO2007104236A1/en
Publication of WO2007104236A8 publication Critical patent/WO2007104236A8/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management 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/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26616Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for merging a unicast channel into a multicast channel, e.g. in a VOD application, when a client served by unicast channel catches up a multicast channel to save bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-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/47202End-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 requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/64Addressing
    • H04N21/6405Multicasting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/64Addressing
    • H04N21/6408Unicasting

Definitions

  • a video on demand method provided by the present invention includes:
  • a storage module configured to store program data and multicast information.
  • a video on demand terminal includes a communication module, a play control module and a storage module;
  • the communication module is configured to receive unicast program data from the server and transmit the unicast program data to the play control module, and receive the multicast program data according to the multicast information from the server and store the data in the storage module; and The on-demand request and the abort unicast request from the play control module are sent to the server;
  • the storage module is used to store multicast program data.
  • the terminal in order to ensure that the terminal receives the multicast program data for a period of time, it can stop the connection.
  • the progress of the program data sent in the multicast mode needs to be synchronized with the progress of the earliest unicast in the unicast corresponding to the multicast or slightly faster than the progress of the unicast. .
  • the recorded unicast information includes: the ID number of the program, the time stamp of the unicast, the destination address of the unicast, and the like.
  • the time stamp of the unicast may be the time when the unicast starts.
  • Step 206 The server determines whether multicast can be established, that is, the number of unicasts recorded in the time span in which the current time is located is not identified as having joined the multicast, and determines whether the quantity reaches a preset minimum unicast quantity. N, if it is step 207; otherwise, execute step 212; '
  • the multicast information recorded in this step includes the ID number of the program, the time stamp of the multicast, and the multicast address.
  • the time stamp of the multicast may be the start time of the earliest unicast in the multicast group.
  • Step 407 The decision module stores the multicast information in the storage module.
  • Step 504 The play control module plays according to the received program data in a unicast form.
  • Step 505 After receiving the notification of joining the multicast from the server, the communication module adds the corresponding multicast receiving program data, and stores the received multicast program data into the storage module.
  • the terminal 1 first performs program on demand at 10:00, the server transmits unicast program data thereto, and stores the unicast information.
  • the terminal 1 has a waiting time of 0 without considering the delay. Thereafter, there are 8 terminals respectively joining the same program on demand, and their processing is the same as that of the terminal 1.
  • the terminal 10 broadcasts the program again at 10:03, and the server immediately sends the unicast data to it and stores the unicast information, so as to respond immediately on demand.
  • Step 906 The decision module establishes multicast, stores the multicast information in the storage module, sends the multicast program data through the communication module, and notifies the corresponding terminal to join the multicast receiving program data, and then calculates Tstop for the terminals respectively.

Abstract

The present invention discloses a method for providing video-on-demand, the method comprising : after a video-on-demand server having received an on-demand request from a video-on-demand terminal, it transmitting the program data being demanded to the video-on-demanding terminal in an unicast form; building a multicast for vedio-on-demand terminals which demand the same program data as the said program data, transmitting the said program data in a multicast form, and informing the information on said multicast to the video-on-demand terminals which demand the same program data as the said program data; confirming the coincidence between the unicast program data and the multicast program data, terminating transmitting the program data to the video-on-demand terminals in the unicast form. The present invention also discloses a method ofvideo-on-demand, a server for video-on-demand and a terminal for video-on-demand.

Description

提供视频点播的方法、 视频点播方法、 服务器和终端 技术领域 本发明涉及音视频网络播放技术领域, 特别是指一种提供视频点播 的方法、一种视频点播方法、一种视频点播服务器和一种视频点播终端。 发明背景 视频点播是因特网数字电视(IPTV ) , 个人电脑电视(PCTV )等 领域中的最为重要的功能之一。 视频点播可以让用户通过视频点播终端 按照自己的需求随意的选择收视节目, 随时点播自己喜欢的节目进行收 看。 目前的视频点播功能主要实现分为两种方式: 一是通过对每个点播 在视频点播服务器与视频点播终端之间建立单播来发送节目数据实现 点播功能。 二是利用固定时间间隔的组播, 让用户等待加入不同的组播 组收视节目。 这两种方式都存在自己的不足, 一是视频点播服务器负载 大, 视频点播服务器网络带宽要求高, 二是响应延迟时间较长, 用户体 验差。为描述方便,在本说明书中以下将视频点播服务器简称为服务器, 将视频点播终端简称为终端。  TECHNICAL FIELD The present invention relates to the field of audio and video network playback technologies, and in particular, to a method for providing video on demand, a video on demand method, a video on demand server, and a Video on demand terminal. BACKGROUND OF THE INVENTION Video on demand is one of the most important functions in the field of Internet Digital Television (IPTV), Personal Computer Television (PCTV) and the like. Video on demand allows users to choose the viewing program according to their own needs through the video on demand terminal, and then order their favorite programs for viewing at any time. The current video on demand function is mainly implemented in two ways: First, the program function is implemented by transmitting unicast between the video on demand server and the video on demand terminal for each on-demand. The second is to use a fixed time interval of multicast, allowing users to wait to join different multicast group viewing programs. Both of these methods have their own shortcomings. First, the video on demand server has a large load, the video on demand server has high network bandwidth requirements, and the second is that the response delay time is long and the user experience is poor. For convenience of description, in the present specification, the video on demand server is simply referred to as a server, and the video on demand terminal is simply referred to as a terminal.
为了实现真正的视频点播( VOD )功能, 及时地响应用户点播通常 利用 IP网的单播来实现。 但利用单播的方式实现 VOD功能, 针对每一 个点播服务器都需要建立一个连接并发送数据。 当同一时刻大量的点播 发生时, 服务器的负荷将会很大, 大量发生的点播将会导致服务器的响 应緩慢, 网络堵塞。  In order to achieve true video on demand (VOD) functions, timely response to user-on-demand is usually achieved by using unicast of the IP network. However, the VOD function is implemented by means of unicast, and each connection server needs to establish a connection and send data. When a large number of on-demand broadcasts occur at the same time, the load on the server will be large, and a large number of on-demand broadcasts will result in slow response of the server and network congestion.
针对利用单播方式下的实现 VOD对服务器的功能和网络要求都过 高的缺点, 还有一种利用组播技术实现 VOD功能的方法。 通常利用组 播技术实现 VOD技术的方法是利用将节目分不同的时间发起多个組播。 常用的方法就是每隔一段时间建立一个组播, 并向整个网络发送节目数 据。 当终端点播节目后, 服务器将该节目对应的下一个組播地址发送给 终端, 通知终端加入下一个组播接收节目数据; 终端根据接收的组播地 址接收服务器以组播方式发送的节目数据。 In view of the shortcomings of using VOD to implement the functions and network requirements of the server in the unicast mode, there is also a method of implementing the VOD function by using the multicast technology. The method of implementing VOD technology by using multicast technology is usually to initiate multiple multicasts at different times. A common method is to establish a multicast at intervals and send the number of programs to the entire network. According to. After the terminal orders the program, the server sends the next multicast address corresponding to the program to the terminal, and notifies the terminal to join the next multicast receiving program data; the terminal receives the program data sent by the server in a multicast manner according to the received multicast address.
现有技术中利用组播方式发送节目来实现 VOD功能的方法, 响应 时间较长, 造成组擦时延较长。 由于响应的时间与服务器负担成反比, 在快速响应的情况下, 服务器负担太高。 发明内容 有鉴于此, 本发明的本发明的目的在于提供一种提供视频点播的方 法、 一种视频点播方法、 一种视频点播服务器和一种视频点播终端, 能 够解决现有技术中存在的组播时延长的问题, 并能够降低服务器负担。  In the prior art, a method of transmitting a program by using a multicast method to implement a VOD function has a long response time, and causes a group wipe delay to be long. Since the response time is inversely proportional to the server load, the server burden is too high in the case of a fast response. SUMMARY OF THE INVENTION In view of this, an object of the present invention is to provide a method for providing video on demand, a video on demand method, a video on demand server, and a video on demand terminal, which can solve the group existing in the prior art. The problem of prolonged broadcast and can reduce the burden on the server.
本发明提供的一种视频点播方法包含以下步骤:  A video on demand method provided by the present invention includes the following steps:
视频点播服务器接收到来自视频点播终端的点播请求后, 以单播方 式向视频点播终端发送点播的节目数据;  After receiving the on-demand request from the video on demand terminal, the video on demand server sends the on-demand program data to the video on demand terminal in a unicast manner;
为点播相同的所述节目数据的视频点播终端建立组播, 以組播方式 发送所述节目数据, 并将所述组播信息通知给所述点播相同节目的视频 点播终端; 确认单播节 S数据与組播节目数据重合, 停止以单播方式向视频点 播终端发送节目数据。  Establishing multicast for the video on demand terminal that plays the same program data, transmitting the program data in a multicast manner, and notifying the multicast information to the video on demand terminal of the same program on demand; confirming the unicast section S The data coincides with the multicast program data, and stops transmitting the program data to the video on demand terminal in a unicast manner.
本发明提供的一种视频点播方法, 包括:  A video on demand method provided by the present invention includes:
视频点播终端向视频点播服务器发送点播请求;  The video on demand terminal sends an on-demand request to the video on demand server;
接收返回的单播节目数据并播放;  Receiving the returned unicast program data and playing it;
视频点播终端接收到视频点播服务器发送的组播信息, 根据所述组 播信息接收组播节目数据并存储; 视频点播终端在确定接收的单播节目数据与存储的组播节目数据 重合后, 读取所述存储的組播节 ¾数据并播放。 本发明提供的一种视频点播服务器, 该服务器包括通讯模块、 决策 模块和存储模块; 其中, The video on demand terminal receives the multicast information sent by the video on demand server, receives the multicast program data according to the multicast information, and stores the same; the video on demand terminal reads the received unicast program data and the stored multicast program data, and then reads The stored multicast node data is taken and played. The present invention provides a video on demand server, which includes a communication module, a decision module, and a storage module;
通讯模块用于接收来自终端点播请求, 响应该请求读取并以单播方 式发送存储模块中的对应节目数据, 并将点播请求传送给决策模块; 和 将来自决策模块的组播信息发送给终端, 并根据来自决策模块的发起組 播的信息从存储模块中读取并以组播方式发送对应的节目数据, 以及根 据来自终端的中止请求停止读取和发送对应的节目数据;  The communication module is configured to receive a request from the terminal for on-demand, read and transmit the corresponding program data in the storage module in a unicast manner, and transmit the on-demand request to the decision module; and send the multicast information from the decision module to the terminal And reading, according to the information initiated by the decision module from the multicast module, and transmitting the corresponding program data in a multicast manner, and stopping reading and transmitting the corresponding program data according to the suspension request from the terminal;
决策模块用于根据来自通讯模块的点播请求确定是否将终端加入 已有的組播, 或是否需要发起组播, 并根据确定出的将终端加入已有组 播的信息或发起组播的信息, 将组播信息发送给通讯模块; 和将发起的 组播的信息存储在存储模块;  The decision module is configured to determine whether to add the terminal to the existing multicast according to the on-demand request from the communication module, or whether to initiate the multicast, and according to the determined information that the terminal is added to the existing multicast information or initiates the multicast information, Sending multicast information to the communication module; and storing the initiated multicast information in the storage module;
存储模块, 用于存储节目数据和组播信息。  a storage module, configured to store program data and multicast information.
本发明提供的一种视频点播终端 , 包括通讯模块、 播放控制模块和 存储模块; 其中,  A video on demand terminal provided by the present invention includes a communication module, a play control module and a storage module;
通讯模块用于接收来自服务器的单播节目数据并将单播节目数据 传送给播放控制模块, 以及根据来自服务器的组播信息接收組播节目数 据并存储到存储模块中; 并用于将用户发起的点播请求和来自播放控制 模块的中止单播请求发送给服务器;  The communication module is configured to receive unicast program data from the server and transmit the unicast program data to the play control module, and receive the multicast program data according to the multicast information from the server and store the data in the storage module; and The on-demand request and the abort unicast request from the play control module are sent to the server;
播放控制模块用于接收来自通讯模块的单播节目数据并进行解码 播放; 或根据确定出的单播节目数据中止的信息读取存储模块中存储的 组播节目数据并进行节目播放;  The play control module is configured to receive the unicast program data from the communication module and perform decoding and playing; or read the multicast program data stored in the storage module according to the determined information of the unicast program data suspension and play the program;
存储模块用于存储組播节目数据。  The storage module is used to store multicast program data.
从以上方案可以看出 , 本发明中通过视频点播服务器接收到来自视 频点播终端的点播请求后, 以单播形式向终端发送所点播的节目数据, 达到了对终端点播请求的即时响应; 此后, 服务器为多个点播相同节目 数据的终端建立组播组, 并向所述多个终端以组播方式发送所述相同的 节目数据, 终端接收以组播方式发送的节目数据并存储; 当终端接收的 服务器以单播方式发送的节目数据与终端存储的服务器以組播方式发 送的节目数据重合时 , ·服务器停止以单播方式向终端发送节目数据, 从 而又通过组播向多个终端发送数据而降低了对资源的占用。 附图简要说明 图 1为本发明一个实施例的流程图; It can be seen from the above that, after receiving the on-demand request from the video on demand terminal by the video on demand server, the video on-demand server transmits the requested program data to the terminal in a unicast manner, and reaches an instant response to the terminal on-demand request; The server establishes a multicast group for a plurality of terminals that order the same program data, and transmits the same program data to the plurality of terminals in a multicast manner, and the terminal receives the program data transmitted in a multicast manner and stores the data; of When the program data transmitted by the server in the unicast mode coincides with the program data transmitted by the server stored by the terminal in the multicast mode, the server stops transmitting the program data to the terminal in a unicast manner, thereby transmitting data to the plurality of terminals through multicast. Reduce the occupation of resources. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a flow chart of an embodiment of the present invention;
图 2为本发明方法第一实施例中服务器与终端交互的流程图; 图 3为本发明的系统组成示意图;  2 is a flowchart of interaction between a server and a terminal in a first embodiment of the method according to the present invention; FIG. 3 is a schematic diagram of a system composition of the present invention;
图 4为本发明方法笫一实施例中服务器内部处理流程图; 图 5为本发明方法第一实施例中终端内部处理流程图;  4 is a flowchart of internal processing of a server in an embodiment of the present invention; FIG. 5 is a flowchart of internal processing of a terminal in a first embodiment of the method according to the present invention;
图 6为本发明方法第一实施例一种案例的系统示意图;  6 is a schematic system diagram of a case of a first embodiment of a method according to the present invention;
图 7为本发明方法第二实施例中服务器与终端交互的流程图; 图 8为本发明方法第三实施例中服务器与终端交互的流程图; 图 9为本发明方法第四实施例中服务器内部的处理流程图; 图 10为本发明方法第四实施例中终端内部的处理流程图; 图 11为终端播放控制示意图。 实施本发明的方式 为使本发明的目的、 技术方案和优点更加清楚, 下面结合附图对本 发明作进一步的详细描述。  FIG. 7 is a flowchart of interaction between a server and a terminal in a second embodiment of the method according to the present invention; FIG. 8 is a flowchart of interaction between a server and a terminal in a third embodiment of the method according to the present invention; FIG. 10 is a flowchart of processing inside a terminal in a fourth embodiment of the method according to the present invention; and FIG. 11 is a schematic diagram of terminal playback control. BEST MODE FOR CARRYING OUT THE INVENTION The present invention will be further described in detail below with reference to the accompanying drawings.
本发明的一个实施例是, 视频点播服务器接收到来自视频点播终端 的点播请求后, 立即以单播形式向终端发送所点播的节目数据, 以达到 即时响应; 此后, 上述月良务器 '为点播相同节目数据的终端建立组播, 并 向所述多个终端以組播方式发送所述相同的节目数据; .当单播节目数据 与组播节目数据重合时, 服务器停止以单播方式向终端发送节目数据, 从而又通过組播向多个终端发送数据而降低了对资源的占用。 According to an embodiment of the present invention, after receiving the on-demand request from the video on demand terminal, the video on demand server immediately transmits the requested program data to the terminal in a unicast manner to achieve an immediate response; thereafter, the above server is A terminal that requests the same program data to establish a multicast, and multicasts the same program data to the plurality of terminals in a multicast manner; when the unicast program data coincides with the multicast program data, the server stops unicasting The terminal transmits program data, Thereby, the data is transmitted to multiple terminals through multicast, which reduces the occupation of resources.
本发明还一个实施例是, 视频点播终端向视频点播服务器发送点播 请求; 然后接收服务器返回的单播节目数据并播放; 视频点播终端接收 到视频点播服务器发送的组播信息, 根据所述组播信息接收组播节目数 据并存储; 在上述单播节目数据与上述组播节目数据重合后, 视频点播 终端读取所述存储的组播节目数据并播放。  In another embodiment of the present invention, the video on demand terminal sends an on-demand request to the video on demand server; then receives the unicast program data returned by the server and plays the same; the video on demand terminal receives the multicast information sent by the video on demand server, according to the multicast The information receives the multicast program data and stores; after the unicast program data overlaps with the multicast program data, the video on demand terminal reads the stored multicast program data and plays the same.
包括上述两个实施例的一种实施例的流程如图 1所示, 包括以下步 骤:  The flow of an embodiment including the above two embodiments is as shown in FIG. 1, and includes the following steps:
. 步骤 101、 服务器接收到来自终端的点播请求后, 响应该请求, 以 单播方式向终端发送点播的节目数据, 终端接收所述单播的节目数据并 播放; - 步驟 102、 服务器为点播相同的所述节目数据的终端建立组播, 以 组播方式发送所述节目数据, 并将所述组播信息通知给所述点播相同节 目的终端;  Step 101: After receiving the request for on-demand from the terminal, the server sends the on-demand program data to the terminal in a unicast manner in response to the request, and the terminal receives the unicast program data and plays the same; - Step 102: The server is the same on-demand The terminal of the program data establishes multicast, transmits the program data in a multicast manner, and notifies the multicast information to the terminal of the same program on demand;
步骤 103、 接收到组播信息的终端根据该组播信息接收所述组播的 节目数据并存储;  Step 103: The terminal that receives the multicast information receives the multicast program data according to the multicast information and stores the multicast program data.
步驟 104、 当终端接收的所述单播的节目数据与该终端中存储的所 述组播的节目数据重合后, 服务器停止以单播方式向终端发送节目数 据, 终端读取所述存储的组播节目数据并播放。 ·· ·■  Step 104: After the unicast program data received by the terminal overlaps with the multicast program data stored in the terminal, the server stops sending program data to the terminal in a unicast manner, and the terminal reads the stored group. Broadcast the program data and play it. ·· ·■
为了降低服务器的负担, 在上述建立组播时, 服务器可以根据预先 设定的条件建立组播, 该条件可以是在一定时间跨度 T内对同一节目发 起单播达到或超过了最小单播数量 N; 该条件还可以是在当前单播之前 的 时间内没有组播, 但存在针对相同节目的单播; 该条件也可以只 是没有针对相同节目的组播。  In order to reduce the burden on the server, when the multicast is established, the server may establish multicast according to a preset condition, which may be that the unicast of the same program reaches or exceeds the minimum unicast number N within a certain time span T. The condition may also be that there is no multicast in the time before the current unicast, but there is unicast for the same program; the condition may also be that there is no multicast for the same program.
另外, 为了保证终端在接收组播节目数据一段时间后, 可以停止接 收单播节目数据, 在建立组播后, 以组播方式发送的节目数据进度需要 与该組播对应的单播中最早开始的单播的进度同步或稍快于该单播的 进度。 . In addition, in order to ensure that the terminal receives the multicast program data for a period of time, it can stop the connection. After receiving the unicast program data, after the multicast is established, the progress of the program data sent in the multicast mode needs to be synchronized with the progress of the earliest unicast in the unicast corresponding to the multicast or slightly faster than the progress of the unicast. .
上述确定终端接收的单播的节 U数据与终端中存储的组播的节目 数据是否重合, 可以由终端来执行, 则终端根据接收的节目数据信息确 定出节目数据重合后, 需要通知服务器停止以单播方式向该终端发送节 目数据; 也可以是由服务器来执行, 则服务器根据发送的节目进度确定 出终端以两种方式接收的节目数据重合后, 停止以单播方式向该终端发 送数据。  Whether the unicast section U data received by the terminal and the multicast program data stored in the terminal overlap with each other may be performed by the terminal, and after determining that the program data overlaps according to the received program data information, the terminal needs to notify the server to stop. The unicast mode transmits program data to the terminal; or may be performed by the server, the server determines, according to the progress of the transmitted program, that the program data received by the terminal in two ways overlaps, and stops sending data to the terminal in a unicast manner.
以下通过具体实施例对本发明进行详细说明。  The invention will now be described in detail by way of specific examples.
在本发明的第一实施例中', 服务器预先设定建立组播的时间跨度 T 和最小单播数量 其中, 时间跨度 T可以根据服务器的能力、 网络状 况以及终端的存储能力确定, 如果服务器的能力较强, 网络状况较好, 则可以将时间跨度设置的小一些, 这样对于终端存储能力的要求就低; 如果终端的存储能力较强, 则可以将时间跨度设置的大一些。 而最小单 播数量 N, 则根据组播和单播的资源耗费情况确定, 最小单播数量应该 满足在这个值 N时,组播的代价和 N个单播的代价近似相等,或组播的 代价稍小于 N个单播的代价, 该值的范围可以为 10至 100。  In the first embodiment of the present invention, the server pre-sets the time span T and the minimum unicast number of establishing multicast, wherein the time span T can be determined according to the capabilities of the server, the network status, and the storage capacity of the terminal, if the server If the capacity is strong and the network status is good, the time span can be set smaller, so that the requirements for the terminal storage capacity are low. If the storage capacity of the terminal is strong, the time span can be set larger. The minimum number of unicasts N is determined according to the resource consumption of multicast and unicast. The minimum unicast quantity should satisfy the value of multicast and the cost of N unicasts are approximately equal, or multicast. The cost is slightly less than the cost of N unicasts, which can range from 10 to 100.
在确定了建立组播的时间跨度 T和最小单播数量 N后,本发明具体 实施例中终端与服务器交互的流程如图 2所示, 具体包括以下步骤: 步骤 201、 终端选择节目后, 利用 IP网络向服务器发送点播请求。 步驟 202、 服务器接收到点播请求后, 响应该请求, 以单播方式向 上述终端发送对应节目数据, 并记录该单播信息。  After determining the time span T and the minimum unicast number N of the multicast, the process of interacting between the terminal and the server in the specific embodiment of the present invention is as shown in FIG. 2, which specifically includes the following steps: Step 201: After the terminal selects the program, the terminal uses The IP network sends an on-demand request to the server. Step 202: After receiving the on-demand request, the server sends the corresponding program data to the terminal in a unicast manner in response to the request, and records the unicast information.
这里, 在终端点播一个节目后, 服务器可以通过几个单播分别发送 不同类型的数据内容进行响应, 例如音频和视频分别通过两个单播发送 给用户, 此时可以将这几个单播作为一个整体, 下面所提及的单播都是 以这个整体为例; 类似地, 后续的組播, 服务器也可以通过几个组播分 别发送不同类型的数据内容, 下面所提及的组播都是以这几个组播的整 体为例。 Here, after the terminal clicks on a program, the server can separately respond by sending different types of data content through several unicasts, for example, audio and video are respectively sent through two unicasts. To the user, you can use these unicasts as a whole. The unicast mentioned below is based on this whole; similarly, for subsequent multicast, the server can also send different multicasts through several multicasts. The type of data content, the multicast mentioned below is based on the overall of these multicasts.
本步骤中, 记录的单播信息包括: 节目的 ID号, 单播的时间标记, 单播的目的地址等。 其中, 单播的时间标记可以是该单播开始的时间。  In this step, the recorded unicast information includes: the ID number of the program, the time stamp of the unicast, the destination address of the unicast, and the like. The time stamp of the unicast may be the time when the unicast starts.
步驟 203、 服务器判断当前时间所在的时间跨度内是否有对应节目 的組播存在, 如果有则执行步骤 204; 否则执行步骤 '206;  Step 203: The server determines whether there is a multicast of the corresponding program in the time span in which the current time is located, if yes, step 204 is performed; otherwise, step '206 is performed;
步骤 204、 服务器将该组播的地址发送给终端, 通知终端加入该组 播接收节目数据, 并在上述记录的单播信息中将该单播标识为已加入组 播;  Step 204: The server sends the multicast address to the terminal, and the terminal is notified to join the multicast to receive the program data, and the unicast is identified as having joined the multicast in the recorded unicast information.
步骤 205、 终端根据接收的组播地址加入对应的组播接收组播节目 数据, 然后执行步驟 208;  Step 205, the terminal joins the corresponding multicast receiving multicast program data according to the received multicast address, and then proceeds to step 208;
步骤 206、 服务器判断是否可以建立组播, 即统计当前时间所在的 时间跨度内所记录的未被标识为已加入组播的单播数量, 并判断该数量 是否达到预先设定的最小单播数量 N, 如果是执行步骤 207; 否则执行 步驟 212; '  Step 206: The server determines whether multicast can be established, that is, the number of unicasts recorded in the time span in which the current time is located is not identified as having joined the multicast, and determines whether the quantity reaches a preset minimum unicast quantity. N, if it is step 207; otherwise, execute step 212; '
步骤 207、 服务器建立组播发送数据, 将该组播的地址发送给该时 间跨度内所记录的未被标识为已加入组播的单播对应的终端, 并记录该 组播信息, 将加入该组播的单播标识为已加入组播, 然后执行步驟 205; 本步骤中, 服务器建立组播时, 该组播所发送节目数据的起始点需 要根据该组播中最早开始的单播的发送进度确定, 可以与该最早开始的 单播发送进度相同, 也可以该最早开始的单播当前所发送进度之后预先 设定的延迟时间 t所对应的节目数据开始发送。 该延迟时间 t的大小的 设定可以根据网络情况和响应速度进行, 能够保证终端接收的组播节目 数据比同时接收的单播节目数据晚即可。 Step 207: The server establishes multicast transmission data, and sends the multicast address to the terminal corresponding to the unicast corresponding to the multicast time record recorded in the time span, and records the multicast information, and joins the multicast information. The multicast unicast identifier is added to the multicast, and then step 205 is performed. In this step, when the server establishes multicast, the starting point of the program data sent by the multicast needs to be sent according to the earliest unicast transmission in the multicast. The progress determination may be the same as the earliest unicast transmission progress, or may be started by the program data corresponding to the preset delay time t after the earliest currently transmitted unicast. The setting of the magnitude of the delay time t can be performed according to the network condition and the response speed, and can ensure the multicast program received by the terminal. The data is later than the unicast program data received at the same time.
另外, 本步骤中所记录的组播信息包括节目的 ID号、 组播的时间 标记、 和组播地址。 其中, 组播的时间标记可以是该组播组中最早开始 的单播的开始时间。  In addition, the multicast information recorded in this step includes the ID number of the program, the time stamp of the multicast, and the multicast address. The time stamp of the multicast may be the start time of the earliest unicast in the multicast group.
步驟 208 ~ 209、终端识别出所接收的单播节目数据和最早接收并存 储的组播节目数据重合后, 读取存储的对应进度的组播节目数据进行播 放, 并向服务器发送中止单播请求。  Steps 208 to 209: After the terminal recognizes that the received unicast program data and the earliest received and stored multicast program data overlap, the terminal reads the stored corresponding progress multicast program data for playing, and sends a suspension unicast request to the server.
本步驟中, 终端识别单播节目数据和組播节目数据是否重合, 可以 有两种方式, 下面分别说明。  In this step, the terminal recognizes whether the unicast program data and the multicast program data overlap, and there are two ways, which are respectively described below.
一种方式为将节目分块的方式。 该方式中, 服务器将节目数据划分 成多块,块的大小以每块能够在较短时间内传输完毕,保证用户点播后, 收看节目时等待第一块传输完毕的时间较短, 可以及时的响应用户点播 请求为尺度, 并将每一节目块按顺序连续地设置块号, 在发送节目数据 时, 将块号设置在节目块的头部与节目块一起发送。 则终端在判断出存 储的组播节目块的块号存在与当前接收的单播节目块的块号相同时, 确 定出单播节目数据与组播节目数据重合。  One way is to divide the program into blocks. In this mode, the server divides the program data into a plurality of blocks, and the size of the block can be transmitted in a short time after each block, so that after the user clicks on the program, the time for waiting for the first block to be completed when watching the program is short, and the time can be timely. In response to the user's request for on-demand as a scale, each block is sequentially set in block order, and when the program data is transmitted, the block number is set at the head of the program block and transmitted together with the program block. Then, when the terminal determines that the block number of the stored multicast program block is the same as the block number of the currently received unicast program block, the terminal determines that the unicast program data and the multicast program data coincide.
另一种方式为才艮据音视频数据编码中的时间信息(time— code )识別 的方式。 该方式中, 当节目数据以 MPEG-4或 H.264编码时, 终端可以 根据视频对象組(GOP ) 头中的 time— code信息来确定单播节目数据与 存储的组播节目数据是否重合; 当节目数据以 MPEG-2或 AVS编码时, 终端可以根据图组头中的 time— code信息来确定单播节目数据与存储的 组播节目数据是否重合。 具体为当终端确定出存储的组播节目中存在 time一 code与当前接收的单播节目的 time— code相同的节目数据时, 确定 出单播节目数据与组播节目数据重合。  Another way is to identify the time information (time_code) in the encoding of audio and video data. In this mode, when the program data is encoded in MPEG-4 or H.264, the terminal may determine whether the unicast program data and the stored multicast program data are coincident according to the time code information in the video object group (GOP) header; When the program data is encoded in MPEG-2 or AVS, the terminal can determine whether the unicast program data and the stored multicast program data coincide according to the time code information in the header group. Specifically, when the terminal determines that the time-code of the time-code of the currently received unicast program exists in the stored multicast program, it is determined that the unicast program data and the multicast program data coincide.
本步骤中读取对应进度的組播节目数据, 可以是在识别出重合后, 即读取重合的组播节目数据开始播放; 也可以是在完成当前节目块、 或 视频对象组、 或图组的播放后, 读取存储的组播节目数据中的下一个对 应的节目块、 或视频对象組或图组进行播放, 此后顺序播放存储的组播 节目数据。 In this step, the multicast program data corresponding to the progress is read, which may be after the coincidence is recognized. That is, reading the coincident multicast program data to start playing; or after reading the current program block, or the video object group, or the group of pictures, reading the next corresponding program block in the stored multicast program data, Or the video object group or the group of pictures is played, and then the stored multicast program data is sequentially played.
此外, 如果在本步骤之前, 终端识别出用户中途停止播放, 则停止 播放单播节目数据, 通知服务器停止单播, 并退出組播。 服务器接收到 停止单播通知后, 停止以单播方式向终端发送节目数据。  In addition, if the terminal recognizes that the user stops playing midway before this step, the unicast program data is stopped, the server is notified to stop unicast, and the multicast is exited. After receiving the stop unicast notification, the server stops sending program data to the terminal in unicast mode.
步骤 210、 服务器接收到来自终端的中止单播请求后, 停止向终端 发送单播节目数据, 并删除该单播信息, 然后执行步骤 213。  Step 210: After receiving the suspension unicast request from the terminal, the server stops sending unicast program data to the terminal, and deletes the unicast information, and then performs step 213.
步骤 211、 终端在用户中途中止播放或完成所点播节目的播放后, 退出组播。  Step 211: After the terminal stops playing or completes the playback of the on-demand program, the terminal exits the multicast.
步骤 212、 终端在用户中途中止播放或完成所点播的节目数据的播 放后, 通知服务器停止单播, 服务器接收到该通知后, 停止向终端发送 该单播节目数据, 并删除该单播信息, 然后结束该流程。  Step 212: After the terminal stops playing or completes the playback of the on-demand program data, the terminal notifies the server to stop the unicast, and after receiving the notification, the server stops sending the unicast program data to the terminal, and deletes the unicast information. Then end the process.
步骤 213、服务器在完成组播节目数据的播放后, 删除该组播信息。 以上是本实施例中终端与服务器交互的流程, 通过该流程交互的服 务器和终端的内部组成如图 3所示。 在图 3中, 服务器 31与终端 32之 间通过 IP网络 33进行连接; 服务器 31中具体包括通信模块 311、 决策 模块 312和存储模块 313; 终端 32中具体包括通讯模块 321、 播放控制 模块 322、 存储模块 323和判断模块 324。  Step 213: After completing the playing of the multicast program data, the server deletes the multicast information. The above is the flow of interaction between the terminal and the server in this embodiment, and the internal components of the server and the terminal that interact through the process are as shown in FIG. 3. In FIG. 3, the server 31 and the terminal 32 are connected through the IP network 33. The server 31 specifically includes a communication module 311, a decision module 312, and a storage module 313. The terminal 32 specifically includes a communication module 321 and a playback control module 322. The storage module 323 and the determination module 324.
其中, 服务器内部各模块之间交互的流程如图 4所示, 包括以下步 驟:  The process of interaction between modules in the server is as shown in FIG. 4, and includes the following steps:
步骤 401、 服务器的通讯模块接收到来自终端的点播请求后, 将该 请求传送给决策模块。  Step 401: After receiving the on-demand request from the terminal, the communication module of the server transmits the request to the decision module.
步骤 402、 决策模块响应该请求,. 以单播方式向上述终端发送对应 的节目数据, 并将该单播信息记录在存储模块中。 Step 402: The decision module responds to the request, and sends a corresponding to the terminal in a unicast manner. Program data, and record the unicast information in the storage module.
步骤 403、 决策模块查询存储模块中是否存储有在当前时间所在的 预先设定的时间跨度 T内针对该节目的组播, 如果是执行步骤 404; 否 则执行步骤 405。  Step 403: The decision module queries whether the multicast in the storage module is stored in the preset time span T of the current time, if the step 404 is performed; otherwise, step 405 is performed.
步骤 404、 决策模块通过通讯模块向终端发送消息通知上迷终端加 入该组播, 并将存储模块中存储的该单播信息标记为已加入組播, 然后 执行步骤 408。  Step 404: The decision module sends a message to the terminal through the communication module to notify the terminal to join the multicast, and marks the unicast information stored in the storage module as having joined the multicast, and then performs step 408.
步骤 405、 决策模块查询存储模块中记录的针对该节目未标记为已 加入组播的单播信息 , 并判断这些单播的数量是否达到或超过预先设定 的最小单播数量 N, 如果是则执行步骤 406; 否则执行步骤 408。  Step 405: The decision module queries the unicast information recorded in the storage module that is not marked as being joined to the multicast, and determines whether the number of the unicasts meets or exceeds a preset minimum unicast number N. If yes, Step 406 is performed; otherwise, step 408 is performed.
步骤 406、 决策模块建立组播, 通过通讯模块向上述未标记为已加 入组播的单播信息对应的终端发送该组播地址, 通知加入该组播接收节 目数据, 并将这些单播信息标记为已加入组播。  Step 406: The decision module establishes a multicast, and sends the multicast address to the terminal corresponding to the unicast information that is not marked as joined by the communication module, notifies the joining of the multicast receiving program data, and marks the unicast information. It has been added to multicast.
步骤 407、 决策模块将该组播信息存储到存储模块中。  Step 407: The decision module stores the multicast information in the storage module.
步骤 408、 通讯模块在接收到终端发送的中止单播的信息后, 将该 信息转发给决策模块。  Step 408: After receiving the information of the suspended unicast sent by the terminal, the communication module forwards the information to the decision module.
步骤 409、 决策模块根据接收的中止单播的信息停止向对应终端发 送单播节目数据, 并将该单播信息从存储模块中删除。  Step 409: The decision module stops sending the unicast program data to the corresponding terminal according to the received information of the suspended unicast, and deletes the unicast information from the storage module.
步驟 410、 决策模块在确定出单播或组播节目数据发送完成后, 停 止向对应终端发送单播或组播节目数据, 并将对应的单播或組播信息从 存储模块中删除。  Step 410: After determining that the unicast or multicast program data is sent, the decision module stops sending unicast or multicast program data to the corresponding terminal, and deletes the corresponding unicast or multicast information from the storage module.
终端内部的处理流程如图 5所示, 具体包括以下步骤:  The processing flow inside the terminal is shown in Figure 5, which specifically includes the following steps:
步骤 501、 终端的判断模块接收到用户的点播请求后向通讯模块发 送点播请求。 '  Step 501: The determining module of the terminal sends an on-demand request to the communication module after receiving the request of the user. '
步骤 502、 通讯模块将点播请求通过 IP网络发送给服务器。 步骤 503、通讯模块在接收到服务器以.单播形式发送的节目数据后, 将接收的节目数据传送给播放控制模块。 Step 502: The communication module sends the on-demand request to the server through the IP network. Step 503: After receiving the program data sent by the server in the form of unicast, the communication module transmits the received program data to the play control module.
步驟 504、播放控制模块根据接收的单播形式的节目数据进行播放。 步驟 505、 通讯模块在接收到来自服务器的加入组播的通知后, 加 入对应组播接收节目数据, 并将接收的組播节目数据存储到存储模块 中。  Step 504: The play control module plays according to the received program data in a unicast form. Step 505: After receiving the notification of joining the multicast from the server, the communication module adds the corresponding multicast receiving program data, and stores the received multicast program data into the storage module.
步骤 506、 判断模块判断以单播形式接收的节目数据和以组播形式 接收的节目数据是否重合, 如果重合执行步棟 507; 否则执行步骤 512。  Step 506: The judging module judges whether the program data received in the unicast form and the program data received in the multicast form overlap, if the step 507 is overlapped; otherwise, step 512 is performed.
步驟 507、 判断模块通过通讯模块向服务器发送中止点播请求, 并 将上述重合的信息发送给播放控制模块。  Step 507: The judging module sends a suspend request to the server through the communication module, and sends the superposed information to the play control module.
步驟 508、 播放控制模块读取存储的组播节目数据并顺序播放。 步骤 509、 播放控制模块判断是否接收到了用户的中止播放请求, 如果是, 则执行步骤 511 , 退出组播, 然后结束该流程; 否则, 执行步 骤 510, 判断是否完成了节目.的播放, 如果是返回执行步骤 511 ; 否则 返回执行步骤 509。  Step 508: The play control module reads the stored multicast program data and sequentially plays the data. Step 509: The play control module determines whether the user's suspension play request is received. If yes, step 511 is executed to exit the multicast, and then the process ends. Otherwise, step 510 is executed to determine whether the program is completed. Go back to step 511; otherwise, go back to step 509.
步骤 512、 判断模块判断是否接收到了用户的中止播放请求, 如果 是执行步骤 513 , 通过通讯模块向服务器发送中止单播请求, 并通知播 放控制模块停止播放节目数据, 然后结束该流程; 否则执行步骤 514, 判断是否完成了节目的播放, 如果是返回执行步骤 513; 否则返回执行 步骤 512。  Step 512: The determining module determines whether the user's suspension play request is received. If the step 513 is performed, the communication module sends a suspension unicast request to the server, and notifies the play control module to stop playing the program data, and then ends the process; 514. Determine whether the play of the program is completed. If yes, go back to step 513; otherwise, go back to step 512.
下面再以应用本实施例的一种案例进一步对本实施例进行说明。 如图 6所示, 本实施例的一种案例所基于的系统包括服务器 31、 IP 网络 33、 终端 3201、 3202…… 320n。 其中, 服务器中包括有 CPU、 硬 盘、 网卡、 内存和点播软件服务端。 终端中包括有 CPU、 硬盘、 网卡、 内存和点播软件客户端, 显示卡等设备。 服务器的网卡为通讯模块, 硬 盘为存储模块, 服务器点播软件为决策模块; CPU与内存为运行所需环 境。 终端的网卡作为通讯模块, 点播软件客户端为判断模块, 硬盘为存 储模块, 显示卡等显示设备作为播放控制模块。 The present embodiment will be further described below by applying a case of the embodiment. As shown in FIG. 6, the system on which a case of the present embodiment is based includes a server 31, an IP network 33, and terminals 3201, 3202, ..., 320n. Among them, the server includes a CPU, a hard disk, a network card, a memory, and an on-demand software server. The terminal includes a CPU, a hard disk, a network card, a memory and an on-demand software client, a display card, and the like. The server's network card is a communication module, hard The disk is a storage module, and the server on-demand software is a decision module; the CPU and the memory are environments required for operation. The network card of the terminal is used as the communication module, the on-demand software client is the judgment module, the hard disk is the storage module, and the display device such as the display card is used as the play control module.
假设一个节目时长 100分钟, 预先设定的时间跨度 T为 10分钟, 最小单播数量 N为 10。 终端 1最先在 10:00进行节目点播, 服务器向它 发送单播节目数据, 并存储这个单播的信息。 终端 1在不考虑延迟的情 况下, 等待时间为 0。 此后分别有 8个终端加入点播同一个节目, 他们 的处理与终端 1相同。 终端 10在 10:03又点播了这个节目, '服务器立即 发送单播数据给它并存储这个单播的信息, 做到点播的立即响应。 然后 点播软件客户端确定出此前 10分钟内的点播节目数量已经为 10个, '故 建立组播发送数据, 并将这些点播终端对应的单播信息标记为已加入组 播。 发现这十个节目的点播最早的终端 1已经播放到 3分钟, 由于考虑 网络延迟, 从第四分钟节目的内容开始发送组播数据, 将组播信息记录 下来, 其组播时间标记为 10:00即第一个单播的发起时间, 并通知所有 终端加入组播接收数据。 考虑处理的延迟, 假设终端 1接收到的組播数 据为从第 4分 10秒开始的节目数据, 终端 1此后同时接收組播和单播 数据, 并将接收到的组播数据存储到硬盘中; 当到 10:04:10时终端发现 接收的单播节目数据与存储的组播节目数据已经重合, 通知服务器不再 发送单播节目数据, 服务器中止发网终端 1的单播数据并将这个单播的 信息从存储模块中删除; 而终端 1开始从硬盘中读取存储的组播节目数 据进行播放。 10:07:10时服务器发往所有的终端 1到 10的单播全部中止, 所有点播节目通过一个组播发送。 当 10:09有一个终端 11点播节目时, 服务器先通过单播发送数据到终端 11 并存储这个单播的信息, 同时服 务器通知终端加入组播接收组播数据,' "将这个单播的信息设置为已加入 组播, 终端 11加入接收组播数据并将接收到的组播数据存储到硬盘中。 当到 10:13:10时终端 11发现点单播数据与组播内容重合通知服务器中 止单播的发送数据并删除这个单播的信息, 然后该终端 11 开始从硬盘 中读取存储的组播数据, 并播放。 当 10:11终端 12发起点播请求时, 服 务器立即响应以单播方式向终端 12发送节目数据, 同时查找 10分钟内 是否有组播, 确定出没有, 同时查找 10分钟未标记为已加入组播的单 播的信息, 此时也没有, 故服务器将不通知终端 12加入组播, 直到到 达建立新组播的条件并且该终端满足加入该新组播的条件为止。 Suppose a program is 100 minutes long, the preset time span T is 10 minutes, and the minimum number of unicasts N is 10. The terminal 1 first performs program on demand at 10:00, the server transmits unicast program data thereto, and stores the unicast information. The terminal 1 has a waiting time of 0 without considering the delay. Thereafter, there are 8 terminals respectively joining the same program on demand, and their processing is the same as that of the terminal 1. The terminal 10 broadcasts the program again at 10:03, and the server immediately sends the unicast data to it and stores the unicast information, so as to respond immediately on demand. Then, the on-demand software client determines that the number of on-demand programs in the previous 10 minutes has been 10, so the multicast transmission data is established, and the unicast information corresponding to these on-demand terminals is marked as joined multicast. It is found that the earliest terminal 1 of the ten programs has been played for 3 minutes. Since the network delay is considered, the multicast data is transmitted from the content of the fourth minute program, and the multicast information is recorded, and the multicast time is marked as 10: 00 is the originating time of the first unicast, and notifies all terminals to join the multicast receiving data. Considering the delay of processing, it is assumed that the multicast data received by the terminal 1 is program data starting from 4 minutes and 10 seconds, and the terminal 1 simultaneously receives multicast and unicast data, and stores the received multicast data in the hard disk. When the terminal reaches 10:04:10, the terminal finds that the received unicast program data and the stored multicast program data have coincided, notifying the server that the unicast program data is no longer sent, and the server stops the unicast data of the network terminal 1 and this The unicast information is deleted from the storage module; and the terminal 1 starts reading the stored multicast program data from the hard disk for playback. At 10:07:10, the unicast sent by the server to all terminals 1 to 10 is aborted, and all on-demand programs are sent through one multicast. When there is a terminal 11 on-demand program at 10:09, the server first sends data to the terminal 11 by unicast and stores the unicast information, and the server notifies the terminal to join the multicast to receive the multicast data, '"put the unicast information. It is set to join the multicast, and the terminal 11 joins the received multicast data and stores the received multicast data to the hard disk. When it reaches 10:13:10, the terminal 11 finds that the point unicast data coincides with the multicast content, notifies the server to suspend the unicast transmission data and deletes the unicast information, and then the terminal 11 starts to read the stored multicast from the hard disk. Data, and play. When the 10:11 terminal 12 initiates an on-demand request, the server immediately responds to send the program data to the terminal 12 in a unicast manner, and simultaneously finds whether there is a multicast within 10 minutes, determines that there is no, and searches for 10 minutes without being marked as joined multicast. The unicast information is not present at this time, so the server will not notify the terminal 12 to join the multicast until the condition for establishing a new multicast is reached and the terminal satisfies the condition for joining the new multicast.
Figure imgf000015_0001
Figure imgf000015_0001
表 1  Table 1
表 1通过上述应用了本发明的情形与现有技术的单播、 组播和分片 组播的各种性能分析对比说明了本发明的有益效果。  Table 1 illustrates the beneficial effects of the present invention by comparing the above-described scenarios in which the present invention is applied with various performance analysis of unicast, multicast, and sliced multicast in the prior art.
从表 1中可以看出利用传统组播方式需要艮长的响应时间, 若减小 到两秒则分别需 1800倍个单播放速度組播或 420倍播放速度组播, 更 可怕的时后者需要终端的接收带宽为 420倍的节目播放速度, 即 1Mbps 的 MPEG-4节目要 420Mbps的带宽。传统单播的方式在多终端点播时对 服务器的性能和带宽要求过高。 采用本发明的方法即实现了单播的即时 响应, 又克服了传统单播实现 VOD的对服务器过高的要求, 同时也克 服传统組播方式在无人点播时还需占用大量带宽和响应速度慢的缺陷。 以上是对本发明方法第一实施例的说明, 在第一实施例中, 发起組 播的条件为在一定的时间跨度 T内单播的数量达到或超过最小单播数量It can be seen from Table 1 that the traditional multicast method requires a long response time. If it is reduced to two seconds, it needs 1800 times of single play speed multicast or 420 times play speed multicast, and even more terrible. The receiving bandwidth of the terminal is required to be 420 times the program playing speed, that is, the MPEG-4 program of 1 Mbps has a bandwidth of 420 Mbps. The traditional unicast approach requires too much performance and bandwidth for the server when multi-terminal on-demand. By adopting the method of the invention, the instant response of the unicast is realized, and the requirement for the server to be too high by the traditional unicast VOD is overcome, and at the same time, The traditional multicast mode also requires a large amount of bandwidth and slow response when unattended. The foregoing is a description of the first embodiment of the method of the present invention. In the first embodiment, the condition for initiating multicast is that the number of unicasts reaches or exceeds the minimum unicast quantity within a certain time span T.
N个, 并且由终端对接收的单播节目数据和组播节目数据是否重合进行 判决。 在本发明中, 发起组播的条件也可以是在当前单播之前的建立組 播时间门限 时间内没有针对相同节目的组播, 但存在针对相同节目 的单播, 下面通过第二实施例对这种情况进行说明。 N, and the terminal decides whether the received unicast program data and the multicast program data coincide. In the present invention, the condition for initiating multicast may also be that there is no multicast for the same program within the time of establishing the multicast time threshold before the current unicast, but there is unicast for the same program, and the following is performed by the second embodiment. This situation is explained.
在本发明的第二实施例中, 预先在服务器中设定建立组播时间门限 ΤΓ 的值, 该值可以根据节目长度确定, 例如可以为节目长度的 1/20至 1/5之间的值, 或者可以为预先确定的值, 例如为 5至 20之间的值。  In the second embodiment of the present invention, the value of establishing the multicast time threshold ΤΓ is set in the server in advance, and the value may be determined according to the length of the program, for example, may be a value between 1/20 and 1/5 of the length of the program. Or, it may be a predetermined value, for example, a value between 5 and 20.
本实施例中, 服务器与终端交互的流程如图 7所示, .该流程与第一 实施例中服务器与终端的交互流程基本相同, 区别仅在于: 在步骤 703 中, 服务器根据存储的组播信息判断在当前时间之前的 Τ' 时间内是否 有发送上述节目数据的组播, 如果是执行步驟 704; 否则执行步骤 706。 在步骤 706中, 服务器根据存储的单播信息判断是否有与当前单播针对 相同节目数据的其他单播, 如果是执行步骤 707; 否则执行步骤 712。 在步骤 707中, 服务器将組播地址发送给当前单播和服务器中记录的与 当前单播节目数据相同其他单播对应的终端。  In this embodiment, the flow of interaction between the server and the terminal is as shown in FIG. 7. The flow is basically the same as the flow of the server and the terminal in the first embodiment, and the difference is only: In step 703, the server is based on the stored multicast. The information determines whether there is a multicast for transmitting the program data in the time period before the current time, if it is step 704; otherwise, step 706 is performed. In step 706, the server determines, based on the stored unicast information, whether there is another unicast for the same program data as the current unicast, if step 707 is performed; otherwise, step 712 is performed. In step 707, the server sends the multicast address to the terminal corresponding to the other unicast recorded in the current unicast and server and the same as the current unicast program data.
服务器内部处理的流程与第一实施例中基本相同, 区别仅在于上述 服务器与终端交互流程中所提及的判断内容不同。 而终端内部处理的流 程在本实施例中与第一实施例相同, 这里不再详细说明。  The flow of internal processing of the server is basically the same as that in the first embodiment, except that the judgment content mentioned in the above-mentioned server-terminal interaction flow is different. The process of the internal processing of the terminal is the same as that of the first embodiment in this embodiment, and will not be described in detail herein.
在本发明中 , 发起组播的条件也可以是在当前单播之前没有针对相 同节目的组播, 下面通过第三实施例对这种情况进行说明。  In the present invention, the condition for initiating multicast may also be that there is no multicast for the same program before the current unicast, and this case will be described below by the third embodiment.
本实施例中, 服务器与终端交互的流程如图 ·8所示, 该流程与第一 实施例中服务器与终端的交互流程也基本相同,区别仅在于:在步骤 802 中, 可以不记录单播信息; 在步骤 803中, 服务器判断是否已存在针对 相同节目的组播, 如果是执行步骤 804, 由于在步骤 802中可以不记录 单播信息, 在步驟 804中也可以不执行标记单播信息的步骤; 否则直接 执行步骤 806。 在步骤 806中, 服务器建立组播, 将该组播地址发送给 终端, 并记录该组播信息, 然后执行步骤 805 , 步骤 805与步骤 205相 同。 此后的步骤 807至步骤 812与步骤 208至步骤 213基本相同, 区别 在于, 在步驟 809和步驟 811中可以不删除单播信息。 In this embodiment, the flow of the interaction between the server and the terminal is as shown in FIG. 8. The flow of the interaction between the server and the terminal in the first embodiment is basically the same, and the difference is only in the step 802. The unicast information may not be recorded; in step 803, the server determines whether there is already a multicast for the same program. If the step 804 is performed, since the unicast information may not be recorded in step 802, the unicast information may also be recorded in step 804. The step of marking the unicast information is not performed; otherwise, step 806 is directly performed. In step 806, the server establishes multicast, sends the multicast address to the terminal, and records the multicast information, and then performs step 805, which is the same as step 205. Subsequent steps 807 to 812 are substantially the same as steps 208 to 213, with the difference that the unicast information may not be deleted in steps 809 and 811.
在本实施例中, 服务器内部处理的流程与第一实施例中基本相同, 区别仅在于上述服务器与终端交互流程中所提及的判断内容不同。 而终 端内部处理的流程在本实施例中与第一实施例相同, 这里不再详细说 明。 ,.  In this embodiment, the process of the internal processing of the server is basically the same as that in the first embodiment, except that the judgment content mentioned in the above-mentioned server and terminal interaction flow is different. The flow of the internal processing of the terminal is the same as that of the first embodiment in this embodiment, and will not be described in detail herein. ,
在本发明中, 对以单播和组播两种方式接收相同节目的终端在何时 停止接收单播节目数据, 也可以由服务器控制来实现。 下面通过第四实 施例来详细说明。  In the present invention, when the terminal that receives the same program in both unicast and multicast modes stops receiving unicast program data, it can also be implemented by server control. The details will be described below by the fourth embodiment.
本发明的第四实施例可以基于上述第一至第三实施例中的任意一 个, 区别在于, 在上述三个实施例的流程中 , 在通知终端加入组播的同 时, 即上述步骤 204、 207、 704、 707、 804和步驟 806中, 服务器进一 步读取该组播开始的时间 Tg,该组播开始的时间为对应所有单播中最早 开始的时间, 并读取加入该组播的各个终端的单播开始时间 Ts, 服务器 为每个终端计算停止发送单播节目数据时间 Tstop, Tstop = Ts - Tg。 则 终端侧不执行判断单播节目数据和组播节目数据是否重合的步骤, 而只 是根据来自服务器侧的信息接收和存储节目数据, 并在单播节目数据停 止后读取最先接收的组播节目数据播放。' 而在服务器侧根据为终端计算 的 Tstop, 在该时间到达后, 停止向该终端发送单播节目数据。  The fourth embodiment of the present invention may be based on any one of the foregoing first to third embodiments, except that, in the flow of the above three embodiments, when the terminal is notified to join the multicast, that is, the above steps 204 and 207 In 704, 707, 804 and step 806, the server further reads the time Tg at which the multicast starts, the time at which the multicast starts is the earliest start time of all unicasts, and reads each terminal that joins the multicast. The unicast start time Ts, the server calculates for each terminal to stop sending the unicast program data time Tstop, Tstop = Ts - Tg. Then, the terminal side does not perform the step of determining whether the unicast program data and the multicast program data overlap, but only receives and stores the program data according to the information from the server side, and reads the first received multicast after the unicast program data is stopped. Program data is played. On the server side, according to the Tstop calculated for the terminal, after the time arrives, the transmission of the unicast program data to the terminal is stopped.
本实施例中服务器内部的处理流程如图 9所示, 其中步骤 901和步 驟 902与步骤 501和步驟 502相同。 在步骤 903、 决策模块判断是否已 有终端可以加入的组播, 如果是执行步驟 904.; 否则执行步骤 905。 The processing flow inside the server in this embodiment is shown in FIG. 9, where step 901 and step Step 902 is the same as step 501 and step 502. In step 903, the decision module determines whether there is a multicast that the terminal can join, if it is step 904. Otherwise, step 905 is performed.
步骤 904、 决策模块通过通讯模块向终端发送消息通知上述终端加 入该组播, 并根据该组播的开始的时间和该终端单播开始的时间计算 Tstop, 然后执行步骤 908。  Step 904: The decision module sends a message to the terminal through the communication module to notify the terminal to join the multicast, and calculates Tstop according to the start time of the multicast and the start time of the terminal unicast, and then step 908 is performed.
步骤 905.、决策模块判断是否可以建立组播,如果是则执行步骤 906; 否则执行步驟 907。  Step 905. The decision module determines whether multicast can be established. If yes, step 906 is performed; otherwise, step 907 is performed.
步驟 906、 决策模块建立组播, 将该组播信息存储到存储模块中, 通过通讯模块发送组播节目数据, 并通知对应终端加入该组播接收节目 数据, 然后分别为这些终端计算 Tstop。  Step 906: The decision module establishes multicast, stores the multicast information in the storage module, sends the multicast program data through the communication module, and notifies the corresponding terminal to join the multicast receiving program data, and then calculates Tstop for the terminals respectively.
步骤 907、决策模块在达到了为终端计算的时间 Tstop或在通过通讯 模块接收到了来自终端的中止单播请求后, 停止向终端发送单播节目数 据, 并删除该单播信息。  Step 907: After the decision module reaches the time Tstop calculated for the terminal or after receiving the suspension unicast request from the terminal through the communication module, stop sending the unicast program data to the terminal, and delete the unicast information.
步骤 908、 决策模块在确定出单播或组播节目数据发送完成后, 停 止向对应终端发送单播或组播节目数据, 并将对应的单播或組播信息从 存储模块中删除。  Step 908: After determining that the unicast or multicast program data is sent, the decision module stops sending unicast or multicast program data to the corresponding terminal, and deletes the corresponding unicast or multicast information from the storage module.
终端内部的处理流程如图 10所示, 其中步骤 1001至步骤 1005与 图 5中的步骤 501至步骤 505相同。 区别在于, 在步骤 1005后, 执行 1006: 播放控制模块判断是否接收到了.用户的中止点播请求, 如果是执 行步驟 1007, 通过通讯模块向服务器发送中止点播请求, 并停止播放, 然后结束该流程; 否则, 执行步骤 1008, 播放控制模块在识别出单播节 目数据已经结束接收, 并且节目未播放完成后, 顺序读取存储模块中存 储的组播节目数据进行播放。  The processing flow inside the terminal is as shown in FIG. 10, wherein steps 1001 to 1005 are the same as steps 501 to 505 in FIG. The difference is that after step 1005, execution 1006: the play control module determines whether the user's stop-on-demand request is received, and if step 1007 is performed, the communication module sends a stop-on-demand request to the server, and stops playing, and then ends the process; Otherwise, in step 1008, the play control module sequentially reads the multicast program data stored in the storage module for playing after recognizing that the unicast program data has been received and the program is not played.
在本实施例中, 由于直接由服务器决定停止向终端发送单播节目数 据的时机, 減少了终端与服务器之间的交互, 节约了网络资源, 并降低 了终端的负担。 In this embodiment, since the server directly decides to stop sending the unicast program data to the terminal, the interaction between the terminal and the server is reduced, the network resources are saved, and the network resource is reduced. The burden of the terminal.
以上是对本发明方法具体实施例的详细说明。 下面再对本发明的系 统、 服务器和终端的各组成部分及连接关系进行详细说明。  The above is a detailed description of specific embodiments of the method of the present invention. The components and connections of the system, server and terminal of the present invention will be described in detail below.
图 3 已经示出了本发明的系统的实施例, 主要包括服务器 31和终 端 32, 在服务器 31和终端 32的通信过程中可以通过 IP网络 33进行。  Figure 3 has shown an embodiment of the system of the present invention, mainly comprising a server 31 and a terminal 32, which may be carried out over the IP network 33 during the communication between the server 31 and the terminal 32.
其中, 服务器 31用于根据来自终端 32的点播请求向其以单播形式 发送对应节目数据; 和根据确定出的存在该终端 32 可以加入的組播的 信息, 或根据确定出的为该单播建立对应组播的信息, 将对应組播地址 发送给终端 32; 和根据确定的建立组播的信息发送组播节目数据; 和根 据来自终端 32 的中止单播信息, 或根据确定出的同时接收单播节目数 据和组播节目数据的终端 32所接收的数据重合的信息, 停止向终端 32 发送单播节目数据。  The server 31 is configured to send corresponding program data to the unicast form according to the on-demand request from the terminal 32; and according to the determined presence information of the multicast that the terminal 32 can join, or according to the determined unicast Establishing corresponding multicast information, transmitting the corresponding multicast address to the terminal 32; and transmitting the multicast program data according to the determined multicast establishment information; and according to the suspended unicast information from the terminal 32, or according to the determined simultaneous reception The unicast program data and the information superimposed on the data received by the terminal 32 of the multicast program data stop transmitting the unicast program data to the terminal 32.
终端 32用于根据用户的点播请求向服务器 3.1发送点播请求, 接收 并播放服务器 31以单播方式发送的节目数据; 和根据来自服务器 31的 组播地址接收和存储服务器 31 以组播方式发送的节目数据; 和根据用 户的中止播放请求或确定出的以单播方式接收的节目数据和以組播方 式接收的节目数据重合的信息, 向服务器 31 发送中止单播信息; 或进 一步根据确定出的以单播方式接收的节目数据和以组播方式接收的节 目数据重合的信息, 顺序播放存储的组播节目数据。  The terminal 32 is configured to send an on-demand request to the server 3.1 according to the user's request for on-demand, receive and play the program data sent by the server 31 in a unicast manner, and transmit in a multicast manner according to the multicast address receiving and storing server 31 from the server 31. Program data; and transmitting the suspended unicast information to the server 31 according to the user's suspended play request or the determined program data received in a unicast manner and the program data received in a multicast manner; or further determined according to the determined The program data received in the unicast mode and the program data superimposed in the multicast mode are superimposed, and the stored multicast program data is sequentially played.
服务器 31中具体又可以包括通讯模块 311、 决策模块 312、 存储模 块 313。  The server 31 may specifically include a communication module 311, a decision module 312, and a storage module 313.
其中,通讯模块 311用于将服务器中的决策模块 312、存储模块 3 和 IP网絡 33连接, 将通过 IP网络 33接收的信息传送给对应的决策模 块 312或存储模块 313 , 以及将来自服务器 31中决策模块 312、 存储模 块 313的信息通过 IP网络发送给终端 32。 具体包括: 接收终端 32通过 IP 网络 33发送的点播请求, 响应该请求以单播方式读取存储模块 313 中的对应节目数据, 将该单播信息记录到存储模块 313中, 并将点播请 求传送给决策模块 312;.和将来自决策模块 312的组播信息通过 IP网络 33发送给终端 32, 并根据来自决策模块 312的发起组播的信息从存储 模块 313中读取对应的节目数据, 并以组播方式发送, 以及根据来自终 端 32的中止请求或来自决策模块 312的停止请求, 停止读取和发送对 应的节目数据。 The communication module 311 is configured to connect the decision module 312, the storage module 3, and the IP network 33 in the server, and transmit the information received through the IP network 33 to the corresponding decision module 312 or the storage module 313, and from the server 31. The information of the decision module 312 and the storage module 313 is sent to the terminal 32 through the IP network. Specifically, the method includes: receiving terminal 32 passes The on-demand request sent by the IP network 33, in response to the request, reads the corresponding program data in the storage module 313 in a unicast manner, records the unicast information into the storage module 313, and transmits the on-demand request to the decision module 312; Transmitting the multicast information from the decision module 312 to the terminal 32 through the IP network 33, and reading the corresponding program data from the storage module 313 according to the information for initiating multicast from the decision module 312, and transmitting the data in a multicast manner, and The reading and transmitting of the corresponding program data is stopped based on the suspension request from the terminal 32 or the stop request from the decision module 312.
决策模块 312用于根据来自通讯模块 311的点播请求确定是否将终 端 32加入已有的组播, 或是否需要发起组播, 并根据确定出的将终端 32加入已有组播的信息或发起组播的信息,将組播信息发送给通讯模块 311 ; 和将发起的组播的信息存储在存储模块 313; 或进一步用于根据向 每个用户所发送的单播和组播的时间信息确定停止单播, 并将确定的停 止单播的停止请求发送给通讯模块 321。  The decision module 312 is configured to determine whether to add the terminal 32 to the existing multicast according to the on-demand request from the communication module 311, or whether to initiate the multicast, and add the terminal 32 to the existing multicast information or the initiation group according to the determined. Broadcast information, the multicast information is sent to the communication module 311; and the information of the multicast generated is stored in the storage module 313; or further used to determine the stop according to the unicast and multicast time information sent to each user Unicast, and the determined stop request to stop unicast is sent to the communication module 321.
存储模块 313 , 用于存储节目数据、 单播信息及组播信息。  The storage module 313 is configured to store program data, unicast information, and multicast information.
终端 32中主要包括通讯模块 321、播放控制模块 322、存储模块 323 和判断模块 324。  The terminal 32 mainly includes a communication module 321, a play control module 322, a storage module 323, and a judging module 324.
通讯模块 321用于接收来自服务器 31 的单播节目数据并将单播节 目数据传送给播放控制模块 322,以及根据来自服务器 31的组播信息接 收组播节目数据并存储到存储模块 323中; 将用户发起的点播请求发送 给服务器 31 ; 根据用户发起的中止请求或根据来自判断模块 324的, 接 收的单播节目数据和组播节目数据重合的信息, 向服务器 31 发送中止 单播请求; 和根据来自用户的中止点播请求停止接收组播数据。  The communication module 321 is configured to receive the unicast program data from the server 31 and transmit the unicast program data to the play control module 322, and receive the multicast program data according to the multicast information from the server 31 and store the data in the storage module 323; The user-initiated request for on-demand is sent to the server 31; the abort unicast request is sent to the server 31 according to the user-initiated suspension request or based on the information of the received unicast program data and the multicast program data from the judging module 324; The abort request from the user stops receiving multicast data.
播放控制模块 322用于接收来自通讯模块 321的单播节目数据并进 行解码播放; 根据来自判断模块 324的单播节目数据与組播节目数据重 合的信息, 停止播放单播节目数据, 并读取存储模块中存储的组播节目 数据进行解码播放, 或根据确定出的单播节目数据中止的信息读取存储 模块中存储的组播节目数据并进行节目播放。 The play control module 322 is configured to receive the unicast program data from the communication module 321 and perform decoding and playing; stop playing the unicast program data according to the information of the unicast program data from the judging module 324 and the multicast program data, and read Multicast program stored in the storage module The data is decoded and played, or the multicast program data stored in the storage module is read and played according to the determined information of the unicast program data suspension.
存储模块 323主要用于存储组播节目数据。  The storage module 323 is mainly used to store multicast program data.
判断模块 324, 用于确定所的接收的单播节目数据和存储模块中存 储的组播节目数据是否重合, 并将确定出的单播节目数据和組播节目数 据重合的信息发送给播放控制模块和通讯模块。 当由服务器确定停止向 终端发送单播节目数据的情况下, 终端中可以不包括判断模块 424。  The determining module 324 is configured to determine whether the received unicast program data and the multicast program data stored in the storage module are coincident, and send the determined information of the unicast program data and the multicast program data to the playback control module. And communication modules. In the case where it is determined by the server to stop transmitting unicast program data to the terminal, the judging module 424 may not be included in the terminal.
如图 11 所示, 为终端实施例中进行播放控制的示意图, 其中当图 中所示开关 111处于当前位置时, 表示播放控制模块 322对单播节目数 据进行解码播放, 并将接收的组播节目数据存储到存储模块 323中。 当 图中所示开关连接存储模块 323和播放控制模块.322时, 表示播放控制 模块 322停止接收单播节目数据, 而读取存储模块 323中存储的组播节 目数据并解码播放。  As shown in FIG. 11, a schematic diagram of playing control in the terminal embodiment, wherein when the switch 111 is in the current position, the playback control module 322 decodes and plays the unicast program data, and receives the received multicast. The program data is stored in the storage module 323. When the switch shown in the figure is connected to the storage module 323 and the playback control module 322, it indicates that the playback control module 322 stops receiving the unicast program data, and reads the multicast program data stored in the storage module 323 and decodes the playback.
以上所述仅为本发明的较佳实施例而已 , 并不用以限制本发明, 凡 在本发明的精神和原则之内, 所做的任何修改、 等同替换、 改进等, 均 应包含在本发明的保护范围之内。 '  The above is only the preferred embodiment of the present invention, and is not intended to limit the present invention. Any modifications, equivalent substitutions, improvements, etc., which are included in the spirit and scope of the present invention, should be included in the present invention. Within the scope of protection. '

Claims

权利要求书 Claim
1、 一种提供视频点播的方法, 其特征在于, 该方法包括: 视频点播服务器接收到来自视频点播终端的点播请求后, 以单播方 式向视频点播终端发送点播的节目数据.; A method for providing video on demand, the method comprising: the video on demand server receiving the on-demand request from the video on demand terminal, and transmitting the on-demand program data to the video on demand terminal in a unicast manner;
为点播相同的所述节目数据的视频点播终端建立组播, 以组播方式 发送所述节目数据, 并将所述组播信息通知给所述点播相同节目的视频 点播终端;  Establishing multicast for the video on demand terminal that plays the same program data, transmitting the program data in a multicast manner, and notifying the multicast information to the video on demand terminal of the same program on demand;
确认单播节目数据与组播节目数据重合, 停止以单播方式向视频点 播终端发送节目数据。  It is confirmed that the unicast program data coincides with the multicast program data, and the transmission of the program data to the video-on-demand terminal is stopped in a unicast manner.
2、 根据权利要求 1 所述的方法, 其特征在于, 视频点播服务器建 立组播前判断当前是否存在发送所述节目数据的组播, 如果是, 直接将 所述组播的信息通知给所述点播相同节目的视频点播终端。  2. The method according to claim 1, wherein the video on demand server determines whether there is currently a multicast for transmitting the program data before establishing the multicast, and if yes, directly notifying the multicast information to the A video on demand terminal that broadcasts the same program.
3、 根据权利要求 2 所述的方法, 其特征在于, 视频点播服务器建 立组播后存储所建立的组播信息; 根据所述存储的组播信息执行所述判 断当前是否存在发送所述节目数据的组播。  The method according to claim 2, wherein the video on demand server stores the multicast information after the multicast is established, and performs the determining according to the stored multicast information whether the program data is currently sent. Multicast.
4、 根据权利要求 3 所述的方法, 其特征在于, 所述存储的组播信 息包括节目的标识、 组播的时间标记和组播地址; 所述通知给视频点播 终端的组播信息中包括组播地址。  The method according to claim 3, wherein the stored multicast information includes an identifier of the program, a time stamp of the multicast, and a multicast address; and the multicast information included in the notification to the video on demand terminal includes Multicast address.
5、 根据权利要求 4 所述的方法, 其特征在于, 所述组播的时间标 记为: 该组播所对应单播中最早开始的单播的开始时间; 或为: 在该组 播所对应单播中最早开始的单播的开始时间之后预先设定延迟时间的 时刻。  The method according to claim 4, wherein the time stamp of the multicast is: a start time of the first unicast started in the unicast corresponding to the multicast; or: corresponding to the multicast The time at which the delay time is preset after the start time of the earliest unicast in unicast.
6、 根据权利要求 2至 5中任一所述的方法, 其特征在于, 还包括: 在所述为点播相同的所述节目数据的视频点播终端建立組播前, 视频点 播服务器判断是否可以建立组播。 The method according to any one of claims 2 to 5, further comprising: before the multicasting of the video on demand terminal for ordering the same program data, the video point The broadcast server determines whether multicast can be established.
7、 根据权利要求 6 所述的方法, 其特征在于, 所述判断当前是否 存在发送所述节目数据的组播为.: 判断在该时刻之前预先设定的时间之 内是否存在发送所述节目数据的组播; 所述判断是否可以建立组播为: 判断在该时刻之前预先设定的时间之^是否存在针对所述节目数 据的单播, 如果是, 所述组播对应的视频点播终端包括所述视频点播终 端和所述存在的针对所述节目数据的单播对应的视频点播终端。  The method according to claim 6, wherein the determining whether there is currently a multicast for transmitting the program data is: determining whether the program is sent within a preset time before the moment Multicasting of the data; determining whether the multicast can be established as: determining whether there is a unicast for the program data before a predetermined time before the moment, and if so, the video-on-demand terminal corresponding to the multicast And including the video on demand terminal and the existing unicast corresponding video on demand terminal for the program data.
8、 根据权利要求 6 所述的方法, 其特征在于, 所述判断当前是否 存在发送所述节目数据的组播为: 判断在该时刻所在的预先设定的时间 跨度内, 是否存在发送所述相同节目数据的组播; 所述判断是否可以建 立组播为: 判断在该时刻所在的预先设定的时间跨度内, 针对所述节目 数据的单播数量是否达到或超过了预先设定的最小单播数量 , 如果是, 所述组播对应的视频点播终端为所述视频点播终端和所述针对所述节 目数据的单播对应的视频点播终端。  The method according to claim 6, wherein the determining whether there is currently a multicast for transmitting the program data is: determining whether the sending is performed within a preset time span in which the time is located Multicasting of the same program data; determining whether the multicast can be established as: determining whether the unicast quantity of the program data reaches or exceeds a preset minimum within a preset time span in which the time is located The number of unicasts, if yes, the video on demand terminal corresponding to the multicast is the video on demand terminal and the video on demand terminal corresponding to the unicast for the program data.
9、 根据权利要求 6 所述的方法, 其特征在于, 还包括: 视频点播 服务器记录单播信息; 根据所述记录的单播信息进行所述判断是否可以 建立组播。  The method according to claim 6, further comprising: recording, by the video on demand server, unicast information; and determining whether the multicast can be established according to the recorded unicast information.
10、 根据权利要求 1所述的方法, 其特征在于, 所述确认单播节目 数据与组播节目数据重合具体为: ' ·  10. The method according to claim 1, wherein the confirming the unicast program data and the multicast program data overlap is:
根据向枧频点播终端以单播形式和组播形式发送数据的时间, 确认 单播节目数据与組播节目数据重合; 或者为:  The unicast program data is coincident with the multicast program data according to the time when the data is transmitted to the unicast-frequency terminal in unicast mode and multicast form; or:
接收到视频点播终端发送的中止单播请求。  The abort unicast request sent by the video on demand terminal is received.
11、 一种视频点播方法, 其特征在于, 该方法包括:  11. A video on demand method, the method comprising:
视频点播终端向视频点播服务器发送点播请求;  The video on demand terminal sends an on-demand request to the video on demand server;
接收返回的单播节目数据并播放; 视频点播终端接收到视频点播服务器发送的组播信息, 根据所述组 播信息接收组播节目数据并存储; Receiving the returned unicast program data and playing it; The video on demand terminal receives the multicast information sent by the video on demand server, receives the multicast program data according to the multicast information, and stores the data;
视频点播终端在确定接收的单播节目数据与存储的组播节目数据 重合后, 读取所述存储的组播节目数据并播放。  After determining that the received unicast program data coincides with the stored multicast program data, the video on demand terminal reads the stored multicast program data and plays it.
12、 根据权利要求 11 所述的方法, 其特征在于, 所述视频点播终 端确定接收的所述单播节目数据和存储的所述组播节目数据重合后, 进 一步包括, 向视频点播服务器发送中止单播请求。  The method according to claim 11, wherein the video on demand terminal determines that the received unicast program data and the stored multicast program data are coincident, and further includes: sending a suspension to the video on demand server Unicast request.
13、 根据权利要求 11 所述的方法, 其特征在于, 所述确定接收的 单播节目数据和存储的组播节目数据重合具体为:  The method according to claim 11, wherein the determining that the received unicast program data and the stored multicast program data coincide is:
识别出所存储的组播节目数据中存在与当前接收的单播节目数据 的块号相同; 或为: 所述识別出所存储的组播节目数据中存在与当前接 收的单播节目数据包括相同时间信息。  Recognizing that the stored multicast program data is the same as the block number of the currently received unicast program data; or: the identifying that the stored multicast program data exists in the same time as the currently received unicast program data information.
14、 一种视频点播服务器, 其特征在于, 该服务器包括通讯模块、 决策模块和存储模块; 其中,  14. A video on demand server, the server comprising a communication module, a decision module, and a storage module;
通讯模块用于接收来自终端点播请求, 响应该请求读取并以单播方 式发送存储模块中的对应节目数据,.并将点播请求传送给决策模块; 和 将来自决策模块的組播信息发送给终端, 并根据来自决策模块的发起组 播的信息从存储模块中读取并以组播方式发送对应的节目数据, 以及根 据来自终端的中止请求停止读取和发送对应的节目数据;  The communication module is configured to receive a request from the terminal for on-demand, read and send the corresponding program data in the storage module in a unicast manner in response to the request, and transmit the on-demand request to the decision module; and send the multicast information from the decision module to Ending, reading, and transmitting corresponding program data in a multicast manner according to the information of the originating multicast from the decision module, and stopping reading and transmitting the corresponding program data according to the suspension request from the terminal;
决策模块用于根据来自通讯模块的点播请求确定是否将终端加入 已有的组播, 或是否需要发起组播, 并根据确定出的将终端加入已有组 播的信息或发起組播的信息, 将组播信息发送给通讯模块; 和将发起的 组播的信息存储在存储模块;  The decision module is configured to determine whether to add the terminal to the existing multicast according to the on-demand request from the communication module, or whether to initiate the multicast, and according to the determined information that the terminal is added to the existing multicast information or initiates the multicast information, Sending multicast information to the communication module; and storing the initiated multicast information in the storage module;
存储模块, 用于存储节目数据和组播信息。  a storage module, configured to store program data and multicast information.
15、 根据权利要求 14 所述的视频点播服务器, 其特征在于, 所述 决策模块进一步用于根据向同一视频点播终端发送单播节目数据的时 间和组播节目数据的时间, 确定终端接收的单播节目数据和组播节目数 据的视频点播终端所接收的数据是否重合, 并将确定出的重合的信息发 送给通讯模块; 15. The video on demand server according to claim 14, wherein: The decision module is further configured to determine whether the unicast program data received by the terminal and the data received by the video on demand terminal of the multicast program data are coincident according to the time of transmitting the unicast program data to the same video on demand terminal and the time of the multicast program data. And sending the determined coincidence information to the communication module;
则所述通讯模块进一步用于接收来自决策模块的所述重合的信息, 并根据该重合的信息停止以单播方式发送存储模块中的对应节目数据。  The communication module is further configured to receive the coincidence information from the decision module, and stop transmitting the corresponding program data in the storage module in a unicast manner according to the coincident information.
16、 一种视频点播终端, 其特征在于, 该终端包括通讯模块、 播放 控制模块和存储模块; 其中,  A video on demand terminal, wherein the terminal comprises a communication module, a play control module, and a storage module;
通讯模块用于接收来自服务器的单播节目数据并将单播节目数据 传送给播放控制模块, 以及根据来自服务器的组播信息接收組播节目数 据并存储到存储模块中; 并用于将用户发起的点播请求和来自播放控制 模块的中止单播请求发送给服务器;  The communication module is configured to receive unicast program data from the server and transmit the unicast program data to the play control module, and receive the multicast program data according to the multicast information from the server and store the data in the storage module; and The on-demand request and the abort unicast request from the play control module are sent to the server;
播放控制模块用于接收来自通讯模块的单播节目数据并进行解码 播放; 或根据确定出的单播节目数据中止的信息读取存储模块中存储的 组播节目数据并进行节目播放;  The play control module is configured to receive the unicast program data from the communication module and perform decoding and playing; or read the multicast program data stored in the storage module according to the determined information of the unicast program data suspension and play the program;
存储模块用于存储组播节目数据。  The storage module is used to store multicast program data.
17、 根据权利要求 16所述的视频点播终端, 其特征在于, 所述终 端中进一步包括: 判断模块, 用于判断所的接收的单播节目数据和存储模块中存储的 组播节目数据是否重合, 并将确定出的单播节目数据和组播节目数据重 合的信息发送给播放控制模块和通讯模块;  The video-on-demand terminal according to claim 16, wherein the terminal further comprises: a determining module, configured to determine whether the received unicast program data and the multicast program data stored in the storage module are coincident And sending the determined information of the unicast program data and the multicast program data to the playback control module and the communication module;
所述播放控制模块进一步用于根据来自判断模块的所述重合的信 息停止播放所述单播节目数据, 读取存储模块中'存储的组播节目数据并 播放;  The play control module is further configured to stop playing the unicast program data according to the coincident information from the judging module, and read the stored multimedia program data in the storage module and play the same;
所述通讯模块进一步用于根据来自判断模块的所述重合的信息向 视频点播服务器发送中止单播请求。 The communication module is further configured to: according to the overlapping information from the determining module The video on demand server sends abort unicast request.
PCT/CN2007/000722 2006-03-13 2007-03-06 Method of providing vedio-on-demand, method, server and terminal for video-on-demand WO2007104236A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CNB2006100570354A CN100428796C (en) 2006-03-13 2006-03-13 Video ordered telecasting method, system, server and terminal
CN200610057035.4 2006-03-13

Publications (2)

Publication Number Publication Date
WO2007104236A1 true WO2007104236A1 (en) 2007-09-20
WO2007104236A8 WO2007104236A8 (en) 2007-12-21

Family

ID=37298419

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2007/000722 WO2007104236A1 (en) 2006-03-13 2007-03-06 Method of providing vedio-on-demand, method, server and terminal for video-on-demand

Country Status (2)

Country Link
CN (1) CN100428796C (en)
WO (1) WO2007104236A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2515536A1 (en) * 2009-12-15 2012-10-24 Sharp Kabushiki Kaisha Content distribution system, content distribution device, content playback terminal, and content distribution method

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101090546B (en) * 2007-07-24 2011-05-11 中兴通讯股份有限公司 Method and system for implementing communication terminal service switchover
CN101394539B (en) * 2007-09-17 2011-01-26 巨家科技有限公司 Playing method and system for video program
CN101399690B (en) * 2007-09-28 2011-05-11 中国科学院软件研究所 Multimedia data transmission method and system thereof
CN101909194B (en) * 2009-06-08 2013-01-23 华为技术有限公司 Method and system for providing channel switching service and channel switching server
CN101964787B (en) * 2010-09-17 2013-07-10 深圳市同洲电子股份有限公司 Method, device and system for implementation of multiple-terminal breakpoint broadcast of programs
CN103503327B (en) * 2011-04-29 2019-01-01 英特尔公司 The system and method for management and the wireless communication of multiple transmission point
CN103716658B (en) * 2012-09-28 2017-05-17 株式会社日立制作所 Video on demand service device and method
CN105282566B (en) * 2014-05-28 2018-04-06 中国电信股份有限公司 Interactive television request program is converted to the method and system of group broadcasting program
CN104270683A (en) * 2014-10-08 2015-01-07 成都恒云世纪网络技术有限公司 System for conducting intelligent routing over air and in IP channels according to services and implementation method thereof
CN104219549A (en) * 2014-10-08 2014-12-17 成都恒云世纪网络技术有限公司 Multi-user sharing on-demand achieving system and achieving method thereof
CN105049954B (en) * 2015-07-02 2020-07-10 中兴通讯股份有限公司 Multicast transmission method, device and system for OTT media
CN105657570B (en) * 2016-01-18 2019-11-08 北京佰才邦技术有限公司 The resource transmission method and device of cache platform
CN107360448B (en) * 2017-08-11 2019-07-12 中广热点云科技有限公司 A kind of video data unicast multicast switching method
CN107743274A (en) * 2017-11-02 2018-02-27 华数传媒网络有限公司 VOD method, device and electronic equipment
CN108538115B (en) * 2018-03-30 2020-08-11 重庆智考信息技术有限公司 Teaching live broadcast system and method
CN111200789B (en) * 2020-01-07 2022-04-26 中国联合网络通信集团有限公司 Service data transmission method and device
CN112511894B (en) * 2020-09-11 2022-12-27 深圳市华曦达科技股份有限公司 OTT channel switching method, OTT channel switching device, electronic equipment and storage medium
CN114363830B (en) * 2020-09-28 2023-09-05 中国移动通信有限公司研究院 Multicast data processing method, core network gateway, service server and terminal

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002353964A (en) * 2001-05-30 2002-12-06 Sony Corp Contents-providing system and contents-providing method
US20030225845A1 (en) * 2002-05-28 2003-12-04 Samsung Electronics Co., Ltd. Method of providing multicast service and server employing the method
JP2004260293A (en) * 2003-02-24 2004-09-16 Nippon Telegr & Teleph Corp <Ntt> Traffic aggregating system and traffic aggregating method, and program therefor
US6973081B1 (en) * 2000-10-12 2005-12-06 Realnetworks, Inc. System and method for seamlessly joining multicast session
CN1719894A (en) * 2005-06-15 2006-01-11 北京交通大学 Method for implementing video request program under cover network multicasting

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1454451A1 (en) * 2001-12-15 2004-09-08 Thomson Licensing S.A. Videoconference bandwidth selection mechanism

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973081B1 (en) * 2000-10-12 2005-12-06 Realnetworks, Inc. System and method for seamlessly joining multicast session
JP2002353964A (en) * 2001-05-30 2002-12-06 Sony Corp Contents-providing system and contents-providing method
US20030225845A1 (en) * 2002-05-28 2003-12-04 Samsung Electronics Co., Ltd. Method of providing multicast service and server employing the method
JP2004260293A (en) * 2003-02-24 2004-09-16 Nippon Telegr & Teleph Corp <Ntt> Traffic aggregating system and traffic aggregating method, and program therefor
CN1719894A (en) * 2005-06-15 2006-01-11 北京交通大学 Method for implementing video request program under cover network multicasting

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2515536A1 (en) * 2009-12-15 2012-10-24 Sharp Kabushiki Kaisha Content distribution system, content distribution device, content playback terminal, and content distribution method
EP2515536A4 (en) * 2009-12-15 2013-12-25 Sharp Kk Content distribution system, content distribution device, content playback terminal, and content distribution method

Also Published As

Publication number Publication date
CN100428796C (en) 2008-10-22
CN1859562A (en) 2006-11-08
WO2007104236A8 (en) 2007-12-21

Similar Documents

Publication Publication Date Title
WO2007104236A1 (en) Method of providing vedio-on-demand, method, server and terminal for video-on-demand
US9609371B2 (en) Online video playing method and video playing server
US8631452B2 (en) Channel switching processing method, system, and related devices
JP5647133B2 (en) Method and system for resuming, transferring or copying a multimedia session
KR101477202B1 (en) Access network handover for a mobile television system
TWI381716B (en) Networked transmission system and method for stream data
WO2011000253A1 (en) Media stream processing method and communication system and related devices
WO2017092259A1 (en) Transmission control method and apparatus for game live video
WO2009015611A1 (en) Method, system and apparatus for quick switching media source
WO2009049478A1 (en) A method, system and device for playing stream media
WO2012075842A1 (en) Method and device for playing stream media video content
WO2011032431A1 (en) Method and apparatus for transmitting hyper text transport protocol (http) media
WO2008067753A1 (en) An iptv application system and a nvod program&#39;s playing method and system
WO2008101444A1 (en) A streaming media system, signaling transmitting device and sending method of streaming media
TWI280801B (en) Channel merging method for VOD system
US20190110091A1 (en) Method and device for synchronously performing an operation on contents
WO2011022994A1 (en) Method, apparatus and system for rapid acquisition of multicast realtime transport protocol sessions
WO2009143743A1 (en) A method, system for playing media and a play proxy device
WO2010075743A1 (en) Method and device for displaying time of internet protocol television (iptv)
EP1806870A1 (en) Method for providing data and data transmission system
WO2009006814A1 (en) Time shift tv service establishment method and time shift tv media function entity
WO2012062163A1 (en) Method and system for dynamically adjusting media content in video conference
WO2012083841A1 (en) Method, terminal and system for changing channel
WO2010057391A1 (en) Control method, equipment and system for playing stream media
JP5061619B2 (en) Resource securing method, relay device, distribution system, and program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07711054

Country of ref document: EP

Kind code of ref document: A1