JP2015095824A - Content distribution system, p2p terminal, viewing start assistance server, and content distribution method - Google Patents
Content distribution system, p2p terminal, viewing start assistance server, and content distribution method Download PDFInfo
- Publication number
- JP2015095824A JP2015095824A JP2013235259A JP2013235259A JP2015095824A JP 2015095824 A JP2015095824 A JP 2015095824A JP 2013235259 A JP2013235259 A JP 2013235259A JP 2013235259 A JP2013235259 A JP 2013235259A JP 2015095824 A JP2015095824 A JP 2015095824A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- request
- http
- segmented data
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明は、コンテンツ配信システム、P2P端末、視聴開始補助サーバ、及びコンテンツ配信方法に関するものである。 The present invention relates to a content distribution system, a P2P terminal, a viewing start auxiliary server, and a content distribution method.
近年インターネットにおいては、ストリーミングによる動画配信サービスが普及している。また、受信端末において視聴したいコンテンツを選択し、配信サーバより選択したコンテンツを受信するVOD(Video On Demand)のような一対一の配信サービスに加え、同一のコンテンツを多数の受信端末に同時に伝送する一対多(放送型)の配信サービスが知られている。 In recent years, streaming video distribution services have become widespread on the Internet. In addition to a one-to-one distribution service such as VOD (Video On Demand) that selects content to be viewed at the receiving terminal and receives the selected content from the distribution server, the same content is simultaneously transmitted to many receiving terminals. One-to-many (broadcast type) distribution services are known.
さらに、IPネットワークにおいて、放送型の動画配信サービスを効率よく行う方式として、IPマルチキャストが知られている。しかし、このIPマルチキャスト方式では、通信事業者の専用ネットワークが必要であり、複数事業者を跨いだサービスが困難であった。 Furthermore, IP multicast is known as a method for efficiently performing a broadcast-type moving image distribution service in an IP network. However, in this IP multicast method, a dedicated network for the communication carrier is required, and it is difficult to provide a service across a plurality of carriers.
こうした背景から、通信事業者の専用のネットワークを必要とせずに、複数事業者を跨いだ放送型の動画配信サービスを可能とするため、ピアツーピア技術を用いたコンテンツの分散配信技術が考案された。こうした技術は、コンテンツを要求する端末同士で論理的なツリーを作り、端末上で動作するアプリケーションソフトが相互にデータ転送を行うことによりマルチキャスト(一対多通信)を実現する(例えば、特許文献1参照)。 Against this background, a distributed content distribution technology using peer-to-peer technology has been devised in order to enable a broadcast-type video distribution service that spans multiple carriers without requiring a dedicated network for carriers. Such a technique realizes multicast (one-to-many communication) by creating a logical tree between terminals that request content, and application software that operates on the terminals mutually transfers data (see, for example, Patent Document 1). .
特許文献1に記載のストリームデータ分散配信方法では、インターネット等のネットワーク環境において、各ノード間でストリームデータの送受信を行うために、各ノードは、上流ノードと下流ノードとの接続関係を示すトポロジ情報を交換して、上流ノードから下流ノードへストリームデータを中継している。このストリームデータ分散配信方法では、各ノード間でトポロジ情報を交換するために、各ノードが自律的にトポロジ情報を記憶及び更新し、さらに提供する等の管理を行う機能を備えている。 In the stream data distribution and delivery method described in Patent Document 1, each node transmits and receives stream data between nodes in a network environment such as the Internet, and each node has topology information indicating a connection relationship between an upstream node and a downstream node. And the stream data is relayed from the upstream node to the downstream node. This stream data distributed delivery method has a function of performing management such that each node autonomously stores and updates topology information and further provides it in order to exchange topology information between the nodes.
また、このようなコンテンツ配信方式の別の例として、配信サーバにおいて、ストリーミングメディアを複数のデータパケットに断片化し(断片化されたデータをチャンクと呼ぶ)、各端末は必要なチャンクを持つ端末を動的に検出し、検出した端末から、プル型でチャンクを受信し、受信したチャンクを再構成することにより、所望のストリーミングメディアを得る技術が知られている(例えば、非特許文献1参照)。 As another example of such a content distribution method, in the distribution server, the streaming media is fragmented into a plurality of data packets (the fragmented data is called a chunk), and each terminal has a terminal having a necessary chunk. A technique for dynamically detecting, receiving a chunk in a pull type from the detected terminal, and reconfiguring the received chunk to obtain a desired streaming media is known (see, for example, Non-Patent Document 1). .
図17は、コンテンツ配信システムの一例を示す図である。この例では、配信サーバ5によって1〜6の6個に断片化したチャンクのうち、奇数番号のチャンクが実線に沿って、偶数番号のチャンクが破線に沿ってそれぞれ転送されることで、図示する6台の各端末(利用者端末)に対して、全てのチャンクが行き届いている様子を示している。このようなP2Pネットワークによるコンテンツ配信システムは、配信サーバから送出されるコンテンツを端末(P2P端末)が次々と中継していくことによって、配信サーバの負荷を軽減することが可能となり、低コストで大規模な配信を実現する方式として期待されている(以後、「P2P配信」と呼ぶ)。 FIG. 17 is a diagram illustrating an example of a content distribution system. In this example, the odd numbered chunks are transferred along the solid line and the even numbered chunks are transferred along the broken line among the six chunks 1 to 6 divided by the distribution server 5, as shown in the figure. It shows a state in which all chunks are in perfect reach for each of six terminals (user terminals). In such a content distribution system using a P2P network, the terminal (P2P terminal) relays the content transmitted from the distribution server one after another, thereby reducing the load on the distribution server, which is large at low cost. It is expected as a method for realizing large-scale distribution (hereinafter referred to as “P2P distribution”).
図18は、新たなP2P端末がP2Pネットワークに参加し、視聴を開始する一般的な手順を示す図である。この図を参照して、新たなP2P端末がP2Pネットワークに参加し、視聴を開始するまでの手順を説明する。端末管理サーバ6は、P2Pネットワークに参加するP2P端末の情報を管理するサーバである。新規にP2Pネットワークに参加するP2P端末(P2P端末X)は、端末管理サーバ6に自身の端末情報(IPアドレスやポート番号等)を登録する(ステップ1)。端末管理サーバ6は、現在P2Pネットワークに参加している他のP2P端末A,B,C・・・や配信サーバ5の端末情報のリストを返信する(ステップ2)。P2P端末Xは、受信したリストから自身に適したP2P端末を選択して接続することで、P2Pネットワークに参加してコンテンツを受信し、視聴を開始する(ステップ3)。 FIG. 18 is a diagram illustrating a general procedure in which a new P2P terminal joins a P2P network and starts viewing. With reference to this figure, a procedure until a new P2P terminal joins the P2P network and starts viewing will be described. The terminal management server 6 is a server that manages information on P2P terminals participating in the P2P network. A P2P terminal (P2P terminal X) newly participating in the P2P network registers its terminal information (IP address, port number, etc.) in the terminal management server 6 (step 1). The terminal management server 6 returns a list of other P2P terminals A, B, C... Currently participating in the P2P network and the terminal information of the distribution server 5 (step 2). The P2P terminal X selects and connects a P2P terminal suitable for itself from the received list, thereby participating in the P2P network, receiving content, and starting viewing (step 3).
また、汎用OS上で動作するP2Pアプリケーションソフトウェア(P2P端末)は、一般にコンテンツを再生する視聴プレーヤソフトウェア、及び所定のP2P通信プロトコルによるコンテンツの中継機能を有するP2P通信ソフトウェアを組み合わせて実装される。 In addition, P2P application software (P2P terminal) operating on a general-purpose OS is generally implemented by combining viewing player software that reproduces content and P2P communication software that has a content relay function using a predetermined P2P communication protocol.
図19は、P2Pアプリケーションソフトウェアの構成の一例を示す図である。視聴プレーヤソフトウェアとしては、OSにあらかじめインストールされている既成のソフトウェア(例えば、Windows Media Player(登録商標)やQuickTime Player(登録商標))や、Webブラウザのプラグインとして提供されているソフトウェア(例えば、Flash Player(登録商標)やSilverlight(登録商標))がある。視聴プレーヤは、例えばH.264やAACなど国際標準規格(ISO)に従ったストリームのデコード機能及びデコード映像の提示機能を有しているほか、ベンダ独自プロトコルやHTTP通信規格をベースとするストリーミングプロトコルによりネットワーク経由でのストリームを受信するインタフェースを有している。 FIG. 19 is a diagram illustrating an example of the configuration of the P2P application software. The viewing player software includes pre-installed software (for example, Windows Media Player (registered trademark) and QuickTime Player (registered trademark)) preinstalled in the OS, and software provided as a plug-in for a web browser (for example, Flash Player (registered trademark) and Silverlight (registered trademark). The viewing player is, for example, H.264. In addition to stream decoding functions and video presentation functions according to international standards (ISO) such as H.264 and AAC, streams via the network can be streamed using vendor-specific protocols and streaming protocols based on HTTP communication standards. It has an interface to receive.
P2P通信ソフトウェア32は、所定のP2P通信プロトコルによりP2Pネットワークに参加し、コンテンツの中継を行うとともに、コンテンツバッファにコンテンツを格納する。また、P2P通信ソフトウェア32は、視聴プレーヤソフトウェア31が対応するストリーミングプロトコルを実装したサーバ機能を有しており、視聴プレーヤソフトウェア31に対しては、配信サーバのように振る舞う。これら2つのソフトウェアを組み合わせて、P2P通信ソフトウェア32が所定のP2P通信プロトコルにより受信したコンテンツを、ローカル通信インタフェースを介して、視聴プレーヤソフトウェアに対して配信し、視聴プレーヤソフトウェア31が入力したコンテンツを再生することにより、ユーザがコンテンツを視聴することができるようになる。 The P2P communication software 32 participates in the P2P network by a predetermined P2P communication protocol, relays the content, and stores the content in the content buffer. Further, the P2P communication software 32 has a server function in which the streaming protocol supported by the viewing player software 31 is implemented, and behaves like a distribution server for the viewing player software 31. By combining these two softwares, the content received by the P2P communication software 32 using the predetermined P2P communication protocol is distributed to the viewing player software via the local communication interface, and the content input by the viewing player software 31 is reproduced. By doing so, the user can view the content.
ところで、昨今の動画配信では、専用のサーバと専用のプロトコルによるストリーミング配信方式から、汎用的なWebサーバによりHTTPプロトコルを用いてストリーミング配信する方式への移行が進んでおり、多くのデバイス向けの配信において主流となっている。このようなHTTPプロトコルによるストリーミング配信方式(アダプティブストリーミング)としては、ITベンダによる独自技術が普及している他、これらストリーミング方式の統一を意図した国際標準規格の策定が進んでいる(例えば、非特許文献2参照)。いずれの技術も基本的なコンセプトは同様であり、Webサーバには動画コンテンツを数秒から数十秒程度のファイルに分割したもの(セグメント化データ)と、それらの動画コンテンツの属性やURLを記述したマニフェストファイルを用意し、端末はマニフェストファイルのURLに従って次々とセグメント化データを受信し、1本の動画コンテンツにつなぎ合わせて再生するものである。 By the way, in recent video distribution, a transition from a streaming distribution method using a dedicated server and a dedicated protocol to a method of streaming distribution using an HTTP protocol by a general-purpose web server is progressing, and distribution for many devices In the mainstream. As such a streaming distribution method (adaptive streaming) based on the HTTP protocol, IT vendors have spread their own technologies, and international standards are being developed to unify these streaming methods (for example, non-patents). Reference 2). The basic concepts of both technologies are the same, and the Web server describes video content divided into files of several seconds to several tens of seconds (segmented data), and the attributes and URLs of those video content. A manifest file is prepared, and the terminal receives segmented data one after another according to the URL of the manifest file, and joins and reproduces it to one moving image content.
HTTPプロトコルによるストリーミング配信方式では、セグメント化データが順次生成される(例えば、非特許文献3参照)。図20は、HTTPプロトコルによるストリーミング配信方式の概念を示す図である。ここでは、ライブエンコーダでエンコードされたコンテンツが時間の進行に合わせて分割され、1〜6のセグメント化データが順次生成されている。マニフェストも同様に、セグメント化データが生成されるのに合わせて内容が更新されている。つまり、一番左のマニフェストファイルには1〜3のセグメント化データのURLが登録されており、次のマニフェストファイルには2〜4のセグメント化データのURLが登録されているように、順次登録されているセグメント化データのURLが一定個数ずつスライドしている。セグメント化データ及びマニフェストは順次Webサーバに供給されている。端末は、Webサーバからマニフェストファイルを受信し、マニフェストファイルに登録されているセグメント化データを順次HTTPプロトコルにより受信する。また、更新されたマニフェストファイルを受信し、新規に登録されたセグメント化データを受信する処理を繰り返すことにより一連のコンテンツを受信することができる(以後、「HTTP配信」と呼ぶ)。 In the streaming distribution method based on the HTTP protocol, segmented data is sequentially generated (see, for example, Non-Patent Document 3). FIG. 20 is a diagram illustrating the concept of a streaming distribution method based on the HTTP protocol. Here, the content encoded by the live encoder is divided with the progress of time, and 1 to 6 segmented data are sequentially generated. Similarly, the contents of the manifest are updated as segmented data is generated. That is, the leftmost manifest file has URLs of 1 to 3 segmented data registered, and the next manifest file has URLs of 2 to 4 segmented data registered in order. The segmented data URLs are slid by a certain number. The segmented data and the manifest are sequentially supplied to the web server. The terminal receives the manifest file from the Web server, and sequentially receives the segmented data registered in the manifest file using the HTTP protocol. A series of contents can be received by receiving the updated manifest file and repeating the process of receiving newly registered segmented data (hereinafter referred to as “HTTP delivery”).
P2Pネットワークによるコンテンツ配信システムは、利用者端末が、個別に配信サーバ5からコンテンツを受信するHTTP配信方式と比較すると、配信サーバ5から送出されるコンテンツをP2P端末が次々と中継していくことによって、配信サーバ5の負荷を軽減して低コストで大規模な配信を実現できる一方で、コンテンツの受信に先立ち、P2Pネットワークに参加しコンテンツの配信元となる他のP2P端末を検索して接続を確立する必要があることから、視聴開始までに多くの時間を要していた。 In the content distribution system using the P2P network, when compared with the HTTP distribution method in which the user terminal individually receives the content from the distribution server 5, the P2P terminal relays the content transmitted from the distribution server 5 one after another. While reducing the load on the distribution server 5 and realizing large-scale distribution at low cost, prior to receiving the content, search for and connect to other P2P terminals that join the P2P network and become the content distribution source Since it was necessary to establish, it took a lot of time to start viewing.
また、P2Pアプリケーション内部においては、視聴プレーヤソフトウェアがP2P通信ソフトウェアにローカル通信インタフェースを介して接続して視聴を開始することから、視聴プレーヤソフトウェアに先立ち、P2P通信ソフトウェアが起動し、視聴プレーヤからのストリーム要求を待受けている必要がある。P2P通信ソフトウェアは他のP2P端末(PC等)から接続を受け付ける必要があることから、ソフトウェアの起動に際してOSによりファイアウォール機能の設定を促すためのメッセージが表示され、ユーザのインタラクションを待機するなど、起動までに時間がかかる場合がある。このように、P2P通信ソフトウェアの起動に時間がかかる場合は、再生までの待ち時間がさらに大きくなるといった問題があった。 In addition, in the P2P application, the viewing player software connects to the P2P communication software via the local communication interface and starts viewing. Therefore, prior to the viewing player software, the P2P communication software is activated and the stream from the viewing player is started. It is necessary to wait for a request. Since the P2P communication software needs to accept connections from other P2P terminals (such as PCs), a message prompting the OS to set the firewall function is displayed when the software is started, and the user is required to wait for user interaction. It may take some time before. As described above, when it takes time to start the P2P communication software, there is a problem that the waiting time until the reproduction is further increased.
このような再生までの待ち時間を短縮する技術としては、複数のデータ提供ノードと共にネットワークに収容されるコンテンツのストリーミング再生装置において、コンテンツのストリーミング再生を迅速に開始させることを目的とした、ストリーミング再生装置、ストリーミング再生方法、コンピュータプログラム及び記憶媒体が開示されている(例えば、特許文献2参照)。 As a technique for shortening the waiting time until such playback, streaming playback for the purpose of quickly starting streaming playback of content in a content streaming playback apparatus accommodated in a network together with a plurality of data providing nodes An apparatus, a streaming reproduction method, a computer program, and a storage medium are disclosed (for example, see Patent Document 2).
特許文献2に記載の技術によれば、複数のデータ提供ノード(P2P端末)各々との間の通信状態を特定し、ストリーミング再生を開始するために必要となるデータとしての再生開始データを細分化してなる複数の細部化データを要求する要求プロトコルを、各データ提供ノード間で細分化データの要求プロトコルの送信時点から細分化データの転送が終了する時点に至る転送時間が均等になるように生成することにより、再生開始データの取得に要する時間を短縮している。 According to the technique described in Patent Document 2, the communication start status is specified by specifying the communication state with each of a plurality of data providing nodes (P2P terminals), and the data required to start streaming playback is subdivided. A request protocol for requesting a plurality of detailed data is generated between each data providing node so that the transfer time from the time when the request protocol for the fragmented data is transmitted to the point when the transfer of the fragmented data ends is even. By doing so, the time required to acquire the reproduction start data is shortened.
しかしながら、特許文献2に記載の技術は、あらかじめ複数のデータ提供ノードと通信が可能な状態(つまり、あらかじめP2Pネットワークが構築された状態)であることが前提となっていることから、P2Pネットワークに参加しコンテンツの配信元となる他のP2P端末(データ提供ノード)を検索するまでに要する時間については考慮されておらず、視聴を迅速に開始できない場合があった。さらに、P2P通信ソフトウェアの起動までにかかる時間についても考慮されていないことから、視聴を迅速に開始できない場合があった。 However, the technique described in Patent Document 2 is premised on a state in which communication with a plurality of data providing nodes is possible in advance (that is, a state in which a P2P network has been established in advance). The time required to search for another P2P terminal (data providing node) that participates and serves as a content distribution source is not considered, and viewing may not be started quickly. Furthermore, since the time required for starting the P2P communication software is not taken into consideration, there are cases where viewing cannot be started quickly.
かかる事情に鑑みてなされた本発明の目的は、P2P端末によるコンテンツの視聴を迅速に開始させることを可能とするコンテンツ配信システム、P2P端末、視聴開始補助サーバ、及びコンテンツ配信方法を提供することにある。 An object of the present invention made in view of such circumstances is to provide a content distribution system, a P2P terminal, a viewing start auxiliary server, and a content distribution method capable of quickly starting viewing of content by a P2P terminal. is there.
上記課題を解決するため、本発明に係るコンテンツ配信システムは、P2Pネットワークに参加可能なP2P端末と、該P2P端末におけるコンテンツの分割単位であるセグメント化データの取得を補助する視聴開始補助サーバとを備えるコンテンツ配信システムであって、P2P端末は、他のP2P端末とP2P通信を行うP2P通信部と、セグメント化データを受信して再生するHTTP配信再生部とを備えており、前記HTTP配信再生部は、セグメント化データの取得先URLを含む情報のリクエストを前記視聴開始補助サーバに送信し、前記視聴開始補助サーバは、前記HTTP配信再生部から前記リクエストを受信すると、セグメント化データの取得先URLを含むレスポンスを前記HTTP配信再生部に送信し、前記HTTP配信再生部は、前記セグメント化データの取得先URLからセグメント化データを受信して再生し、前記P2P通信部は、P2Pネットワークへの参加処理を行い、前記HTTP配信再生部は、前記P2P通信部による前記P2Pネットワークへの参加処理が完了すると、セグメント化データの取得先を前記P2P通信部に変更する。 In order to solve the above problems, a content distribution system according to the present invention includes a P2P terminal that can participate in a P2P network, and a viewing start auxiliary server that assists in obtaining segmented data that is a content division unit in the P2P terminal. A P2P terminal includes a P2P communication unit that performs P2P communication with another P2P terminal, and an HTTP distribution reproduction unit that receives and reproduces segmented data, and the HTTP distribution reproduction unit Transmits a request for information including an acquisition destination URL of segmented data to the viewing start auxiliary server, and when the viewing start auxiliary server receives the request from the HTTP distribution reproduction unit, the acquisition destination URL of segmented data Is sent to the HTTP delivery / playback unit, and the HTTP The communication reproduction unit receives and reproduces the segmented data from the acquisition URL of the segmented data, the P2P communication unit performs a process of joining the P2P network, and the HTTP distribution reproduction unit includes the P2P communication unit When the participation process to the P2P network by is completed, the acquisition source of the segmented data is changed to the P2P communication unit.
さらに、本発明に係るコンテンツ配信システムにおいて、前記P2P通信部は、前記P2Pネットワークへの参加処理が完了すると、前記HTTP配信再生部の前記視聴開始補助サーバに対する前記リクエストを当該P2P通信部に転送するように要求するリクエスト転送要求を前記視聴開始補助サーバに送信し、前記視聴開始補助サーバは、前記P2P通信部から前記リクエスト転送要求を受信すると、前記HTTP配信再生部からの前記リクエストを前記P2P通信部に転送し、前記P2P通信部は、前記視聴開始補助サーバから前記リクエストが転送されると、セグメント化データの取得先URLを当該P2P通信部のURLに更新し、該更新されたセグメント化データの取得先URLを含むレスポンスを前記HTTP配信再生部に送信する。 Furthermore, in the content distribution system according to the present invention, the P2P communication unit transfers the request for the viewing start auxiliary server of the HTTP distribution reproduction unit to the P2P communication unit when the participation process to the P2P network is completed. When the request start request server receives the request transfer request from the P2P communication unit, the request start request server transmits the request from the HTTP distribution reproduction unit to the P2P communication. When the request is transferred from the viewing start auxiliary server, the P2P communication unit updates the acquisition destination URL of the segmented data to the URL of the P2P communication unit, and the updated segmented data A response including the URL to obtain the URL is sent to the HTTP delivery / playback unit To.
さらに、本発明に係るコンテンツ配信システムにおいて、前記P2P通信部は、他のP2P端末から受信したセグメント化データの格納数が所定の規定値以上になったときに、前記リクエスト転送要求を前記視聴開始補助サーバに送信する。 Furthermore, in the content distribution system according to the present invention, the P2P communication unit starts viewing the request transfer request when the number of stored segmented data received from other P2P terminals exceeds a predetermined value. Send to auxiliary server.
また、上記課題を解決するため、本発明に係るP2P端末は、P2Pネットワークに参加可能なP2P端末であって、他のP2P端末とP2P通信を行うP2P通信部と、セグメント化データを受信して再生するHTTP配信再生部とを備えおり、前記HTTP配信再生部は、セグメント化データの取得先URLを含む情報のリクエストを視聴開始補助サーバに送信し、前記HTTP配信再生部は、前記視聴開始補助サーバからセグメント化データの取得先URLを含むレスポンスを受信し、該セグメント化データの取得先URLからセグメント化データを受信して再生し、前記P2P通信部は、P2Pネットワークへの参加処理を行い、前記HTTP配信再生部は、前記P2P通信部による前記P2Pネットワークへの参加処理が完了すると、セグメント化データの取得先を前記P2P通信部に変更する。 In order to solve the above problems, a P2P terminal according to the present invention is a P2P terminal that can participate in a P2P network, receives a segmented data from a P2P communication unit that performs P2P communication with other P2P terminals. An HTTP delivery / playback unit for playing back, wherein the HTTP delivery / playback unit transmits a request for information including an acquisition URL of the segmented data to the viewing start auxiliary server, and A response including a segmentation data acquisition destination URL is received from the server, and the segmented data is received and reproduced from the segmentation data acquisition destination URL. The P2P communication unit performs a process of joining the P2P network, The HTTP delivery / reproduction unit completes the process of joining the P2P network by the P2P communication unit To change the acquisition destination of the segmented data to the P2P communication unit.
さらに、本発明に係るP2P端末において、前記P2P通信部は、前記P2Pネットワークへの参加処理が完了すると、前記HTTP配信再生部の前記視聴開始補助サーバに対する前記リクエストを当該P2P通信部に転送するように要求するリクエスト転送要求を前記視聴開始補助サーバに送信し、前記P2P通信部は、前記視聴開始補助サーバから前記リクエストが転送されると、セグメント化データの取得先URLを当該P2P通信部のURLに更新し、該更新されたセグメント化データの取得先URLを含むレスポンスを前記HTTP配信再生部に送信する。 Further, in the P2P terminal according to the present invention, the P2P communication unit transfers the request to the viewing start auxiliary server of the HTTP delivery / playback unit to the P2P communication unit when the participation process to the P2P network is completed. When the request is transferred from the viewing start auxiliary server, the P2P communication unit sends the URL for acquiring the segmented data to the URL of the P2P communication unit. And a response including the URL for obtaining the updated segmented data is transmitted to the HTTP delivery / playback unit.
さらに、本発明に係るP2P端末において、前記P2P通信部は、他のP2P端末から受信したセグメント化データの格納数が所定の規定値以上になったときに、前記リクエスト転送要求を前記視聴開始補助サーバに送信する。 Furthermore, in the P2P terminal according to the present invention, the P2P communication unit receives the request transfer request when the stored number of segmented data received from another P2P terminal exceeds a predetermined specified value. Send to server.
また、上記課題を解決するため、本発明に係る視聴開始補助サーバは、P2P端末におけるコンテンツの分割単位であるセグメント化データの取得を補助する視聴開始補助サーバであって、P2P端末は、他のP2P端末とP2P通信を行うP2P通信部と、セグメント化データを受信して再生するHTTP配信再生部とを備えており、前記HTTP配信再生部からのセグメント化データの取得先URLを含む情報のリクエストに応じて、セグメント化データの取得先URLを含むレスポンスを前記HTTP配信再生部に送信し、前記P2P通信部から、前記リクエストを当該P2P通信部に転送するように要求するリクエスト転送要求を受信すると、前記HTTP配信再生部からの前記リクエストを前記P2P通信部に転送する。 In order to solve the above problem, a viewing start auxiliary server according to the present invention is a viewing start auxiliary server that assists in obtaining segmented data that is a content division unit in a P2P terminal. A request for information including a URL for obtaining segmented data from the HTTP delivery / playback unit, comprising a P2P communication unit for performing P2P communication with a P2P terminal, and an HTTP delivery / playback unit for receiving and playing back the segmented data. In response to the request, a response including the URL for obtaining the segmented data is transmitted to the HTTP delivery / reproduction unit, and a request transfer request for requesting the request to be transferred to the P2P communication unit is received from the P2P communication unit. The request from the HTTP delivery / playback unit is transferred to the P2P communication unit.
また、上記課題を解決するため、本発明に係るコンテンツ配信方法は、P2Pネットワークに参加可能なP2P端末と、該P2P端末におけるコンテンツの分割単位であるセグメント化データの取得を補助する視聴開始補助サーバとを備えるコンテンツ配信システムにおけるコンテンツ配信方法であって、前記P2P端末は、他のP2P端末とP2P通信を行うP2P通信部と、セグメント化データを受信して再生するHTTP配信再生部とを備えており、前記HTTP配信再生部により、セグメント化データの取得先URLを含む情報のリクエストを前記視聴開始補助サーバに送信するステップと、前記視聴開始補助サーバにより、前記HTTP配信再生部から前記リクエストを受信すると、セグメント化データの取得先URLを含むレスポンスを前記HTTP配信再生部に送信するステップと、前記HTTP配信再生部により、前記セグメント化データの取得先URLからセグメント化データを受信して再生するステップと、前記P2P通信部により、P2Pネットワークへの参加処理を行うステップと、前記HTTP配信再生部により、前記P2P通信部による前記P2Pネットワークへの参加処理が完了すると、セグメント化データの取得先を前記P2P通信部に変更するステップと、を含む。 In order to solve the above problems, a content distribution method according to the present invention includes a P2P terminal that can participate in a P2P network, and a viewing start auxiliary server that assists in obtaining segmented data that is a content division unit in the P2P terminal. The P2P terminal includes a P2P communication unit that performs P2P communication with other P2P terminals, and an HTTP distribution reproduction unit that receives and reproduces the segmented data. The HTTP delivery / playback unit transmits a request for information including the URL for obtaining segmented data to the viewing start auxiliary server, and the viewing start auxiliary server receives the request from the HTTP delivery / playback unit. Then, the response including the URL for acquiring the segmented data To the HTTP delivery / reproduction unit, to receive and reproduce the segmented data from the acquisition URL of the segmented data by the HTTP delivery / reproduction unit, and to the P2P network by the P2P communication unit And a step of changing the acquisition source of the segmented data to the P2P communication unit when the HTTP distribution / playback unit completes the participation process to the P2P network by the P2P communication unit. .
本発明によれば、P2Pネットワーク参加処理の終了を待つことなく、視聴を迅速に開始することができるようになる。 According to the present invention, viewing can be quickly started without waiting for the end of the P2P network participation process.
以下、本発明の一実施形態について、図面を参照して詳細に説明する。なお、以下に説明する実施形態では、P2P配信のデータ中継にかかるコンテンツの配信単位(分割単位)をHTTP配信におけるコンテンツの配信単位であるセグメント化データと共通とする。 Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. In the embodiment described below, a content distribution unit (division unit) for data relay of P2P distribution is made common to segmented data that is a content distribution unit in HTTP distribution.
図1は、本発明の一実施形態に係るコンテンツ配信システムの構成例を示すブロック図である。この例では、コンテンツ配信システムは、複数のP2P端末1と、視聴開始補助サーバ2と、オリジンサーバ3と、Webサーバ4と、配信サーバ5と、端末管理サーバ6とを備え、それぞれインターネットに接続される。なお、図1においては、視聴開始補助サーバ2と、オリジンサーバ3と、Webサーバ4と、配信サーバ5と、端末管理サーバ6とを個別のサーバとして表記しているが、一つのサーバに全ての機能を具備してもよい。また、以下の説明において、新規にP2Pネットワークに参加する新規参加P2P端末に対して、既にP2Pネットワークに参加しており新規参加P2P端末の接続先候補又は接続先となる他のP2P端末を区別する場合には、該他のP2P端末の符号を1’と表記する。 FIG. 1 is a block diagram showing a configuration example of a content distribution system according to an embodiment of the present invention. In this example, the content distribution system includes a plurality of P2P terminals 1, a viewing start auxiliary server 2, an origin server 3, a Web server 4, a distribution server 5, and a terminal management server 6, each connected to the Internet. Is done. In FIG. 1, the viewing start auxiliary server 2, the origin server 3, the web server 4, the distribution server 5, and the terminal management server 6 are shown as separate servers. You may have the function of. Further, in the following description, a newly participating P2P terminal that newly participates in the P2P network is distinguished from other P2P terminals that have already participated in the P2P network and are connection destination candidates or connection destinations of the newly participating P2P terminal. In this case, the code of the other P2P terminal is expressed as 1 ′.
オリジンサーバ3は、コンテンツの配信元となるサーバであり、コンテンツをセグメント化データに分割するとともに、マニフェストを生成し、視聴開始補助サーバ2及び配信サーバ5に送信する。 The origin server 3 is a server that is a content distribution source, divides the content into segmented data, generates a manifest, and transmits the manifest to the viewing start auxiliary server 2 and the distribution server 5.
配信サーバ5は、オリジンサーバ3から受信したセグメント化データを、P2Pネットワークに参加するP2P端末1’に対し順次配信するサーバである。P2Pネットワークは、配信サーバ5及びP2P端末1’が階層的に接続して構成される。 The distribution server 5 is a server that sequentially distributes the segmented data received from the origin server 3 to the P2P terminals 1 'participating in the P2P network. The P2P network is configured by hierarchically connecting the distribution server 5 and the P2P terminal 1 '.
端末管理サーバ6は、本発明のコンテンツ配信システムのP2Pネットワークに参加している配信サーバ5や各P2P端末1’のコンテンツ配信に係る情報である端末情報のリストを保持し、新規参加P2P端末1からの所望のコンテンツIDのP2Pネットワークに対する接続先紹介要求を受け付け、接続先候補リストを返信する。端末情報には、P2Pネットワークに参加する配信サーバ5やP2P端末1’の端末IDに対応付けて、IPアドレスやポート番号などの、データ転送に必要な情報が含まれる。接続先候補リストは、新規参加P2P端末1の接続先の候補となる、既にP2Pネットワークに参加している配信サーバ5及びP2P端末1’の端末情報を一つ以上含むリストである。 The terminal management server 6 holds a list of terminal information, which is information related to the content distribution of the distribution server 5 and each P2P terminal 1 ′ participating in the P2P network of the content distribution system of the present invention, and is a newly participating P2P terminal 1 Accepts a connection destination introduction request for the P2P network with the desired content ID from the server, and returns a connection destination candidate list. The terminal information includes information necessary for data transfer such as an IP address and a port number in association with the terminal IDs of the distribution server 5 and the P2P terminal 1 ′ participating in the P2P network. The connection destination candidate list is a list including one or more pieces of terminal information of the distribution server 5 and the P2P terminal 1 ′ that are already participating in the P2P network and are candidates for the connection destination of the newly participating P2P terminal 1.
Webサーバ4は、P2P端末1においてユーザが選択したコンテンツの視聴ページを送信するサーバである。視聴ページは例えばHTML形式によるWebページで構成され、コンテンツへのアクセス情報(IPアドレス、URL、コンテンツID等)、及びP2Pアプリケーションを構成する視聴プレーヤソフトウェア、P2P通信ソフトウェアへのアクセス情報や、これらソフトウェアの起動を促すタグ情報、P2Pアプリケーションに対して一意に割り当てられた端末ID等を含む。 The Web server 4 is a server that transmits a viewing page of content selected by the user in the P2P terminal 1. The viewing page is composed of, for example, a web page in the HTML format, and access information to the content (IP address, URL, content ID, etc.), access information for viewing player software and P2P communication software constituting the P2P application, and these software Tag information that prompts activation of the terminal, a terminal ID uniquely assigned to the P2P application, and the like.
図2は、Webサーバが送信する視聴ページの一例を示す図である。この例では、4〜7行目が視聴プレーヤソフトウェア起動タグを示しており、視聴プレーヤソフトウェアをFlash Playerを用いて実装した例を示している。タグ内を見ると、5行目が視聴プレーヤソフトウェアのアクセス情報(ダウンロードURL)を示しており、6行目の“src=http://192.168.11.1/content01.m3u8”がコンテンツへのアクセス情報を、“nid=0001”が端末IDを示している。 FIG. 2 is a diagram illustrating an example of a viewing page transmitted by the Web server. In this example, the 4th to 7th lines indicate viewing player software activation tags, and the viewing player software is implemented using Flash Player. Looking inside the tag, the fifth line shows the access information (download URL) of the viewing player software, and “src = http: //192.168.11.1/content01.m3u8” on the sixth line is the access information to the content “Nid = 0001” indicates the terminal ID.
また、10〜13行目がP2P通信ソフトウェア起動タグを示しており、P2P通信ソフトウェアをJava Applet(登録商標)を用いて実装した例を示している。タグ内を見ると、10行目がP2P通信ソフトウェアのアクセス情報(ダウンロードURL)を示しており、11行目がコンテンツへのアクセス情報(コンテンツID)を、12行目が端末IDをそれぞれ示している。 The 10th to 13th lines indicate P2P communication software activation tags, and an example in which the P2P communication software is implemented using Java Applet (registered trademark). Looking inside the tag, the 10th line shows the access information (download URL) of the P2P communication software, the 11th line shows the access information (content ID) to the content, and the 12th line shows the terminal ID. Yes.
P2P端末1は、他のP2P端末1’とP2P通信を行うP2P通信部11と、セグメント化データを受信して再生するHTTP配信再生部12とを備える。詳細は後述する。 The P2P terminal 1 includes a P2P communication unit 11 that performs P2P communication with another P2P terminal 1 ′, and an HTTP distribution reproduction unit 12 that receives and reproduces the segmented data. Details will be described later.
[視聴開始補助サーバ]
次に、視聴開始補助サーバ2について説明する。視聴開始補助サーバ2は、オリジンサーバ3からセグメント化データ及びマニフェストを受信し、P2P端末1のリクエストに対してマニフェスト及びセグメント化データを送信するとともに、マニフェストの取得先を転送するサーバである。視聴開始補助サーバ2は、P2P端末におけるセグメント化データの取得を補助し、P2P端末1がP2Pネットワークの参加処理を完了し、HTTP配信のリクエストを受付けできるようになるまでの間、マニフェスト及びセグメント化データをP2P端末1に送信する。
[Viewing start auxiliary server]
Next, the viewing start auxiliary server 2 will be described. The viewing start auxiliary server 2 is a server that receives the segmented data and the manifest from the origin server 3, transmits the manifest and the segmented data in response to the request from the P2P terminal 1, and forwards the acquisition destination of the manifest. The viewing start auxiliary server 2 assists the acquisition of the segmented data in the P2P terminal, and until the P2P terminal 1 completes the participation process of the P2P network and can accept the HTTP distribution request, the manifest and the segmentation Data is transmitted to the P2P terminal 1.
図3は、視聴開始補助サーバ2の構成例を示すブロック図である。視聴開始補助サーバ2は、配信素材受信部21と、HTTPリクエスト受信部22と、リクエスト解析部23と、HTTPレスポンス送信部24と、リクエスト転送要求受付部25と、記憶部26と、通信I/F27とを備える。記憶部26は、転送待ちリスト261と、セグメントバッファ262と、マニフェスト記憶部263とを備える。 FIG. 3 is a block diagram illustrating a configuration example of the viewing start auxiliary server 2. The viewing start auxiliary server 2 includes a distribution material receiving unit 21, an HTTP request receiving unit 22, a request analyzing unit 23, an HTTP response transmitting unit 24, a request transfer request receiving unit 25, a storage unit 26, a communication I / F27. The storage unit 26 includes a transfer waiting list 261, a segment buffer 262, and a manifest storage unit 263.
転送待ちリスト261は、端末IDに対応付けて、転送可否フラグ及び転送先アドレス情報を格納するリストである。転送可否フラグは、端末IDのマニフェストのリクエストを転送可能か否かについて示すフラグである。転送先アドレス情報は、転送可否フラグが「転送可」の時に、リクエストの転送先となるアドレス情報(IPアドレスとポート番号の組、又はURL)である。 The transfer waiting list 261 is a list that stores a transfer enable / disable flag and transfer destination address information in association with the terminal ID. The transfer enable / disable flag is a flag indicating whether or not the request for the manifest of the terminal ID can be transferred. The transfer destination address information is address information (a pair of an IP address and a port number or a URL) that is a transfer destination of a request when the transfer enable / disable flag is “transfer enabled”.
セグメントバッファ262は、セグメント化データを格納する。 The segment buffer 262 stores segmented data.
マニフェスト記憶部263は、マニフェスト内の先頭のセグメント化データのシーケンス番号と対応付けてマニフェストを記憶する。 The manifest storage unit 263 stores the manifest in association with the sequence number of the first segmented data in the manifest.
配信素材受信部21は、オリジンサーバ3からセグメント化データを受信し、セグメントバッファ262に順次格納するとともに、セグメント化データのURLを記載したマニフェストを受信し、マニフェスト内の先頭のセグメント化データのシーケンス番号と対応付けてマニフェスト記憶部263に格納する。 The distribution material receiving unit 21 receives the segmented data from the origin server 3 and sequentially stores the segmented data in the segment buffer 262. The distribution material receiving unit 21 also receives a manifest describing the URL of the segmented data, and the sequence of the first segmented data in the manifest. The number is stored in the manifest storage unit 263 in association with the number.
なお、本実施形態では、オリジンサーバ3から入力されるマニフェスト及びセグメント化データは、マニフェストに記載されるセグメント化データ数を5に、セグメント化データの分割周期を3秒に予め設定されているものとする。 In the present embodiment, the manifest and segmented data input from the origin server 3 are set in advance so that the number of segmented data described in the manifest is 5 and the segmentation data division period is 3 seconds. And
図4は、マニフェストの一例を示す図であり、IETF(Internet Engineering Task Force)のインターネットドラフトである“HTTP Live Streaming”の仕様に従ったマニフェストの例を示している。“HTTP Live Streaming”の詳細については、例えば、インターネット<URL:http://tools.ietf.org/html/draft-pantos-http-live-streaming-12>を参照されたい。 FIG. 4 is a diagram illustrating an example of a manifest, and illustrates an example of a manifest according to the specification of “HTTP Live Streaming”, which is an Internet draft of IETF (Internet Engineering Task Force). For details of “HTTP Live Streaming”, refer to the Internet <URL: http://tools.ietf.org/html/draft-pantos-http-live-streaming-12>, for example.
図4では、シーケンス番号(セグメントId)=14を先頭として、3秒の5つのセグメント化データ(tsファイル)の取得先URLが存在する例を示している。セグメント化データのファイル名は、「コンテンツ名」(content01_)、「セグメントId」の0詰め5桁(例えば00014)、「拡張子」(.ts)を連結させた文字列となっている。マニフェストに記載されるセグメントは一定数(例えば5)として、新たなセグメント化データを受信する度に、先頭のセグメント化データの情報が削除され、最新のセグメント化データが末尾に追加される。なお、図中のIPアドレス“192.168.11.1”は、視聴開始補助サーバ2のIPアドレスを示している。 FIG. 4 shows an example in which there is an acquisition destination URL of 5 segmented data (ts file) of 3 seconds starting with sequence number (segment Id) = 14. The file name of the segmented data is a character string obtained by concatenating “content name” (content01_), “segment Id”, zero-padded 5 digits (for example, 00001), and “extension” (.ts). The number of segments described in the manifest is a fixed number (for example, 5), and each time new segmented data is received, the information of the first segmented data is deleted and the latest segmented data is added to the end. The IP address “192.168.11.1” in the drawing indicates the IP address of the viewing start auxiliary server 2.
HTTPリクエスト受信部22は、通信I/F27を介してP2P端末1のHTTP配信再生部12からHTTPプロトコルによるリクエスト(HTTPリクエスト)を受信し、受信したHTTPリクエストをリクエスト解析部23に出力する。 The HTTP request reception unit 22 receives a request (HTTP request) based on the HTTP protocol from the HTTP distribution reproduction unit 12 of the P2P terminal 1 via the communication I / F 27, and outputs the received HTTP request to the request analysis unit 23.
リクエスト解析部23は、HTTPリクエストを解析し、リクエスト内容がセグメント化データ(tsファイル)であった場合は、該セグメント化データを送信するようにHTTPレスポンス送信部24に指示する。 The request analysis unit 23 analyzes the HTTP request. If the request content is segmented data (ts file), the request analysis unit 23 instructs the HTTP response transmission unit 24 to transmit the segmented data.
リクエスト解析部23は、リクエスト内容がマニフェストであった場合は、HTTPリクエストから端末IDを抽出する。転送待ちリスト261に当該端末IDが記憶されていない場合は、「転送可否フラグ」を「転送不可」として新規に登録し、HTTPレスポンス送信部24に端末IDを出力するとともにマニフェストを送信するように指示する。 When the request content is a manifest, the request analysis unit 23 extracts the terminal ID from the HTTP request. When the terminal ID is not stored in the transfer waiting list 261, the “transfer enable / disable flag” is newly registered as “transfer disabled”, and the terminal ID is output to the HTTP response transmitting unit 24 and the manifest is transmitted. Instruct.
HTTPレスポンス送信部24は、リクエスト解析部23よりセグメント化データを送信するように指示された場合は、セグメントバッファ262より当該セグメント化データを入力し、HTTPレスポンスをP2P端末1のHTTP配信再生部12に送信する。また、リクエスト解析部23よりマニフェストを送信するように指示された場合は、転送待ちリスト261より、リクエスト解析部23より入力した端末IDに対応する転送可否フラグを抽出し、「転送不可」であった場合は、マニフェスト記憶部263からマニフェストを入力し、HTTPレスポンスをP2P端末1のHTTP配信再生部12に送信する。このときに送信するマニフェストを、図5を参照して説明する。マニフェストは先頭のシーケンス番号に対応付けて複数管理されている。 When the request analysis unit 23 instructs the HTTP response transmission unit 24 to transmit segmented data, the HTTP response transmission unit 24 inputs the segmented data from the segment buffer 262 and sends an HTTP response to the HTTP distribution reproduction unit 12 of the P2P terminal 1. Send to. When the request analysis unit 23 instructs to transmit a manifest, a transfer enable / disable flag corresponding to the terminal ID input from the request analysis unit 23 is extracted from the transfer waiting list 261, and “transfer disable” is indicated. If it is, the manifest is input from the manifest storage unit 263, and an HTTP response is transmitted to the HTTP delivery / reproduction unit 12 of the P2P terminal 1. The manifest transmitted at this time will be described with reference to FIG. A plurality of manifests are managed in association with the leading sequence number.
図5は、時間経過に対応するセグメントバッファ262の内容を示す図である。セグメントバッファ262は所定の大きさを持っており、現在時刻においてはセグメントバッファ262にシーケンス番号11〜20のセグメント化データが保存されており、新しいセグメント化データが入力されたら、最古のセグメント化データが削除されるものとする。 FIG. 5 is a diagram showing the contents of the segment buffer 262 corresponding to the passage of time. The segment buffer 262 has a predetermined size. The segmented data of sequence numbers 11 to 20 is stored in the segment buffer 262 at the current time. When new segmented data is input, the oldest segmented data is stored. Data shall be deleted.
送信するマニフェストは現在時刻にバッファ内に存在する最新のセグメント化データのシーケンス番号(20)から、予め設定されたバッファ規定値(2)とマニフェストに記載されるセグメント化データ数(5)を足した値だけ遡ったシーケンス番号(14)に対応付いたマニフェストとする。ここで、バッファ規定値とは、P2P端末1におけるHTTP配信再生部12に対するP2P通信部11(P2P通信ソフトウェア)のバッファの余裕度であり、HTTP配信再生部12が取得可能な最新のセグメント化データよりも新しく、且つ現在取得可能なセグメント化データの数を示している。バッファ規定値の値が大きいほど視聴の安定性が高まる一方で、現在時刻と視聴中のセグメント化データの時刻の差分が大きくなる。 The transmitted manifest is the sum of the buffer specified value (2) set in advance and the number of segmented data (5) described in the manifest from the sequence number (20) of the latest segmented data existing in the buffer at the current time. It is assumed that the manifest is associated with the sequence number (14) traced back by this value. Here, the buffer specified value is a margin of the buffer of the P2P communication unit 11 (P2P communication software) with respect to the HTTP delivery / reproduction unit 12 in the P2P terminal 1, and the latest segmented data that the HTTP delivery / reproduction unit 12 can acquire. It shows the number of segmented data that is newer and currently available. As the buffer specified value increases, viewing stability increases, while the difference between the current time and the time of segmented data being viewed increases.
一方で、転送可否フラグが「転送可」であった場合は、転送待ちリスト261から当該端末IDに対応する転送先アドレス情報を抽出し、HTTPヘッダのステータスコードを“302 Found”に設定するとともに、転送先アドレス情報を基に、マニフェストの転送先URLを生成し、“Location”ヘッダに例えば、Location: http://127.0.0.1:5555/content01.m3u8と記述し、P2P端末1(HTTP配信再生部12)に送信する。 On the other hand, if the transfer enable / disable flag is “transfer ready”, the transfer destination address information corresponding to the terminal ID is extracted from the transfer waiting list 261, and the status code of the HTTP header is set to “302 Found”. Based on the transfer destination address information, a transfer destination URL of the manifest is generated. For example, Location: http://127.0.0.1:5555/content01.m3u8 is described in the “Location” header, and the P2P terminal 1 (HTTP distribution) To the playback unit 12).
リクエスト転送要求受付部25は、P2P端末1のP2P通信部11から、リクエスト転送要求を受信し、端末ID及び転送先アドレス情報を抽出し、転送待ちリスト261の当該端末IDに対応する転送可否フラグを「転送可」に設定するとともに、転送先アドレス情報を転送待ちリスト261に登録する。また、マニフェスト記憶部263から現在のマニフェストを抽出し、P2P端末1に送信する。 The request transfer request receiving unit 25 receives a request transfer request from the P2P communication unit 11 of the P2P terminal 1, extracts the terminal ID and transfer destination address information, and transfers the transfer permission / inhibition flag corresponding to the terminal ID of the transfer waiting list 261. Is set to “transfer ready”, and the transfer destination address information is registered in the transfer waiting list 261. Further, the current manifest is extracted from the manifest storage unit 263 and transmitted to the P2P terminal 1.
[P2P端末]
次に、P2P端末1の詳細について説明する。P2P端末1は、P2Pネットワークに参加可能であり、配信サーバ5や他のP2P端末1と接続してセグメント化データを受信・転送・再生するとともに、視聴開始補助サーバ2からセグメント化データを受信し再生する端末である。
[P2P terminal]
Next, details of the P2P terminal 1 will be described. The P2P terminal 1 can participate in the P2P network, and is connected to the distribution server 5 and other P2P terminals 1 to receive, transfer, and play back the segmented data, and receives the segmented data from the viewing start auxiliary server 2 It is a terminal to play.
図6は、本発明のP2P端末1の構成例を示すブロック図である。この例では、各P2P端末1は、P2P通信部11と、HTTP配信再生部12と、通信I/F13と、ローカル通信I/F14とを備える。 FIG. 6 is a block diagram showing a configuration example of the P2P terminal 1 of the present invention. In this example, each P2P terminal 1 includes a P2P communication unit 11, an HTTP distribution / playback unit 12, a communication I / F 13, and a local communication I / F 14.
P2P通信部11は、接続先紹介要求部111と、接続制御部112と、データ中継部113と、リクエスト転送要求部114と、記憶部115と、HTTPサーバ部116と、マニフェスト更新部117とを備える。記憶部115は、端末情報記憶部1151と、コンテンツバッファ1152と、マニフェスト記憶部1153と、HTTPサーバアドレス情報記憶部1154とを備える。 The P2P communication unit 11 includes a connection destination introduction request unit 111, a connection control unit 112, a data relay unit 113, a request transfer request unit 114, a storage unit 115, an HTTP server unit 116, and a manifest update unit 117. Prepare. The storage unit 115 includes a terminal information storage unit 1151, a content buffer 1152, a manifest storage unit 1153, and an HTTP server address information storage unit 1154.
接続先紹介要求部111は、所望のコンテンツのコンテンツID、端末ID、及びアドレス情報(IPアドレスとポート番号などのデータ転送に必要な情報)を含む接続先紹介要求を端末管理サーバ6へ送信し、端末管理サーバ6から返信される接続先候補リストを受信し、端末情報記憶部1151に格納する。 The connection destination introduction request unit 111 transmits a connection destination introduction request including the content ID of the desired content, the terminal ID, and address information (information necessary for data transfer such as an IP address and a port number) to the terminal management server 6. The connection destination candidate list returned from the terminal management server 6 is received and stored in the terminal information storage unit 1151.
接続制御部112は、接続先候補リストをもとに、P2Pネットワークにおける接続相手となるP2P端末1’や配信サーバ5を選択して接続するか、あるいは他のP2P端末1’からの接続を受け付ける。 Based on the connection destination candidate list, the connection control unit 112 selects and connects the P2P terminal 1 ′ or the distribution server 5 that is a connection partner in the P2P network, or accepts a connection from another P2P terminal 1 ′. .
データ中継部113は、階層的に接続して構成されたP2Pネットワークにおいて上流に位置するP2P端末1’からセグメント化データを、データ中継開始時点での最新のシーケンス番号から順次受信し、該受信したセグメント化データを他のP2P端末1’へ中継するとともに、記憶部115のコンテンツバッファ1152に格納する。 The data relay unit 113 sequentially receives the segmented data from the latest sequence number at the start of data relay from the P2P terminal 1 'located upstream in the P2P network configured in a hierarchical connection. The segmented data is relayed to another P2P terminal 1 ′ and stored in the content buffer 1152 of the storage unit 115.
リクエスト転送要求部114は、コンテンツバッファ1152を確認し、セグメント化データの格納数が予め設定したバッファ規定値(図5に示したバッファ規定値と同じ)以上となったタイミングで、自身の端末ID及びHTTPサーバアドレス情報を含む転送要求を視聴開始補助サーバ2に送信し、受信したマニフェストをマニフェスト記憶部1153に格納する(起動後に1度だけ実施される)。ここで、HTTPサーバアドレス情報は、HTTPサーバ部116がHTTP配信再生部12のHTTPリクエストを受け付けるアドレス情報であり、IPアドレスとポート番号の組で構成される。 The request transfer request unit 114 checks the content buffer 1152, and at the timing when the number of segmented data stored becomes equal to or greater than a preset buffer specified value (same as the buffer specified value shown in FIG. 5), And the transfer request including the HTTP server address information is transmitted to the viewing start auxiliary server 2, and the received manifest is stored in the manifest storage unit 1153 (implemented only once after activation). Here, the HTTP server address information is address information at which the HTTP server unit 116 accepts an HTTP request from the HTTP distribution / playback unit 12, and is composed of a set of an IP address and a port number.
HTTPサーバ部116は、HTTP配信再生部12からのHTTP配信にかかる送信要求を受付け、マニフェスト及びセグメント化データをHTTP配信再生部12に送信するサーバ機能を有する。HTTPサーバ部116は、HTTP配信再生部12からマニフェストのリクエストを受信した場合は、マニフェスト更新部117からマニフェストを入力し、HTTP配信再生部12に送信する。HTTPサーバ部116は、HTTP配信再生部12からセグメント化データのリクエストを受信した場合は、記憶部115のコンテンツバッファ1152から、当該シーケンス番号のセグメント化データを抽出し、HTTP配信再生部12に送信する。 The HTTP server unit 116 has a server function of receiving a transmission request for HTTP distribution from the HTTP distribution reproduction unit 12 and transmitting the manifest and the segmented data to the HTTP distribution reproduction unit 12. When receiving a manifest request from the HTTP delivery / playback unit 12, the HTTP server unit 116 inputs the manifest from the manifest update unit 117 and transmits the manifest to the HTTP delivery / playback unit 12. When receiving a request for segmented data from the HTTP delivery / playback unit 12, the HTTP server unit 116 extracts the segmented data of the sequence number from the content buffer 1152 of the storage unit 115 and transmits it to the HTTP delivery / playback unit 12. To do.
マニフェスト更新部117は、マニフェスト記憶部1153に保存されているマニフェストをコンテンツバッファ1152内のセグメント化データの状態に基づいて更新する。マニフェスト更新部117によるマニフェストの更新方法について、図7,8を参照して説明する。 The manifest update unit 117 updates the manifest stored in the manifest storage unit 1153 based on the state of the segmented data in the content buffer 1152. A manifest updating method by the manifest updating unit 117 will be described with reference to FIGS.
図7はコンテンツバッファ1152の状態の一例を示す図である。図8はコンテンツバッファ1152の状態に対するマニフェストの一例を示す図である。P2P通信部11の生成するマニフェストの格納セグメント数は、オリジンサーバ3が生成するマニフェストのセグメント数にバッファ規定値を足し合わせた数とする。本実施形態では、オリジンサーバ3が生成するマニフェストのセグメント数を5とし、バッファ規定値を2とする。 FIG. 7 is a diagram illustrating an example of the state of the content buffer 1152. FIG. 8 is a diagram showing an example of a manifest for the state of the content buffer 1152. The number of stored segments of the manifest generated by the P2P communication unit 11 is the number obtained by adding the buffer specified value to the number of segments of the manifest generated by the origin server 3. In the present embodiment, the number of manifest segments generated by the origin server 3 is 5, and the buffer specified value is 2.
図8(a)はリクエスト転送要求部114により視聴開始補助サーバ2から受信したマニフェストであり、マニフェストの初期値(以降、初期マニフェストと呼ぶ)となるものである。図中のIPアドレス“192.168.11.1”は、視聴開始補助サーバ2のIPアドレスを示している。なお、本実施形態では、初期のセグメント化データの取得先URLを視聴開始補助サーバ2としているが、セグメント化データの取得先URLを他のサーバとしてもよい。 FIG. 8A shows a manifest received from the viewing start auxiliary server 2 by the request transfer request unit 114, which is an initial value of the manifest (hereinafter referred to as an initial manifest). The IP address “192.168.11.1” in the figure indicates the IP address of the viewing start auxiliary server 2. In this embodiment, the initial segmentation data acquisition destination URL is the viewing start auxiliary server 2, but the segmentation data acquisition destination URL may be another server.
図7(a)のバッファ状態1は、P2P通信部11が起動してから間もなく、コンテンツバッファ1152内のセグメント化データ数が、格納セグメント数よりも小さい状態を示している。また、バッファ状態2は、コンテンツバッファ1152にマニフェストに格納するセグメント数以上のセグメント化データが格納されている状態を示している。 The buffer state 1 in FIG. 7A shows a state in which the number of segmented data in the content buffer 1152 is smaller than the number of stored segments soon after the P2P communication unit 11 is activated. Buffer state 2 shows a state in which segmented data equal to or more than the number of segments stored in the manifest is stored in the content buffer 1152.
マニフェストの更新に際しては、現在時刻から格納セグメント数まで遡ったシーケンス番号のセグメント化データを先頭として、最新のシーケンス番号のセグメント化データまでを格納する。 When updating the manifest, the segmented data with the sequence number that goes back from the current time to the number of storage segments is used as the head, and the segmented data with the latest sequence number is stored.
バッファ状態1においては、コンテンツバッファ1152に格納されていない、つまりデータ中継の開始時刻以前のセグメント化データ(図7(a)のバッファ状態1の16〜19)が含まれる。そのため、当該セグメント化データの取得先URLとして、初期マニフェストに記載されている当該シーケンス番号の取得先URLを用いる。コンテンツバッファ1152に格納されているセグメント化データの取得先URLは、自身のHTTPサーバアドレス情報を基に生成する。図8(b)に、バッファ状態1におけるマニフェストの一例を示す。図8(b)では、先頭から4つ目までのセグメント化データの取得先URLが視聴開始補助サーバ2(“192.168.11.1”)となっており、5つ目から7つ目までの取得先URLが、自身のHTTPサーバ部116となっている。ここで、“127.0.0.1:5555”はHTTPサーバアドレス情報を示している。この例では、“127.0.0.1”がIPアドレスであり、“5555”がポート番号である。 The buffer state 1 includes segmented data (16 to 19 in the buffer state 1 in FIG. 7A) that is not stored in the content buffer 1152, that is, before the start time of data relay. Therefore, the acquisition destination URL of the sequence number described in the initial manifest is used as the acquisition destination URL of the segmented data. The acquisition URL of the segmented data stored in the content buffer 1152 is generated based on its own HTTP server address information. FIG. 8B shows an example of the manifest in the buffer state 1. In FIG. 8B, the acquisition destination URLs of the segmented data from the top to the fourth are the viewing start auxiliary server 2 (“192.168.11.1”), and the acquisition destinations from the fifth to the seventh are acquired. The URL is its own HTTP server unit 116. Here, “127.0.0.1:5555” indicates HTTP server address information. In this example, “127.0.0.1” is an IP address and “5555” is a port number.
バッファ状態2においては、全てのセグメント化データがコンテンツバッファ1152に格納されているため、セグメント化データの取得先URLは、自身のHTTPサーバアドレス情報を基に生成する。図8(c)に、バッファ状態2におけるマニフェストの一例を示す。図8(c)では、全てのセグメント化データの取得先URLが、P2P通信部11のHTTPサーバ部116となっている。 In the buffer state 2, since all segmented data is stored in the content buffer 1152, the segmented data acquisition URL is generated based on its own HTTP server address information. FIG. 8C shows an example of the manifest in the buffer state 2. In FIG. 8C, the acquisition destination URL of all segmented data is the HTTP server unit 116 of the P2P communication unit 11.
HTTP配信再生部12は、マニフェスト要求先記憶部121と、マニフェスト要求部122と、マニフェスト受信部123と、マニフェスト解析部124と、セグメント受信部125と、再生バッファ126と、コンテンツ再生部127とを備える。HTTP配信再生部12は、P2P通信部11によるP2Pネットワークへの参加処理が完了すると、セグメント化データの取得先をセグメント化データの取得先URLからP2P通信部11に切替える The HTTP delivery / reproduction unit 12 includes a manifest request destination storage unit 121, a manifest request unit 122, a manifest reception unit 123, a manifest analysis unit 124, a segment reception unit 125, a reproduction buffer 126, and a content reproduction unit 127. Prepare. When the P2P communication unit 11 completes the process of joining the P2P network, the HTTP distribution / playback unit 12 switches the segmented data acquisition destination from the segmented data acquisition destination URL to the P2P communication unit 11.
マニフェスト要求先記憶部121は、マニフェストの取得先のアドレス情報を格納する記憶部である。起動時はWebサーバ4から取得した視聴ページに記載された視聴開始補助サーバ2のアドレス情報を含むマニフェストの取得先URLを記憶する。 The manifest request destination storage unit 121 is a storage unit that stores address information of a manifest acquisition destination. At the time of start-up, the acquisition destination URL of the manifest including the address information of the viewing start auxiliary server 2 described in the viewing page acquired from the Web server 4 is stored.
マニフェスト要求部122は、マニフェスト要求先記憶部121からマニフェストの取得先URLを入力し、端末IDを含むHTTPリクエストを視聴開始補助サーバ2に送信する。例えば、マニフェストの取得先URLが“http://192.168.11.1/content01.m3u8”であり、端末IDが“0001”のとき、マニフェストの取得先URLにクエリパラメータを“?nid=0001”として付加し、“http://192.168.11.1/content01.m3u8?nid=0001”をHTTPリクエストのリクエスト行に記載する。マニフェストのリクエストは、所定時間(例えば1秒)毎に定期的に行ってもよいし、マニフェストに記載されている全てのセグメント化データを受信し終えてから行ってもよい。 The manifest request unit 122 inputs a manifest acquisition URL from the manifest request destination storage unit 121, and transmits an HTTP request including the terminal ID to the viewing start auxiliary server 2. For example, when the manifest acquisition URL is “http://192.168.11.1/content01.m3u8” and the terminal ID is “0001”, the query parameter is added as “? Nid = 0001” to the manifest acquisition URL. Then, “http://192.168.11.1/content01.m3u8?nid=0001” is described in the request line of the HTTP request. The manifest request may be periodically made every predetermined time (for example, 1 second), or may be made after receiving all the segmented data described in the manifest.
マニフェスト受信部123は、受信したHTTPレスポンスに含まれるステータスコードが“200”の場合は、マニフェストの要求先からマニフェストを受信し、マニフェスト解析部124に出力する。受信したHTTPレスポンスに含まれるステータスコードが“301”、“302”、“307”のいずれかであった場合は、HTTPレスポンスヘッダの“Location”ヘッダから、転送先URLを抽出し、マニフェスト要求先記憶部121に格納するとともに、マニフェスト受信部123に当該転送先URLにHTTPリクエストを送信するように指示する。 If the status code included in the received HTTP response is “200”, the manifest receiving unit 123 receives the manifest from the manifest request destination and outputs it to the manifest analyzing unit 124. When the status code included in the received HTTP response is “301”, “302”, or “307”, the transfer destination URL is extracted from the “Location” header of the HTTP response header, and the manifest request destination In addition to storing in the storage unit 121, the manifest reception unit 123 is instructed to transmit an HTTP request to the transfer destination URL.
マニフェスト解析部124は、マニフェストより、シーケンス番号に対応付いたセグメント化データの取得先URLの情報を抽出し、セグメント受信部125にシーケンス番号順にセグメント化データの取得先URLに対するHTTPリクエストを送信するように指示する。 The manifest analysis unit 124 extracts information on the acquisition destination URL of the segmented data associated with the sequence number from the manifest, and transmits an HTTP request for the acquisition destination URL of the segmented data to the segment reception unit 125 in order of the sequence number. To instruct.
セグメント受信部125は、マニフェスト解析部124の指示に基づいて、順次セグメント化データの取得先URLにHTTPリクエストを送信し、当該取得先URLからセグメント化データを受信し、再生バッファ126に格納する。 Based on the instruction from the manifest analysis unit 124, the segment receiving unit 125 sequentially transmits HTTP requests to the segmentation data acquisition destination URL, receives the segmented data from the acquisition destination URL, and stores the segmented data in the reproduction buffer 126.
コンテンツ再生部127は、再生バッファ126からセグメント化データを順次入力し、該入力したセグメント化データをデコードしてコンテンツを再生する。 The content playback unit 127 sequentially inputs segmented data from the playback buffer 126, decodes the input segmented data, and plays back the content.
[コンテンツ配信方法]
次に、本発明の一実施形態に係るコンテンツ配信方法について、図9〜図15のフローチャートを用いて説明する。また、説明で使用するHTTPリクエスト/HTTPレスポンスのメッセージフォーマットの一例を図16に示す。HTTPリクエスト/HTTPレスポンスは、改行コードの上下でヘッダ部とボディ部に分かれており、HTTPレスポンスヘッダの最上位行はステータスコードが含まれている。ボディ部は存在しない場合もある。
[Content delivery method]
Next, a content distribution method according to an embodiment of the present invention will be described using the flowcharts of FIGS. An example of the message format of the HTTP request / HTTP response used in the description is shown in FIG. The HTTP request / HTTP response is divided into a header part and a body part above and below the line feed code, and the top line of the HTTP response header includes a status code. The body part may not exist.
図9はP2P端末1の起動動作を示すフローチャートである。P2P端末1は、Webサーバ4から選択したコンテンツの視聴ページを取得し(ステップS1001)、視聴ページ(図2参照)の視聴プレーヤソフトウェア(HTTP配信再生部12)及びP2P通信ソフトウェア(P2P通信部11)の起動タグに基づいて、HTTP配信再生部12によるHTTP配信処理(ステップS1002)、及びP2P通信部11によるP2P通信処理(ステップS1003)を並列的に実行する。以上によりP2P端末1は起動し、一連の処理を実行する。P2P通信処理(ステップS1003)の詳細については、図10〜13を参照して後述し、HTTP配信処理(ステップS1002)の詳細については、図15を参照して後述する。 FIG. 9 is a flowchart showing the starting operation of the P2P terminal 1. The P2P terminal 1 acquires the viewing page of the selected content from the Web server 4 (step S1001), and viewing / listening player software (HTTP distribution / playback unit 12) and P2P communication software (P2P communication unit 11) of the viewing page (see FIG. 2). ) Is executed in parallel by the HTTP delivery processing unit 12 (step S1002) and the P2P communication unit 11 by the P2P communication unit 11 (step S1003). Thus, the P2P terminal 1 is activated and executes a series of processes. Details of the P2P communication process (step S1003) will be described later with reference to FIGS. 10 to 13, and details of the HTTP distribution process (step S1002) will be described later with reference to FIG.
図10はP2P通信部11によるP2P通信処理の動作を示すフローチャートである。視聴ページから選択したコンテンツのコンテンツID及び端末IDを取得し、端末情報記憶部1151に格納する(ステップS1101)。次に、コンテンツID及び端末IDを基に、P2Pネットワークに参加する(ステップS1102)。ステップS1102の詳細については、図11を参照して後述する。 FIG. 10 is a flowchart showing the operation of the P2P communication process by the P2P communication unit 11. The content ID and terminal ID of the content selected from the viewing page are acquired and stored in the terminal information storage unit 1151 (step S1101). Next, it participates in the P2P network based on the content ID and the terminal ID (step S1102). Details of step S1102 will be described later with reference to FIG.
P2P端末1はP2Pネットワークに参加したら、データ中継部113によりデータ中継開始時点(この処理に最初に入った時刻)での最新シーケンス番号のセグメント化データから順次、接続先のP2P端末1’又は配信サーバ5に要求する(ステップS1103)。P2P端末1はセグメント化データを受信した場合は(ステップS1104−YES)、受信したセグメント化データをコンテンツバッファ1152に格納する(ステップS1105)。セグメント化データを受信しなかった場合は(ステップS1104−NO)、ステップS1106に移る。 When the P2P terminal 1 participates in the P2P network, the data relay unit 113 sequentially transmits the connection destination P2P terminal 1 ′ or the distribution from the segmented data of the latest sequence number at the data relay start time (the time when the process first entered). A request is made to the server 5 (step S1103). When the P2P terminal 1 receives the segmented data (step S1104-YES), the P2P terminal 1 stores the received segmented data in the content buffer 1152 (step S1105). If segmented data has not been received (step S1104-NO), the process proceeds to step S1106.
次に、HTTPサーバ部116を起動中であるか否かを確認する(ステップS1106)。HTTPサーバ部116を起動中である場合は(ステップS1106−YES)、ステップS1111に進む。初期状態では起動中ではない(ステップS1106−NO)。HTTPサーバ部116を起動していない場合は(ステップS1106−NO)、コンテンツバッファ1152のセグメント化データの格納数がバッファ規定値を超えたかどうか確認する(ステップS1107)。バッファ規定値を超えていない場合は(ステップS1107−NO)、ステップS1103に戻り、バッファ規定値を超えていた場合は(ステップS1107−YES)、HTTPサーバ部116を起動し(ステップS1108)、HTTPサーバアドレス情報をHTTPサーバアドレス情報記憶部1154に格納する(ステップS1109)。 Next, it is confirmed whether or not the HTTP server unit 116 is being activated (step S1106). If the HTTP server unit 116 is being activated (step S1106—YES), the process proceeds to step S1111. In the initial state, it is not being activated (NO in step S1106). If the HTTP server unit 116 has not been activated (NO in step S1106), it is confirmed whether the number of segmented data stored in the content buffer 1152 exceeds the buffer specified value (step S1107). If the buffer specified value is not exceeded (step S1107-NO), the process returns to step S1103. If the buffer specified value is exceeded (step S1107-YES), the HTTP server unit 116 is activated (step S1108), and the HTTP is set. The server address information is stored in the HTTP server address information storage unit 1154 (step S1109).
次に、リクエスト転送要求部114は、HTTP配信再生部12の視聴開始補助サーバ2に対するリクエストをP2P通信部11に転送するように、視聴開始補助サーバ2に要求する(ステップS1110)。ステップS1110の詳細については、図12を参照して後述する。 Next, the request transfer request unit 114 requests the viewing start auxiliary server 2 to transfer a request for the viewing start auxiliary server 2 of the HTTP distribution reproduction unit 12 to the P2P communication unit 11 (step S1110). Details of step S1110 will be described later with reference to FIG.
ここまでの処理により、P2P通信部11がHTTP配信再生部12からHTTPリクエストを受信する準備が完了し、HTTPサーバ処理に移る(ステップS1111)。ステップS1111の詳細については、図13を参照して後述する。次に、再生が終了したかどうか確認し(ステップS1112)、再生が終了している場合は(ステップS1112−YES)、処理を終了し、再生が終了していない場合は(ステップS1112−NO)、ステップS1103に戻る。 With the processing so far, the preparation for the P2P communication unit 11 to receive the HTTP request from the HTTP distribution reproduction unit 12 is completed, and the process proceeds to the HTTP server processing (step S1111). Details of step S1111 will be described later with reference to FIG. Next, it is confirmed whether or not the reproduction is finished (step S1112). If the reproduction is finished (step S1112-YES), the process is finished, and if the reproduction is not finished (step S1112-NO). Return to step S1103.
図11は、P2P通信部11によるP2Pネットワーク参加処理(ステップS1102)を示すシーケンス図である。P2P通信部11の接続先紹介要求部111は、コンテンツID、端末ID、及びアドレス情報を含む接続先紹介要求を端末管理サーバ6に送信する(ステップS1201)。 FIG. 11 is a sequence diagram showing a P2P network participation process (step S1102) by the P2P communication unit 11. The connection destination introduction request unit 111 of the P2P communication unit 11 transmits a connection destination introduction request including a content ID, a terminal ID, and address information to the terminal management server 6 (step S1201).
端末管理サーバ6は、受信した端末情報により端末情報のリストを更新し、コンテンツIDのコンテンツを中継するP2Pネットワークに参加しているP2P端末1’又は配信サーバ5の端末情報を複数抽出し(ステップS1202)、接続先候補リストとしてP2P端末1のP2P通信部11に送信する(ステップS1203)。 The terminal management server 6 updates the list of terminal information with the received terminal information, and extracts a plurality of pieces of terminal information of the P2P terminal 1 ′ or distribution server 5 participating in the P2P network that relays the content with the content ID (step) In step S1202), the connection destination candidate list is transmitted to the P2P communication unit 11 of the P2P terminal 1 (step S1203).
次に、P2P通信部11の接続先紹介要求部111は、接続先紹介応答から接続先候補リストを受信し、端末情報記憶部1151に格納する(ステップS1204)。この時のリストの受信数をNとする。次にループカウンタIを0にセットし(ステップS1205)、IがNより小さい場合は(ステップS1206−YES)、接続制御部112はI番目の端末情報を抽出し(ステップS1207)、I番目のP2P端末1’に接続要求を送信する(ステップS1208)。所定時間以内(例えば2秒)に応答があった場合は(ステップS1209)、接続制御部112は接続応答を受信し(ステップS1210)、接続OKであれば(ステップS1211−YES)、I番目のP2P端末1’を上流端末として接続を確立することにより、P2Pネットワークに参加する(ステップS1213)。ステップS1209でNOであるか、ステップS1211でNOである場合は、ループカウンタをインクリメントして(ステップS1212)、ステップS1206に戻る。ステップS1206に戻り、IがN以上となった場合は(ステップS1206−NO)、ステップS1201に戻る。 Next, the connection destination introduction request unit 111 of the P2P communication unit 11 receives the connection destination candidate list from the connection destination introduction response, and stores it in the terminal information storage unit 1151 (step S1204). Let N be the number of received lists. Next, the loop counter I is set to 0 (step S1205). When I is smaller than N (step S1206-YES), the connection control unit 112 extracts the I-th terminal information (step S1207), and the I-th A connection request is transmitted to the P2P terminal 1 ′ (step S1208). If there is a response within a predetermined time (for example, 2 seconds) (step S1209), the connection control unit 112 receives the connection response (step S1210), and if the connection is OK (step S1211-YES), the I-th By establishing a connection with the P2P terminal 1 ′ as an upstream terminal, the mobile terminal joins the P2P network (step S1213). If NO in step S1209 or NO in step S1211, the loop counter is incremented (step S1212), and the process returns to step S1206. Returning to step S1206, if I is greater than or equal to N (step S1206 -NO), the process returns to step S1201.
以上により、P2P端末1は、既にP2Pネットワークに接続しているP2P端末1’又は配信サーバ5と接続し、セグメント化データを受信できるようになる。 As described above, the P2P terminal 1 can connect to the P2P terminal 1 ′ or the distribution server 5 already connected to the P2P network and receive segmented data.
図12は、P2P通信部11による視聴開始補助サーバ2に対するリクエスト転送要求処理(ステップS1110)を示すシーケンス図である。P2P通信部11は、P2P通信部11のコンテンツバッファ1152がバッファ規定値を超えた時に、端末IDと転送先URL(HTTPサーバアドレス情報)を含む転送要求を視聴開始補助サーバ2に送信する(ステップS1301)。視聴開始補助サーバ2は、転送要求を受信し(ステップS1302)、転送要求から端末IDと転送先URLを抽出する(ステップS1303)。 FIG. 12 is a sequence diagram illustrating a request transfer request process (step S1110) for the viewing start auxiliary server 2 by the P2P communication unit 11. When the content buffer 1152 of the P2P communication unit 11 exceeds the buffer specified value, the P2P communication unit 11 transmits a transfer request including the terminal ID and the transfer destination URL (HTTP server address information) to the viewing start auxiliary server 2 (step) S1301). The viewing start auxiliary server 2 receives the transfer request (step S1302), and extracts the terminal ID and the transfer destination URL from the transfer request (step S1303).
次に、視聴開始補助サーバ2は抽出した端末IDが転送待ちリスト261に登録されているか否か確認し(ステップS1304)、登録されている場合は(ステップS1304−YES)、転送待ちリスト261内の当該端末IDの転送可否フラグを「転送可」に更新し、転送先URLとして該抽出した転送先URLを登録する(ステップS1305)。端末IDが転送待ちリスト261に登録されていない場合は(ステップS1304−NO)、当該端末IDを転送待ちリスト261に登録し、転送可否フラグを「転送可」に設定し、転送先URLとして該抽出した転送先URLを登録する(ステップS1306)。次に、マニフェスト記憶部263からマニフェストを抽出し、転送要求元(P2P端末1のP2P通信部11)に送信する(ステップS1307)。このとき送信するマニフェストについては、視聴開始補助サーバ2のマニフェスト記憶部263において説明した通りである。 Next, the viewing start auxiliary server 2 checks whether or not the extracted terminal ID is registered in the transfer waiting list 261 (step S1304). If registered (step S1304-YES), The transfer enable / disable flag of the terminal ID is updated to “transfer ready”, and the extracted transfer destination URL is registered as the transfer destination URL (step S1305). If the terminal ID is not registered in the transfer waiting list 261 (step S1304-NO), the terminal ID is registered in the transfer waiting list 261, the transfer enable / disable flag is set to “transfer ready”, and the transfer destination URL is The extracted transfer destination URL is registered (step S1306). Next, the manifest is extracted from the manifest storage unit 263 and transmitted to the transfer request source (P2P communication unit 11 of the P2P terminal 1) (step S1307). The manifest transmitted at this time is as described in the manifest storage unit 263 of the viewing start auxiliary server 2.
P2P通信部11は、視聴開始補助サーバ2から転送応答を受信する(ステップS1308)。そして、受信した転送応答からマニフェストを抽出し、初期マニフェストとしてマニフェスト記憶部263に格納し(ステップS1309)、転送要求処理を終了する。 The P2P communication unit 11 receives the transfer response from the viewing start auxiliary server 2 (step S1308). Then, a manifest is extracted from the received transfer response, stored as an initial manifest in the manifest storage unit 263 (step S1309), and the transfer request process is terminated.
以上により、P2P通信部11のコンテンツバッファ1152がバッファ規定値を超えた時に、HTTP配信再生部12のリクエストをP2P通信部11に転送するように視聴開始補助サーバ2に要求を行い、視聴開始補助サーバ2がHTTP配信再生部12にリクエストを転送することで、HTTP配信再生部12がP2P通信部11にリクエストできるようになる。 As described above, when the content buffer 1152 of the P2P communication unit 11 exceeds the buffer specified value, the request for the HTTP delivery / playback unit 12 is requested to be transferred to the P2P communication unit 11 and the viewing start auxiliary server 2 is requested. When the server 2 transfers the request to the HTTP delivery / reproduction unit 12, the HTTP delivery / reproduction unit 12 can make a request to the P2P communication unit 11.
図13は、P2P通信部11によるHTTPサーバ処理(ステップS1111)を示すフローチャートである。P2P端末1のP2P通信部11は、HTTP配信再生部12からローカル通信I/F14を介してHTTPリクエストを待ち受け、HTTPリクエストを受信したら(ステップS1401−YES)、リクエスト対象がマニフェストか、セグメント化データかを確認する(ステップS1402)。リクエスト対象がマニフェストであった場合は(ステップS1402−YES)、初期マニフェストとコンテンツバッファ1152の状態から、マニフェストを更新し、HTTPレスポンスのボディに設定する(ステップS1403)。マニフェストの更新については、P2P通信部11のマニフェスト更新部117において説明した通りである。次に、HTTPレスポンスヘッダのステータスコードを“200 OK”に設定し(ステップS1404)、HTTP配信再生部12にHTTPレスポンスを送信して処理を終了する(ステップS1405)。 FIG. 13 is a flowchart showing HTTP server processing (step S1111) by the P2P communication unit 11. The P2P communication unit 11 of the P2P terminal 1 waits for an HTTP request from the HTTP distribution / playback unit 12 via the local communication I / F 14 and receives an HTTP request (step S1401-YES). If the request target is a manifest, segmented data (Step S1402). If the request target is a manifest (step S1402-YES), the manifest is updated from the initial manifest and the contents buffer 1152, and set in the body of the HTTP response (step S1403). The update of the manifest is as described in the manifest update unit 117 of the P2P communication unit 11. Next, the status code of the HTTP response header is set to “200 OK” (step S1404), the HTTP response is transmitted to the HTTP delivery / playback unit 12, and the process ends (step S1405).
ステップS1402において、リクエスト対象がセグメント化データであった場合は(ステップS1402−NO)、リクエストからセグメントIdを取得し(ステップS1406)、コンテンツバッファ1152から当該セグメントIdのセグメント化データを抽出し、HTTPレスポンスのボディに設定し(ステップS1407)、ステップS1405の処理に移る。 If the request target is segmented data in step S1402 (step S1402-NO), the segment Id is acquired from the request (step S1406), the segmented data of the segment Id is extracted from the content buffer 1152, and HTTP The response body is set (step S1407), and the process proceeds to step S1405.
以上により、P2P通信部11は、HTTP配信再生部12のHTTP配信にかかるリクエストを処理し、コンテンツを送信することができる。 As described above, the P2P communication unit 11 can process the request related to HTTP distribution of the HTTP distribution reproduction unit 12 and transmit the content.
次に、視聴開始補助サーバ2のP2P端末1のHTTP配信再生部12のHTTPリクエストにかかる動作を、図14を参照して説明する。図14は、視聴開始補助サーバ2のHTTPリクエストにかかる動作を示すフローチャートである。 Next, the operation concerning the HTTP request of the HTTP delivery / playback unit 12 of the P2P terminal 1 of the viewing start auxiliary server 2 will be described with reference to FIG. FIG. 14 is a flowchart showing an operation related to the HTTP request of the viewing start auxiliary server 2.
視聴開始補助サーバ2は、P2P端末1のHTTP配信再生部12からHTTPリクエストを受信し(ステップS2101)、リクエスト対象がマニフェストか、セグメント化データかを確認する(ステップS2102)。リクエスト対象がマニフェストであった場合は(ステップS2102−YES)、リクエストから端末IDを抽出する(ステップS2103)。 The viewing start auxiliary server 2 receives the HTTP request from the HTTP delivery / reproduction unit 12 of the P2P terminal 1 (step S2101), and checks whether the request target is a manifest or segmented data (step S2102). If the request target is a manifest (step S2102-YES), the terminal ID is extracted from the request (step S2103).
そして、視聴開始補助サーバ2は、抽出した端末IDが転送待ちリスト261に登録されているか否かを確認する(ステップS2104)。抽出した端末IDが転送待ちリスト261に登録されていない場合は(ステップS2104−NO)、当該端末IDを転送待ちリスト261に登録し、転送可否フラグを「転送不可」に設定し(ステップS2105)、マニフェスト記憶部263からマニフェストを抽出し、HTTPレスポンスのボディに設定する(ステップS2108)。抽出するマニフェストについては、視聴開始補助サーバ2のマニフェスト記憶部263において説明した通りである。一方、ステップS2104において、抽出した端末IDが転送待ちリスト261に登録されている場合は(ステップS2104−YES)、転送待ちリスト261から当該端末IDの転送可否フラグと転送先URLを抽出し(ステップS2106)、転送可否フラグが「転送不可」である場合は(ステップS2107−NO)、ステップS2108に移る。次に、HTTPレスポンスヘッダのステータスコードを“200 OK”に設定し(ステップS2109)、HTTPレスポンスを送信する(ステップS2110)。 Then, the viewing start auxiliary server 2 checks whether or not the extracted terminal ID is registered in the transfer waiting list 261 (step S2104). If the extracted terminal ID is not registered in the transfer waiting list 261 (step S2104-NO), the terminal ID is registered in the transfer waiting list 261, and the transfer enable / disable flag is set to “transfer disable” (step S2105). The manifest is extracted from the manifest storage unit 263 and set in the body of the HTTP response (step S2108). The manifest to be extracted is as described in the manifest storage unit 263 of the viewing start auxiliary server 2. On the other hand, if the extracted terminal ID is registered in the transfer waiting list 261 in step S2104 (YES in step S2104), the transfer enable / disable flag and transfer destination URL of the terminal ID are extracted from the transfer waiting list 261 (step S2104). In step S2106, if the transfer enable / disable flag is “transfer disabled” (step S2107—NO), the process proceeds to step S2108. Next, the status code of the HTTP response header is set to “200 OK” (step S2109), and an HTTP response is transmitted (step S2110).
ステップS2102に戻って、リクエスト対象がセグメント化データであった場合は(ステップS2102−NO)、リクエストからセグメントIdを取得し(ステップS2113)、セグメントバッファ262から当該セグメントIdのセグメント化データを抽出し、HTTPレスポンスのボディに設定し(ステップS2114)、ステップS2109の処理に移る。 Returning to step S2102, if the request target is segmented data (step S2102-NO), the segment Id is acquired from the request (step S2113), and the segmented data of the segment Id is extracted from the segment buffer 262. The HTTP response body is set (step S2114), and the process proceeds to step S2109.
ステップS2107に戻り、転送可否フラグが「転送可」である場合は(ステップS2107−YES)、HTTPレスポンスヘッダの“Location”ヘッダに転送先URLを設定する(ステップS2111)。例えば、Location: http://127.0.0.1:5555/content01.m3u8とする。そして、HTTPレスポンスヘッダのステータスコードを“302 Found”に設定し(ステップS2112)、HTTPレスポンスを送信する(ステップS2110)。 Returning to step S2107, if the transfer enable / disable flag is “transfer ready” (step S2107—YES), the transfer destination URL is set in the “Location” header of the HTTP response header (step S2111). For example, Location: http://127.0.0.1:5555/content01.m3u8. Then, the status code of the HTTP response header is set to “302 Found” (step S2112), and an HTTP response is transmitted (step S2110).
次にコンテンツが終了しているかどうかを確認し、コンテンツがまだ終了していない場合は(ステップS2115−NO)、ステップS2101の処理に戻る。コンテンツが終了している場合は(ステップS2115−YES)、処理を終了する。 Next, it is confirmed whether or not the content has ended. If the content has not ended yet (step S2115-NO), the processing returns to step S2101. If the content has ended (step S2115-YES), the process ends.
以上により、視聴開始補助サーバ2は、ある端末IDのP2P端末1のHTTP配信再生部12のHTTPリクエストに対して、当該端末IDのP2P通信部11から転送要求を受け付けるまでは、マニフェストとセグメント化データを送信するHTTP配信サーバの役割を果たし、P2P通信部11から転送要求があると、HTTP配信再生部12からのリクエストをP2P通信部11のHTTPサーバ部116に転送することにより、P2P端末1の迅速な視聴開始を補助する。 As described above, the viewing start auxiliary server 2 makes a manifestation and segmentation until an HTTP request from the HTTP distribution reproduction unit 12 of the P2P terminal 1 of a certain terminal ID is received from the P2P communication unit 11 of the terminal ID. The P2P terminal 1 plays the role of an HTTP distribution server that transmits data. When there is a transfer request from the P2P communication unit 11, the request from the HTTP distribution reproduction unit 12 is transferred to the HTTP server unit 116 of the P2P communication unit 11. To help you start watching quickly.
図15は、HTTP配信再生部12によるHTTP配信再生動作を示すフローチャートである。図15を用いてP2P端末1のHTTP配信再生部12の動作を説明する。HTTP配信再生部12は、Webサーバ4より受信した視聴ページからコンテンツのアクセス先URL(視聴開始補助サーバ2)及び端末IDを取得し、マニフェストの取得先URLを例えば、http://192.168.11.1/content01.m3u8?nid=0001と設定する(ステップS1501)。 FIG. 15 is a flowchart showing the HTTP delivery / playback operation by the HTTP delivery / playback unit 12. The operation of the HTTP delivery / reproduction unit 12 of the P2P terminal 1 will be described with reference to FIG. The HTTP distribution / playback unit 12 acquires the content access destination URL (viewing start auxiliary server 2) and the terminal ID from the viewing page received from the Web server 4, and the manifest acquisition destination URL is, for example, http://192.168.11.1 Set /content01.m3u8?nid=0001 (step S1501).
次に、当該マニフェストの取得先URLに対して、例えば図16(a)に示すHTTPリクエストを送信し(ステップS1502)、HTTPレスポンスを取得すると(ステップS1503)、HTTPレスポンスのステータスコードを確認する(ステップS1504)。例えば、図16(c)に示すようにステータスコードが“200”であった場合は(ステップS1504−YES)、HTTPレスポンスのボディからマニフェストを抽出し(ステップS1505)、抽出したマニフェストからセグメント化データのシーケンス番号及び取得先URLを抽出する(ステップS1506)。 Next, for example, an HTTP request shown in FIG. 16A is transmitted to the acquisition URL of the manifest (step S1502), and when an HTTP response is acquired (step S1503), the status code of the HTTP response is confirmed (step S1503). Step S1504). For example, when the status code is “200” as shown in FIG. 16C (step S1504-YES), the manifest is extracted from the body of the HTTP response (step S1505), and the segmented data is extracted from the extracted manifest. The sequence number and the acquisition destination URL are extracted (step S1506).
次に、前回マニフェストを受信してから所定時間(たとえば1秒)経過したか、又はマニフェストに記載のセグメント化データを既に取得済みかを確認し(ステップS1507)、いずれかが満たされる場合は(ステップS1507−YES)、ステップS1502の処理に戻る。いずれも満たされない場合は(ステップS1507−NO)、未取得かつ最少シーケンス番号のセグメント化データの取得先URLにHTTPリクエストを送信し(ステップS1508)、HTTPレスポンスを受信する(ステップS1509)。該受信したHTTPレスポンスのボディからセグメント化データを抽出し、再生バッファ126に格納する(ステップS1510)。 Next, it is confirmed whether a predetermined time (for example, 1 second) has passed since the previous manifest was received, or whether the segmented data described in the manifest has already been acquired (step S1507). Step S1507—YES), the process returns to Step S1502. If neither is satisfied (step S1507-NO), an HTTP request is transmitted to the acquisition URL of the segmented data of the smallest sequence number that has not been acquired (step S1508), and an HTTP response is received (step S1509). The segmented data is extracted from the body of the received HTTP response and stored in the reproduction buffer 126 (step S1510).
次に、コンテンツがまだ再生前の場合は(ステップS1511−NO)、再生バッファ126に再生のために必要なデータが格納されているか確認する(ステップS1512)。再生バッファ126に再生のために必要なデータがまだ格納されていない場合は(ステップS1512−NO)、ステップS1507の処理に戻り、格納されている場合は(ステップS1512−YES)、再生を開始する(ステップS1513)。再生が開始されたか、再生中は(ステップS1511−YES)、再生バッファ126からセグメント化データを順次取り出して再生する(ステップS1514)。再生が終了していなければ(ステップS1515−NO)、ステップS1507の処理に戻り、再生が終了している場合は(ステップS1515−YES)、処理を終了する。 Next, when the content is not yet reproduced (step S1511-NO), it is confirmed whether data necessary for reproduction is stored in the reproduction buffer 126 (step S1512). If the data necessary for reproduction is not yet stored in the reproduction buffer 126 (step S1512—NO), the process returns to step S1507, and if stored (step S1512—YES), reproduction is started. (Step S1513). When reproduction is started or during reproduction (step S1511-YES), the segmented data is sequentially extracted from the reproduction buffer 126 and reproduced (step S1514). If reproduction has not ended (step S1515-NO), the process returns to step S1507. If reproduction has ended (step S1515-YES), the process ends.
次に、ステップS1504の処理に戻って、例えば図16(d)に示すようにステータスコードが200以外(302)であった場合は(ステップS1504−NO)、HTTPレスポンスヘッダの“Location”ヘッダから、P2P通信部11のHTTPサーバ部116へのアクセス情報を示す転送先URLを取得し(ステップS1516)、該取得した転送先URLをマニフェストの取得先URLに設定し、ステップS1501の処理に戻る。図16(b)は、以降のマニフェストのHTTPリクエストの例を示している。 Next, returning to the processing of step S1504, for example, when the status code is other than 200 (302) as shown in FIG. 16D (step S1504-NO), from the “Location” header of the HTTP response header. The transfer destination URL indicating the access information to the HTTP server unit 116 of the P2P communication unit 11 is acquired (step S1516), the acquired transfer destination URL is set as the acquisition destination URL of the manifest, and the process returns to step S1501. FIG. 16B shows an example of an HTTP request for the subsequent manifest.
上述した本発明の内包は、HTTP配信再生部12にてセグメント化データの取得先URLを含む情報(マニフェスト)のリクエストを視聴開始補助サーバ2に送信し、視聴開始補助サーバ2にて、セグメント化データの取得先URLを含むレスポンスをHTTP配信再生部12に送信し、HTTP配信再生部12にて、セグメント化データの取得先URLからセグメント化データを受信して再生する。また、P2P通信部11にて、P2Pネットワークへの参加処理を行い、P2P通信部11によるP2Pネットワークへの参加処理が完了すると、HTTP配信再生部12にて、セグメント化データの取得先をP2P通信部に変更する。これにより、P2P端末1はP2Pネットワーク参加処理の終了を待つことなく、コンテンツの視聴を迅速に開始することができるようになる。また、コンテンツを受信するP2P端末1の数が少ない場合はHTTP配信のみでコンテンツ配信サービスを提供し、P2P端末1の数が所定数を超えた場合にP2P配信に切換えるように運用することも可能となる。 The above-described comprehension of the present invention is that the HTTP distribution / playback unit 12 sends a request for information (manifest) including the acquisition URL of the segmented data to the viewing start auxiliary server 2, and the viewing start auxiliary server 2 performs segmentation. A response including the data acquisition destination URL is transmitted to the HTTP distribution reproduction unit 12, and the HTTP distribution reproduction unit 12 receives and reproduces the segmented data from the segmented data acquisition destination URL. Further, the P2P communication unit 11 performs a P2P network participation process, and when the P2P communication unit 11 completes the participation process to the P2P network, the HTTP distribution reproduction unit 12 sets the acquisition destination of the segmented data to the P2P communication. Change to part. As a result, the P2P terminal 1 can quickly start viewing the content without waiting for the end of the P2P network participation process. In addition, when the number of P2P terminals 1 that receive content is small, it is possible to provide a content distribution service only by HTTP distribution, and to switch to P2P distribution when the number of P2P terminals 1 exceeds a predetermined number. It becomes.
HTTP配信再生部12対してセグメント化データの取得先をP2P通信部11に変更させる具体例として、P2P通信部11にて、P2Pネットワークへの参加処理が完了すると、HTTP配信再生部12の視聴開始補助サーバ2に対するリクエストを当該P2P通信部11に転送するように要求するリクエスト転送要求を視聴開始補助サーバ2に送信し、視聴開始補助サーバ2にて、HTTP配信再生部12からのリクエストをP2P通信部11に転送し、P2P通信部11にて、視聴開始補助サーバ2からリクエストが転送されると、セグメント化データの取得先URLを当該P2P通信部11のURLに更新し、該更新されたセグメント化データの取得先URLを含むレスポンスをHTTP配信再生部12に送信する。これにより、コンテンツの配信先を視聴開始補助サーバ2からP2P通信部11にシームレスに安定して切替えることができる。さらに、P2P端末1においてHTTP配信再生部12とP2P通信部11を必ずしも同時に起動せず、任意のタイミングでP2P通信部11を起動しても、P2P通信への切換えが可能となる。 As a specific example of changing the acquisition destination of the segmented data to the P2P communication unit 11 for the HTTP distribution / playback unit 12, when the P2P communication unit 11 completes the P2P network participation process, the HTTP distribution / playback unit 12 starts viewing. A request transfer request for requesting to transfer a request for the auxiliary server 2 to the P2P communication unit 11 is transmitted to the viewing start auxiliary server 2, and the request from the HTTP distribution reproduction unit 12 is transmitted to the viewing start auxiliary server 2 by P2P communication. When the request is transferred from the viewing start auxiliary server 2 in the P2P communication unit 11, the acquisition destination URL of the segmented data is updated to the URL of the P2P communication unit 11, and the updated segment A response including the acquisition URL of the encrypted data is transmitted to the HTTP distribution reproduction unit 12. Thereby, the distribution destination of the content can be switched seamlessly and stably from the viewing start auxiliary server 2 to the P2P communication unit 11. Furthermore, the HTTP delivery / reproduction unit 12 and the P2P communication unit 11 are not necessarily activated simultaneously in the P2P terminal 1, and switching to P2P communication is possible even if the P2P communication unit 11 is activated at an arbitrary timing.
また、P2P通信部11は、他のP2P端末1’から受信したセグメント化データの格納数が所定のバッファ規定値以上になったときに、リクエスト転送要求を視聴開始補助サーバ2に送信するのが好適である。バッファ規定値を設けることにより、視聴の安定性を向上させることができる。 In addition, the P2P communication unit 11 transmits a request transfer request to the viewing start auxiliary server 2 when the number of stored segmented data received from the other P2P terminal 1 ′ becomes equal to or greater than a predetermined buffer specified value. Is preferred. By providing the buffer specified value, viewing stability can be improved.
なお、上述したP2P端末1として機能させるためにコンピュータを好適に用いることができ、そのようなコンピュータは、P2P端末1の各機能を実現する処理内容を記述したプログラムを該コンピュータの記憶部に格納しておき、該コンピュータのCPUによってこのプログラムを読み出して実行させることで実現することができる。このプログラムは、コンピュータ読取り可能な記録媒体に記録可能である。 It should be noted that a computer can be suitably used to function as the P2P terminal 1 described above, and such a computer stores a program describing processing contents for realizing each function of the P2P terminal 1 in a storage unit of the computer. It can be realized by reading and executing this program by the CPU of the computer. This program can be recorded on a computer-readable recording medium.
同様に、上述した視聴開始補助サーバ2として機能させるためにコンピュータを好適に用いることができ、そのようなコンピュータは、視聴開始補助サーバ2の各機能を実現する処理内容を記述したプログラムを該コンピュータの記憶部に格納しておき、該コンピュータのCPUによってこのプログラムを読み出して実行させることで実現することができる。このプログラムは、コンピュータ読取り可能な記録媒体に記録可能である。 Similarly, a computer can be suitably used to function as the above-described viewing start auxiliary server 2, and such a computer stores a program describing processing contents for realizing each function of the viewing start auxiliary server 2. This program can be realized by reading out and executing the program by the CPU of the computer. This program can be recorded on a computer-readable recording medium.
上述の実施形態は、代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、実施形態に記載の複数の構成ブロック又はステップを1つに組み合わせたり、あるいは分割したりすることが可能である。また、上述の実施形態では、初期のセグメント化データの取得先URLを視聴開始補助サーバ2としているが、セグメント化データの取得先URLを他のサーバとしてもよい。 Although the above embodiments have been described as representative examples, it will be apparent to those skilled in the art that many changes and substitutions can be made within the spirit and scope of the invention. Therefore, the present invention should not be construed as being limited by the above-described embodiments, and various modifications and changes can be made without departing from the scope of the claims. For example, it is possible to combine or divide a plurality of constituent blocks or steps described in the embodiments into one. In the above-described embodiment, the initial segmentation data acquisition destination URL is the viewing start auxiliary server 2, but the segmentation data acquisition destination URL may be another server.
1 P2P端末
2 視聴開始補助サーバ
3 オリジンサーバ
4 Webサーバ
5 配信サーバ
6 端末管理サーバ
11 P2P通信部
12 HTTP配信再生部
13 通信I/F
14 ローカル通信I/F
21 配信素材受信部
22 HTTPリクエスト受信部
23 リクエスト解析部
24 HTTPレスポンス送信部
25 リクエスト転送要求受付部
26 記憶部
27 通信I/F
111 接続先紹介要求部
112 接続制御部
113 データ中継部
114 リクエスト転送要求部
115 記憶部
116 HTTPサーバ部
117 マニフェスト更新部
121 マニフェスト要求先記憶部
122 マニフェスト要求部
123 マニフェスト受信部
124 マニフェスト解析部
125 セグメント受信部
126 再生バッファ
127 コンテンツ再生部
261 転送待ちリスト
262 セグメントバッファ
263 マニフェスト記憶部
1151 端末情報記憶部
1152 コンテンツバッファ
1153 マニフェスト記憶部
1154 HTTPサーバアドレス情報記憶部
DESCRIPTION OF SYMBOLS 1 P2P terminal 2 View start auxiliary server 3 Origin server 4 Web server 5 Distribution server 6 Terminal management server 11 P2P communication part 12 HTTP distribution reproduction | regeneration part 13 Communication I / F
14 Local communication I / F
21 Delivery material reception unit 22 HTTP request reception unit 23 Request analysis unit 24 HTTP response transmission unit 25 Request transfer request reception unit 26 Storage unit 27 Communication I / F
111 Connection destination introduction request unit 112 Connection control unit 113 Data relay unit 114 Request transfer request unit 115 Storage unit 116 HTTP server unit 117 Manifest update unit 121 Manifest request destination storage unit 122 Manifest request unit 123 Manifest reception unit 124 Manifest analysis unit 125 Segment Reception unit 126 Playback buffer 127 Content playback unit 261 Transfer waiting list 262 Segment buffer 263 Manifest storage unit 1151 Terminal information storage unit 1152 Content buffer 1153 Manifest storage unit 1154 HTTP server address information storage unit
Claims (8)
P2P端末は、他のP2P端末とP2P通信を行うP2P通信部と、セグメント化データを受信して再生するHTTP配信再生部とを備えており、
前記HTTP配信再生部は、セグメント化データの取得先URLを含む情報のリクエストを前記視聴開始補助サーバに送信し、
前記視聴開始補助サーバは、前記HTTP配信再生部から前記リクエストを受信すると、セグメント化データの取得先URLを含むレスポンスを前記HTTP配信再生部に送信し、
前記HTTP配信再生部は、前記セグメント化データの取得先URLからセグメント化データを受信して再生し、
前記P2P通信部は、P2Pネットワークへの参加処理を行い、
前記HTTP配信再生部は、前記P2P通信部による前記P2Pネットワークへの参加処理が完了すると、セグメント化データの取得先を前記P2P通信部に変更する、コンテンツ配信システム。 A content distribution system comprising: a P2P terminal that can participate in a P2P network; and a viewing start assistance server that assists in obtaining segmented data that is a unit of content division in the P2P terminal,
The P2P terminal includes a P2P communication unit that performs P2P communication with other P2P terminals, and an HTTP distribution reproduction unit that receives and reproduces the segmented data.
The HTTP delivery / playback unit transmits a request for information including an acquisition destination URL of segmented data to the viewing start auxiliary server,
Upon receiving the request from the HTTP delivery / playback unit, the viewing start auxiliary server sends a response including a segmented data acquisition URL to the HTTP delivery / playback unit,
The HTTP distribution reproduction unit receives and reproduces the segmented data from the acquisition URL of the segmented data,
The P2P communication unit performs a process of joining a P2P network,
The HTTP delivery / playback unit changes the acquisition source of the segmented data to the P2P communication unit when the participation process to the P2P network by the P2P communication unit is completed.
前記視聴開始補助サーバは、前記P2P通信部から前記リクエスト転送要求を受信すると、前記HTTP配信再生部からの前記リクエストを前記P2P通信部に転送し、
前記P2P通信部は、前記視聴開始補助サーバから前記リクエストが転送されると、セグメント化データの取得先URLを当該P2P通信部のURLに更新し、該更新されたセグメント化データの取得先URLを含むレスポンスを前記HTTP配信再生部に送信する、請求項1に記載のコンテンツ配信システム。 When the participation process to the P2P network is completed, the P2P communication unit starts a request transfer request for requesting the HTTP delivery / playback unit to transfer the request to the viewing start auxiliary server to the P2P communication unit. To the auxiliary server,
Upon receiving the request transfer request from the P2P communication unit, the viewing start auxiliary server transfers the request from the HTTP delivery / playback unit to the P2P communication unit,
When the request is transferred from the viewing start auxiliary server, the P2P communication unit updates the acquisition destination URL of the segmented data to the URL of the P2P communication unit, and sets the acquisition destination URL of the updated segmented data. The content delivery system according to claim 1, wherein a response including the response is transmitted to the HTTP delivery / playback unit.
他のP2P端末とP2P通信を行うP2P通信部と、セグメント化データを受信して再生するHTTP配信再生部とを備えおり、
前記HTTP配信再生部は、セグメント化データの取得先URLを含む情報のリクエストを視聴開始補助サーバに送信し、
前記HTTP配信再生部は、前記視聴開始補助サーバからセグメント化データの取得先URLを含むレスポンスを受信し、該セグメント化データの取得先URLからセグメント化データを受信して再生し、
前記P2P通信部は、P2Pネットワークへの参加処理を行い、
前記HTTP配信再生部は、前記P2P通信部による前記P2Pネットワークへの参加処理が完了すると、セグメント化データの取得先を前記P2P通信部に変更する、P2P端末。 A P2P terminal that can participate in a P2P network,
A P2P communication unit that performs P2P communication with other P2P terminals, and an HTTP distribution reproduction unit that receives and reproduces the segmented data;
The HTTP delivery / playback unit transmits a request for information including an acquisition destination URL of the segmented data to the viewing start auxiliary server,
The HTTP delivery / playback unit receives a response including a segmented data acquisition destination URL from the viewing start auxiliary server, receives the segmented data from the segmented data acquisition destination URL, and plays back the segmented data.
The P2P communication unit performs a process of joining a P2P network,
The HTTP delivery reproduction unit is a P2P terminal that changes the acquisition destination of the segmented data to the P2P communication unit when the participation process to the P2P network by the P2P communication unit is completed.
前記P2P通信部は、前記視聴開始補助サーバから前記リクエストが転送されると、セグメント化データの取得先URLを当該P2P通信部のURLに更新し、該更新されたセグメント化データの取得先URLを含むレスポンスを前記HTTP配信再生部に送信する、請求項4に記載のP2P端末。 When the participation process to the P2P network is completed, the P2P communication unit starts a request transfer request for requesting the HTTP delivery / playback unit to transfer the request to the viewing start auxiliary server to the P2P communication unit. To the auxiliary server,
When the request is transferred from the viewing start auxiliary server, the P2P communication unit updates the acquisition destination URL of the segmented data to the URL of the P2P communication unit, and sets the acquisition destination URL of the updated segmented data. The P2P terminal according to claim 4, wherein a response including the response is transmitted to the HTTP delivery / playback unit.
P2P端末は、他のP2P端末とP2P通信を行うP2P通信部と、セグメント化データを受信して再生するHTTP配信再生部とを備えており、
前記HTTP配信再生部からのセグメント化データの取得先URLを含む情報のリクエストに応じて、セグメント化データの取得先URLを含むレスポンスを前記HTTP配信再生部に送信し、
前記P2P通信部から、前記リクエストを当該P2P通信部に転送するように要求するリクエスト転送要求を受信すると、前記HTTP配信再生部からの前記リクエストを前記P2P通信部に転送する、視聴開始補助サーバ。 A viewing start auxiliary server that assists in obtaining segmented data that is a unit of content division in a P2P terminal,
The P2P terminal includes a P2P communication unit that performs P2P communication with other P2P terminals, and an HTTP distribution reproduction unit that receives and reproduces the segmented data.
In response to a request for information including the segmentation data acquisition destination URL from the HTTP distribution reproduction unit, a response including the segmentation data acquisition destination URL is transmitted to the HTTP distribution reproduction unit,
When receiving a request transfer request for transferring the request to the P2P communication unit from the P2P communication unit, the viewing start auxiliary server transfers the request from the HTTP delivery / playback unit to the P2P communication unit.
前記P2P端末は、他のP2P端末とP2P通信を行うP2P通信部と、セグメント化データを受信して再生するHTTP配信再生部とを備えており、
前記HTTP配信再生部により、セグメント化データの取得先URLを含む情報のリクエストを前記視聴開始補助サーバに送信するステップと、
前記視聴開始補助サーバにより、前記HTTP配信再生部から前記リクエストを受信すると、セグメント化データの取得先URLを含むレスポンスを前記HTTP配信再生部に送信するステップと、
前記HTTP配信再生部により、前記セグメント化データの取得先URLからセグメント化データを受信して再生するステップと、
前記P2P通信部により、P2Pネットワークへの参加処理を行うステップと、
前記HTTP配信再生部により、前記P2P通信部による前記P2Pネットワークへの参加処理が完了すると、セグメント化データの取得先を前記P2P通信部に変更するステップと、
を含むコンテンツ配信方法。 A content distribution method in a content distribution system comprising: a P2P terminal that can participate in a P2P network; and a viewing start auxiliary server that assists in obtaining segmented data that is a unit of content division in the P2P terminal,
The P2P terminal includes a P2P communication unit that performs P2P communication with another P2P terminal, and an HTTP distribution reproduction unit that receives and reproduces the segmented data,
Transmitting a request for information including an acquisition destination URL of segmented data to the viewing start auxiliary server by the HTTP distribution reproduction unit;
When receiving the request from the HTTP delivery / playback unit by the viewing start auxiliary server, transmitting a response including an acquisition destination URL of the segmented data to the HTTP delivery / playback unit;
Receiving and reproducing the segmented data from the acquisition URL of the segmented data by the HTTP delivery / reproducing unit;
Performing a process of joining a P2P network by the P2P communication unit;
When the HTTP delivery / playback unit completes the process of joining the P2P network by the P2P communication unit, the step of changing the acquisition source of the segmented data to the P2P communication unit;
Content delivery method including:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013235259A JP2015095824A (en) | 2013-11-13 | 2013-11-13 | Content distribution system, p2p terminal, viewing start assistance server, and content distribution method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013235259A JP2015095824A (en) | 2013-11-13 | 2013-11-13 | Content distribution system, p2p terminal, viewing start assistance server, and content distribution method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015095824A true JP2015095824A (en) | 2015-05-18 |
Family
ID=53197934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013235259A Pending JP2015095824A (en) | 2013-11-13 | 2013-11-13 | Content distribution system, p2p terminal, viewing start assistance server, and content distribution method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015095824A (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080098123A1 (en) * | 2006-10-24 | 2008-04-24 | Microsoft Corporation | Hybrid Peer-to-Peer Streaming with Server Assistance |
US20110016220A1 (en) * | 2009-07-17 | 2011-01-20 | Microsoft Corporation | Enabling Peer-To-Peer Content Retrieval in HTTP |
JP2011061594A (en) * | 2009-09-11 | 2011-03-24 | Brother Industries Ltd | Terminal device, communication method and communication program |
JP2011071643A (en) * | 2009-09-24 | 2011-04-07 | Brother Industries Ltd | Information communication system, method and program |
US8169916B1 (en) * | 2007-11-23 | 2012-05-01 | Media Melon, Inc. | Multi-platform video delivery configuration |
-
2013
- 2013-11-13 JP JP2013235259A patent/JP2015095824A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080098123A1 (en) * | 2006-10-24 | 2008-04-24 | Microsoft Corporation | Hybrid Peer-to-Peer Streaming with Server Assistance |
US8169916B1 (en) * | 2007-11-23 | 2012-05-01 | Media Melon, Inc. | Multi-platform video delivery configuration |
US20110016220A1 (en) * | 2009-07-17 | 2011-01-20 | Microsoft Corporation | Enabling Peer-To-Peer Content Retrieval in HTTP |
JP2011061594A (en) * | 2009-09-11 | 2011-03-24 | Brother Industries Ltd | Terminal device, communication method and communication program |
JP2011071643A (en) * | 2009-09-24 | 2011-04-07 | Brother Industries Ltd | Information communication system, method and program |
Non-Patent Citations (1)
Title |
---|
HA, DUYEN HOA, SILVERTON, THOMAS, FOURMAUX, OLIVIER: "A novel Hybrid CDN-P2P mechanism for effective real-time media streaming", MASTER'S THESIS, UNIVERSITE PIERRE ET MARIE CURIE, JPN6017027785, September 2008 (2008-09-01) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6944485B2 (en) | Requests for multiple chunks to a network node based on a single request message | |
JP5897134B2 (en) | Mobile multimedia real-time transcoding system, apparatus, storage medium, and method | |
Locher et al. | Push-to-pull peer-to-peer live streaming | |
EP2109289B1 (en) | Content distribution | |
US20110138018A1 (en) | Mobile media server | |
WO2012011449A1 (en) | Proxy server, relay method, communication system, relay control program, and recording medium | |
WO2009086784A1 (en) | File content distribution method, device and system | |
EP2933982B1 (en) | Media stream transfer method and user equipment | |
WO2008080343A1 (en) | A method and apparatus for reducing delay of media play | |
JP2009165092A (en) | Network transmission system and method of stream data | |
KR20190060849A (en) | Enable media orchestration | |
JP2014131143A (en) | Transmitter, transmitting method and program | |
KR102460356B1 (en) | Reception device, transmission device, and data processing method | |
JP2010103622A (en) | Network system, and method and program for reproducing content | |
CN115065832A (en) | WebRtc-based live broadcast method and related equipment | |
EP2548334A1 (en) | Multimedia service network and method for providing the same | |
JP2015095824A (en) | Content distribution system, p2p terminal, viewing start assistance server, and content distribution method | |
Zeng et al. | A dynamic live streaming service architecture integrated sensing and control | |
CN101483532B (en) | Method, system and equipment for copying media stream | |
Peltotalo et al. | RTSP‐based Mobile Peer‐to‐Peer Streaming System | |
US8255556B2 (en) | Multicast and synchronization emulation for content transformed streams | |
CN108737480B (en) | Conference cascading method based on software media server, server and storage medium | |
JP6155142B2 (en) | Distribution support server | |
Ha et al. | Topology and architecture design for peer to peer video live streaming system on mobile broadcasting social media | |
CN113612728B (en) | Streaming media playing method, transmission equipment and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160926 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170719 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170801 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20180220 |