JP2005086362A - Data multiplexing method, data transmitting method and data receiving method - Google Patents

Data multiplexing method, data transmitting method and data receiving method Download PDF

Info

Publication number
JP2005086362A
JP2005086362A JP2003314530A JP2003314530A JP2005086362A JP 2005086362 A JP2005086362 A JP 2005086362A JP 2003314530 A JP2003314530 A JP 2003314530A JP 2003314530 A JP2003314530 A JP 2003314530A JP 2005086362 A JP2005086362 A JP 2005086362A
Authority
JP
Japan
Prior art keywords
data
response
size information
header
fragment
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
Application number
JP2003314530A
Other languages
Japanese (ja)
Inventor
Tadamasa Toma
正真 遠間
Yoshinori Matsui
義徳 松井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003314530A priority Critical patent/JP2005086362A/en
Publication of JP2005086362A publication Critical patent/JP2005086362A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Systems (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data receiving method for receiving an MP4 file storing a live content with little delay with respect to real time and realizing reproduction on a real time basis without applying extension cost. <P>SOLUTION: In a second request creation part 306, a request of acquirement of an initial header and a latest fragment in the MP4 file to a distribution server is created. A request transmission part 303 transmits a data acquiring request to the distribution server by HTTP. A response receiving part 304 receives a response to the transmitted data acquiring request, which includes the initial header and the latest fragment of the MP4 file, from the distribution server by HTTP. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、動画像データや音声データ等のメディアデータの多重化方法、多重化したデータの送信方法および多重化したデータの受信方法に関し、特に、ライブストリーミング再生を行なうためのデータ多重化方法、データ送信方法およびデータ受信方法に関する。   The present invention relates to a method for multiplexing media data such as moving image data and audio data, a method for transmitting multiplexed data, and a method for receiving multiplexed data, and in particular, a data multiplexing method for performing live streaming playback, The present invention relates to a data transmission method and a data reception method.

近年、通信ネットワークの大容量化および伝送技術の進歩により、インターネット上で、動画、音声、テキスト、あるいは、静止画等のマルチメディアコンテンツを含む動画像ファイルをパーソナルコンピュータに配信する動画配信サービスの普及が著しい。また、携帯端末等のいわゆる第3世代の移動体通信システムの規格の標準化を図ることを目的とする国際標準化団体3GPP(Third Generation Partnership Project)で、無線による動画配信に関する規格としてTS26.234(Transparent end-to-end packet switched streaming service)が定められる等の動きも見られ、動画配信サービスは、携帯電話機やPDA等の移動体通信端末への提供の拡大も見込まれている。   In recent years, with the increase in communication network capacity and advances in transmission technology, the spread of video distribution services that distribute video files including multimedia content such as video, audio, text, or still images to personal computers over the Internet Is remarkable. Also, the international standardization organization 3GPP (Third Generation Partnership Project), which aims to standardize the standard of so-called third generation mobile communication systems such as mobile terminals, is the TS26.234 (Transparent The end-to-end packet switched streaming service has been established, and the video distribution service is expected to be expanded to mobile communication terminals such as mobile phones and PDAs.

動画配信サービスにおいて、動画像ファイルを配信する際には、まず、多重化装置において、動画、静止画、音声およびテキスト等のメディアデータを取り込んで、メディアデータの再生に必要なヘッダ情報とメディアデータの実体データとを多重化して動画像ファイルデータを作成することが必要となるが、この動画像ファイルデータの多重化ファイルフォーマットとして、MP4ファイルフォーマットが注目されている。   When distributing a moving image file in a moving image distribution service, first, the multiplexing device captures media data such as a moving image, a still image, audio and text, and header information and media data necessary for reproducing the media data. However, the MP4 file format is attracting attention as a multiplexed file format of the moving image file data.

このMP4ファイルフォーマットは、国際標準化団体であるISO/IEC(International Standardization Organization/International Engineering Consortium) JTC1/SC29/WG 11において標準化が進められている多重化ファイルフォーマットであり、上記3GPPのTS26.234でも採用されていることから、広く普及するものと予想されている。
ここで、MP4ファイルのデータ構造について説明する。なお、このMP4ファイルのデータ構造については、非特許文献1に開示されている。
This MP4 file format is a multiplexed file format that is being standardized by the international standardization organization ISO / IEC (International Standardization Organization / International Engineering Consortium) JTC1 / SC29 / WG11. Because it is adopted, it is expected to be widely spread.
Here, the data structure of the MP4 file will be described. The data structure of this MP4 file is disclosed in Non-Patent Document 1.

MP4ファイルは、ボックスと呼ばれるオブジェクト単位でヘッダ情報やメディアデータの実体データが格納されており、複数のボックスを階層的に配列することによって構成される。   The MP4 file stores entity information such as header information and media data in units of objects called boxes, and is configured by arranging a plurality of boxes hierarchically.

図22は、MP4ファイルを構成するボックスの構造を説明するための図である。
ボックス901は、ボックス901のヘッダ情報が格納されるボックスヘッダ部902と、ボックス901に含まれるデータ(例えば、そのボックスの下の階層のボックスや情報を記述するためのフィールド等)が格納されるボックスデータ格納部903とから構成される。
FIG. 22 is a diagram for explaining the structure of boxes constituting an MP4 file.
The box 901 stores a box header portion 902 in which header information of the box 901 is stored, and data included in the box 901 (for example, a box in a hierarchy below the box and a field for describing information). A box data storage unit 903.

このボックスヘッダ部902は、ボックスサイズ904、ボックスタイプ905、バージョン906、フラグ907のフィールドを有している。
ボックスサイズ904は、このフィールドに割り当てられたバイトサイズも含めてボックス901全体のサイズ情報が記述されるフィールドである。
ボックスタイプ905は、ボックス901の種別を識別するための識別子が記述されるフィールドである。この識別子は、通常4つのアルファベット文字列によって表される。なお、以下、本明細書中において、この識別子によって各ボックスを示す場合がある。
The box header portion 902 has fields of a box size 904, a box type 905, a version 906, and a flag 907.
The box size 904 is a field in which the size information of the entire box 901 including the byte size assigned to this field is described.
The box type 905 is a field in which an identifier for identifying the type of the box 901 is described. This identifier is usually represented by four alphabetic character strings. In the following description, each box may be indicated by this identifier.

バージョン906は、ボックス901のバージョンを示すバージョン番号が記述されるフィールドであり、フラグ907は、ボックス901毎に設定されるフラグ情報が記述されるフィールドである。このバージョン906とフラグ907は、全てのボックス901に必須のフィールドではないので、これらのフィールドを有しないボックス901も存在しうる。   The version 906 is a field in which a version number indicating the version of the box 901 is described, and the flag 907 is a field in which flag information set for each box 901 is described. Since this version 906 and flag 907 are not mandatory fields for all boxes 901, there may be boxes 901 that do not have these fields.

このような構造のボックス901が複数連なって構成されるMP4ファイルは、ファイルの構成に不可欠な基本部と、必要に応じて使用される拡張部とに大別することができる。まず、MP4ファイルの基本部について説明する。
図23は、従来のMP4ファイルの基本部を説明するための図である。
MP4ファイル910の基本部911は、ファイルヘッダ部912とファイルデータ部913とから構成される。
An MP4 file composed of a plurality of boxes 901 having such a structure can be roughly divided into a basic part indispensable for the structure of the file and an extended part used as necessary. First, the basic part of the MP4 file will be described.
FIG. 23 is a diagram for explaining a basic part of a conventional MP4 file.
The basic part 911 of the MP4 file 910 includes a file header part 912 and a file data part 913.

ファイルヘッダ部912は、ファイル全体のヘッダ情報、例えば、動画像(ビデオ)データの圧縮符号化方式等の情報が格納される部分であり、ファイルタイプボックス914とムービーボックス915とから構成される。
ファイルタイプボックス914は、"ftyp"の識別子で識別されるボックスであり、MP4ファイルを識別するための情報が格納される。MP4ファイルにどのようなメディアデータを格納するかについて、また、どのような圧縮符号化方式を用いた動画像(ビデオ)データや音声(オーディオ)データ等を格納するかについては、標準化団体やサービス事業者が独自に規定することができるため、MP4ファイルがどの規定に従って作成されたものであるかを識別するための情報を、このファイルタイプボックス914に格納する。
The file header portion 912 is a portion in which header information of the entire file, for example, information such as a compression encoding method for moving image (video) data, is stored, and includes a file type box 914 and a movie box 915.
The file type box 914 is a box identified by the identifier “ftyp”, and stores information for identifying the MP4 file. As to what kind of media data is stored in the MP4 file, and what kind of compression encoding method is used to store moving image (video) data, audio (audio) data, etc., standardization organizations and services Since the service provider can uniquely define the information, the file type box 914 stores information for identifying which of the MP4 files has been created.

ムービーボックス915は、"moov"の識別子で識別されるボックスであり、ファイルデータ部913に格納される実体データのヘッダ情報、例えば、表示時間長等の情報が格納される。また、このムービーボックス915には、ビデオトラックやオーディオトラック等、トラック毎のヘッダ情報が格納されている。なお、ここにいうトラックとは、MP4ファイル910に含まれる各メディアのサンプルデータ全体を意味し、動画像や音声やテキスト等のトラックは、それぞれビデオトラック、オーディオトラックやテキストトラック等と称される。また、MP4ファイル910内に同一メディアのデータが複数存在する場合は、同一メディアに対して複数のトラックが存在することになる。具体的に説明すると、例えば、MP4ファイル910内に2種類の動画像データが含まれている場合、2つのビデオトラックが存在することになる。   The movie box 915 is a box identified by an identifier of “moov”, and stores header information of entity data stored in the file data portion 913, for example, information such as a display time length. The movie box 915 stores header information for each track such as a video track and an audio track. Here, the track means the entire sample data of each medium included in the MP4 file 910, and tracks such as moving images, audio, and text are referred to as video tracks, audio tracks, text tracks, and the like, respectively. . In addition, when there are a plurality of data of the same medium in the MP4 file 910, a plurality of tracks exist for the same medium. More specifically, for example, when two types of moving image data are included in the MP4 file 910, there are two video tracks.

ファイルデータ部913は、"mdat"の識別子で識別されるムービーデータボックス916によって構成される。なお、このファイルデータ部913の代わりに、このMP4ファイル910とは異なる外部のファイルを参照することもできる。このように、外部のファイルを参照する場合には、MP4ファイル910の基本部911は、ファイルヘッダ部912のみから構成されることになる。本明細書では、この外部ファイルの参照をする場合ではなく、MP4ファイル910内に実体データを含む場合について説明する。   The file data portion 913 includes a movie data box 916 identified by an identifier “mdat”. Instead of the file data portion 913, an external file different from the MP4 file 910 can be referred to. In this way, when referring to an external file, the basic part 911 of the MP4 file 910 is composed of only the file header part 912. In this specification, a case will be described in which entity data is included in the MP4 file 910 instead of referring to the external file.

ムービーデータボックス916は、サンプルと称される単位でメディアデータの実体データを格納するボックスである。このサンプルとは、MP4ファイルにおける最小のアクセス単位であり、MPEG(Moving Picture Experts Group)-4 Visualの圧縮符号化方式によって符号化したビデオデータのVOP(Video Object Plane)やオーディオデータのフレームに相当するものである。   The movie data box 916 is a box for storing media data entity data in units called samples. This sample is the smallest access unit in the MP4 file, and corresponds to the VOP (Video Object Plane) of video data encoded by the MPEG (Moving Picture Experts Group) -4 Visual compression encoding method and the frame of audio data To do.

MP4ファイルフォーマットの標準化当初、MP4ファイル910は、上記基本部911のみから構成されていた。しかし、基本部911のみから構成されるMP4ファイル910では、全てのヘッダ情報が格納されるムービーボックス915が、コンテンツ全体の符号化データが揃うまで作成されないので、コンサート中継やスポーツ中継等のライブコンテンツの配信、いわゆるライブストリーミングを実現することができないという問題があった。また、ライブコンテンツの時間長に比例してムービーボックス915のサイズが増大するため、ライブコンテンツが長時間になればなる程、ムービーボックス915のダウンロードに要する時間が長くなり、ストリーミング再生時における初期遅延時間が増大するという問題があった。   At the beginning of standardization of the MP4 file format, the MP4 file 910 was composed only of the basic unit 911. However, in the MP4 file 910 composed only of the basic part 911, a movie box 915 in which all header information is stored is not created until the encoded data of the entire content is prepared. There is a problem that it is impossible to realize the so-called live streaming. Further, since the size of the movie box 915 increases in proportion to the time length of the live content, the longer the live content is, the longer the time required for downloading the movie box 915 becomes, and the initial delay during streaming playback There was a problem that time increased.

このように、標準化当初のMP4ファイルフォーマットには、ストリーミング再生への適用が難しい等の問題があり、MP4ファイルフォーマットは、ヘッダボックスとデータボックスとの組が複数連なる拡張部の使用を加える改良がなされている。   As described above, the MP4 file format at the time of standardization has a problem that it is difficult to apply to streaming playback, and the MP4 file format is improved by using an extension unit in which a plurality of pairs of header boxes and data boxes are used. Has been made.

図24は、従来における拡張部を含むMP4ファイルの構造を示す図である。
図24に示すように、上記改良が加えられたMP4ファイル920は、基本部911と拡張部921とから構成される。この拡張部921を含むMP4ファイル920では、全てのメディアデータを拡張部921に格納することができるので、MP4ファイル基本部911のムービーデータボックス916を省略することとしてもよい。
FIG. 24 is a diagram showing a structure of a conventional MP4 file including an extension unit.
As shown in FIG. 24, the MP4 file 920 to which the above improvements are added is composed of a basic unit 911 and an expansion unit 921. Since all media data can be stored in the extension unit 921 in the MP4 file 920 including the extension unit 921, the movie data box 916 of the MP4 file basic unit 911 may be omitted.

拡張部921は、所定の単位で区切られたパケット922が複数連なって構成される。
このパケット922は、ムービーフラグメントボックス923とムービーデータボックス916とが一対となって構成され、ムービーフラグメントとも称される(以下、本明細書では、「フラグメント」と略記する。)
ムービーデータボックス916は、上記区切られた所定の単位でトラック毎のサンプルを格納し、ムービーフラグメントボックス923は、このムービーデータボックス916に対応するヘッダ情報を格納するためのボックスであり、"moof"という識別子によって識別される。
The extension unit 921 is configured by a plurality of packets 922 separated in predetermined units.
The packet 922 includes a pair of a movie fragment box 923 and a movie data box 916, and is also referred to as a movie fragment (hereinafter abbreviated as “fragment” in this specification).
The movie data box 916 stores a sample for each track in the predetermined unit divided above, and the movie fragment box 923 is a box for storing header information corresponding to the movie data box 916, and “moof” Is identified by the identifier.

なお、このとき、MP4ファイル920の基本部911のムービーデータボックス916を省略した場合、基本部911のムービーボックス915には、コンテンツ全体に共通のヘッダ情報、例えば、コンテンツ全体の再生時間長や符号化方式等が格納されることになる。また、MP4ファイル920の基本部911のムービーデータボックス916を省略せずにコンテンツの先頭部分のデータが格納されている場合、基本部911のムービーボックス915には、コンテンツ全体に共通のヘッダ情報と、そのデータのサンプル単位のヘッダ情報が格納されることになる。本明細書では、MP4ファイル基本部911のムービーデータボックス916は省略され、基本部911のムービーボックス915には、上記共通のヘッダ情報のみが格納されていることとする。さらに、各フラグメントは、フラグメントに含まれる各メディアの先頭サンプルの再生開始時間が揃うように作成されているものとする。具体的には、オーディオデータやビデオデータ、あるいは、テキストデータのサンプルのうち、互いの再生開始時間が最も近いサンプルをフラグメントの先頭サンプルとして格納する。   At this time, when the movie data box 916 of the basic part 911 of the MP4 file 920 is omitted, the movie box 915 of the basic part 911 has header information common to the entire content, for example, the playback time length and code of the entire content. The conversion method is stored. In addition, when the data of the head portion of the content is stored without omitting the movie data box 916 of the basic portion 911 of the MP4 file 920, the movie box 915 of the basic portion 911 includes header information common to the entire content. The header information of the sample unit of the data is stored. In this specification, the movie data box 916 of the MP4 file basic unit 911 is omitted, and the movie box 915 of the basic unit 911 stores only the common header information. Furthermore, it is assumed that each fragment is created so that the reproduction start times of the top samples of the respective media included in the fragment are aligned. Specifically, among samples of audio data, video data, or text data, a sample having the closest reproduction start time is stored as the first sample of the fragment.

このようなMP4ファイルの改良によって、ビデオデータやオーディオデータを取り込んで符号化するエンコーダは、コンテンツ全体の符号化データが揃わなくても、所定の単位分の符号化データが揃った段階でフラグメントを生成することができ、また、ライブコンテンツを格納したMP4ファイルをクライアント端末に配信するサーバは、フラグメント単位でMP4ファイルをクライアント端末に配信することができるようになるので、ストリーミング再生を実現することが可能となっている。   With such improvements to the MP4 file, an encoder that captures and encodes video data and audio data does not have all the encoded data for the entire content, but can encode fragments when the encoded data for a predetermined unit is complete. The server that can generate the MP4 file that stores the live content to the client terminal can distribute the MP4 file to the client terminal in units of fragments, thereby realizing streaming playback. It is possible.

また、サーバとクライアント端末とのデータのやり取りについては、通信プロトコルの規定に則る必要があるが、音声や映像をストリーミング再生するためのプロトコルとして、RTP(Real-time Transport Protocol)やUDP(User Datagram Protocol)などの通信プロトコルが従来から用いられている。
ISO/IEC JTC1/SC29/WG11 MPEG、N5295「Proposed Revised Common Text Multimedia File Format Specification」、2002年10月24日
In addition, the exchange of data between the server and the client terminal needs to comply with the specification of the communication protocol, but as a protocol for streaming reproduction of audio and video, RTP (Real-time Transport Protocol) and UDP (User Communication protocols such as Datagram Protocol have been used in the past.
ISO / IEC JTC1 / SC29 / WG11 MPEG, N5295 “Proposed Revised Common Text Multimedia File Format Specification”, October 24, 2002

しかしながら、上記の改良が加えられたMP4ファイルにおいても、受信側のクライアント端末は、ファイルの先頭に位置するフラグメントからしかデータを取得することができないので、例えば、ライブコンテンツの途中から受信を開始する場合であっても、ライブコンテンツの最初から再生しなければならず、ライブコンテンツを実時間で再生することができないという問題がある。図を用いて詳しく説明する。   However, even in the MP4 file with the above improvements, the receiving client terminal can only acquire data from the fragment located at the beginning of the file, so for example, it starts receiving from the middle of live content Even in such a case, the live content must be reproduced from the beginning, and there is a problem that the live content cannot be reproduced in real time. This will be described in detail with reference to the drawings.

図25は、従来におけるMP4ファイルによるライブストリーミング時における問題点を説明するための図である。
エンコーダ930は、ビデオカメラ等であり、コンサートの映像および音声を記録して、ビデオデータとオーディオデータとを符号化および多重化することによって生成したMP4ファイルのフラグメントを順次配信サーバ940に転送する。ここで、エンコーダ930から配信サーバ940に転送される最新のフラグメントをフラグメントNとしておく。また、MP4ファイルのファイルタイプボックスとムービーボックスとを併せて初期ヘッダと称することにする。
FIG. 25 is a diagram for explaining a problem at the time of live streaming by a conventional MP4 file.
The encoder 930 is a video camera or the like, records video and audio of a concert, and sequentially forwards MP4 file fragments generated by encoding and multiplexing video data and audio data to the distribution server 940. Here, the latest fragment transferred from the encoder 930 to the distribution server 940 is set as a fragment N. The file type box and movie box of the MP4 file are collectively referred to as an initial header.

この時点で、クライアント端末950が、配信サーバ940にライブコンテンツの配信要求を送信すると、配信サーバ940は、初期ヘッダとMP4ファイルの先頭のフラグメントをクライアント端末950に配信するので、クライアント端末950が再生するデータは、ライブコンテンツの実時間のデータに対して遅延してしまうことになり、ライブコンテンツをリアルタイムで再生することができない。   At this point, when the client terminal 950 transmits a live content distribution request to the distribution server 940, the distribution server 940 distributes the initial header and the top fragment of the MP4 file to the client terminal 950, so that the client terminal 950 reproduces The data to be delayed will be delayed with respect to the real-time data of the live content, and the live content cannot be reproduced in real time.

また、配信サーバ940とクライアント端末950とを接続するネットワークの輻輳などで、ライブコンテンツのデータを実時間で配信することができない場合にも、クライアント端末950が再生するデータと、ライブコンテンツの実時間のデータとの間に遅延が生じてしまうという問題がある。   Further, even when live content data cannot be distributed in real time due to congestion of the network connecting the distribution server 940 and the client terminal 950, the data reproduced by the client terminal 950 and the real time of the live content There is a problem that a delay occurs between the data.

さらに、RTPによる通信はリアルタイム性に優れるというメリットがあるものの、配信サーバおよびクライアント端末が共にRTPに対応していなければならず、RTPに対応させるための増設コストがかかるという問題が生じうる。また、RTPでは、データが相手方に届くことは保証されないので、信頼性が低く、パケットロス対策などの品質制御機構が必要となるという問題もある。   Furthermore, although communication by RTP has the merit that it is excellent in real-time property, both the distribution server and the client terminal must be compatible with RTP, and there may be a problem that additional costs for supporting RTP are required. In addition, since RTP does not guarantee that data reaches the other party, there is a problem that reliability is low and a quality control mechanism such as a packet loss countermeasure is required.

そこで、本発明は、上記問題点に鑑みなされたものであり、増設コストをかけることなく、ライブコンテンツを格納したMP4ファイルを実時間に対して低遅延で受信し、リアルタイムでの再生を実現することができるデータ受信方法を提供することを第1の目的とする。
また、本発明は、ネットワークの通信状態にかかわらず、リアルタイム性を維持してMP4ファイルを低遅延で送信することができるデータ送信方法を提供することを第2の目的とする。
Therefore, the present invention has been made in view of the above problems, and realizes real-time playback by receiving an MP4 file storing live content with low delay relative to real time without incurring additional costs. It is a first object of the present invention to provide a data receiving method capable of receiving data.
A second object of the present invention is to provide a data transmission method capable of transmitting an MP4 file with low delay while maintaining real-time characteristics regardless of the communication state of the network.

さらに、本発明は、ライブコンテンツを格納したMP4ファイルを低遅延で送受信する場合に、ライブコンテンツを構成する複数のメディア間の同期再生を実現することができるデータ多重化方法を提供することを第3の目的とする。   Furthermore, the present invention provides a data multiplexing method capable of realizing synchronized reproduction between a plurality of media constituting live content when transmitting and receiving MP4 files storing live content with low delay. The purpose of 3.

上記第1の目的を達成するために、本発明に係るデータ受信方法は、コンテンツ全体に共通のヘッダである共通ヘッダと、当該コンテンツの実体データおよび当該実体データのヘッダ情報を格納する複数のパケットとから構成されるファイルを、ネットワークで接続されたサーバ装置から受信するデータ受信方法であって、前記共通ヘッダおよび前記コンテンツにおける最新の実体データを格納する最新パケットの配信を前記サーバ装置に要求するデータ取得リクエストを作成するリクエスト作成ステップと、前記データ取得リクエストを、HTTP(Hypertext Transfer Protocol)によって前記サーバ装置に送信するリクエスト送信ステップと、前記データ取得リクエストに対する応答として、前記共通ヘッダおよび前記最新パケットを含むレスポンスを前記サーバ装置からHTTPによって受信するレスポンス受信ステップとを含むことを特徴とする。これによって、既存のHTTPを用いて、最新のフラグメントから受信を開始することができるので、増設コストをかけずに、ライブコンテンツの実時間に対して低遅延でデータを受信することが可能となる。   In order to achieve the first object, a data receiving method according to the present invention includes a common header that is a header common to all contents, a plurality of packets storing entity data of the content and header information of the entity data. Is a data reception method for receiving a file composed of: from a server device connected via a network, and requests the server device to distribute the latest packet storing the latest header data in the common header and the content A request creation step for creating a data acquisition request, a request transmission step for transmitting the data acquisition request to the server device by HTTP (Hypertext Transfer Protocol), and the common header and the latest packet as a response to the data acquisition request Responsible including The characterized in that it comprises a response reception step of receiving by HTTP from the server device. Accordingly, since reception can be started from the latest fragment using existing HTTP, it is possible to receive data with a low delay with respect to the real time of live content without incurring additional costs. .

また、上記第2の目的を達成するために、本発明に係るデータ送信方法は、コンテンツ全体に共通のヘッダである共通ヘッダと、当該コンテンツの実体データおよび当該実体データのヘッダ情報を格納する複数のパケットとから構成されるファイルを、ネットワークで接続された端末装置に送信するデータ送信方法であって、前記端末装置から前記共通ヘッダおよび前記コンテンツにおける最新の実体データを格納する最新パケットの配信を要求するデータ取得リクエストを受信するリクエスト受信ステップと、前記データ取得リクエストを解析して、前記最新パケットを決定する最新パケット判定ステップと、前記データ取得リクエストに対する応答であり、前記共通ヘッダと、前記最新パケット判定ステップにおいて決定した前記最新パケットとを含むレスポンスを作成するレスポンス作成ステップと、前記レスポンスを、HTTPによって前記端末装置に送信するレスポンス送信ステップと、送信されるパケットに含まれる前記データの再生開始時間が、実時間で再生した場合に対してどれだけ遅延しているかを示す遅延時間を取得する遅延時間取得ステップと、前記遅延時間取得ステップにおいて取得した情報に基づいて、前記遅延時間が所定の閾値以上開いたか否かを判定する遅延判定ステップと、前記遅延判定ステップにおいて、前記遅延時間が所定の閾値以上開いたと判定した場合に、時間的に不連続となるパケットの送信を決定するスキップ決定ステップとを含み、前記レスポンス作成ステップにおいて、前記スキップ決定ステップにおける決定に基づいて、前記時間的に不連続となるパケットを含むスキップレスポンスを作成し、前記レスポンス送信ステップにおいて、前記スキップレスポンスをHTTPによって前記端末装置に送信することを特徴とする。これによって、ネットワークの通信状態が悪い場合でも、最新のフラグメントまでスキップすることができるので、リアルタイム性を維持してMP4ファイルを低遅延で送信することができるようになる。   In order to achieve the second object, a data transmission method according to the present invention includes a common header that is a header common to all contents, a plurality of pieces of entity data of the contents, and header information of the entity data. Is a data transmission method for transmitting a file composed of a plurality of packets to a terminal device connected via a network, wherein the terminal device distributes the latest packet storing the common header and the latest entity data in the content. A request reception step for receiving a requested data acquisition request; a latest packet determination step for analyzing the data acquisition request to determine the latest packet; a response to the data acquisition request; the common header; The latest parameter determined in the packet determination step. A response generation step for generating a response including a packet, a response transmission step for transmitting the response to the terminal device by HTTP, and a reproduction start time of the data included in the transmitted packet is reproduced in real time. A delay time acquisition step for acquiring a delay time indicating how much is delayed with respect to the case, and based on the information acquired in the delay time acquisition step, whether or not the delay time is opened more than a predetermined threshold A delay determining step for determining, and a skip determining step for determining transmission of a packet that is temporally discontinuous when it is determined in the delay determining step that the delay time is opened by a predetermined threshold or more, and the response In the creating step, based on the determination in the skip determining step, During manner to create a skip response including a discontinuous packet in the response transmission step, and transmits the skip response to the terminal device by HTTP. As a result, even when the communication state of the network is bad, it is possible to skip to the latest fragment, so that the MP4 file can be transmitted with low delay while maintaining the real-time property.

さらに、上記第3の目的を達成するために、本発明に係るデータ多重化方法は、コンテンツに含まれる複数のメディアデータを多重化して、当該コンテンツ全体に共通のヘッダである共通ヘッダと、当該コンテンツの実体データおよび当該実体データのヘッダ情報を格納する複数のパケットとから構成されるファイルを作成するデータ多重化方法であって、1つ以上のパケット毎に前記パケットに含まれるメディアデータ間の同期再生を図るための同期情報を作成する同期情報作成ステップと、前記同期情報作成ステップにおいて作成した同期情報を含むファイルを作成するファイル作成ステップとを含むことを特徴とする。これによって、ライブストリーミング再生時においても同期情報を参照することができるので、同期再生を担保することができる。   Furthermore, in order to achieve the third object, a data multiplexing method according to the present invention multiplexes a plurality of media data included in a content, a common header that is a header common to the entire content, A data multiplexing method for creating a file composed of entity data of content and a plurality of packets storing header information of the entity data, between media data included in the packet for each one or more packets It includes a synchronization information creation step for creating synchronization information for synchronized playback, and a file creation step for creating a file including the synchronization information created in the synchronization information creation step. As a result, the synchronization information can be referred to even during live streaming reproduction, so that the synchronized reproduction can be ensured.

なお、本発明は、このようなデータ多重化方法、データ受信方法およびデータ送信方法として実現することができるだけでなく、このようなデータ多重化方法等に含まれる特徴的なステップを手段として備えたデータ多重化装置等として実現したり、また、それぞれの特徴的な全てのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。   The present invention can be realized not only as such a data multiplexing method, data receiving method, and data transmitting method, but also as a means including characteristic steps included in such a data multiplexing method. It can be realized as a data multiplexing device or the like, or can be realized as a program for causing a computer to execute all the characteristic steps. Needless to say, such a program can be distributed via a recording medium such as a CD-ROM or a transmission medium such as the Internet.

以上のように、本発明によれば、ライブコンテンツの実時間に対する遅延を生じさせずに、MP4ファイルのデータを取得することができるので、ライブコンテンツの途中から受信を開始する場合であっても、リアルタイム再生を実現することができるという効果が奏される。また、既存のHTTPを用いることができるので、サーバ装置や端末装置の増設コストが不要という効果もある。さらに、通信状態が悪い場合であっても、リアルタイム再生を維持することができ、ライブコンテンツを構成するメディア間の同期再生をも担保することができる。   As described above, according to the present invention, the MP4 file data can be acquired without causing a delay with respect to the real time of the live content. Therefore, even when reception is started in the middle of the live content. The effect that real-time reproduction can be realized is achieved. Moreover, since the existing HTTP can be used, there is an effect that the cost for adding a server device or a terminal device is unnecessary. Furthermore, even if the communication state is poor, real-time playback can be maintained, and synchronized playback between media constituting live content can be ensured.

以下、本発明を実施するための最良の形態について詳細に説明する。
(実施の形態1)
まず、本発明の実施の形態1に係るライブストリーミングシステムについて説明する。
図1は、本発明の実施の形態1に係るライブストリーミングシステムの全体構成を示す図である。
Hereinafter, the best mode for carrying out the present invention will be described in detail.
(Embodiment 1)
First, the live streaming system according to Embodiment 1 of the present invention will be described.
FIG. 1 is a diagram showing an overall configuration of a live streaming system according to Embodiment 1 of the present invention.

このライブストリーミングシステムは、コンサート中継やスポーツ中継などのライブコンテンツをリアルタイムで配信する画像配信システムであり、コンサート等の映像や音声を記録して、ビデオデータとオーディオデータとを符号化および多重化するエンコーダ10と、エンコーダ10から多重化されたデータを取得して、蓄積させる配信サーバ20と、配信サーバ20からHTTPを用いてライブコンテンツのデータを受信するクライアント端末30とから構成される。   This live streaming system is an image distribution system that distributes live content such as concert broadcasts and sports broadcasts in real time, records video and audio of concerts, etc., and encodes and multiplexes video data and audio data. The encoder 10 includes a distribution server 20 that acquires and stores multiplexed data from the encoder 10, and a client terminal 30 that receives live content data from the distribution server 20 using HTTP.

ライブストリーミングシステムを構成するこれらの装置について、以下詳しく説明する。
図2は、クライアント端末30の構成を示すブロック図である。
クライアント端末30は、配信サーバ20からライブコンテンツを格納したMP4ファイルをリアルタイムで受信するデータ受信装置であり、具体的には、動画像再生機能付きの携帯電話機や、パーソナルコンピュータ、PDA(Personal Digital Assistant)等である。そして、このクライアント端末30は、コンテンツURL取得部301、第1リクエスト作成部302、リクエスト送信部303、レスポンス受信部304、第1レスポンス解析部305、第2リクエスト作成部306、第2レスポンス解析部307、受信データメモリ308、フラグメント受信完了判定部309、多重化データ分離部310、ヘッダ解析部311、サンプルデータ取得部312および復号表示部313を備える。
These devices constituting the live streaming system will be described in detail below.
FIG. 2 is a block diagram showing the configuration of the client terminal 30.
The client terminal 30 is a data receiving device that receives an MP4 file storing live content from the distribution server 20 in real time. Specifically, the client terminal 30 is a mobile phone with a moving image playback function, a personal computer, a PDA (Personal Digital Assistant). ) Etc. The client terminal 30 includes a content URL acquisition unit 301, a first request creation unit 302, a request transmission unit 303, a response reception unit 304, a first response analysis unit 305, a second request creation unit 306, and a second response analysis unit. 307, a received data memory 308, a fragment reception completion determination unit 309, a multiplexed data separation unit 310, a header analysis unit 311, a sample data acquisition unit 312, and a decoding display unit 313.

コンテンツURL取得部301は、ユーザが再生を所望するライブコンテンツのURL(Uniform Resource Locator)の入力を受け付けて第1リクエスト作成部302および第2リクエスト作成部306に出力する処理部である。なお、ここで、コンテンツへのアクセスのためにURLを用いているが、コンテンツにアクセスするための情報であれば、URL以外の情報であってもよい。   The content URL acquisition unit 301 is a processing unit that receives input of a URL (Uniform Resource Locator) of live content that the user desires to reproduce and outputs the input to the first request creation unit 302 and the second request creation unit 306. Here, the URL is used for accessing the content, but information other than the URL may be used as long as it is information for accessing the content.

第1リクエスト作成部302は、HTTPを用いて、MP4ファイルの初期ヘッダおよび各フラグメントのサイズ情報の取得を配信サーバに要求するサイズ情報取得リクエストのコマンドを作成する処理部である。
リクエスト送信部303は、第1リクエスト作成部302および第2リクエスト作成部306が作成したリクエストを、HTTPにより配信サーバ20に送信する通信インターフェースである。
The first request creation unit 302 is a processing unit that creates a size information acquisition request command that requests the distribution server to acquire the initial header of the MP4 file and the size information of each fragment using HTTP.
The request transmission unit 303 is a communication interface that transmits the requests created by the first request creation unit 302 and the second request creation unit 306 to the distribution server 20 by HTTP.

レスポンス受信部304は、リクエスト送信部303から送信されたリクエストに対する配信サーバ20からの返信、すなわち、レスポンスをHTTPにより受信する通信インターフェースであり、第1リクエスト作成部302が作成したリクエストに対するレスポンスを第1レスポンス解析部305に出力し、第2リクエスト作成部306が作成したリクエストに対するレスポンスを第2レスポンス解析部307に出力する。   The response reception unit 304 is a communication interface that receives a response from the distribution server 20 in response to the request transmitted from the request transmission unit 303, that is, a response by HTTP, and receives a response to the request created by the first request creation unit 302. The response to the request created by the second request creation unit 306 is outputted to the second response analysis unit 307.

第1レスポンス解析部305は、レスポンス受信部304からサイズ情報取得リクエストに対するレスポンスであるサイズ情報レスポンスを取得して、第2リクエスト作成部306に、そのレスポンスのエンティティボディに含まれる初期ヘッダおよび各フラグメントのサイズ情報と、リクエスト作成命令を出力する処理部である。また、第1レスポンス解析部305は、各フラグメントのサイズ情報をフラグメント受信完了判定部309にも出力する。   The first response analysis unit 305 acquires a size information response that is a response to the size information acquisition request from the response reception unit 304, and sends an initial header and each fragment included in the entity body of the response to the second request creation unit 306. Is a processing unit that outputs size information and a request creation instruction. The first response analysis unit 305 also outputs the size information of each fragment to the fragment reception completion determination unit 309.

第2リクエスト作成部306は、第1レスポンス解析部305から出力されるリクエスト作成命令を取得すると、第1レスポンス解析部305から出力される初期ヘッダおよび各フラグメントのサイズ情報に基づいて、ライブコンテンツを格納するMP4ファイルの初期ヘッダおよび最新のフラグメントデータの取得を配信サーバ20に要求する初期ヘッダ・フラグメント取得リクエストのコマンドを作成する処理部である。   When the second request creation unit 306 acquires the request creation command output from the first response analysis unit 305, the second request creation unit 306 generates live content based on the initial header output from the first response analysis unit 305 and the size information of each fragment. It is a processing unit for creating an initial header / fragment acquisition request command for requesting the distribution server 20 to acquire the initial header and latest fragment data of the MP4 file to be stored.

第2レスポンス解析部307は、レスポンス受信部304から初期ヘッダ・フラグメント取得リクエストに対するレスポンスである初期ヘッダ・フラグメントレスポンスを取得して、そのレスポンスのエンティティボディに含まれる初期ヘッダや最新フラグメントのデータ、および以降のフラグメントデータを受信データメモリ308に蓄積させる処理部である。なお、ここでは、初期ヘッダや最新フラグメントのデータは、レスポンスのエンティティボディに含まれることとしているが、エンティティボディに限られず、レスポンスの一部として含まれていればよい。   The second response analysis unit 307 acquires an initial header / fragment response that is a response to the initial header / fragment acquisition request from the response reception unit 304, and includes the initial header and latest fragment data included in the entity body of the response, and The processing unit accumulates subsequent fragment data in the reception data memory 308. Here, the initial header data and the latest fragment data are included in the entity body of the response, but are not limited to the entity body and may be included as a part of the response.

受信データメモリ308は、受信した初期ヘッダやフラグメントデータを一時的に保持するキャッシュメモリやRAM(Random Access Memory)等である。
フラグメント受信完了判定部309は、第1レスポンス解析部305から取得した初期ヘッダおよびフラグメントのサイズ情報に基づいて、受信データメモリ308をチェックして初期ヘッダおよびフラグメントデータの受信が完了したか否かを判定する処理部であり、初期ヘッダおよびフラグメントデータの受信完了を判定すると、多重化データ分離部310に初期ヘッダおよびフラグメントデータの受信完了を知らせる情報と、そのサイズ情報とを含むフラグメント受信完了信号を出力する。なお、ここで、フラグメント受信完了判定部309は、フラグメントデータを構成するmoofおよびmdatのヘッダに含まれるサイズ情報や、別途フラグメントに格納されたフラグメントのサイズ情報などを用いたり、そのフラグメントデータの次のフラグメントデータの受信開始を検知したりすることによって、フラグメントデータの受信完了を判定することとしてもよい。
The reception data memory 308 is a cache memory, a RAM (Random Access Memory) or the like that temporarily stores the received initial header or fragment data.
The fragment reception completion determination unit 309 checks the reception data memory 308 based on the initial header and fragment size information acquired from the first response analysis unit 305 to determine whether reception of the initial header and fragment data has been completed. When determining that the reception of the initial header and fragment data has been completed, the processing unit determines that a fragment reception completion signal including information that informs the multiplexed data separation unit 310 of the completion of reception of the initial header and fragment data and the size information thereof. Output. Here, the fragment reception completion determination unit 309 uses the size information included in the headers of moof and mdat constituting the fragment data, the size information of the fragment stored separately in the fragment, and the like. It may be possible to determine the completion of reception of fragment data by detecting the start of reception of the fragment data.

多重化データ分離部310は、フラグメント受信完了判定部309からフラグメント受信完了信号を取得すると、サイズ情報に基づいて受信データメモリ308から受信が完了した初期ヘッダとフラグメントデータとを読み出して逆多重化する処理部である。なお、ここで、多重化データ分離部310は、フラグメントデータの全てを受信していなくても、moofと、mdatの先頭部分とを受信すれば再生を開始することとしてもよい。この場合、フラグメント受信完了判定部309で、予め定められた再生時間長分、あるいは、サイズ分のサンプルデータの受信完了等を基準として、mdatのデータをどれだけ受信すれば復号および再生処理を開始するかを決定しておき、そのルールに従って多重化データ分離部310にフラグメント受信完了信号を出力することになる。   When the multiplexed data separation unit 310 obtains the fragment reception completion signal from the fragment reception completion determination unit 309, the multiplexed data separation unit 310 reads the demultiplexed initial header and fragment data from the reception data memory 308 based on the size information. It is a processing unit. Here, even if the multiplexed data separation unit 310 has not received all of the fragment data, the multiplexed data separation unit 310 may start reproduction if it receives the moof and the head portion of the mdat. In this case, the fragment reception completion determination unit 309 starts decoding and reproduction processing when how much mdat data is received with reference to completion of reception of sample data for a predetermined reproduction time length or size. In accordance with the rule, a fragment reception completion signal is output to the multiplexed data separation unit 310.

ヘッダ解析部311は、多重化データ分離部310によって逆多重化された初期ヘッダとフラグメントデータのうちヘッダ部分(moof)とを解析して、メディアデータの符号化レートやコンテンツの再生時間長等、メディアデータの解析に必要なメディア情報を取得する処理部である。
サンプル取得部312は、ヘッダ解析部311からサンプルのサイズや受信データメモリ308におけるサンプルの格納位置を取得して、取得した情報に基づいてサンプルの実体データ(サンプルデータ)を読み出して、復号表示部313に出力する処理部である。
The header analysis unit 311 analyzes the initial header demultiplexed by the multiplexed data demultiplexing unit 310 and the header portion (moof) of the fragment data, and the media data encoding rate, content playback time length, etc. It is a processing unit that acquires media information necessary for analyzing media data.
The sample acquisition unit 312 acquires the sample size and the storage position of the sample in the reception data memory 308 from the header analysis unit 311, reads sample substance data (sample data) based on the acquired information, and decodes the display unit 313 to output to 313.

復号表示部313は、ヘッダ解析部311が出力するサンプルの再生時間を取得し、その再生時間に従って、サンプル取得部312が出力するサンプルデータを復号化して、データを再生しディスプレイ等の表示装置に出力する処理部である。
図3は、配信サーバ20の構成を示すブロック図である。
配信サーバ20は、エンコーダ10から取得した多重化データを蓄積させ、クライアント端末30からのリクエストに応じて、ライブコンテンツを格納したMP4ファイルをリアルタイムでクライアント端末30に送信するデータ送信装置であり、具体的には、Webサーバ装置等である。そして、この配信サーバ20は、多重化データ受信部201、多重化データ蓄積部202、リクエスト受信部203、リクエスト解析部204、サイズ情報取得部205、送信データ制御部206、送信データメモリ207およびレスポンス送信部208を備える。
The decoding display unit 313 acquires the reproduction time of the sample output from the header analysis unit 311, decodes the sample data output from the sample acquisition unit 312 according to the reproduction time, reproduces the data, and displays the data on a display device such as a display. It is a processing part to output.
FIG. 3 is a block diagram illustrating a configuration of the distribution server 20.
The distribution server 20 is a data transmission device that accumulates multiplexed data acquired from the encoder 10 and transmits an MP4 file storing live content to the client terminal 30 in real time in response to a request from the client terminal 30. Specifically, it is a Web server device or the like. The distribution server 20 includes a multiplexed data reception unit 201, a multiplexed data storage unit 202, a request reception unit 203, a request analysis unit 204, a size information acquisition unit 205, a transmission data control unit 206, a transmission data memory 207, and a response. A transmission unit 208 is provided.

多重化データ受信部201は、エンコーダ10から多重化データを取得する通信インターフェースであり、取得した多重化データを順次、多重化データ蓄積部202に蓄積させる。
多重化データ蓄積部202は、多重化データ受信部201が受信した多重化データを一時的に保持するキャッシュメモリやRAM等である。
The multiplexed data receiving unit 201 is a communication interface that acquires multiplexed data from the encoder 10, and stores the acquired multiplexed data in the multiplexed data storage unit 202 sequentially.
The multiplexed data storage unit 202 is a cache memory or RAM that temporarily holds the multiplexed data received by the multiplexed data receiving unit 201.

リクエスト受信部203は、クライアント端末30から送信されたリクエストをHTTPにより受信する通信インターフェースであり、受信したリクエストをリクエスト解析部204に出力する。
リクエスト解析部204は、リクエスト受信部203から出力されたリクエストを解析する処理部であり、サイズ情報取得リクエストを解析すると、初期ヘッダと各フラグメントデータのサイズ情報の取得を指示するサイズ情報取得指示をサイズ情報取得部205に出力し、初期ヘッダ・フラグメント取得リクエストを解析すると、リクエスト中で指定されたデータの送信開始を指示する送信開始指示を送信データ制御部206に出力する。また、リクエスト解析部204は、クライアント端末30から送信された接続の終了を要求する接続終了リクエストをリクエスト受信部203を介して取得し解析すると、接続を終了する旨のレスポンスの送信指示(接続終了指示)をレスポンス送信部208に出力する。
The request reception unit 203 is a communication interface that receives a request transmitted from the client terminal 30 by HTTP, and outputs the received request to the request analysis unit 204.
The request analysis unit 204 is a processing unit that analyzes the request output from the request reception unit 203. When the size information acquisition request is analyzed, the request analysis unit 204 generates a size information acquisition instruction that instructs acquisition of the size information of the initial header and each fragment data. When output to the size information acquisition unit 205 and the initial header / fragment acquisition request are analyzed, a transmission start instruction for instructing transmission start of data specified in the request is output to the transmission data control unit 206. In addition, when the request analysis unit 204 acquires and analyzes the connection termination request transmitted from the client terminal 30 via the request reception unit 203, the request analysis unit 204 transmits a response transmission instruction (connection termination). (Instruction) is output to the response transmission unit 208.

サイズ情報取得部205は、リクエスト解析部204から出力されるサイズ情報取得指示に基づいて、多重化データ蓄積部202に保持されている初期ヘッダおよびフラグメントデータを読み出して、それらのサイズ情報を取得する処理部であり、取得したサイズ情報、すなわち、初期ヘッダサイズおよびフラグメントサイズを送信データ制御部206に出力する。   Based on the size information acquisition instruction output from the request analysis unit 204, the size information acquisition unit 205 reads the initial header and fragment data held in the multiplexed data storage unit 202 and acquires the size information. The processing unit outputs the acquired size information, that is, the initial header size and the fragment size to the transmission data control unit 206.

送信データ制御部206は、リクエスト解析部204から出力される送信開始指示に基づいて、送信するデータをHTTPの送信単位であるchunk(チャンク)毎にまとめる処理部である。送信データ制御部206は、リクエスト解析部204から出力される送信開始指示がサイズ情報取得リクエストに基づくものである場合には、サイズ情報取得部205から出力されるサイズ情報を1chunkにまとめて送信するデータを送信データメモリ207に蓄積させ、レスポンス送信部208にそのchunkの送信を指示するchunkデータ送信指示を出力する。また、リクエスト解析部204から出力される送信開始指示が初期ヘッダ・フラグメント取得リクエストに基づくものである場合には、多重化データ蓄積部202に保持されている初期ヘッダやフラグメントデータを読み出して、1chunkにまとめて送信データを送信データメモリ207に蓄積させ、レスポンス送信部208にそのchunkの送信を指示するchunkデータ送信指示を出力する。なお、初期ヘッダおよびフラグメントデータについては、送信データメモリ207を介さずに、多重化データ蓄積部202から、直接レスポンス送信部208に入力することとしてもよい。   The transmission data control unit 206 is a processing unit that collects data to be transmitted for each chunk that is an HTTP transmission unit based on the transmission start instruction output from the request analysis unit 204. When the transmission start instruction output from the request analysis unit 204 is based on the size information acquisition request, the transmission data control unit 206 transmits the size information output from the size information acquisition unit 205 in one chunk. Data is stored in the transmission data memory 207, and a chunk data transmission instruction for instructing the transmission of the chunk is output to the response transmission unit 208. If the transmission start instruction output from the request analysis unit 204 is based on an initial header / fragment acquisition request, the initial header and fragment data held in the multiplexed data storage unit 202 are read out and 1 chunk is read out. The transmission data is accumulated in the transmission data memory 207, and a chunk data transmission instruction for instructing the transmission of the chunk is output to the response transmission unit 208. The initial header and fragment data may be directly input from the multiplexed data storage unit 202 to the response transmission unit 208 without going through the transmission data memory 207.

ここで、1chunkに複数のフラグメントデータを格納する、あるいは、1つのフラグメントデータを分割して複数のchunkに格納することも可能であるが、1フラグメントを複数のchunkに格納するとオーバーヘッドが増加しうるので、1chunkに1つのフラグメントデータを格納するのが望ましい。また、初期ヘッダとフラグメントデータとを同時に取得を求める初期ヘッダ・フラグメント取得リクエストに対しては、1chunkに初期ヘッダとフラグメントデータとを含めてもよいし、1chunkに初期ヘッダを含めて、他の1chunkにフラグメントデータを含めることとしてもよい。   Here, a plurality of fragment data can be stored in one chunk, or one fragment data can be divided and stored in a plurality of chunks, but if one fragment is stored in a plurality of chunks, the overhead can be increased. Therefore, it is desirable to store one fragment data in one chunk. In addition, for an initial header / fragment acquisition request for acquiring an initial header and fragment data at the same time, the initial header and fragment data may be included in 1 chunk, or the initial header is included in 1 chunk and another 1 chunk is included. It is good also as including fragment data in.

送信データメモリ207は、送信データ制御部206から出力される送信データを一時的に保持するキャッシュメモリやRAM等である。
レスポンス送信部208は、送信データ制御部206から出力されるchunkデータ送信指示に基づいて、送信データメモリ207に保持されている送信データを読み出し、その送信データをエンティティボディに含むレスポンスをHTTPによりクライアント端末30に送信する通信インターフェースである。また、レスポンス送信部208は、リクエスト解析部204から出力される接続終了指示を取得すると、接続の終了を示すレスポンスをHTTPによりクライアント端末30に送信する。
The transmission data memory 207 is a cache memory, a RAM, or the like that temporarily stores transmission data output from the transmission data control unit 206.
The response transmission unit 208 reads the transmission data held in the transmission data memory 207 based on the chunk data transmission instruction output from the transmission data control unit 206, and sends a response including the transmission data in the entity body to the client by HTTP. It is a communication interface that transmits to the terminal 30. In addition, when the response transmission unit 208 acquires the connection end instruction output from the request analysis unit 204, the response transmission unit 208 transmits a response indicating the end of connection to the client terminal 30 using HTTP.

図4は、エンコーダ10の構成を示すブロック図である。
エンコーダ10は、コンサート等の映像や音声を記録して、ビデオデータとオーディオデータとを符号化および多重化する多重化装置であり、具体的には、デジタルビデオカメラ等である。そして、このエンコーダ10は、ビデオ符号化部101、ビデオデータ蓄積部102、オーディオ符号化部103、オーディオデータ蓄積部104、パケット作成命令部105、パケットヘッダ作成部106、パケットサイズ判定部107、サイズ調整部108、パケットデータ作成部109およびパケット結合部110を備える。
FIG. 4 is a block diagram showing the configuration of the encoder 10.
The encoder 10 is a multiplexing device that records video and audio of a concert or the like, and encodes and multiplexes video data and audio data. Specifically, the encoder 10 is a digital video camera or the like. The encoder 10 includes a video encoding unit 101, a video data storage unit 102, an audio encoding unit 103, an audio data storage unit 104, a packet creation command unit 105, a packet header creation unit 106, a packet size determination unit 107, a size An adjustment unit 108, a packet data creation unit 109, and a packet combination unit 110 are provided.

ビデオ符号化部101は、ビデオデータを取り込んで、MPEG−4 Visual等の符号化方式により符号化する処理部であり、符号化したビデオデータを順次、ビデオデータ蓄積部102に蓄積させる。このビデオ符号化部101は、全てのフラグメントのサイズが予め設定されている設定フラグメントサイズと等しくなるように、単位時間当たりの最大データ量が予め設定されている範囲以下となるように符号化を行なう。具体的には、フラグメントの時間長が2sであり、ビットレートが64000bpsである場合には、0s−2s、2s−4s、4s−6s・・・の各フラグメントのデータ量が、128000bit(2×64000)以下となるように符号化を行なう。   The video encoding unit 101 is a processing unit that takes in video data and encodes it using an encoding method such as MPEG-4 Visual, and causes the video data storage unit 102 to sequentially store the encoded video data. The video encoding unit 101 performs encoding so that the maximum data amount per unit time is equal to or less than a preset range so that the size of all fragments is equal to the preset fragment size. Do. Specifically, when the fragment time length is 2 s and the bit rate is 64000 bps, the data amount of each fragment of 0 s-2 s, 2 s -4 s, 4 s -6 s... Is 128000 bits (2 × 64000) or less.

ビデオデータ蓄積部102は、符号化後のビデオデータを一時的に保持するキャッシュメモリやRAM等である。
オーディオ符号化部103は、オーディオデータを取り込んで、MPEG−4 AAC等の符号化方式により符号化する処理部であり、符号化したオーディオデータを順次、オーディオデータ蓄積部104に蓄積させる。このオーディオ符号化部103もビデオ符号化部101と同様に、全てのフラグメントのサイズが設定フラグメントサイズと等しくなるように、単位時間当たりの最大データ量が予め設定されている範囲以下となるように符号化を行なう。ここで、ビデオおよびオーディオフラグメントにおける設定フラグメントサイズ決定時には、まず、ビデオおよびオーディオのフレームレートが一定であるか、また、オーディオのサンプルサイズが一定であるか等に基づいて、作成されるmoofのサイズを見積もる。そして、mdatのサイズについては、ビデオおよびオーディオのビットレートから見積もり、moofとmdatのサイズの和を設定フラグメントとする。なお、見積もられたmoofとmdatのサイズ和よりも大きいサイズを、設定フラグメントサイズとしてもよい。
The video data storage unit 102 is a cache memory, a RAM, or the like that temporarily stores the encoded video data.
The audio encoding unit 103 is a processing unit that takes in audio data and encodes it using an encoding method such as MPEG-4 AAC. The audio encoding unit 103 sequentially stores the encoded audio data in the audio data storage unit 104. Similarly to the video encoding unit 101, the audio encoding unit 103 also has a maximum data amount per unit time that is equal to or less than a preset range so that the size of all fragments is equal to the set fragment size. Encoding is performed. Here, when determining the set fragment size in video and audio fragments, first, the size of the moof created based on whether the video and audio frame rates are constant and whether the audio sample size is constant, etc. Estimate. The size of mdat is estimated from the video and audio bit rates, and the sum of the sizes of moof and mdat is set as a setting fragment. A size larger than the estimated sum of sizes of moof and mdat may be set as the set fragment size.

オーディオデータ蓄積部104は、符号化後のオーディオデータを一時的に保持するキャッシュメモリやRAM等である。
パケット作成命令部105は、予め定められたフラグメントの時間長に基づいて、ビデオデータ蓄積部102とオーディオデータ蓄積部104とをチェックして、その時間長分のビデオデータおよびオーディオデータの符号化が完了したか否かを判定する処理部である。なお、符号化されたビデオデータおよびオーディオデータのサイズにより、符号化の完了を判定することとしてもよい。このパケット作成命令部105は、所定の時間長分のビデオデータおよびオーディオデータの符号化完了を判定する毎に、パケットヘッダ作成部106にパケットヘッダ部、すなわちmoofの作成を指示するパケット作成開始信号を出力する。
The audio data storage unit 104 is a cache memory, RAM, or the like that temporarily stores encoded audio data.
The packet creation command unit 105 checks the video data storage unit 102 and the audio data storage unit 104 based on a predetermined fragment time length, and encodes the video data and audio data for the time length. It is a processing unit for determining whether or not the processing has been completed. Note that the completion of encoding may be determined based on the sizes of the encoded video data and audio data. Each time the packet creation command unit 105 determines the completion of encoding of video data and audio data for a predetermined time length, the packet creation command unit 105 instructs the packet header creation unit 106 to create a packet header, that is, a moof. Is output.

パケットヘッダ作成部106は、パケット(フラグメント)のヘッダ情報が格納されるmoofを作成する処理部であり、CPUやメモリによって実現される。パケットヘッダ作成部106は、パケット作成命令部105から出力されるパケット作成開始信号を取得すると、ビデオデータ蓄積部102に保持されている符号化済みのビデオデータのヘッダ情報(ビデオヘッダ情報)を読み出し、また、オーディオデータ蓄積部104に保持されている符号化済みのオーディオデータのヘッダ情報(オーディオヘッダ情報)を読み出してmoofを作成し、パケット結合部110に出力する。なお、ビデオヘッダ情報には、ビデオサンプルのサイズ、再生時間長およびイントラフレームであるか否かを示す情報が含まれ、さらに、双方向予測を用いたビデオサンプルの場合には、復号時間と表示時間の差分情報も含まれる。そして、オーディオヘッダ情報には、オーディオサンプルのサイズおよび再生時間長を示す情報が含まれている。   The packet header creation unit 106 is a processing unit that creates a moof in which header information of a packet (fragment) is stored, and is realized by a CPU or a memory. Upon obtaining the packet creation start signal output from the packet creation command unit 105, the packet header creation unit 106 reads the header information (video header information) of the encoded video data held in the video data storage unit 102. Also, the header information (audio header information) of the encoded audio data held in the audio data storage unit 104 is read out to create a moof and output to the packet combining unit 110. Note that the video header information includes information indicating the size of the video sample, the playback time length, and whether or not the frame is an intra frame. Further, in the case of a video sample using bi-directional prediction, the decoding time and display are included. Time difference information is also included. The audio header information includes information indicating the size and playback time length of the audio sample.

また、パケットヘッダ作成部106は、フラグメントに含まれるビデオサンプルおよびオーディオサンプルの実体データが、ビデオデータ蓄積部102およびオーディオデータ蓄積部104のどこに格納されているかを示すポインタ情報や、サンプルのサイズを示すサンプルサイズ情報や、パケットデータ部(mdat)の作成を指示する信号が含まれるmdat情報をパケットデータ作成部109に出力する。   The packet header creation unit 106 also sets pointer information indicating where the actual data of the video sample and audio sample included in the fragment is stored in the video data storage unit 102 and the audio data storage unit 104, and the sample size. The mdat information including the sample size information to be shown and a signal instructing the creation of the packet data part (mdat) is output to the packet data creation part 109.

さらに、このパケットヘッダ作成部106は、moofのサイズおよびmoof内のサンプルサイズ情報からパケットデータ部(mdat)のサイズを取得し、moofとmdatのサイズの和をフラグメントサイズとして、パケットサイズ判定部107に出力する。
パケットサイズ判定部107は、パケットヘッダ作成部106から出力されるフラグメントサイズが、設定フラグメントサイズと一致するか否かを判定する処理部であり、一致していない場合には、その差分を示すサイズ差分情報をサイズ調整部108に出力する。なお、フラグメントサイズと設定フラグメントサイズとが一致している場合には、差分が0であることを示すサイズ差分情報をサイズ調整部108に出力する。
Further, the packet header creation unit 106 acquires the size of the packet data part (mdat) from the size of the moof and the sample size information in the moof, and uses the sum of the sizes of the moof and the mdat as a fragment size to determine the packet size determination unit 107. Output to.
The packet size determination unit 107 is a processing unit that determines whether or not the fragment size output from the packet header creation unit 106 matches the set fragment size. The difference information is output to the size adjustment unit 108. When the fragment size matches the set fragment size, size difference information indicating that the difference is 0 is output to the size adjustment unit 108.

サイズ調整部108は、パケットサイズ判定部107から出力されるサイズ差分情報に基づいて、全てのフラグメントのサイズを統一するためにフラグメントのサイズを調整する処理部であり、フラグメントサイズと設定フラグメントサイズとの差分を示すサイズ差分情報を取得した場合には、その差分と等しいバイトサイズのパディングデータを含むフリーボックスを作成して、作成したフリーボックスをmoofとmdatの後ろに追加する旨の指示であるフリーボックス情報とともにパケット結合部110に出力する。ここで、フリーボックスの最小サイズは8バイトであるため、設定フラグメントサイズの計算時、あるいは、ビデオデータおよびオーディオデータの符号化時に、作成されるフラグメントサイズが設定フラグメントサイズと同一、あるいは、8バイト以上小さくなるように処理する必要がある。一方、サイズ調整部108は、差分が0であることを示すサイズ差分情報を取得した場合には、フリーボックスを作成せずに、フリーボックスの追加が発生しないことを示すフリーボックス情報をパケット結合部110に出力する。   The size adjustment unit 108 is a processing unit that adjusts the size of fragments in order to unify the sizes of all fragments based on the size difference information output from the packet size determination unit 107. The size adjustment unit 108 Is an instruction to create a free box including padding data having a byte size equal to the difference, and add the created free box after moof and mdat. It is output to the packet combining unit 110 together with the free box information. Here, since the minimum size of the free box is 8 bytes, the generated fragment size is the same as the set fragment size or 8 bytes when calculating the set fragment size or encoding video data and audio data. It is necessary to process so as to be smaller. On the other hand, when the size adjustment unit 108 acquires the size difference information indicating that the difference is 0, the size adjustment unit 108 does not create a free box and combines the free box information indicating that no free box is added. Output to the unit 110.

パケットデータ作成部109は、フラグメントの実体データが格納されるmdatを作成する処理部であり、CPUやメモリによって実現される。
このパケットデータ作成部109は、パケットヘッダ作成部106からmdat情報を取得すると、mdat情報に含まれるポインタ情報とサンプルサイズ情報とに基づいて、ビデオデータ蓄積部102からフラグメントに含まれるビデオサンプルの実体データ(ビデオフラグメントデータ)を読み出し、オーディオデータ蓄積部104からフラグメントに含まれるオーディオサンプルの実体データ(オーディオフラグメントデータ)を読み出してmdatを作成し、パケット結合部114に出力する。
The packet data creation unit 109 is a processing unit that creates mdat in which fragment entity data is stored, and is realized by a CPU or a memory.
When the packet data creation unit 109 acquires the mdat information from the packet header creation unit 106, the packet data creation unit 109 sends the actual video sample contained in the fragment from the video data storage unit 102 based on the pointer information and the sample size information included in the mdat information. Data (video fragment data) is read out, audio data entity data (audio fragment data) included in the fragment is read out from the audio data storage unit 104 to create mdat, and is output to the packet combining unit 114.

パケット結合部110は、moofとmdatとを結合させて、または、moofとmdatを結合させた後ろにフリーボックスを追加して、フラグメントを作成する処理部であり、CPUやメモリによって実現される。このパケット結合部114は、パケットヘッダ作成部106からmoofを取得し、パケットデータ作成部109からmdatを取得して、moofとmdatとを結合させる。ここで、パケット結合部110は、サイズ調整部108からフリーボックスを追加する旨のフリーボックス情報を取得すると、サイズ調整部109からフリーボックスを取得して、moofとmdatの後ろに追加してフラグメントを作成する。一方、パケット結合部110は、フリーボックスの追加が発生しないことを示すフリーボックス情報を取得すると、結合させたmoofとmdatとをフラグメントとして取り扱う。そして、パケット結合部110は、このようにして作成したフラグメントを多重化データとして、順次配信サーバ20に転送する。なお、ここで、フリーボックスは、moofとmdatの間に挟んで、あるいは、moofの前に配置することとしてもよい。   The packet combining unit 110 is a processing unit that creates a fragment by combining moof and mdat or adding a free box after combining moof and mdat, and is realized by a CPU or a memory. The packet combining unit 114 acquires moof from the packet header generating unit 106, acquires mdat from the packet data generating unit 109, and combines moof and mdat. Here, when the packet combining unit 110 acquires the free box information indicating that the free box is added from the size adjusting unit 108, the packet combining unit 110 acquires the free box from the size adjusting unit 109 and adds the free box after the moof and mdat to fragment. Create On the other hand, when the packet combining unit 110 acquires free box information indicating that free box addition does not occur, the packet combining unit 110 handles the combined moof and mdat as fragments. Then, the packet combining unit 110 sequentially transfers the fragments created in this way to the distribution server 20 as multiplexed data. Here, the free box may be placed between moof and mdat or arranged in front of moof.

このような構成を備えた各装置は、ライブストリーミングシステムにおいて次のように動作する。
図5は、ライブストリーミングシステムにおける各装置間の通信シーケンス図である。
まず、エンコーダ10は、ライブコンテンツの録画を開始するにあたって、初期ヘッダを作成し(S10)、作成した初期ヘッダを配信サーバ20に転送する(S12)。
Each device having such a configuration operates as follows in the live streaming system.
FIG. 5 is a communication sequence diagram between devices in the live streaming system.
First, the encoder 10 creates an initial header when starting to record live content (S10), and transfers the created initial header to the distribution server 20 (S12).

初期ヘッダを配信サーバ20に転送すると、エンコーダ10は、ライブコンテンツを構成するビデオデータとオーディオデータとを取得して(S14)、符号化処理を開始する(S16)。
エンコーダ10は、所定のデータ量のビデオデータおよびオーディオデータの符号化を終えると、多重化して最初のフラグメント1を作成して、配信サーバ20に転送する(S18)。その後、エンコーダ10は、所定のデータ量のビデオデータおよびオーディオデータの符号化を終える度に、多重化してフラグメント2、フラグメント3というように、順次作成したフラグメントを配信サーバ20に転送する。
When the initial header is transferred to the distribution server 20, the encoder 10 acquires video data and audio data constituting the live content (S14), and starts the encoding process (S16).
When the encoding of video data and audio data of a predetermined data amount is completed, the encoder 10 multiplexes to create the first fragment 1 and transfers it to the distribution server 20 (S18). Thereafter, every time encoding of video data and audio data with a predetermined amount of data is completed, the encoder 10 multiplexes and transfers the sequentially generated fragments such as fragment 2 and fragment 3 to the distribution server 20.

ここで、クライアント端末30に、ユーザからのライブコンテンツのURLの入力があると、クライアント端末30は、サイズ情報取得リクエストを作成して(S20)、配信サーバ20にHTTPにより送信する(S22)。
配信サーバ20は、サイズ情報取得リクエストを受信すると、そのリクエストに対するレスポンスのエンティティボディにサイズ情報を含めてクライアント端末30にHTTPにより送信する(S24)。
Here, when the URL of the live content is input from the user to the client terminal 30, the client terminal 30 creates a size information acquisition request (S20) and transmits it to the distribution server 20 by HTTP (S22).
Upon receiving the size information acquisition request, the distribution server 20 includes the size information in the entity body of the response to the request and transmits it to the client terminal 30 by HTTP (S24).

続いて、クライアント端末30は、受信したレスポンスのエンティティボディに含まれるサイズ情報を参照して、初期ヘッダおよび最新のフラグメントの取得を要求するリクエストを作成し(S26)、作成した初期ヘッダ・最新フラグメント取得リクエストを配信サーバ20に送信する(S28)。
配信サーバ20は、初期ヘッダ・最新フラグメント取得リクエストを受信すると、送信可能な最新のフラグメントを判定する(S30)。本図では、送信可能となっている、すなわち、配信サーバ30に蓄積されている最新のフラグメントは、フラグメントNであることから、配信サーバ30は、初期ヘッダ・最新フラグメント取得リクエストに対するレスポンスのエンティティボディに初期ヘッダとフラグメントNとを含めてクライアント端末30に送信する(S32)。
Subsequently, the client terminal 30 refers to the size information included in the entity body of the received response, creates a request for obtaining the initial header and the latest fragment (S26), and creates the created initial header / latest fragment. An acquisition request is transmitted to the distribution server 20 (S28).
When receiving the initial header / latest fragment acquisition request, the distribution server 20 determines the latest transmittable fragment (S30). In this figure, since the latest fragment that can be transmitted, that is, the latest fragment accumulated in the distribution server 30 is the fragment N, the distribution server 30 is the entity body of the response to the initial header / latest fragment acquisition request. The initial header and the fragment N are transmitted to the client terminal 30 (S32).

そして、クライアント端末30は、受信した初期ヘッダとフラグメントNに含まれるmoofとを解析して、フラグメントNのmdatに格納されている実体データを逆多重化して、ディスプレイ等の表示装置に再生出力する(S34)。
その後、MP4ファイルを構成する最後のフラグメントに至るまで、配信サーバ20は、エンコーダ10から、フラグメント(N+1)、フラグメント(N+2)というように順次転送されるフラグメントをクライアント端末30にHTTPを用いて送信し、クライアント端末30は、受信したフラグメントを再生出力して、ライブコンテンツのストリーミング再生を行なう。
Then, the client terminal 30 analyzes the received initial header and the moof included in the fragment N, demultiplexes the entity data stored in the mdat of the fragment N, and reproduces and outputs it to a display device such as a display. (S34).
Thereafter, the distribution server 20 transmits fragments sequentially transferred from the encoder 10 such as fragment (N + 1) and fragment (N + 2) to the client terminal 30 using HTTP until the last fragment constituting the MP4 file is reached. Then, the client terminal 30 reproduces and outputs the received fragment and performs streaming reproduction of the live content.

ここで、配信サーバ20とクライアント端末30間のHTTPを用いたリクエストおよびレスポンスの送受信について説明する。
図6は、HTTPを用いた配信サーバ20とクライアント端末30間の通信シーケンスの第1例を示す図である。
まず、クライアント端末30は、サイズ情報取得リクエストを配信サーバ20に送信する(S40)。ここで送信されるサイズ情報取得リクエストには、リクエストがデータの取得を要求するものであることを示すメソッド(GET)と、取得要求の対象となるファイルのURL(http://…/….mp4)と、サイズ情報の取得であることを示すHTTPの拡張部(&size#1 &size#2)と、HTTPのバージョン(HTTP/1.1)とが含まれている。
Here, transmission and reception of requests and responses using HTTP between the distribution server 20 and the client terminal 30 will be described.
FIG. 6 is a diagram illustrating a first example of a communication sequence between the distribution server 20 and the client terminal 30 using HTTP.
First, the client terminal 30 transmits a size information acquisition request to the distribution server 20 (S40). The size information acquisition request transmitted here includes a method (GET) indicating that the request is for requesting acquisition of data, and the URL (http: //.../. mp4), an HTTP extension (& size # 1 & size # 2) indicating that size information is to be acquired, and an HTTP version (HTTP / 1.1).

配信サーバ20は、サイズ情報取得リクエストを受信すると、リクエストが成功したことをクライアント端末30に通知するレスポンスをクライアント端末30に送信する(S42)。ここで送信されるレスポンスには、HTTPのバージョン(HTTP/1.1)と、リクエストの成功を示すステータスコード(200)と、そのステータスコードの意味(OK)とが含まれている。   When receiving the size information acquisition request, the distribution server 20 transmits a response for notifying the client terminal 30 that the request has been successful to the client terminal 30 (S42). The response transmitted here includes the HTTP version (HTTP / 1.1), the status code (200) indicating the success of the request, and the meaning (OK) of the status code.

そして、リクエストの成功をクライアント端末30に通知するレスポンスを送信した後、配信サーバ20は、エンティティボディに初期ヘッダのサイズ情報と、1フラグメントのサイズ情報とを含めたレスポンスをクライアント端末30に送信する(S44)。
クライアント端末30は、初期ヘッダおよびフラグメントのサイズ情報を取得すると、そのサイズ情報に基づいて、初期ヘッダ・最新フラグメント取得リクエストを配信サーバ20に送信する(S46)。ここで送信される初期ヘッダ・最新フラグメント取得リクエストには、先に述べたサイズ情報取得リクエストと同様に、メソッド(GET)、URL(http://…/….mp4)およびHTTPバージョン(HTTP/1.1)に加えて、リクエストヘッダフィールドが含まれており、このリクエストヘッダフィールドにデータの取得範囲(:Range byte=0-999,-15000)が記述されている。本図では、初期ヘッダのサイズが1000バイトであり、1フラグメントのサイズが15000バイトである場合の初期ヘッダ・最新フラグメント取得リクエストを示している。ここで、"−15000"としているのは、ファイルの終端から、15000バイト分、遡った位置にあるデータの取得を意味している。また、本実施の形態1のエンコーダ10では、サイズが一定となるように各フラグメントは生成されているので、一旦受信を中断した後に、同一のコンテンツの受信を再開する際などにも、各フラグメントのサイズ情報を取得するためのリクエストおよびレスポンスの送受信を行なう必要がない。なお、フラグメントのサイズ情報を取得する代わりに、最新フラグメントのファイル先頭からのバイト位置を取得することとしてもよい。このとき、最新フラグメント取得リクエストにおいては、取得したバイト位置のフラグメントデータから送信開始することを要求する。ただし、受信中断後に同一コンテンツの受信を再開する際などには、毎回バイト位置情報が必要となる。
Then, after transmitting a response for notifying the client terminal 30 of the success of the request, the distribution server 20 transmits a response including the size information of the initial header and the size information of one fragment to the client terminal 30 in the entity body. (S44).
Upon acquiring the initial header and fragment size information, the client terminal 30 transmits an initial header / latest fragment acquisition request to the distribution server 20 based on the size information (S46). In the initial header / latest fragment acquisition request transmitted here, the method (GET), URL (http: //.../....mp4), and HTTP version (HTTP / In addition to 1.1), a request header field is included, and a data acquisition range (: Range byte = 0-999, -15000) is described in the request header field. This figure shows an initial header / latest fragment acquisition request when the size of the initial header is 1000 bytes and the size of one fragment is 15000 bytes. Here, “−15000” means acquisition of data located 15000 bytes back from the end of the file. In the encoder 10 according to the first embodiment, since each fragment is generated so that the size is constant, each fragment is also used when the reception of the same content is resumed after the reception is temporarily stopped. There is no need to send and receive requests and responses to obtain size information. Instead of obtaining the fragment size information, the byte position from the beginning of the file of the latest fragment may be obtained. At this time, in the latest fragment acquisition request, it is requested to start transmission from the fragment data at the acquired byte position. However, when resuming reception of the same content after interruption of reception, byte position information is required every time.

その後、配信サーバ20は、初期ヘッダ・最新フラグメント取得リクエストを受信すると、サイズ情報取得リクエストの場合と同様に、リクエストが成功したことをクライアント端末30に通知するレスポンスをクライアント端末30に送信する(S48)。
そして、リクエストの成功をクライアント端末30に通知するレスポンスを送信した後、配信サーバ20は、エンティティボディに初期ヘッダと、最新のフラグメントであるフラグメントNとを含めたレスポンスをクライアント端末30に送信し(S50)、送信の中断を要求するリクエストの受信、あるいは、クライアント端末30の電波受信状況が悪化して配信サーバ20との接続が切断されること等がない限り、MP4ファイルの終端のフラグメントに至るまで、フラグメントの送信を続ける(S52)。このとき、配信サーバ20は、送信データを任意の大きさのchunkに分け、そのchunkの大きさが記述されたヘッダをつけて送信するchunk形式エンコーディング方式により、初期ヘッダやフラグメントデータをクライアント端末30に送信する。なお、このchunk形式エンコーディング方式では、chunkサイズが0であるchunkを送信することによって、配信サーバ20は、送信が終了したことをクライアント端末30にシグナリングする。
Thereafter, when receiving the initial header / latest fragment acquisition request, the distribution server 20 transmits a response notifying the client terminal 30 that the request has been successful to the client terminal 30 as in the case of the size information acquisition request (S48). ).
Then, after transmitting a response notifying the client terminal 30 of the success of the request, the distribution server 20 transmits a response including an initial header and the latest fragment N in the entity body to the client terminal 30 ( S50), as long as there is no reception of a request for requesting interruption of transmission or disconnection of the connection with the distribution server 20 due to deterioration of the radio wave reception status of the client terminal 30, the end fragment of the MP4 file is reached. Until then, the fragment transmission is continued (S52). At this time, the distribution server 20 divides the transmission data into chunks having an arbitrary size, and transmits the initial header and fragment data to the client terminal 30 by a chunk format encoding method in which a header describing the size of the chunk is attached. Send to. In this chunk format encoding method, the delivery server 20 signals the client terminal 30 that the transmission has been completed by sending a chunk with a chunk size of 0.

このように本実施の形態1に係るライブストリーミングシステムによれば、ライブコンテンツの途中からストリーミング再生を開始する場合であっても、クライアント端末30は、初期ヘッダと、ライブコンテンツの最新部分のデータを含むフラグメントから受信を開始することができるので、ライブコンテンツを、実時間に対して低遅延で受信してリアルタイムで再生することができるようになる。   As described above, according to the live streaming system according to the first embodiment, even when streaming playback is started in the middle of live content, the client terminal 30 receives the initial header and the latest data of the live content. Since reception can be started from the included fragment, the live content can be received and reproduced in real time with a low delay relative to real time.

ここで、ライブコンテンツの最新部分のデータを含むフラグメント、すなわち、最新フラグメントとは、厳密に最新のものである必要はなく、例えば、最新フラグメントの1つ前、或いは、2つ前のフラグメント等を意味するものであってもよい。
また、上記実施の形態1では、クライアント端末30は、配信サーバ20から初期ヘッダおよびフラグメントのサイズ情報を取得し、そのサイズ情報に基づいて、初期ヘッダおよび最新フラグメントを取得するためのリクエストを送信することとしているが、サイズ情報の取得を要求するリクエストを行なうことなく、初期ヘッダと最新フラグメントを取得することとしてもよい。
Here, the fragment including the data of the latest part of the live content, that is, the latest fragment does not need to be strictly the latest, for example, the fragment before the latest fragment or the fragment two before It may mean something.
In the first embodiment, the client terminal 30 acquires the initial header and fragment size information from the distribution server 20, and transmits a request for acquiring the initial header and the latest fragment based on the size information. However, the initial header and the latest fragment may be acquired without making a request for acquiring the size information.

このような場合における配信サーバ20とクライアント端末30間のHTTPを用いたリクエストおよびレスポンスの送受信は、以下のようになる。
図7は、HTTPを用いた配信サーバとクライアント端末間の通信シーケンスの第2例を示す図である。
まず、クライアント端末30は、初期ヘッダを取得するためのリクエストを配信サーバ20に送信する(S60)。ここで送信されるリクエストには、リクエストがデータの取得を要求するものであることを示すメソッド(GET)と、取得要求の対象となるファイルのURL(http://…/….mp4)と、初期ヘッダの取得要求であることを示すHTTPの拡張部(&init)と、HTTPのバージョン(HTTP/1.1)とが含まれている。
In such a case, transmission and reception of requests and responses using HTTP between the distribution server 20 and the client terminal 30 are as follows.
FIG. 7 is a diagram illustrating a second example of a communication sequence between a distribution server and a client terminal using HTTP.
First, the client terminal 30 transmits a request for acquiring an initial header to the distribution server 20 (S60). The request transmitted here includes a method (GET) indicating that the request is for requesting data acquisition, and the URL (http: //.../....mp4) of the target file for the acquisition request. , An HTTP extension (& init) indicating an initial header acquisition request, and an HTTP version (HTTP / 1.1) are included.

配信サーバ20は、この初期ヘッダ取得リクエストを受信すると、上記の場合と同様に、リクエスト成功レスポンスをクライアント端末30に送信する(S62)。
そして、配信サーバ20は、リクエスト成功レスポンスを送信した後、初期ヘッダ取得リクエストのHTTPの拡張部(&init)から、そのリクエストが初期ヘッダの取得要求であることを識別し、エンティティボディに初期ヘッダを含めたレスポンスをクライアント端末30に送信する(S64)。
When receiving the initial header acquisition request, the distribution server 20 transmits a request success response to the client terminal 30 as in the above case (S62).
Then, after transmitting the request success response, the distribution server 20 identifies that the request is an initial header acquisition request from the HTTP extension (& init) of the initial header acquisition request, and adds the initial header to the entity body. The included response is transmitted to the client terminal 30 (S64).

続いて、クライアント端末30は、最新フラグメントを取得するためのリクエストを配信サーバ20に送信する(S66)。ここで送信されるリクエストには、先に述べた初期ヘッダ取得リクエストと同様に、メソッド(GET)と、URL(http://…/….mp4)と、最新フラグメントの取得要求であることを示すHTTPの拡張部(&frag)と、HTTPバージョン(HTTP/1.1)とが含まれている。   Subsequently, the client terminal 30 transmits a request for acquiring the latest fragment to the distribution server 20 (S66). The request sent here is a method (GET), URL (http: //.../....mp4), and the latest fragment acquisition request, as in the initial header acquisition request described above. The HTTP extension (& frag) shown and the HTTP version (HTTP / 1.1) are included.

配信サーバ20は、この最新フラグメント取得リクエストを受信すると、上記の場合と同様に、リクエスト成功レスポンスをクライアント端末30に送信する(S68)。
そして、配信サーバ20は、リクエスト成功レスポンスを送信した後、最新フラグメント取得リクエストのHTTPの拡張部(&frag)から、そのリクエストが最新フラグメントの取得要求であることを識別し、エンティティボディに最新フラグメントを含めたレスポンスをクライアント端末30に送信し(S70)、送信の中断を要求するリクエストの受信等がない限り、MP4ファイルの終端のフラグメントに至るまで、フラグメントの送信を続ける(S72)。
When receiving the latest fragment acquisition request, the distribution server 20 transmits a request success response to the client terminal 30 as described above (S68).
Then, after transmitting the request success response, the distribution server 20 identifies that the request is the latest fragment acquisition request from the HTTP extension (& frag) of the latest fragment acquisition request, and adds the latest fragment to the entity body. The included response is transmitted to the client terminal 30 (S70), and the fragment transmission is continued until the fragment at the end of the MP4 file is reached unless a request for requesting the suspension of transmission is received (S72).

このように、配信サーバ20に、HTTPの拡張部を解析する機能を持たせることによって、サイズ情報の取得を要求するリクエストとそのリクエストに対するレスポンスを行なわなくても、初期ヘッダと最新フラグメントを取得することができるようになる。また、本方法では、各フラグメントのサイズを一定とすることなしに、受信中断後に再開する際などにも、サイズ情報の取得を要求するリクエストとそのリクエストに対するレスポンスを省略することができる。   In this way, by providing the distribution server 20 with the function of analyzing the HTTP extension, the initial header and the latest fragment can be acquired without performing a request for acquiring size information and performing a response to the request. Will be able to. Further, in this method, without making the size of each fragment constant, a request for obtaining size information and a response to the request can be omitted even when resuming after interruption of reception.

また、上記では、配信サーバ20には、コンテンツの先頭フラグメントから最新フラグメントまでの全てのフラグメントがMP4ファイルとして蓄積されていることとしたが、初期ヘッダおよび最新フラグメントのみを蓄積することとしてもよい。
ここで、初期ヘッダと最新フラグメントにそれぞれ異なるURLを持たせれば、初期ヘッダと最新フラグメントのURLに対してGET要求を行なうことにより、クライアント端末30はコンテンツ受信を開始することができる。また、配信サーバ20では、クライアント端末30に対してフラグメントデータの送信が開始されると、以降は最新フラグメントを順次送信することとする。この方式によれば、HTTPの拡張は不要となる。
In the above description, all the fragments from the first fragment of the content to the latest fragment are stored as MP4 files in the distribution server 20, but only the initial header and the latest fragment may be stored.
Here, if the initial header and the latest fragment have different URLs, the client terminal 30 can start content reception by making a GET request to the URL of the initial header and the latest fragment. In addition, when the distribution server 20 starts transmitting fragment data to the client terminal 30, the latest fragment is sequentially transmitted thereafter. According to this method, it is not necessary to extend HTTP.

なお、配信サーバ20においては、全てのフラグメントデータが揃った完全なMP4ファイルを別途蓄積しておき、クライアント端末30は、再送要求などを行なう際に、完全なMP4ファイルに対してデータ取得要求を行なうこととしてもよい。   The distribution server 20 separately stores a complete MP4 file including all fragment data, and the client terminal 30 makes a data acquisition request for the complete MP4 file when making a retransmission request or the like. It may be done.

(実施の形態2)
次に、本発明の実施の形態2に係るライブストリーミングシステムについて説明する。
本実施の形態2に係るライブストリーミングシステムは、大枠の構成を上記実施の形態1と同一とするが、配信サーバの構成において異なる。以下、この異なる点を中心に説明する。なお、上記実施の形態1と同一の構成要素については、同一の符号を付し、その説明を省略する。
図8は、本実施の形態2に係るライブストリーミングシステムにおける配信サーバの構成を示すブロック図である。
(Embodiment 2)
Next, a live streaming system according to Embodiment 2 of the present invention will be described.
The live streaming system according to the second embodiment has the same general configuration as that of the first embodiment, but differs in the configuration of the distribution server. Hereinafter, this difference will be mainly described. In addition, about the component same as the said Embodiment 1, the same code | symbol is attached | subjected and the description is abbreviate | omitted.
FIG. 8 is a block diagram showing a configuration of a distribution server in the live streaming system according to the second embodiment.

この配信サーバ20aは、遅延判定部211を備えており、送信データ制御部216およびレスポンス送信部218における機能の点で、上記実施の形態1における配信サーバ20と異なる。
遅延判定部211は、配信サーバ20aが、クライアント端末30からコンテンツの受信要求を受けて、クライアント端末30に向けて最初のフラグメント(ここでは、フラグメントNとしておく。)の送信を開始してからの経過時間を計測するタイマーを有しており、この経過時間と、次に送信される予定であるフラグメントの直前のフラグメントまでの再生時間長の総和(ここでは、sum_durationとしておく。)との差分値を、フラグメント送信時における遅延時間として計算する処理部である。この遅延判定部211は、レスポンス送信部218からフラグメントNの送信開始を示す送信開始信号を取得することにより、経過時間の計測を開始し、また、送信データ制御部216から随時、各フラグメントの再生時間長を取得して、実際に送信したフラグメントではなくコンテンツを格納したMP4ファイル内に含まれる全てのフラグメントの再生時間長を加算することにより、sum_durationを計算する。ここで、遅延時間の計算は、次に送信するフラグメントを決定する直前に行なうこととするが、一定の周期で遅延時間を計算することとしてもよい。
This distribution server 20a includes a delay determination unit 211, and is different from the distribution server 20 in the first embodiment in terms of functions in the transmission data control unit 216 and the response transmission unit 218.
The delay determination unit 211 receives a content reception request from the client terminal 30 and starts transmission of the first fragment (here, fragment N) to the client terminal 30. A timer for measuring the elapsed time is provided, and a difference value between the elapsed time and the sum of the reproduction time lengths up to the fragment immediately before the fragment to be transmitted next (here, sum_duration). Is a processing unit that calculates as a delay time at the time of fragment transmission. The delay determination unit 211 starts measuring elapsed time by acquiring a transmission start signal indicating the start of transmission of the fragment N from the response transmission unit 218, and reproduces each fragment from time to time from the transmission data control unit 216. Sum_duration is calculated by obtaining the time length and adding the playback time lengths of all the fragments included in the MP4 file storing the content, not the fragments that were actually transmitted. Here, the delay time is calculated immediately before determining the next fragment to be transmitted. However, the delay time may be calculated at a constant period.

そして、この遅延判定部211は、計算した遅延時間が所定の閾値以下であるか否かを判定し、所定の閾値より遅延時間が大きくなると、現在送信中のフラグメントに続く送信予定のフラグメントをスキップすることを指示するスキップ指示を送信データ制御部216に出力する。   Then, the delay determination unit 211 determines whether or not the calculated delay time is equal to or less than a predetermined threshold, and when the delay time becomes larger than the predetermined threshold, skips a fragment scheduled to be transmitted following the currently transmitted fragment. A skip instruction for instructing transmission is output to the transmission data control unit 216.

具体的には、遅延判定部211は、以下のような手順で、スキップの有無を判定する。
まず、遅延判定部211は、送信データ制御部216から各フラグメントの再生時間長を取得し、次に送信する予定のフラグメントをi番目のフラグメントであると仮定して、sum_durationを計算する。
そして、計測した経過時間からsum_durationを減算した値、すなわち、両者の差分値(遅延時間)が、所定の閾値より大きいか否かを判定する。
ここで、遅延時間が所定の閾値以下であれば、スキップを行なわないことを決定し、送信データ制御部216にスキップが発生しないことを通知する信号を出力する。
Specifically, the delay determination unit 211 determines the presence / absence of skip in the following procedure.
First, the delay determination unit 211 obtains the reproduction time length of each fragment from the transmission data control unit 216, and calculates sum_duration assuming that the fragment to be transmitted next is the i-th fragment.
Then, it is determined whether or not a value obtained by subtracting sum_duration from the measured elapsed time, that is, a difference value (delay time) between the two is greater than a predetermined threshold value.
Here, if the delay time is equal to or less than a predetermined threshold, it is determined that skipping is not performed, and a signal notifying the transmission data control unit 216 that skipping does not occur is output.

一方、遅延時間が所定の閾値より大きい場合は、送信データ制御部216からi番目のフラグメントの再生時間長を取得し、次に送信する予定のフラグメントをi+1番目のフラグメントであると仮定して、sum_durationの値を更新する。   On the other hand, if the delay time is larger than the predetermined threshold, the reproduction time length of the i-th fragment is obtained from the transmission data control unit 216, and the fragment to be transmitted next is assumed to be the i + 1-th fragment. Update the value of sum_duration.

そして、経過時間から更新されたsum_durationを減算して、遅延時間を更新し、再び、所定の閾値より大きいか否かを判定し、遅延時間が所定の閾値以下になるまで、このsum_durationの更新を繰り返す。
ここで、次に送信する予定のフラグメントをi+n番目のフラグメントと仮定した時に、遅延時間が所定の閾値以下となった場合、遅延判定部211は、i+(n−1)番目までのフラグメントをスキップする旨のスキップ指示を送信データ制御部216に出力する。
Then, the updated sum_duration is subtracted from the elapsed time, the delay time is updated, and it is determined again whether or not the sum_duration is larger than the predetermined threshold value. repeat.
Here, when it is assumed that the fragment to be transmitted next is the i + nth fragment and the delay time is equal to or less than a predetermined threshold, the delay determination unit 211 skips the i + (n−1) th fragments. A skip instruction to this effect is output to the transmission data control unit 216.

このような手順で、遅延判定部211は、スキップの有無を判定する。
なお、クライアント端末30において、受信したフラグメントの遅延時間情報を取得して配信サーバ20aに通知し、配信サーバ20aにおいては、通知された遅延時間情報に基づいてスキップを判定することとしてもよい。このとき、全フラグメントの再生時間長を一定にしておき、予め定められた規則に従って設定されたフラグメントのシーケンス番号をもとに、クライアント端末30において、sum_durationを計算する。また、フラグメントに含まれる各メディアの先頭サンプルの再生開始時間を、フラグメント内に格納する等してクライアント端末30に通知することにより、クライアント端末30でsum_durationを計算してもよい。なお、クライアント端末30における、フラグメントのデータを受信して再生する際の再生開始時間と、MP4ファイルを実時間で再生した際の当該パケットの再生開始時間との差分値に基づいていれば、上記以外の方法で遅延時間を計算することとしてもよい。
By such a procedure, the delay determination unit 211 determines whether or not there is a skip.
The client terminal 30 may acquire delay time information of the received fragment and notify the distribution server 20a, and the distribution server 20a may determine skip based on the notified delay time information. At this time, the playback time length of all fragments is kept constant, and sum_duration is calculated in the client terminal 30 based on the sequence number of the fragment set according to a predetermined rule. Also, the sum_duration may be calculated by the client terminal 30 by notifying the client terminal 30 of the playback start time of the first sample of each medium included in the fragment, for example, by storing it in the fragment. In addition, if it is based on the difference value between the reproduction start time when the client terminal 30 receives and reproduces the fragment data and the reproduction start time of the packet when the MP4 file is reproduced in real time, It is good also as calculating delay time by methods other than.

送信データ制御部216は、遅延判定部211から出力されるスキップ指示に基づいて、送信する予定であったフラグメントをスキップして、スキップ後のフラグメントを1chunkにまとめて送信データを作成し、送信データメモリ207に蓄積させる。なお、遅延判定部211からスキップが発生しないことを通知する信号を取得した場合には、スキップをせずに、送信する予定のフラグメントを1chunkにまとめて送信データを作成し、送信データメモリ207に蓄積させる。   Based on the skip instruction output from the delay determination unit 211, the transmission data control unit 216 skips the fragments that were scheduled to be transmitted, collects the skipped fragments into one chunk, creates transmission data, and transmits the transmission data. It is stored in the memory 207. When a signal notifying that skip does not occur is acquired from the delay determination unit 211, the transmission data is created by collecting the fragments to be transmitted in one chunk without skipping, and is stored in the transmission data memory 207. Accumulate.

また、送信データ制御部216は、レスポンス送信部218からchunkの送信が完了したことを示す送信完了信号を取得してから、次に送信すべきchunkデータの送信指示をレスポンス送信部218に出力する。ここで、1chunkに複数のフラグメントデータを格納し、配信サーバ20aにおいてchunk単位で送信管理を行なうとすれば、遅延時間によりスキップを判定する際の粒度が荒くなるので、上記実施の形態1と同様に、1chunkに1つのフラグメントデータを格納することによって、遅延時間によりスキップを判定する際の粒度が荒くなることを防止することができる。   Further, the transmission data control unit 216 obtains a transmission completion signal indicating that the transmission of the chunk has been completed from the response transmission unit 218, and then outputs a transmission instruction for the chunk data to be transmitted next to the response transmission unit 218. . Here, if a plurality of fragment data are stored in one chunk and transmission management is performed in units of chunks in the distribution server 20a, the granularity at the time of determining skip by the delay time becomes coarse, so that it is the same as in the first embodiment. In addition, by storing one fragment data in one chunk, it is possible to prevent the granularity when determining skip based on the delay time from becoming coarse.

このような構成を備えた配信サーバ20aを有するライブストリーミングシステムは、以下のように動作する。
図9は、実施の形態2に係るライブストリーミングシステムにおける各装置間の通信シーケンス図である。本図では、上記実施の形態1におけるサイズ情報取得リクエストの送信や、サイズ情報取得リクエストに対するレスポンス等が既に行なわれ、ライブストリーミング再生が行なわれている状況から説明する。
The live streaming system having the distribution server 20a having such a configuration operates as follows.
FIG. 9 is a communication sequence diagram between apparatuses in the live streaming system according to the second embodiment. This figure will be described from the situation in which the transmission of the size information acquisition request and the response to the size information acquisition request in the first embodiment has already been performed and the live streaming reproduction is being performed.

まず、上記実施の形態1と同様に、エンコーダ10は、ライブコンテンツを構成するビデオデータやオーディオデータを取り込んで(S100)、符号化および多重化して配信サーバ20aに順次フラグメントを転送し(S102)、配信サーバ20aは、フラグメントをクライアント端末30にHTTPを用いて送信して(S104)、クライアント端末30は、HTTPを用いて受信したフラグメントを再生出力する(S106)。   First, as in the first embodiment, the encoder 10 takes in video data and audio data constituting the live content (S100), encodes and multiplexes them, and sequentially transfers the fragments to the distribution server 20a (S102). The distribution server 20a transmits the fragment to the client terminal 30 using HTTP (S104), and the client terminal 30 reproduces and outputs the fragment received using HTTP (S106).

ここで、配信サーバ20aからクライアント端末30にフラグメントを送信する伝送路に輻輳等が生じたり、クライアント端末30の受信状況が悪化したりすると、配信サーバ20aからクライアント端末30へのフラグメントの送信時間(本図に示すdl_time)が長くなる(S108)。
この間、配信サーバ20aは、エンコーダ10から順次転送されてくるフラグメントを蓄積させていく。
Here, when congestion or the like occurs in the transmission path for transmitting fragments from the distribution server 20a to the client terminal 30 or when the reception status of the client terminal 30 deteriorates, the fragment transmission time from the distribution server 20a to the client terminal 30 ( The dl_time shown in this figure becomes longer (S108).
During this time, the distribution server 20a accumulates the fragments sequentially transferred from the encoder 10.

ここで、フラグメント(N+2)をスキップせずに送信するためには、フラグメント(N+1)の送信を、図中のdl_limitで示す時間内に完了しなければならないとする。実際には、フラグメント(N+1)の送信には、図中のdl#timeで示す時間がかかったために、フラグメント(N+2)がスキップされる。
そして、配信サーバ20aは、スキップ後の最新フラグメント(N+3)をクライアント端末30にHTTPを用いて送信し(S112)、クライアント端末30は、HTTPを用いて受信したフラグメント(N+3)を再生出力する(S114)。
Here, in order to transmit the fragment (N + 2) without skipping, it is assumed that the transmission of the fragment (N + 1) must be completed within the time indicated by dl_limit in the figure. Actually, since the transmission of the fragment (N + 1) took time indicated by dl # time in the figure, the fragment (N + 2) is skipped.
Then, the distribution server 20a transmits the skipped latest fragment (N + 3) to the client terminal 30 using HTTP (S112), and the client terminal 30 reproduces and outputs the fragment (N + 3) received using HTTP ( S114).

その後、上記実施の形態1と同様に、MP4ファイルを構成する最後のフラグメントに至るまで、配信サーバ20aは、エンコーダ10から、フラグメント(N+4)、フラグメント(N+5)というように順次転送されるフラグメントをクライアント端末30にHTTPを用いて送信し、クライアント端末30は、受信したフラグメントを再生出力して、ライブコンテンツのストリーミング再生を行なう。   Thereafter, in the same manner as in the first embodiment, until the last fragment constituting the MP4 file is reached, the distribution server 20a transmits fragments sequentially transferred from the encoder 10 such as fragment (N + 4) and fragment (N + 5). The data is transmitted to the client terminal 30 using HTTP, and the client terminal 30 reproduces and outputs the received fragment to perform streaming reproduction of the live content.

このように、本実施の形態2に係るライブストリーミングシステムによれば、ネットワークの輻輳や受信状態の悪化などによって、実時間でデータを伝送しきれず、受信端末側の受信データとライブデータとの間に時間的なギャップが発生する場合であっても、以後のフラグメントをスキップして送信するので、受信端末側におけるリアルタイム再生を担保することができる。   As described above, according to the live streaming system according to the second embodiment, data cannot be transmitted in real time due to network congestion, deterioration of reception conditions, and the like. Even when a time gap occurs, since subsequent fragments are transmitted while being skipped, real-time reproduction on the receiving terminal side can be ensured.

なお、本実施の形態2では、フラグメントのスキップを行なう場合には、再生されるフラグメントが時間的に不連続となることもあるので、設定によってスキップをしないモードとスキップを行なうモードとに分けてデータの取得を可能とするようにしてもよい。この場合、例えば、フラグメントを取得する際のリクエストを拡張して、そのHTTP拡張部に、スキップをしないモードでデータ取得を要求する旨を示す情報(&No-Skip)を含めて配信サーバ20aに送信し、配信サーバ20aは、この情報が含まれているリクエストを受信した場合には、スキップ判定を行なわない等とすればよい。あるいは、端末側でコンテンツ取得用に複数のURLを選択できるようにしておき、コンテンツの受信をリクエストするURLに依存して、スキップあり/なし、のいずれのモードで受信するかを選択できるようにしてもよい。   In the second embodiment, when a fragment is skipped, the reproduced fragment may be temporally discontinuous. Therefore, it is divided into a mode in which skipping is not performed and a mode in which skipping is performed depending on settings. Data may be acquired. In this case, for example, the request for acquiring the fragment is extended, and the HTTP extension unit is transmitted to the distribution server 20a including information (& No-Skip) indicating that data acquisition is requested in a mode that does not skip. The distribution server 20a may not perform the skip determination when receiving a request including this information. Alternatively, it is possible to select a plurality of URLs for content acquisition on the terminal side, and to select whether to receive in skipped mode or not depending on the URL for requesting reception of the content. May be.

(実施の形態3)
続いて、本発明の実施の形態3に係るライブストリーミングシステムについて説明する。
上記実施の形態1では、最新のフラグメントからの再生を可能として、低遅延でのライブストリーミング再生を実現することについて説明した。また、上記実施の形態2では、伝送路における輻輳が発生した場合等でも、最新のフラグメントまで以後のフラグメントをスキップすることを可能として、リアルタイム再生を実現することについて説明した。
上記いずれの実施の形態においても、MP4ファイルの途中のフラグメントから再生を開始または再開することとなるが、再生開始位置となるフラグメントの先頭に格納されているビデオサンプルとオーディオサンプルとの同期がずれてしまうおそれがある。
(Embodiment 3)
Subsequently, a live streaming system according to Embodiment 3 of the present invention will be described.
In the first embodiment, it has been described that the reproduction from the latest fragment is enabled and the live streaming reproduction with a low delay is realized. In the second embodiment, real-time reproduction is realized by enabling subsequent fragments up to the latest fragment even when congestion occurs in the transmission path.
In any of the above embodiments, playback is started or restarted from a fragment in the middle of the MP4 file. However, the video sample stored at the beginning of the fragment that is the playback start position and the audio sample are out of synchronization. There is a risk that.

本実施の形態3に係るライブストリーミングシステムは、上記実施の形態1および2で説明した内容に加えて、ビデオデータとオーディオデータとの同期再生をも担保するライブストリーミングシステムである。
そのため、本実施の形態3に係るライブストリーミングシステムは、大枠の構成を上記実施の形態1および2と同一とするが、エンコーダおよびクライアント端末の構成において相違点を有する。以下、この相違点を中心に説明する。なお、上記実施の形態1および2と同一の構成要素については、同一の符号を付し、その説明を省略する。
The live streaming system according to the third embodiment is a live streaming system that guarantees synchronized reproduction of video data and audio data in addition to the contents described in the first and second embodiments.
Therefore, the live streaming system according to the third embodiment has the same general configuration as that of the first and second embodiments, but has a difference in the configuration of the encoder and the client terminal. Hereinafter, this difference will be mainly described. Note that the same components as those in the first and second embodiments are denoted by the same reference numerals and description thereof is omitted.

図10は、本実施の形態3に係るライブストリーミングシステムにおけるエンコーダの一部構成を示すブロック図である。
図10に示すように、本実施の形態3に係るライブストリーミングシステムを構成するエンコーダは、パケットヘッダ作成部106aにその特徴を有している。
このパケットヘッダ作成部106aは、ビデオヘッダ情報解析部121と、オーディオヘッダ情報解析部122と、同期情報決定部123と、同期情報格納ボックス作成部124と、ヘッダ情報作成部125とを備える。
FIG. 10 is a block diagram showing a partial configuration of the encoder in the live streaming system according to the third embodiment.
As shown in FIG. 10, the encoder constituting the live streaming system according to the third embodiment has a feature in the packet header creation unit 106a.
The packet header creation unit 106a includes a video header information analysis unit 121, an audio header information analysis unit 122, a synchronization information determination unit 123, a synchronization information storage box creation unit 124, and a header information creation unit 125.

ビデオヘッダ情報解析部121は、ビデオデータ蓄積部102からビデオヘッダ情報を読み出して解析する処理部であり、フラグメントに格納するビデオサンプル毎の再生時間長を記述したテーブルを同期情報決定部123に出力し、また、ビデオサンプルのサンプルサイズやビデオデータ蓄積部102におけるサンプルの格納位置等をヘッダ情報作成部125に出力する。   The video header information analysis unit 121 is a processing unit that reads and analyzes the video header information from the video data storage unit 102 and outputs a table describing the playback time length for each video sample stored in the fragment to the synchronization information determination unit 123. In addition, the sample size of the video sample, the storage position of the sample in the video data storage unit 102, and the like are output to the header information creation unit 125.

オーディオヘッダ情報解析部122は、オーディオデータ蓄積部104からオーディオヘッダ情報を読み出して解析する処理部であり、フラグメントに格納するオーディオサンプル毎の再生時間長を記述したテーブルを同期情報決定部123に出力し、また、オーディオサンプルのサンプルサイズやオーディオデータ蓄積部104におけるサンプルの格納位置等をヘッダ情報作成部125に出力する。   The audio header information analysis unit 122 is a processing unit that reads out and analyzes the audio header information from the audio data storage unit 104, and outputs a table describing the playback time length for each audio sample stored in the fragment to the synchronization information determination unit 123 In addition, the sample size of the audio sample, the storage position of the sample in the audio data storage unit 104, and the like are output to the header information creation unit 125.

同期情報決定部123は、ビデオヘッダ情報解析部121から出力されるビデオ再生時間長テーブルと、オーディオヘッダ情報解析部122から出力されるオーディオ再生時間長テーブルとを用いて、ビデオとオーディオの同期再生のための情報を作成する処理部である。ここで、ビデオとオーディオの同期再生のための情報としては、フラグメントに格納する先頭のビデオサンプルの表示時刻(v_pts)およびフラグメントに格納する先頭のオーディオサンプルの表示時刻(a_pts)を用いることができる。なお、このv_ptsおよびa_ptsは、各再生時間長テーブルに記述されているサンプルの再生時間長の総和をフラグメント毎に加算し更新することによって得ることができる。なお、ビデオヘッダ情報解析部121およびオーディオヘッダ情報解析部122から、それぞれビデオおよびオーディオのフラグメントにおける先頭サンプルの再生開始時間を直接取得することとしてもよい。   The synchronization information determination unit 123 uses the video playback time length table output from the video header information analysis unit 121 and the audio playback time length table output from the audio header information analysis unit 122 to perform synchronized playback of video and audio. It is a processing part which creates information for Here, as the information for synchronous playback of video and audio, the display time (v_pts) of the first video sample stored in the fragment and the display time (a_pts) of the first audio sample stored in the fragment can be used. . The v_pts and a_pts can be obtained by adding and updating the sum of the reproduction time lengths of the samples described in each reproduction time length table for each fragment. Note that the playback start time of the first sample in the video and audio fragments may be directly obtained from the video header information analysis unit 121 and the audio header information analysis unit 122, respectively.

そして、同期情報決定部123は、作成したv_ptsおよびa_ptsを同期情報格納ボックス作成部124に出力する。
同期情報格納ボックス作成部124は、同期情報決定部123において作成した同期情報をMP4ファイルのボックス構造に変換して、同期情報格納ボックス(以下、「ムービーフラグメントシンクロボックス」または「mfsy」と称する。)を作成する処理部である。この同期情報格納ボックス作成部124は、v_ptsおよびa_pts毎にムービーフラグメントシンクロボックスを作成して、ヘッダ情報作成部125に出力する。
Then, the synchronization information determination unit 123 outputs the created v_pts and a_pts to the synchronization information storage box creation unit 124.
The synchronization information storage box creation unit 124 converts the synchronization information created by the synchronization information determination unit 123 into a box structure of the MP4 file, and is referred to as a synchronization information storage box (hereinafter, “movie fragment sync box” or “mfsy”). ). The synchronization information storage box creation unit 124 creates a movie fragment sync box for each v_pts and a_pts and outputs the movie fragment sync box to the header information creation unit 125.

図11は、ムービーフラグメントシンクロボックスのシンタックスの例を示す図である。
presentation_timeのフィールドには、フラグメントの先頭サンプルの再生開始時間が記述される。
また、track_IDのフィールドには、presentation_timeフィールドにより、フラグメントの先頭サンプルの再生開始時間長が提供されるトラックのID(トラックヘッダボックスに示される各トラック固有のID番号)が記述される。
FIG. 11 is a diagram illustrating an example of the syntax of a movie fragment sync box.
In the field of presentation_time, the reproduction start time of the first sample of the fragment is described.
In the track_ID field, the ID of the track (ID number unique to each track shown in the track header box) in which the playback start time length of the first sample of the fragment is provided is described by the presentation_time field.

そして、ヘッダ情報作成部125は、ビデオヘッダ情報解析部121から出力されるビデオサンプルのサンプルサイズ等と、オーディオヘッダ情報解析部122から出力されるオーディオサンプルのサンプルサイズ等と、同期情報格納ボックス作成部124から出力されるmfsyとを用いて、moofを作成する処理部である。このヘッダ情報作成部125は、moof直下のボックスデータ格納部にmfsyを格納してmoofを作成し、作成したmoofをパケット結合部110に出力する。また、ヘッダ情報作成部125は、mdat情報をパケットデータ作成部109に出力する。   Then, the header information creation unit 125 creates the sample size of the video sample output from the video header information analysis unit 121, the sample size of the audio sample output from the audio header information analysis unit 122, and the synchronization information storage box creation This is a processing unit that creates a moof using mfsy output from the unit 124. The header information creation unit 125 creates mof by storing mfsy in the box data storage unit immediately below the moof, and outputs the created moof to the packet combining unit 110. Further, the header information creation unit 125 outputs mdat information to the packet data creation unit 109.

なお、ここで、パケットヘッダ作成部106aは、ヘッダ情報作成部125において、moof直下のボックスデータ格納部にmfsyを格納するのではなく、同期情報格納ボックス作成部124において、mfsyと、mfsyをmoofとmdatの間に位置させるようにフラグメントの結合を指示するmfsy配置情報をパケット結合部110に出力する構成としてもよい。また、mfsyをトラックフラグメントボックス(traf)の直下に配置して、トラック単位の情報を示すこととしてもよい。このとき、entry_countおよびtrack_IDのフィールドは不要となる。また、mfsyは、予め定められたルールに基づいて、特定のフラグメントにのみ格納することとしてもよい。   Here, the packet header creation unit 106a does not store mfsy in the box data storage unit immediately below the moof in the header information creation unit 125, but the mfsy and mfsy in the synchronization information storage box creation unit 124. The mfsy arrangement information for instructing the combination of fragments so as to be positioned between mdat and mdat may be output to the packet combining unit 110. Further, mfsy may be arranged immediately below the track fragment box (traf) to indicate information in units of tracks. At this time, the entry_count and track_ID fields are unnecessary. Further, mfsy may be stored only in a specific fragment based on a predetermined rule.

図12は、実施の形態3に係るライブストリーミングシステムにおけるクライアント端末の一部構成を示すブロック図である。
上記のパケットヘッダ作成部106aを備えたエンコーダによって作成されたMP4ファイルのフラグメントを再生するため、図12に示すように、本実施の形態3に係るクライアント端末は、第2レスポンス解析部307aやヘッダ解析部311a等にその特徴を有している。
FIG. 12 is a block diagram illustrating a partial configuration of a client terminal in the live streaming system according to the third embodiment.
In order to reproduce the fragment of the MP4 file created by the encoder including the packet header creation unit 106a, the client terminal according to the third embodiment includes a second response analysis unit 307a and a header as shown in FIG. The analysis unit 311a has the characteristics.

第2レスポンス解析部307aは、同期情報設定フラグメント判定部321を備える。この同期情報設定フラグメント判定部321は、レスポンス受信部304から出力される初期ヘッダ・フラグメントレスポンスのエンティティボディに含まれるフラグメントが、同期情報を用いて再生するフラグメントであるか否かを判定する処理部である。そして、同期情報設定フラグメント判定部321は、レスポンス受信部304から取得したフラグメントが、MP4ファイルの途中から受信を開始した際の先頭のフラグメントであるか否か、或いは、スキップ直後のフラグメントであるか否かを判定し、これら同期情報を用いて再生することが必要なフラグメントである場合に、mfsyをmoofから分離して解析することを指示する同期フラグを、mfsy分離解析部323に出力する。   The second response analysis unit 307a includes a synchronization information setting fragment determination unit 321. The synchronization information setting fragment determination unit 321 determines whether or not the fragment included in the entity body of the initial header / fragment response output from the response reception unit 304 is a fragment to be reproduced using the synchronization information. It is. Then, the synchronization information setting fragment determination unit 321 determines whether the fragment acquired from the response reception unit 304 is the first fragment when reception starts from the middle of the MP4 file, or is the fragment immediately after skipping? If it is a fragment that needs to be reproduced using the synchronization information, a synchronization flag that instructs to separate mfsy from the moof and analyze it is output to the mfsy separation analysis unit 323.

ヘッダ解析部311aは、traf分離解析部322と、mfsy分離解析部323とを備える。
traf分離解析部322は、moofに含まれるトラックフラグメントボックス(traf)を分離して解析する処理部である。ここで、trafとは、トラック毎のヘッダ情報が格納されるボックスである。また、トラックとは、ライブコンテンツを構成する各メディアのサンプルデータ全体を意味し、動画像や音声やテキスト等のトラックは、それぞれビデオトラック、オーディオトラックやテキストトラック等と称される。
The header analysis unit 311a includes a traf separation analysis unit 322 and an mfsy separation analysis unit 323.
The traf separation analysis unit 322 is a processing unit that separates and analyzes the track fragment box (traf) included in the moof. Here, traf is a box in which header information for each track is stored. Also, the track means the entire sample data of each medium constituting the live content, and the track such as moving image, sound and text is called a video track, an audio track and a text track, respectively.

すなわち、このtraf分離解析部322は、ビデオトラックのtrafとオーディオトラックのtrafとを分離して解析し、その解析結果をサンプルデータ取得部312や復号表示部313aに出力する。
mfsy分離解析部323は、同期情報設定フラグメント判定部321から出力される同期フラグを取得した場合に、moofに含まれるmfsyを分離して解析する処理部である。このmfsy分離解析部323は、その解析結果としてv_ptsおよびa_ptsを復号表示部313aに出力する。
That is, the traf separation analysis unit 322 separates and analyzes the video track traf and the audio track traf, and outputs the analysis result to the sample data acquisition unit 312 and the decoding display unit 313a.
The mfsy separation analysis unit 323 is a processing unit that separates and analyzes mfsy included in the moof when the synchronization flag output from the synchronization information setting fragment determination unit 321 is acquired. The mfsy separation analysis unit 323 outputs v_pts and a_pts as the analysis results to the decoding display unit 313a.

そして、復号表示部313aは、traf分離解析部322が出力するサンプルの再生時間と、mfsy分離解析部323が出力するv_ptsおよびa_ptsとを取得し、その再生時間と同期情報とを用いて、サンプル取得部312が出力するサンプルデータを復号化して、データを再生出力する。具体的には、v_ptsがa_ptsよりも大きい場合には、その差分値の分だけ、ビデオの再生開始時間をオーディオの再生開始時間に対して遅延させる。a_ptsがv_ptsよりも大きい場合にも同様に、その差分値の分だけ、オーディオの再生開始時間をビデオの再生開始時間に対して遅延させる。   Then, the decoding display unit 313a acquires the reproduction time of the sample output by the traf separation analysis unit 322 and v_pts and a_pts output by the mfsy separation analysis unit 323, and uses the reproduction time and the synchronization information to obtain the sample. The sample data output by the acquisition unit 312 is decoded, and the data is reproduced and output. Specifically, when v_pts is larger than a_pts, the video playback start time is delayed from the audio playback start time by the difference value. Similarly, when a_pts is larger than v_pts, the audio playback start time is delayed from the video playback start time by the difference value.

このように構成されるエンコーダおよびクライアント端末を有する本実施の形態3のライブストリーミングシステムによれば、各フラグメントに先頭ビデオサンプルと先頭オーディオサンプルとの同期再生に関する情報を格納するので、MP4ファイルの途中のフラグメントから再生を開始する場合でも、ビデオとオーディオ間の同期再生を担保することができる。   According to the live streaming system of the third embodiment having the encoder and the client terminal configured as described above, information related to the synchronized playback of the first video sample and the first audio sample is stored in each fragment. Even when playback is started from the other fragment, synchronized playback between video and audio can be ensured.

(実施の形態4:記録・再送要求)
さらに続いて、本発明の実施の形態4に係るライブストリーミングシステムについて説明する。
(Embodiment 4: Recording / Retransmission Request)
Subsequently, a live streaming system according to Embodiment 4 of the present invention will be described.

上記実施の形態1〜3では、主にライブコンテンツのストリーミングによるリアルタイム再生について説明したが、本実施の形態4に係るライブストリーミングシステムは、上記実施の形態1〜3で説明した内容に加えて、クライアント端末側でライブコンテンツのデータを記録することができるライブストリーミングシステムである。
そのため、本実施の形態4に係るライブストリーミングシステムは、上記実施の形態1〜3の構成と略共通するが、クライアント端末の構成において相違点を有する。以下、この相違点を中心に説明する。なお、上記実施の形態1〜3と同一の構成要素については、同一の符号を付し、その説明を省略する。
In the first to third embodiments, real-time playback mainly by streaming live content has been described. However, in addition to the contents described in the first to third embodiments, the live streaming system according to the fourth embodiment includes: This is a live streaming system capable of recording live content data on the client terminal side.
Therefore, the live streaming system according to the fourth embodiment is substantially the same as the configuration of the first to third embodiments, but has a difference in the configuration of the client terminal. Hereinafter, this difference will be mainly described. In addition, about the component same as the said Embodiment 1-3, the same code | symbol is attached | subjected and the description is abbreviate | omitted.

図13は、本実施の形態4に係るライブストリーミングシステムにおけるクライアント端末の一部構成を示すブロック図である。
図13に示すように、本実施の形態4に係るライブストリーミングシステムを構成するクライアント端末は、上記実施の形態1〜3のクライアント端末に加えて、さらに、ユーザ指示入力部331と、フラグメント記録制御部332と、記録部分フラグメント格納部333とを備える。
FIG. 13 is a block diagram showing a partial configuration of a client terminal in the live streaming system according to the fourth embodiment.
As shown in FIG. 13, in addition to the client terminals of the first to third embodiments, a client terminal that configures the live streaming system according to the fourth embodiment further includes a user instruction input unit 331, fragment recording control, and the like. Unit 332 and a recording partial fragment storage unit 333.

ユーザ指示入力部331は、ライブコンテンツの記録開始や記録終了等、ユーザからの指示の入力を受け付ける入力インターフェースであり、具体的には、携帯電話機のキーボタンや、パーソナルコンピュータのキーボードやマウス等である。このユーザ指示入力部331は、ユーザからライブコンテンツの記録開始指示の入力を受け付けると、フラグメント記録制御部332に、フラグメントの記録の開始を指示する記録指示を出力する。   The user instruction input unit 331 is an input interface that accepts input of instructions from the user, such as recording start and end of live content. Specifically, the user instruction input unit 331 is a key button of a mobile phone, a keyboard or a mouse of a personal computer, is there. When the user instruction input unit 331 receives an input of a live content recording start instruction from the user, the user instruction input unit 331 outputs a recording instruction to instruct the fragment recording control unit 332 to start recording the fragment.

フラグメント記録制御部332は、ユーザ指示入力部331からの記録指示やフラグメント受信完了判定部309aからの受信完了信号に基づいて、どのフラグメントから記録を開始するかを決定する処理部であり、受信完了信号を取得してからの経過時間を計測するタイマーを内部に備える。
このフラグメント記録制御部332は、記録指示を取得すると、タイマーによって計測した受信完了信号を取得してからの経過時間が、予め定められた値(この値を"T1"とする。)を経過しているか否かによって、記録を開始するフラグメントを決定する。具体的な詳しい説明については、後述する。
The fragment recording control unit 332 is a processing unit that determines which fragment to start recording based on the recording instruction from the user instruction input unit 331 and the reception completion signal from the fragment reception completion determination unit 309a, and the reception completion A timer for measuring the elapsed time after acquiring the signal is provided inside.
When the fragment recording control unit 332 acquires the recording instruction, the elapsed time after acquiring the reception completion signal measured by the timer has passed a predetermined value (this value is assumed to be “T 1 ”). The fragment to start recording is determined depending on whether or not it is. Specific details will be described later.

また、フラグメント記録制御部332は、記録開始フラグメントを決定すると、受信データメモリ308aから初期ヘッダと、記録開始フラグメントのフラグメントデータを読み出して、記録部分フラグメント格納部333に格納し、ユーザ指示入力部331から記録の終了を指示する記録終了指示を取得するまで、記録開始フラグメント以降のフラグメントデータを記録部分フラグメントデータとして、記録部分フラグメント格納部333に格納していく。   When the recording start fragment is determined, the fragment recording control unit 332 reads the initial header and the recording start fragment fragment data from the received data memory 308a, stores them in the recording partial fragment storage unit 333, and the user instruction input unit 331. Until the recording end instruction for instructing the end of recording is acquired, the fragment data after the recording start fragment is stored in the recording partial fragment storage unit 333 as the recording partial fragment data.

記録部分フラグメント格納部333は、記録部分フラグメントデータを格納するためのハードディスク、CD−RやDVD−RAM等の記憶媒体である。
また、受信データメモリ308aは、所定の容量を有しており、受信中のフラグメントの直前のフラグメントデータを保持している。
このような構成を備えたクライアント端末の記録動作について説明する。
The recording partial fragment storage unit 333 is a storage medium such as a hard disk, a CD-R, or a DVD-RAM for storing the recording partial fragment data.
The reception data memory 308a has a predetermined capacity, and holds fragment data immediately before the fragment being received.
A recording operation of the client terminal having such a configuration will be described.

図14は、クライアント端末における記録動作処理のフロー図である。
まず、ユーザ指示入力部331は、ユーザからの記録開始指示の入力を受け付けると(S200)、フラグメント記録制御部332に記録指示を出力する。
次に、フラグメント記録制御部332は、ユーザ指示入力部331から記録指示を取得すると、タイマーによって計測した受信完了信号を取得してからの経過時間が、予め定められた値T1を経過しているか否かを判定する(S202)。
FIG. 14 is a flowchart of the recording operation process in the client terminal.
First, upon receiving an input of a recording start instruction from the user (S200), the user instruction input unit 331 outputs a recording instruction to the fragment recording control unit 332.
Next, the fragment recording control unit 332 acquires the recording instruction from the user instruction input unit 331, the elapsed time after acquiring the reception completion signal measured by the timer, has elapsed the value T 1 of the predetermined It is determined whether or not (S202).

ここで、経過時間がT1を超えている場合(S202のYes)、フラグメント記録制御部332は、現在受信中のフラグメントを記録開始フラグメントとし、現在受信中のフラグメントの先頭から記録を開始する(S204)。
一方、経過時間がT1を超えていない場合(S202のNo)、フラグメント記録制御部332は、現在受信中のフラグメントの1つ前に受信を完了したフラグメントを記録開始フラグメントとし、そのフラグメントの先頭から記録を開始する(S206)。
If the elapsed time exceeds T 1 (Yes in S202), the fragment recording control unit 332 sets the currently received fragment as a recording start fragment, and starts recording from the beginning of the currently received fragment ( S204).
On the other hand, when the elapsed time does not exceed T 1 (No in S202), the fragment recording control unit 332 sets a fragment that has been received immediately before the currently received fragment as a recording start fragment, and starts the fragment. Recording is started from (S206).

その後、フラグメント記録制御部332は、ユーザ指示入力部331から記録終了指示を取得するまで、受信データメモリ308aから各フラグメントのデータを読み出して、記録部分フラグメントデータを記録部分フラグメント格納部333に格納する動作を繰り返し(S208)、記録終了指示を取得すると、記録中のフラグメントの記録完了後に、記録動作を終了する。   Thereafter, the fragment recording control unit 332 reads the data of each fragment from the reception data memory 308a and stores the recording partial fragment data in the recording partial fragment storage unit 333 until obtaining a recording end instruction from the user instruction input unit 331. When the operation is repeated (S208) and the recording end instruction is acquired, the recording operation is ended after the recording of the fragment being recorded is completed.

このように、ユーザからの記録開始指示を行なった時が、受信完了信号を取得してから所定の閾値T1以上経過しているか否かで、記録開始フラグメントを現在受信中のフラグメントか現在受信中のフラグメントの直前のフラグメントに決定することによって、ユーザが記録を所望する部分のデータを取りこぼすことなく、確実に記録することができるようになる。 Thus, when the, on whether or not the acquired reception completion signal has passed a predetermined threshold value above T 1, a fragment or currently received in the current reception recording start fragment was subjected to recording start instruction from the user By deciding the fragment immediately before the middle fragment, the user can surely record without missing the data of the portion desired to be recorded.

より具体的に詳しく説明すると、ユーザは、再生中の映像を見て記録開始を所望した場合、記録開始指示を入力した段階では、先の映像データを含むフラグメントの再生が終了して、次のフラグメントの再生が始まっていることがありうる。そのため、例えば、1フラグメントの再生時間長が5sであれば、閾値T1を3sに設定しておき、閾値T1を経過する前に記録開始指示の入力があれば、現在再生中のフラグメントの直前のフラグメントから記録を開始し、閾値T1を経過した後に記録開始指示の入力があれば、現在再生中のフラグメントから記録を開始することによって、ユーザの所望する映像データの部分を取りこぼすことなく記録することができる。 More specifically, when the user desires to start recording by watching the video being played back, when the recording start instruction is input, the playback of the fragment including the previous video data is finished, and the next It is possible that fragment regeneration has begun. Therefore, for example, if the playback time length of one fragment is 5 s, the threshold T 1 is set to 3 s, and if a recording start instruction is input before the threshold T 1 has passed, start recording from the fragment immediately before, if there is an input recording start instruction after an elapse of the threshold T 1, by starting the recording from the fragment that is currently playing, to lose information a desired portion of the video data of the user It can be recorded without.

なお、閾値T1を経過する前に記録開始指示の入力があった場合の記録開始フラグメントは、現在再生中のフラグメントの直前のフラグメントに限らず、現在再生中のフラグメントの2つ前、3つ前等のフラグメントであってもよく、受信データメモリ308aの容量に応じて適宜調整することができるようにしてもよい。
このように、本実施の形態4に係るライブストリーミングシステムによれば、ユーザが記録開始の指示を行なったタイミングに応じて記録を開始するフラグメントを変更するので、ユーザが記録を所望するデータ部分を確実に記録することができる。
Note that the recording start fragment when the recording start instruction is input before the threshold value T 1 elapses is not limited to the fragment immediately before the fragment currently being played back, but is two before the fragment currently being played back, It may be a fragment such as a previous one, and may be adjusted as appropriate according to the capacity of the reception data memory 308a.
As described above, according to the live streaming system according to the fourth embodiment, since the fragment to start recording is changed in accordance with the timing when the user gives an instruction to start recording, the data portion that the user desires to record is changed. It can be recorded reliably.

(第1変形例)
次に、本発明の実施の形態4の第1変形例について説明する。
まず、本実施の形態4の第1変形例に係るライブストリーミングシステムを構成するクライアント端末について、図を参照しながら説明する。
(First modification)
Next, a first modification of the fourth embodiment of the present invention will be described.
First, a client terminal constituting a live streaming system according to a first modification of the fourth embodiment will be described with reference to the drawings.

図15は、第1変形例に係るクライアント端末の一部構成を示すブロック図である。
図15に示すように、この第1変形例に係るクライアント端末は、ユーザ指示入力部331aと、フラグメント記録制御部332aと、記録箇所情報メモリ341と、再生区間判定部342と、第2リクエスト作成部306aとを備えている。
ユーザ指示入力部331aは、記録指示や記録終了指示をフラグメント記録制御部332aに出力するとともに、記録した箇所をライブストリーミング再生の終了後に改めて再生することを指示する再生指示を再生区間判定部342に出力する。
FIG. 15 is a block diagram illustrating a partial configuration of a client terminal according to the first modification.
As shown in FIG. 15, the client terminal according to the first modification includes a user instruction input unit 331a, a fragment recording control unit 332a, a recording location information memory 341, a playback section determination unit 342, and a second request creation. Part 306a.
The user instruction input unit 331a outputs a recording instruction and a recording end instruction to the fragment recording control unit 332a, and also gives a playback instruction to the playback section determination unit 342 to instruct to replay the recorded portion after the end of live streaming playback. Output.

フラグメント記録制御部332aは、記録指示を取得すると、受信完了信号の取得からの経過時間が、閾値T1を経過しているか否かで、記録を開始するフラグメントを決定する。ここで、フラグメント記録制御部332は、記録開始フラグメントを決定すると、受信データメモリ308aから、MP4ファイルのファイル名と、記録開始フラグメントのシーケンス番号(ファイルの先頭のフラグメントから各フラグメントに昇順で割り当てられる番号であり、moof直下のムービーフラグメントヘッダボックスに格納される。)とを読み出す。 Fragments recording control unit 332a acquires the recording instruction, the time elapsed from the acquisition of the reception completion signal is in whether or not the elapsed threshold T 1, to determine the fragment to start recording. Here, when determining the recording start fragment, the fragment recording control unit 332 assigns the file name of the MP4 file and the sequence number of the recording start fragment (from the first fragment of the file to each fragment in ascending order) from the reception data memory 308a. And is stored in the movie fragment header box immediately below the moof).

そして、フラグメント記録制御部332aは、記録終了指示を取得するまで、記録開始フラグメント以降のフラグメントのシーケンス番号を順次読み出し、記録終了指示を取得またはファイルの終端に到達すると、最後に記録するフラグメント(記録終了フラグメント)のシーケンス番号を読み出して、先に読み出したファイル名と、記録開始フラグメントおよび記録終了フラグメントのシーケンス番号を記録箇所情報として記録箇所情報メモリ341に格納する。また、シーケンス番号が循環した際には、循環した回数を同時記録しておく等して、記録した最終フラグメントを判別することとする。なお、ここでは、シーケンス番号の増分が一定である等、予め定められたルールに基づいてシーケンス番号が設定されていることを前提としている。シーケンス番号がランダムに設定される際には、記録したフラグメントのシーケンス番号を全て記録箇所情報メモリ341に格納する。   The fragment recording control unit 332a sequentially reads the sequence numbers of the fragments after the recording start fragment until the recording end instruction is acquired, and when the recording end instruction is acquired or the end of the file is reached, the last recorded fragment (recording) (End fragment) sequence number is read out, and the file name read earlier and the sequence numbers of the recording start fragment and recording end fragment are stored in the recording location information memory 341 as recording location information. Further, when the sequence number is circulated, the recorded last fragment is determined by simultaneously recording the number of times of circulation. Here, it is assumed that the sequence number is set based on a predetermined rule such that the increment of the sequence number is constant. When the sequence numbers are set at random, all the sequence numbers of the recorded fragments are stored in the recording location information memory 341.

記録箇所情報メモリ341は、記録箇所情報を格納するためのメモリやハードディスク等である。
再生区間判定部342は、ユーザ指示入力部331aから出力される再生指示を取得すると、記録箇所情報メモリ341を参照して記録箇所情報を読み出して、記録箇所を判定し、その記録箇所の再生に必要なフラグメントの再送を要求する再送リクエスト作成指示を第2リクエスト作成部306aに出力する処理部である。
The recording location information memory 341 is a memory, a hard disk or the like for storing recording location information.
When the playback section determination unit 342 acquires the playback instruction output from the user instruction input unit 331a, the playback section determination unit 342 reads the recording part information with reference to the recording part information memory 341, determines the recording part, and reproduces the recording part. The processing unit outputs a retransmission request creation instruction for requesting retransmission of a necessary fragment to the second request creation unit 306a.

第2リクエスト作成部306aは、再生区間判定部342から再送リクエスト作成指示を取得すると、先に読み出したファイル名と、記録開始フラグメントおよび記録終了フラグメントのシーケンス番号とに基づいて、再送リクエストを作成してリクエスト送信部303に出力する。
クライアント端末をこのような構成とすることで、記録部分のフラグメントの実体データそのものを保持せずに、ファイル名と、記録開始箇所および記録終了箇所のシーケンス番号とを記録しておき、改めて再生する際に、これらの情報を用いて実体データの再送を要求して再生することができるので、携帯電話機やPDA等のように、メモリの容量が少ない携帯型の端末装置に適したものとなる。
When the second request creation unit 306a obtains the retransmission request creation instruction from the playback section determination unit 342, the second request creation unit 306a creates a retransmission request based on the previously read file name and the sequence numbers of the recording start fragment and the recording end fragment. To the request transmission unit 303.
By configuring the client terminal with such a configuration, the file name and the sequence number of the recording start location and the recording end location are recorded and reproduced again without retaining the entity data itself of the fragment of the recording portion. At this time, since it is possible to request and reproduce the retransmission of the entity data using these pieces of information, it becomes suitable for a portable terminal device with a small memory capacity such as a cellular phone or a PDA.

(第2変形例)
次に、本実施の形態4の第2変形例に係るライブストリーミングシステムを構成するクライアント端末について説明する。
図16は、第2変形例に係るクライアント端末の一部構成を示すブロック図である。
図16に示すように、この第2変形例に係るクライアント端末は、ユーザ指示入力部331bと、フラグメント記録制御部332bと、記録部分フラグメント格納部333と、スキップ判定部351と、再送リクエスト作成部352と、復号表示部313bとを備えている。
(Second modification)
Next, a client terminal constituting the live streaming system according to the second modification of the fourth embodiment will be described.
FIG. 16 is a block diagram illustrating a partial configuration of a client terminal according to the second modification.
As illustrated in FIG. 16, the client terminal according to the second modification includes a user instruction input unit 331b, a fragment recording control unit 332b, a recording partial fragment storage unit 333, a skip determination unit 351, and a retransmission request creation unit. 352 and a decoding display unit 313b.

ユーザ指示入力部331bは、記録指示や記録終了指示をフラグメント記録制御部332bに出力するとともに、ライブストリーミング再生時にフラグメントのスキップが発生している場合等、受信していないフラグメントのデータの再送を要求する再送リクエスト作成指示を再送リクエスト作成部352に出力する。
フラグメント記録制御部332bは、記録指示を取得すると、受信完了信号の取得からの経過時間が、閾値T1を経過しているか否かで、記録を開始するフラグメントを決定する。ここで、フラグメント記録制御部332は、記録開始フラグメントを決定すると、受信データメモリ308aから、初期ヘッダと、記録開始フラグメントのフラグメントデータを読み出して、スキップ判定部351に出力し、記録終了指示を取得するまで、順次記録開始フラグメント以降のフラグメントデータをスキップ判定部351に出力する。
The user instruction input unit 331b outputs a recording instruction and a recording end instruction to the fragment recording control unit 332b, and requests retransmission of data of fragments that have not been received, such as when a fragment skip occurs during live streaming playback. The retransmission request creation instruction is output to the retransmission request creation unit 352.
Fragments recording control unit 332b acquires the recording instruction, the time elapsed from the acquisition of the reception completion signal is in whether or not the elapsed threshold T 1, to determine the fragment to start recording. Here, when the recording start fragment is determined, the fragment recording control unit 332 reads the initial header and the fragment data of the recording start fragment from the reception data memory 308a, outputs them to the skip determination unit 351, and acquires the recording end instruction. Until then, the fragment data after the sequential recording start fragment are output to the skip determination unit 351.

スキップ判定部351は、フラグメント記録制御部332bから順次出力されるフラグメントデータを取得して、フラグメントのスキップの有無を判定し、スキップが発生している場合に、スキップの発生している箇所を示すスキップ情報を再送リクエスト作成部352に出力するとともに、取得したフラグメントデータを記録部分フラグメント格納部333に格納する処理部である。   The skip determination unit 351 acquires fragment data sequentially output from the fragment recording control unit 332b, determines whether or not a fragment is skipped, and indicates a portion where a skip occurs when a skip occurs. This is a processing unit that outputs the skip information to the retransmission request creation unit 352 and stores the acquired fragment data in the recording partial fragment storage unit 333.

このスキップ判定部351は、記録開始フラグメントから順番に各フラグメントのシーケンス番号の増分をカウントすることによって、フラグメントのスキップの有無を判定する。すなわち、フラグメントのシーケンス番号が予め定められている規定に従って増加していない場合には、スキップの発生であると判定する。図を用いて、より具体的に説明する。   The skip determination unit 351 determines whether or not a fragment is skipped by counting the increment of the sequence number of each fragment in order from the recording start fragment. That is, when the sequence number of the fragment has not increased according to a predetermined rule, it is determined that a skip has occurred. This will be described more specifically with reference to the drawings.

図17(a)は、スキップが発生した場合におけるMP4ファイルの構造の第1例を説明するための図である。
スキップ判定部351は、記録開始フラグメント(本図では、フラグメント5)からMP4ファイル400を構成する各フラグメントを順次取得し、各フラグメントのシーケンス番号(SN)の増分をカウントする。ここで、スキップ判定部351は、シーケンス番号6のフラグメント6に続いて、シーケンス番号8のフラグメント8を取得すると、シーケンス番号7のフラグメント(図中破線で示す箇所)がスキップされていると判定する。
FIG. 17A is a diagram for describing a first example of the structure of an MP4 file when a skip occurs.
The skip determination unit 351 sequentially acquires each fragment constituting the MP4 file 400 from the recording start fragment (fragment 5 in this figure), and counts the increment of the sequence number (SN) of each fragment. When the skip determination unit 351 acquires the fragment 8 with the sequence number 8 following the fragment 6 with the sequence number 6, the skip determination unit 351 determines that the fragment with the sequence number 7 (the portion indicated by the broken line in the figure) is skipped. .

なお、スキップ判定部351がスキップの有無を判定する際には、シーケンス番号以外の要素を用いることもできる。すなわち、各フラグメントにMP4ファイルの先頭からの絶対アドレス値を持たせて、それぞれのフラグメントの先頭に、この絶対アドレス値の情報を記述し、絶対アドレス値の増分をカウントすることによってスキップの有無を判定することもできる。図を用いて、より具体的に説明する。   When the skip determination unit 351 determines whether or not there is a skip, elements other than the sequence number can be used. That is, each fragment has an absolute address value from the beginning of the MP4 file, information on the absolute address value is described at the beginning of each fragment, and the presence or absence of skipping is counted by counting the increment of the absolute address value. It can also be determined. This will be described more specifically with reference to the drawings.

図17(b)は、スキップが発生した場合におけるMP4ファイルの構造の第2例を説明するための図である。
スキップ判定部351は、記録開始フラグメント(本図では、フラグメント5)からMP4ファイル500を構成する各フラグメントを順次取得し、各フラグメントの先頭に記述されている絶対アドレス値の増分をカウントする。ここで、絶対アドレス値の増分は、1フラグメントあたり2000バイトであり、スキップ判定部351は、絶対アドレス値20000バイトのフラグメント6に続いて、絶対アドレス値24000バイトのフラグメント8を取得すると、絶対アドレス値22000バイトのフラグメント(図中破線で示す箇所)がスキップされていると判定する。
FIG. 17B is a diagram for explaining a second example of the structure of the MP4 file when a skip occurs.
The skip determination unit 351 sequentially acquires each fragment constituting the MP4 file 500 from the recording start fragment (fragment 5 in this figure), and counts the increment of the absolute address value described at the head of each fragment. Here, the increment of the absolute address value is 2000 bytes per fragment, and when the skip determination unit 351 acquires the fragment 8 having the absolute address value of 24000 bytes following the fragment 6 having the absolute address value of 20000 bytes, the absolute address value is increased. It is determined that a fragment having a value of 22000 bytes (a portion indicated by a broken line in the figure) is skipped.

また、このスキップ判定部351は、スキップの発生を判定すると、スキップが発生した箇所を示すスキップ箇所表示情報を復号表示部313bに出力する。
そして、復号表示部313bは、スキップ判定部351からスキップ箇所表示情報を取得すると、この情報を用いて、スキップが発生した箇所を画像、音声またはテキストによって明示して再生出力する。
Further, when the skip determination unit 351 determines the occurrence of a skip, the skip determination unit 351 outputs skip portion display information indicating a portion where the skip has occurred to the decoding display unit 313b.
When the decoding display unit 313b acquires the skip part display information from the skip determination unit 351, the decoding display part 313b clearly reproduces and outputs the part where the skip occurred using an image, sound, or text.

図18は、スキップが発生した場合におけるクライアント端末の画面表示例である。
携帯電話機であるクライアント端末30aの液晶表示部に、コンサート中継の映像が表示されている。ここで、現在の再生位置および再生済み箇所が画面中下方のバーに示されている。このバーで、ライブコンテンツの途中から再生を開始しているために、受信および再生されていない先頭部分を破線で示し、また、スキップが発生したために、受信および再生されていない箇所を点線で示すことによって、データ未受信の箇所を明示している。なお、この図は、表示の一例にすぎず、再生済みの箇所を緑色のバーで示し、スキップ発生箇所を赤色のバーで示す等の色分け表示によって明示する等してもよい。
FIG. 18 is a screen display example of the client terminal when a skip occurs.
Concert broadcast video is displayed on the liquid crystal display of the client terminal 30a, which is a mobile phone. Here, the current playback position and the playback location are shown in the lower bar in the screen. In this bar, since the playback is started from the middle of the live content, the top portion that is not received or played is indicated by a broken line, and the portion that is not received or played because a skip occurs is indicated by a dotted line As a result, the location where data has not been received is clearly indicated. This figure is merely an example of display, and a reproduced part may be indicated by a green bar, and a skip occurrence part may be indicated by a color-coded display such as a red bar.

再送リクエスト作成部352は、ユーザ指示入力部331bから再送リクエスト作成指示を取得すると、スキップ判定部351から出力されるスキップ情報に基づいて、スキップされたフラグメントデータの再送を要求する再送リクエストを作成し、リクエスト送信部303に出力する処理部である。
その後、リクエスト送信部303は、再送リクエスト作成部352から出力される再送リクエストをHTTPを用いて配信サーバ20aに送信する。
When the retransmission request creation unit 352 acquires the retransmission request creation instruction from the user instruction input unit 331b, the retransmission request creation unit 352 creates a retransmission request for requesting retransmission of the skipped fragment data based on the skip information output from the skip determination unit 351. , A processing unit that outputs the request to the request transmission unit 303.
Thereafter, the request transmission unit 303 transmits the retransmission request output from the retransmission request creation unit 352 to the distribution server 20a using HTTP.

図19(a)は、HTTPを用いた配信サーバ20aとクライアント端末30a間の通信シーケンスの第1例を示す図である。
図19(a)に示すように、まず、クライアント端末30aは、再送リクエストを配信サーバ20aに送信する(S300)。ここで、送信される再送リクエストには、メソッド(GET)と、ファイルのURL(http://…/….mp4)と、シーケンス番号1から4までのフラグメントの取得であることを示すHTTP拡張部(SN=1-4)と、HTTPのバージョン(HTTP/1.1)とが含まれている。
FIG. 19A is a diagram illustrating a first example of a communication sequence between the distribution server 20a and the client terminal 30a using HTTP.
As shown in FIG. 19A, first, the client terminal 30a transmits a retransmission request to the distribution server 20a (S300). Here, the retransmission request to be transmitted includes a method (GET), a file URL (http: //..... Mp4), and an HTTP extension indicating acquisition of fragments of sequence numbers 1 to 4. Part (SN = 1-4) and the HTTP version (HTTP / 1.1).

配信サーバ20aは、再送リクエストを受信すると、リクエスト成功レスポンスをクライアント端末30aに送信し(S302)、続いて、エンティティボディにシーケンス番号1から4までのフラグメントデータを含めたレスポンスをクライアント端末30aに送信する(S304)。
クライアント端末30aは、同様に、シーケンス番号7のフラグメントの送信を求める再送リクエストを配信サーバ20aに送信する(S306)。
Upon receiving the retransmission request, the distribution server 20a transmits a request success response to the client terminal 30a (S302), and subsequently transmits a response including fragment data of sequence numbers 1 to 4 in the entity body to the client terminal 30a. (S304).
Similarly, the client terminal 30a transmits a retransmission request for transmission of the fragment with the sequence number 7 to the distribution server 20a (S306).

配信サーバ20aは、その再送リクエストを受信すると、こちらも同様に、リクエスト成功レスポンスをクライアント端末30aに送信し(S308)、続いて、エンティティボディにシーケンス番号7のフラグメントデータを含めたレスポンスをクライアント端末30aに送信する(S310)。
一方、絶対アドレス値の増分をカウントすることによってスキップの有無を判定する場合の通信シーケンスは、図19(b)のようになる。
When the distribution server 20a receives the retransmission request, the distribution server 20a similarly transmits a request success response to the client terminal 30a (S308). Subsequently, the response including the fragment data of sequence number 7 in the entity body is sent to the client terminal. It transmits to 30a (S310).
On the other hand, the communication sequence in the case where the presence / absence of the skip is determined by counting the increment of the absolute address value is as shown in FIG.

まず、クライアント端末30aは、再送リクエストを配信サーバ20aに送信する(S320)。ここで、送信される再送リクエストには、先に述べた再送リクエストと同様に、メソッド(GET)、ファイルのURL(http://…/….mp4)およびHTTPのバージョン(HTTP/1.1)の他、リクエストヘッダフィールドが含まれており、このリクエストヘッダフィールドにデータの取得範囲(:Range byte=10000-17999)が記述されている。   First, the client terminal 30a transmits a retransmission request to the distribution server 20a (S320). Here, in the retransmission request to be transmitted, the method (GET), the file URL (http: //.../....mp4), and the HTTP version (HTTP / 1.1), as in the retransmission request described above, In addition, a request header field is included, and a data acquisition range (: Range byte = 10000-17999) is described in the request header field.

配信サーバ20aは、再送リクエストを受信すると、リクエスト成功レスポンスをクライアント端末30aに送信し(S322)、続いて、エンティティボディに10000バイトから17999バイト分のフラグメントデータ、すなわち、図17(b)で示したMP4ファイルでいえば、フラグメント1〜4までのフラグメントデータを含めたレスポンスをクライアント端末30aに送信する(S324)。   Upon receiving the retransmission request, the distribution server 20a transmits a request success response to the client terminal 30a (S322), and subsequently, fragment data from 10000 bytes to 17999 bytes in the entity body, that is, as shown in FIG. In the case of the MP4 file, a response including fragment data of fragments 1 to 4 is transmitted to the client terminal 30a (S324).

クライアント端末30aは、同様に、絶対アドレス値が22000バイトの値を有するフラグメントの送信を求める再送リクエストを配信サーバ20aに送信する(S326)。この場合も、リクエストヘッダフィールドに、データの取得範囲(Range byte=22000-23999)が記述される。
配信サーバ20aは、その再送リクエストを受信すると、こちらも同様に、リクエスト成功レスポンスをクライアント端末30aに送信し(S328)、続いて、エンティティボディに22000バイトから23999バイト分のフラグメントデータ、すなわち、図17(b)で示したMP4ファイルでいえば、フラグメント7のフラグメントデータを含めたレスポンスをクライアント端末30aに送信する(S330)。ここでは、再送リクエストはコンテンツのストリーミング視聴終了後に行なうが、ストリーミング視聴中に再送リクエストを発行することとしてもよい。なお、上記ではスキップ発生時について述べたが、伝送路においてフラグメントデータが欠落した際にも同様の処理を適用することができる。
Similarly, the client terminal 30a transmits a retransmission request for transmission of a fragment having an absolute address value of 22000 bytes to the distribution server 20a (S326). Also in this case, the data acquisition range (Range byte = 22000-23999) is described in the request header field.
When the distribution server 20a receives the retransmission request, it similarly transmits a request success response to the client terminal 30a (S328). Subsequently, the fragment data of 22000 bytes to 23999 bytes in the entity body, that is, FIG. In the MP4 file shown in 17 (b), a response including the fragment data of fragment 7 is transmitted to the client terminal 30a (S330). Here, the retransmission request is made after the streaming viewing of the content is completed, but the retransmission request may be issued during the streaming viewing. Although the above description has been made on the occurrence of skipping, the same processing can also be applied when fragment data is lost in the transmission path.

以上説明したようなクライアント端末の構成とすることで、上記実施の形態1〜3で説明したリアルタイム再生を実現するライブストリーミングシステムのように、フラグメントのスキップの発生等によってフラグメントデータが欠落する場合でも、欠落したフラグメントデータの再送を要求して、全てのフラグメントデータを揃えて記録することができるようになる。   By adopting the client terminal configuration as described above, even when fragment data is lost due to the occurrence of fragment skip, etc., as in the live streaming system that realizes real-time playback described in the first to third embodiments. Requesting retransmission of the missing fragment data makes it possible to record all the fragment data together.

(第3変形例)
さらに、本実施の形態4の第3変形例に係るライブストリーミングシステムを構成するクライアント端末について説明する。
図20は、第3変形例に係るクライアント端末の一部構成を示すブロック図である。
図20に示すように、この第3変形例に係るクライアント端末は、上記第2変形例のクライアント端末の構成と比較して、スタッフィング部361を備えている点で異なる。以下、この異なる点を中心に説明する。
(Third Modification)
Furthermore, a client terminal constituting the live streaming system according to the third modification of the fourth embodiment will be described.
FIG. 20 is a block diagram illustrating a partial configuration of a client terminal according to the third modification.
As shown in FIG. 20, the client terminal according to the third modification is different from the client terminal according to the second modification in that a stuffing unit 361 is provided. Hereinafter, this difference will be mainly described.

スキップ判定部351aは、フラグメント記録制御部332bからフラグメントデータを取得して、フラグメントのスキップの有無を判定し、スキップが発生している箇所を示すスキップ情報をスタッフィング部361に出力するとともに、取得したフラグメントデータを記録部分フラグメント格納部333aに格納する。
スタッフィング部361は、スキップ判定部351から出力されるスキップ情報に基づいて、記録開始フラグメント以前のフラグメントやスキップされたフラグメント等、未受信のデータ箇所を埋めるため、その箇所と同一サイズのフリーボックスからなるスタッフィングデータを作成して、記録部分フラグメント格納部333aに格納する処理部である。スキップされたフラグメントのサイズは、フラグメントのサイズを一定にしておく、あるいは、各フラグメントの開始アドレスを示す情報をフラグメント内に格納しておくことにより取得する。
The skip determination unit 351a acquires fragment data from the fragment recording control unit 332b, determines whether or not a fragment is skipped, outputs skip information indicating a portion where a skip occurs to the stuffing unit 361, and acquires the skip information. The fragment data is stored in the recording partial fragment storage unit 333a.
Based on the skip information output from the skip determination unit 351, the stuffing unit 361 fills in unreceived data portions such as a fragment before the recording start fragment and a skipped fragment, and therefore, from a free box having the same size as that portion. This is a processing unit that creates stuffing data and stores it in the recorded partial fragment storage unit 333a. The size of the skipped fragment is obtained by keeping the size of the fragment constant or by storing information indicating the start address of each fragment in the fragment.

また、このスタッフィング部361は、作成したスタッフィングデータが、どのシーケンス番号のフラグメントを埋めているかを示すスタッフィング情報を再送リクエスト作成部352aに出力する。
再送リクエスト作成部352aは、ユーザ指示入力部331bから出力される再送リクエスト作成指示を取得すると、スタッフィング部361から出力されるスタッフィング情報に基づいて、スタッフィングデータで埋められているフラグメントデータの再送を要求する再送リクエストを作成し、リクエスト送信部303に出力する。
In addition, the stuffing unit 361 outputs stuffing information indicating which sequence number fragment the created stuffing data embeds to the retransmission request creation unit 352a.
When the retransmission request creation unit 352a acquires the retransmission request creation instruction output from the user instruction input unit 331b, the retransmission request creation unit 352a requests retransmission of fragment data embedded with stuffing data based on the stuffing information output from the stuffing unit 361. A retransmission request is generated and output to the request transmission unit 303.

その後、リクエスト送信部303は、再送リクエストをHTTPを用いて配信サーバ20aに送信する。そして、クライアント端末が、配信サーバ20aからその再送リクエストに対するレスポンスのエンティティボディに含まれるフラグメントデータを取得すると、スキップ判定部351aは、受信データメモリ308aやフラグメント記録制御部332bを経由して取得したフラグメントデータを、スタッフィングデータと置換して記録部分フラグメント格納部333aに格納する。このスタッフィングデータと置換する様子を、図を用いて説明する。ここで、上記第2変形例と同様に、記録開始フラグメントがシーケンス番号5のフラグメント5であり、シーケンス番号7のフラグメント7がスキップされているとする。   Thereafter, the request transmission unit 303 transmits a retransmission request to the distribution server 20a using HTTP. When the client terminal acquires the fragment data included in the entity body of the response to the retransmission request from the distribution server 20a, the skip determination unit 351a acquires the fragment acquired via the reception data memory 308a and the fragment recording control unit 332b. The data is replaced with the stuffing data and stored in the recording partial fragment storage unit 333a. The manner in which this stuffing data is replaced will be described with reference to the drawings. Here, as in the second modification, it is assumed that the recording start fragment is the fragment 5 with the sequence number 5 and the fragment 7 with the sequence number 7 is skipped.

図21は、スタッフィングデータを用いた場合におけるMP4ファイルの構造を説明するための図である。
まず、ライブストリーミング再生の終了段階では、スキップ判定部351aが、順次受信したフラグメントデータを記録部分フラグメント格納部333aに格納し、スキップの発生等によって受信していないフラグメントデータについては、スタッフィング部361がそのフラグメントデータを埋めるための、同じバイトサイズ分のフリーボックス601および602を作成して、記録部分フラグメント格納部333aに格納するので、MP4ファイル600が記録部分フラグメント格納部333aに格納されることになる。
FIG. 21 is a diagram for explaining the structure of an MP4 file when stuffing data is used.
First, at the end stage of the live streaming playback, the skip determination unit 351a stores the received fragment data in the recording partial fragment storage unit 333a. For the fragment data that has not been received due to the occurrence of a skip or the like, the stuffing unit 361 Free boxes 601 and 602 of the same byte size for filling the fragment data are created and stored in the recording partial fragment storage unit 333a, so that the MP4 file 600 is stored in the recording partial fragment storage unit 333a. Become.

ここで、ユーザ指示入力部331bから再送リクエスト作成部352aに再送リクエスト作成指示が出力されると、配信サーバ20aに再送リクエストがHTTPを用いて送信され、配信サーバ20aから、その再送リクエストに対するレスポンスとして、エンティティボディにシーケンス番号1〜4のフラグメントデータ603とシーケンス番号7のフラグメントデータ604とが含まれたレスポンスが返ってくる。   Here, when a retransmission request creation instruction is output from the user instruction input unit 331b to the retransmission request creation unit 352a, a retransmission request is transmitted to the distribution server 20a using HTTP, and the distribution server 20a receives a response to the retransmission request. , A response including the fragment data 603 of sequence numbers 1 to 4 and the fragment data 604 of sequence number 7 is returned in the entity body.

スキップ判定部351aは、受信データメモリ308aやフラグメント記録制御部332bを経由して、このフラグメントデータ603を取得すると、記録部分フラグメント格納部333aに格納されているMP4ファイル600のフリーボックス601の部分に、フラグメントデータ603を上書きする。同様にして、スキップ判定部351aは、記録部分フラグメント格納部333aに格納されているMP4ファイル600のフリーボックス602の部分に、フラグメントデータ604を上書きする。   When the skip determination unit 351a obtains the fragment data 603 via the reception data memory 308a and the fragment recording control unit 332b, the skip determination unit 351a stores the fragment data 603 in the free box 601 portion of the MP4 file 600 stored in the recording part fragment storage unit 333a. The fragment data 603 is overwritten. Similarly, the skip determination unit 351a overwrites the fragment data 604 on the free box 602 portion of the MP4 file 600 stored in the recording partial fragment storage unit 333a.

このようにして、最終的には、記録部分フラグメント格納部333aに、欠落したフラグメントのないMP4ファイル610が格納されることになる。
このようにクライアント端末を構成することで、フラグメントのスキップの発生等によってフラグメントデータが欠落している箇所に、欠落したフラグメントデータ分のスタッフィングデータを作成しておくことができる。そして、送信要求により全てのフラグメントデータを揃えて記録する際には、このスタッフィングデータに取得したフラグメントデータを置き換えればよく、既に記録済みのフラグメントデータの格納領域を書き換える必要がなくなり、MP4ファイルの再構成時の処理負担を軽減することができる。
In this way, finally, the MP4 file 610 having no missing fragment is stored in the recording partial fragment storage unit 333a.
By configuring the client terminal in this way, it is possible to create stuffing data for the missing fragment data at a location where the fragment data is missing due to fragment skipping or the like. When all the fragment data is recorded in accordance with the transmission request, it is only necessary to replace the acquired fragment data with the stuffing data, and it is not necessary to rewrite the storage area of the already recorded fragment data. The processing burden during configuration can be reduced.

以上、本発明に係るデータ多重化方法、データ送信方法およびデータ受信方法について各実施の形態および変形例に基づき説明したが、本発明は、これらの実施の形態や変形例に限定されるものではない。
例えば、上記各実施の形態では、ビデオデータの符号化方式として、MPEG−4 Visualを例示しているが、MPEG−4 AVC(Advanced Video Coding)やH.263等のその他の動画像圧縮符号化方式を用いてもよい。なお、MPEG−4 AVCやH.263の符号化データでは、1ピクチャが1サンプルに相当することになる。
As described above, the data multiplexing method, the data transmission method, and the data reception method according to the present invention have been described based on the respective embodiments and modifications. However, the present invention is not limited to these embodiments and modifications. Absent.
For example, in each of the above embodiments, MPEG-4 Visual is exemplified as a video data encoding method, but MPEG-4 AVC (Advanced Video Coding) or H.264 is exemplified. Other video compression encoding methods such as H.263 may be used. MPEG-4 AVC and H.264 In the encoded data of H.263, one picture corresponds to one sample.

同様に、オーディオデータの符号化方式として、MPEG−4 AACを例示しているが、AMRやG.726等のその他の音声圧縮符号化方式を用いてもよい。
また、上記各実施の形態では、ビデオデータとオーディオデータとを用いて説明しているが、テキストデータ等を排除する趣旨でないことはいうまでもない。
さらに、上記実施の形態3において、ビデオサンプルとオーディオサンプルとの同期を図るための同期情報として、ビデオサンプルおよびオーディオサンプルの表示時刻を用いているが、ビデオサンプルの表示開始時間とオーディオサンプルの表示開始時間との差分値を用いることとしてもよい。
Similarly, MPEG-4 AAC is exemplified as an audio data encoding method. Other audio compression encoding schemes such as 726 may be used.
In each of the above embodiments, video data and audio data are used for explanation, but it goes without saying that text data and the like are not excluded.
Further, in the third embodiment, the display time of the video sample and the audio sample is used as the synchronization information for synchronizing the video sample and the audio sample. However, the display start time of the video sample and the display of the audio sample are used. A difference value from the start time may be used.

なお、上記各実施の形態において使用するMP4ファイルでは、基本部のムービーデータボックスを省略することとしたが、コンテンツのサムネイル画像や、コンテンツの紹介映像などを基本部のムービーデータボックスに格納し、初期ヘッダ情報と合わせてクライアント端末に送信することとしてもよい。クライアント端末では、コンテンツの再生開始前に自動的に、あるいは、ユーザの指示や端末設定に応じて選択的に、基本部のムービーデータボックスに格納されたデータを再生する。   In the MP4 file used in each of the above embodiments, the movie data box of the basic part is omitted. However, the thumbnail image of the content, the introduction video of the content, etc. are stored in the movie data box of the basic part, It is good also as transmitting to a client terminal together with initial header information. The client terminal reproduces the data stored in the movie data box of the basic part automatically before starting the reproduction of the content or selectively according to a user instruction or terminal setting.

本発明に係るデータ多重化方法、データ受信方法およびデータ送信方法は、コンサート中継やスポーツ中継等のライブコンテンツを配信する画像配信システム等に適用することができ、特に、MP4ファイルをHTTPを用いてリアルタイム配信するライブストリーミングシステム等に好適である。   The data multiplexing method, data receiving method, and data transmitting method according to the present invention can be applied to an image distribution system that distributes live content such as a concert broadcast or a sports broadcast, and in particular, an MP4 file using HTTP. It is suitable for a live streaming system that distributes in real time.

本発明の実施の形態1に係るライブストリーミングシステムの全体構成図である。1 is an overall configuration diagram of a live streaming system according to Embodiment 1 of the present invention. ライブストリーミングシステムにおけるクライアント端末の構成を示すブロック図である。It is a block diagram which shows the structure of the client terminal in a live streaming system. ライブストリーミングシステムにおける配信サーバの構成を示すブロック図である。It is a block diagram which shows the structure of the delivery server in a live streaming system. ライブストリーミングシステムにおけるエンコーダの構成を示すブロック図である。It is a block diagram which shows the structure of the encoder in a live streaming system. ライブストリーミングシステムにおける各装置間の通信シーケンス図である。It is a communication sequence diagram between each apparatus in a live streaming system. HTTPを用いた配信サーバとクライアント端末間の通信シーケンスの第1例を示す図である。It is a figure which shows the 1st example of the communication sequence between the delivery server and client terminal using HTTP. HTTPを用いた配信サーバとクライアント端末間の通信シーケンスの第2例を示す図である。It is a figure which shows the 2nd example of the communication sequence between the delivery server and client terminal using HTTP. 実施の形態2に係るライブストリーミングシステムにおける配信サーバの構成を示すブロック図である。6 is a block diagram showing a configuration of a distribution server in a live streaming system according to Embodiment 2. FIG. 実施の形態2に係るライブストリーミングシステムにおける各装置間の通信シーケンス図である。6 is a communication sequence diagram between devices in a live streaming system according to Embodiment 2. FIG. 実施の形態3に係るライブストリーミングシステムにおけるエンコーダの一部構成を示すブロック図である。10 is a block diagram showing a partial configuration of an encoder in a live streaming system according to Embodiment 3. FIG. ムービーフラグメントシンクロボックスのシンタックスの例を示す図である。It is a figure which shows the example of the syntax of a movie fragment sync box. 実施の形態3に係るライブストリーミングシステムにおけるクライアント端末の一部構成を示すブロック図である。10 is a block diagram showing a partial configuration of a client terminal in a live streaming system according to Embodiment 3. FIG. 実施の形態4に係るライブストリーミングシステムにおけるクライアント端末の一部構成を示すブロック図である。10 is a block diagram showing a partial configuration of a client terminal in a live streaming system according to Embodiment 4. FIG. クライアント端末における記録動作処理のフロー図である。It is a flowchart of the recording operation process in a client terminal. 第1変形例に係るクライアント端末の一部構成を示すブロック図である。It is a block diagram which shows the partial structure of the client terminal which concerns on a 1st modification. 第2変形例に係るクライアント端末の一部構成を示すブロック図である。It is a block diagram which shows the partial structure of the client terminal which concerns on a 2nd modification. (a)は、スキップが発生した場合におけるMP4ファイルの構造の第1例を説明するための図であり、(b)は、スキップが発生した場合におけるMP4ファイルの構造の第2例を説明するための図である。(A) is a figure for demonstrating the 1st example of the structure of MP4 file when a skip generate | occur | produces, (b) demonstrates the 2nd example of the structure of an MP4 file when a skip generate | occur | produces. FIG. スキップが発生した場合におけるクライアント端末の画面表示例である。It is an example of a screen display of a client terminal when a skip occurs. (a)は、HTTPを用いた配信サーバとクライアント端末間の通信シーケンスの第1例を示す図であり、(b)は、HTTPを用いた配信サーバとクライアント端末間の通信シーケンスの第2例を示す図である。(A) is a figure which shows the 1st example of the communication sequence between the delivery server and client terminal using HTTP, (b) is the 2nd example of the communication sequence between the delivery server and client terminal using HTTP. FIG. 第3変形例に係るクライアント端末の一部構成を示すブロック図である。It is a block diagram which shows the partial structure of the client terminal which concerns on a 3rd modification. スタッフィングデータを用いた場合におけるMP4ファイルの構造を説明するための図である。It is a figure for demonstrating the structure of MP4 file in the case of using stuffing data. MP4ファイルを構成するボックスの構造を説明するための図である。It is a figure for demonstrating the structure of the box which comprises MP4 file. 従来のMP4ファイルの基本部を説明するための図である。It is a figure for demonstrating the basic part of the conventional MP4 file. 従来における拡張部を含むMP4ファイルの構造を示す図である。It is a figure which shows the structure of the MP4 file containing the extension part in the past. 従来におけるライブストリーミングシステムの問題点を説明するための図である。It is a figure for demonstrating the problem of the conventional live streaming system.

符号の説明Explanation of symbols

10、930 エンコーダ
20、20a、940 配信サーバ
30、30a、950 クライアント端末
101 ビデオ符号化部
102 ビデオデータ蓄積部
103 オーディオ符号化部
104 オーディオデータ蓄積部
105 パケット作成命令部
106、106a パケットヘッダ作成部
107 パケットサイズ判定部
108 サイズ調整部
109 パケットデータ作成部
110 パケット結合部
121 ビデオヘッダ情報解析部
122 オーディオヘッダ情報解析部
123 同期情報決定部
124 同期情報格納ボックス作成部
125 ヘッダ情報作成部
201 多重化データ受信部
202 多重化データ蓄積部
203 リクエスト受信部
204 リクエスト解析部
205 サイズ情報取得部
206、216 送信データ制御部
207 送信データメモリ
208、218 レスポンス送信部
211 遅延判定部
301 コンテンツURL取得部
302 第1リクエスト作成部
303 リクエスト送信部
304 レスポンス受信部
305 第1レスポンス解析部
306、306a 第2リクエスト作成部
307、307a 第2レスポンス解析部
308、308a 受信データメモリ
309、309a フラグメント受信完了判定部
310、310a 多重化データ分離部
311、311a ヘッダ解析部
312 サンプルデータ取得部
313、313a、313b 復号表示部
321 同期情報設定フラグメント判定部
322 traf分離解析部
323 mfsy分離解析部
331、331a、331b ユーザ指示入力部
332、332a、332b フラグメント記録制御部
333、333a 記録部分フラグメント格納部
341 記録箇所情報メモリ
342 再生区間判定部
351、351a スキップ判定部
352、352a 再送リクエスト作成部
361 スタッフィング部
400、500、600、610、910、920 MP4ファイル
601、602 フリーボックス
603、604 フラグメントデータ
901 ボックス
902 ボックスヘッダ部
903 ボックスデータ格納部
904 ボックスサイズ
905 ボックスタイプ
906 バージョン
907 フラグ
911 基本部
912 ファイルヘッダ部
913 ファイルデータ部
914 ファイルタイプボックス
915 ムービーボックス
916 ムービーデータボックス
921 拡張部
922 ムービーフラグメント
923 ムービーフラグメントボックス

DESCRIPTION OF SYMBOLS 10,930 Encoder 20,20a, 940 Distribution server 30,30a, 950 Client terminal 101 Video encoding part 102 Video data storage part 103 Audio encoding part 104 Audio data storage part 105 Packet creation command part 106, 106a Packet header preparation part 107 packet size determination unit 108 size adjustment unit 109 packet data creation unit 110 packet combination unit 121 video header information analysis unit 122 audio header information analysis unit 123 synchronization information determination unit 124 synchronization information storage box creation unit 125 header information creation unit 201 multiplexing Data reception unit 202 Multiplexed data storage unit 203 Request reception unit 204 Request analysis unit 205 Size information acquisition unit 206, 216 Transmission data control unit 207 Transmission data memory 208, 218 Response transmission unit 211 Delay determination unit 301 Content URL acquisition unit 302 First request creation unit 303 Request transmission unit 304 Response reception unit 305 First response analysis unit 306, 306a Second request creation unit 307, 307a Second response analysis Unit 308, 308a Received data memory 309, 309a Fragment reception completion determination unit 310, 310a Multiplexed data separation unit 311, 311a Header analysis unit 312 Sample data acquisition unit 313, 313a, 313b Decoding display unit 321 Synchronization information setting fragment determination unit 322 traf separation analysis unit 323 mfsy separation analysis unit 331, 331a, 331b user instruction input unit 332, 332a, 332b fragment recording control unit 333, 333a recording part Fragment storage unit 341 Recording location information memory 342 Playback section determination unit 351, 351a Skip determination unit 352, 352a Retransmission request creation unit 361 Stuffing unit 400, 500, 600, 610, 910, 920 MP4 file 601, 602 Free box 603, 604 Fragment data 901 Box 902 Box header part 903 Box data storage part 904 Box size 905 Box type 906 Version 907 Flag 911 Basic part 912 File header part 913 File data part 914 File type box 915 Movie box 916 Movie data box 921 Extension part 922 Movie Fragment 923 Movie fragment box

Claims (18)

コンテンツ全体に共通のヘッダである共通ヘッダと、当該コンテンツの実体データおよび当該実体データのヘッダ情報を格納する複数のパケットとから構成されるファイルを、ネットワークで接続されたサーバ装置から受信するデータ受信方法であって、
前記共通ヘッダおよび前記コンテンツにおける最新の実体データを格納する最新パケットの配信を前記サーバ装置に要求するデータ取得リクエストを作成するリクエスト作成ステップと、
前記データ取得リクエストを、HTTP(Hypertext Transfer Protocol)によって前記サーバ装置に送信するリクエスト送信ステップと、
前記データ取得リクエストに対する応答として、前記共通ヘッダおよび前記最新パケットを含むレスポンスを前記サーバ装置からHTTPによって受信するレスポンス受信ステップとを含む
ことを特徴とするデータ受信方法。
Data reception for receiving a file composed of a common header, which is a header common to the entire content, and entity data of the content and a plurality of packets storing header information of the entity data from a server device connected via a network A method,
A request creation step of creating a data acquisition request for requesting the server device to deliver a latest packet storing the latest entity data in the common header and the content;
A request transmission step of transmitting the data acquisition request to the server device by HTTP (Hypertext Transfer Protocol);
A response reception step of receiving, as a response to the data acquisition request, a response including the common header and the latest packet from the server device by HTTP.
前記データ受信方法は、さらに、
前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報の配信を前記サーバ装置に要求するサイズ情報取得リクエストを作成するサイズ情報取得リクエスト作成ステップと、
前記サイズ情報取得リクエストを、HTTPによって前記サーバ装置に送信するサイズ情報取得リクエスト送信ステップと、
前記サイズ情報取得リクエストに対する応答として、前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報を含むサイズ情報レスポンスを前記サーバ装置からHTTPによって受信するサイズ情報レスポンス受信ステップとを含み、
前記リクエスト作成ステップにおいて、前記サイズ情報レスポンス受信ステップにおいて受信した前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報に基づいて、前記データ取得リクエストを作成する
ことを特徴とする請求項1記載のデータ受信方法。
The data receiving method further includes:
A size information acquisition request creating step for creating a size information acquisition request for requesting the server device to deliver the size information of the common header and the size information of the latest packet;
A size information acquisition request transmission step of transmitting the size information acquisition request to the server device by HTTP;
As a response to the size information acquisition request, a size information response reception step of receiving a size information response including the size information of the common header and the size information of the latest packet from the server device by HTTP,
2. The data according to claim 1, wherein, in the request creation step, the data acquisition request is created based on the size information of the common header and the size information of the latest packet received in the size information response reception step. Receiving method.
前記リクエスト作成ステップにおいて、HTTPの拡張部に前記共通ヘッダおよび前記最新パケットの配信を要求する旨の情報を記述することによって前記データ取得リクエストを作成する
ことを特徴とする請求項1記載のデータ受信方法。
The data reception request according to claim 1, wherein, in the request creation step, the data acquisition request is created by describing information indicating that the common header and the delivery of the latest packet are requested in an extension part of HTTP. Method.
前記リクエスト作成ステップにおいて、前記共通ヘッダの配信を要求する第1データ取得リクエストと、前記最新パケットの配信を要求する第2データ取得リクエストとを作成し、 前記リクエスト送信ステップにおいて、前記第1データ取得リクエストと、前記第2データ取得リクエストとを独立してHTTPによって前記サーバ装置に送信し、
前記リクエスト受信ステップにおいて、前記第1データ取得リクエストに対する応答として、前記共通ヘッダを含む第1レスポンスと、前記第2データ取得リクエストに対する応答として、前記最新パケットを含む第2レスポンスとをHTTPによって受信する
ことを特徴とする請求項1〜3のいずれか1項に記載のデータ受信方法。
In the request creation step, a first data acquisition request for requesting delivery of the common header and a second data acquisition request for requesting delivery of the latest packet are created. In the request transmission step, the first data acquisition request A request and the second data acquisition request are independently transmitted to the server apparatus by HTTP;
In the request reception step, as a response to the first data acquisition request, a first response including the common header and a second response including the latest packet as a response to the second data acquisition request are received by HTTP. The data receiving method according to any one of claims 1 to 3.
前記データ受信方法は、さらに、
前記パケットに含まれるデータを受信して再生する際の再生開始時間が、前記ファイルを実時間で再生した際の当該パケットの再生開始時間に対して所定の閾値以上遅延する場合に、時間的に不連続となるパケットの受信を行なうか、時間的に連続するパケットの受信を行なうかの選択を受け付けるスキップ受信選択受付ステップを含み、
前記リクエスト作成ステップにおいて、前記スキップ受信選択受付ステップにおける選択結果を示す情報を記述したデータ取得リクエストを作成する
ことを特徴とする請求項1〜4のいずれか1項に記載のデータ受信方法。
The data receiving method further includes:
When the playback start time when receiving and playing back the data included in the packet is delayed by a predetermined threshold or more with respect to the playback start time of the packet when the file is played back in real time, A skip reception selection accepting step for accepting a selection of whether to receive a discontinuous packet or a temporally continuous packet;
5. The data reception method according to claim 1, wherein, in the request creation step, a data acquisition request describing information indicating a selection result in the skip reception selection reception step is created.
前記データ受信方法は、さらに、
前記スキップ受信選択受付ステップにおいて、時間的に不連続となるパケットの受信を行なう選択を受け付けた場合に、不連続となった箇所を表示するスキップ発生表示ステップを含む
ことを特徴とする請求項5記載のデータ受信方法。
The data receiving method further includes:
The skip reception selection reception step includes a skip generation display step of displaying a discontinuous portion when a selection for receiving a packet that is discontinuous in time is received. The data receiving method described.
前記データ受信方法は、さらに、
1つ以上のパケット毎に作成された前記パケットに含まれるメディアデータ間の同期再生を図るための同期情報を取得する同期情報取得ステップと、
前記同期情報取得ステップにおいて取得した同期情報を用いて、前記メディアデータを再生する同期再生ステップとを含む
ことを特徴とする請求項1〜6のいずれか1項に記載のデータ受信方法。
The data receiving method further includes:
A synchronization information acquisition step of acquiring synchronization information for synchronizing playback between media data included in the packets created for each of one or more packets;
The data reception method according to claim 1, further comprising: a synchronous reproduction step of reproducing the media data using the synchronization information acquired in the synchronization information acquisition step.
コンテンツ全体に共通のヘッダである共通ヘッダと、当該コンテンツの実体データおよび当該実体データのヘッダ情報を格納する複数のパケットとから構成されるファイルを、ネットワークで接続された端末装置に送信するデータ送信方法であって、
前記端末装置から前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報の配信を要求するサイズ情報取得リクエストを受信するサイズ情報取得リクエスト受信ステップと、
前記サイズ情報取得リクエストを解析して、前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報を作成するサイズ情報作成ステップと、
前記サイズ情報取得リクエストに対する応答として、前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報を含むサイズ情報レスポンスを作成するサイズ情報レスポンス作成ステップと、
前記サイズ情報レスポンスを、HTTPによって前記端末装置に送信するサイズ情報レスポンス送信ステップと
前記端末装置から、前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報に基づいて作成され、前記共通ヘッダおよび前記コンテンツにおける最新の実体データを格納する最新パケットの配信を要求するデータ取得リクエストを受信するリクエスト受信ステップと、
前記データ取得リクエストを解析して、前記最新パケットを決定する最新パケット判定ステップと、
前記データ取得リクエストに対する応答であり、前記共通ヘッダと、前記最新パケット判定ステップにおいて決定した前記最新パケットとを含むレスポンスを作成するレスポンス作成ステップと、
前記レスポンスを、HTTPによって前記端末装置に送信するレスポンス送信ステップとを含む
ことを特徴とするデータ送信方法。
Data transmission for transmitting a file composed of a common header, which is a header common to all contents, and entity data of the content and a plurality of packets storing the header information of the entity data to a terminal device connected via a network A method,
A size information acquisition request receiving step for receiving a size information acquisition request for requesting distribution of the size information of the common header and the size information of the latest packet from the terminal device;
Analyzing the size information acquisition request, creating size information for creating the size information of the common header and the size information of the latest packet;
As a response to the size information acquisition request, a size information response creating step for creating a size information response including the size information of the common header and the size information of the latest packet;
A size information response transmission step for transmitting the size information response to the terminal device by HTTP, and the terminal device is created based on the size information of the common header and the size information of the latest packet, and the common header and the content A request receiving step for receiving a data acquisition request for requesting delivery of the latest packet storing the latest entity data in
Analyzing the data acquisition request to determine the latest packet; a latest packet determining step;
A response creation step for creating a response that is a response to the data acquisition request and includes the common header and the latest packet determined in the latest packet determination step;
A response transmission step of transmitting the response to the terminal device by HTTP.
前記データ送信方法は、さらに、
前記レスポンス送信ステップにおいて送信されるパケットに含まれる前記データの再生開始時間が、前記ファイルを実時間で再生した場合に対してどれだけ遅延しているかを示す遅延時間を取得する遅延時間取得ステップと、
前記遅延時間取得ステップにおいて取得した情報に基づいて、前記遅延時間が所定の閾値以上開いたか否かを判定する遅延判定ステップと、
前記遅延判定ステップにおいて、前記遅延時間が所定の閾値以上開いたと判定した場合に、時間的に不連続となるパケットの送信を決定するスキップ決定ステップとを含み、
前記レスポンス作成ステップにおいて、前記スキップ決定ステップにおける決定に基づいて、前記時間的に不連続となるパケットを含むスキップレスポンスを作成し、
前記レスポンス送信ステップにおいて、前記スキップレスポンスをHTTPによって前記端末装置に送信する
ことを特徴とする請求項8記載のデータ送信方法。
The data transmission method further includes:
A delay time acquisition step of acquiring a delay time indicating how much the reproduction start time of the data included in the packet transmitted in the response transmission step is delayed with respect to a case where the file is reproduced in real time; ,
Based on the information acquired in the delay time acquisition step, a delay determination step of determining whether or not the delay time is opened more than a predetermined threshold;
In the delay determination step, when it is determined that the delay time is opened more than a predetermined threshold, a skip determination step of determining transmission of a packet that is discontinuous in time,
In the response creation step, based on the determination in the skip determination step, create a skip response including the temporally discontinuous packet,
The data transmission method according to claim 8, wherein, in the response transmission step, the skip response is transmitted to the terminal device by HTTP.
コンテンツに含まれる複数のメディアデータを多重化して、当該コンテンツ全体に共通のヘッダである共通ヘッダと、当該コンテンツの実体データおよび当該実体データのヘッダ情報を格納する複数のパケットとから構成されるファイルを作成するデータ多重化方法であって、
1つ以上のパケット毎に前記パケットに含まれるメディアデータ間の同期再生を図るための同期情報を作成する同期情報作成ステップと、
前記同期情報作成ステップにおいて作成した同期情報を含むファイルを作成するファイル作成ステップとを含む
ことを特徴とするデータ多重化方法。
A file composed of a plurality of media data included in a content and a common header that is a header common to the entire content, and entity data of the content and a plurality of packets that store header information of the entity data A data multiplexing method for creating
A synchronization information creation step of creating synchronization information for synchronizing playback between media data included in the packets for each of one or more packets;
And a file creation step of creating a file including the synchronization information created in the synchronization information creation step.
コンテンツ全体に共通のヘッダである共通ヘッダと、当該コンテンツの実体データおよび当該実体データのヘッダ情報を格納する複数のパケットとから構成されるファイルを、ネットワークで接続されたサーバ装置から受信するデータ受信装置であって、
前記共通ヘッダおよび前記コンテンツにおける最新の実体データを格納する最新パケットの配信を前記サーバ装置に要求するデータ取得リクエストを作成するリクエスト作成手段と、
前記データ取得リクエストを、HTTPによって前記サーバ装置に送信するリクエスト送信手段と、
前記データ取得リクエストに対する応答として、前記共通ヘッダおよび前記最新パケットを含むレスポンスを前記サーバ装置からHTTPによって受信するレスポンス受信手段とを備える
ことを特徴とするデータ受信装置。
Data reception for receiving a file composed of a common header, which is a header common to the entire content, and entity data of the content and a plurality of packets storing header information of the entity data from a server device connected via a network A device,
Request creation means for creating a data acquisition request for requesting the server device to deliver a latest packet storing the latest actual data in the common header and the content;
Request transmission means for transmitting the data acquisition request to the server device by HTTP;
Response receiving means for receiving, as a response to the data acquisition request, a response including the common header and the latest packet from the server device by HTTP.
コンテンツ全体に共通のヘッダである共通ヘッダと、当該コンテンツの実体データおよび当該実体データのヘッダ情報を格納する複数のパケットとから構成されるファイルを、ネットワークで接続された端末装置に送信するデータ送信装置であって、
前記端末装置から前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報の配信を要求するサイズ情報取得リクエストを受信するサイズ情報取得リクエスト受信手段と、
前記サイズ情報取得リクエストを解析して、前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報を作成するサイズ情報作成手段と、
前記サイズ情報取得リクエストに対する応答として、前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報を含むサイズ情報レスポンスを作成するサイズ情報レスポンス作成手段と、
前記サイズ情報レスポンスを、HTTPによって前記端末装置に送信するサイズ情報レスポンス送信手段と
前記端末装置から、前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報に基づいて作成され、前記共通ヘッダおよび前記コンテンツにおける最新の実体データを格納する最新パケットの配信を要求するデータ取得リクエストを受信するリクエスト受信手段と、
前記データ取得リクエストを解析して、前記最新パケットを決定する最新パケット判定手段と、
前記データ取得リクエストに対する応答であり、前記共通ヘッダと、前記最新パケット判定手段が決定した前記最新パケットとを含むレスポンスを作成するレスポンス作成手段と、
前記レスポンスを、HTTPによって前記端末装置に送信するレスポンス送信手段とを備える
ことを特徴とするデータ送信装置。
Data transmission for transmitting a file composed of a common header, which is a header common to all contents, and entity data of the content and a plurality of packets storing the header information of the entity data to a terminal device connected via a network A device,
Size information acquisition request receiving means for receiving a size information acquisition request for requesting distribution of the size information of the common header and the size information of the latest packet from the terminal device;
Analyzing the size information acquisition request, size information creating means for creating size information of the common header and size information of the latest packet;
As a response to the size information acquisition request, size information response creating means for creating a size information response including size information of the common header and size information of the latest packet;
The size information response is generated based on the size information of the common header and the size information of the latest packet from the terminal device, and the size information response transmission means for transmitting the size information response to the terminal device by HTTP. Request receiving means for receiving a data acquisition request for requesting delivery of the latest packet storing the latest entity data in
Analyzing the data acquisition request and determining the latest packet; latest packet determination means;
A response creation unit that creates a response that is a response to the data acquisition request and includes the common header and the latest packet determined by the latest packet determination unit;
Response transmitting means for transmitting the response to the terminal device by HTTP. A data transmitting device comprising:
前記データ送信装置は、さらに、
前記レスポンス送信手段が送信するパケットに含まれる前記データの再生開始時間が、前記ファイルを実時間で再生した場合に対してどれだけ遅延しているかを示す遅延時間を取得する遅延時間取得手段と、
前記遅延時間取得手段が取得した情報に基づいて、前記遅延時間が所定の閾値以上開いたか否かを判定する遅延判定手段と、
前記遅延判定手段が、前記遅延時間が所定の閾値以上開いたと判定した場合に、時間的に不連続となるパケットの送信を決定するスキップ決定手段とを備え、
前記レスポンス作成手段は、前記スキップ決定手段の決定に基づいて、前記時間的に不連続となるパケットを含むスキップレスポンスを作成し、
前記レスポンス送信手段は、前記スキップレスポンスをHTTPによって前記端末装置に送信する
ことを特徴とする請求項12記載のデータ送信装置。
The data transmission device further includes:
A delay time acquisition means for acquiring a delay time indicating how much the reproduction start time of the data included in the packet transmitted by the response transmission means is delayed when the file is reproduced in real time;
A delay determining unit that determines whether or not the delay time is opened by a predetermined threshold or more based on the information acquired by the delay time acquiring unit;
When the delay determination unit determines that the delay time is opened more than a predetermined threshold, a skip determination unit that determines transmission of a packet that is temporally discontinuous,
The response creating means creates a skip response including the temporally discontinuous packet based on the determination of the skip determining means,
The data transmission device according to claim 12, wherein the response transmission unit transmits the skip response to the terminal device by HTTP.
コンテンツに含まれる複数のメディアデータを多重化して、当該コンテンツ全体に共通のヘッダである共通ヘッダと、当該コンテンツの実体データおよび当該実体データのヘッダ情報を格納する複数のパケットとから構成されるファイルを作成するデータ多重化装置であって、
1つ以上のパケット毎に前記パケットに含まれるメディアデータ間の同期再生を図るための同期情報を作成する同期情報作成手段と、
前記同期情報作成手段が作成した同期情報を含むファイルを作成するファイル作成手段とを備える
ことを特徴とするデータ多重化装置。
A file composed of a plurality of media data included in a content and a common header that is a header common to the entire content, and entity data of the content and a plurality of packets that store header information of the entity data A data multiplexing device for creating
Synchronization information creating means for creating synchronization information for synchronizing reproduction between media data included in the packets for each of one or more packets;
A data multiplexing apparatus comprising: a file creation unit that creates a file including the synchronization information created by the synchronization information creation unit.
コンテンツ全体に共通のヘッダである共通ヘッダと、当該コンテンツの実体データおよび当該実体データのヘッダ情報を格納する複数のパケットとから構成されるファイルを、ネットワークで接続されたサーバ装置から受信するデータ受信装置のためのプログラムであって、
前記共通ヘッダおよび前記コンテンツにおける最新の実体データを格納する最新パケットの配信を前記サーバ装置に要求するデータ取得リクエストを作成するリクエスト作成ステップと、
前記データ取得リクエストを、HTTPによって前記サーバ装置に送信するリクエスト送信ステップと、
前記データ取得リクエストに対する応答として、前記共通ヘッダおよび前記最新パケットを含むレスポンスを前記サーバ装置からHTTPによって受信するレスポンス受信ステップとをコンピュータに実行させる
ことを特徴とするプログラム。
Data reception for receiving a file composed of a common header, which is a header common to the entire content, and entity data of the content and a plurality of packets storing header information of the entity data from a server device connected via a network A program for a device,
A request creation step of creating a data acquisition request for requesting the server device to deliver a latest packet storing the latest entity data in the common header and the content;
A request transmission step of transmitting the data acquisition request to the server device by HTTP;
A program that causes a computer to execute a response reception step of receiving a response including the common header and the latest packet from the server device by HTTP as a response to the data acquisition request.
コンテンツ全体に共通のヘッダである共通ヘッダと、当該コンテンツの実体データおよび当該実体データのヘッダ情報を格納する複数のパケットとから構成されるファイルを、ネットワークで接続された端末装置に送信するデータ送信装置のためのプログラムであって、
前記端末装置から前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報の配信を要求するサイズ情報取得リクエストを受信するサイズ情報取得リクエスト受信ステップと、
前記サイズ情報取得リクエストを解析して、前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報を作成するサイズ情報作成ステップと、
前記サイズ情報取得リクエストに対する応答として、前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報を含むサイズ情報レスポンスを作成するサイズ情報レスポンス作成ステップと、
前記サイズ情報レスポンスを、HTTPによって前記端末装置に送信するサイズ情報レスポンス送信ステップと
前記端末装置から、前記共通ヘッダのサイズ情報および前記最新パケットのサイズ情報に基づいて作成され、前記共通ヘッダおよび前記コンテンツにおける最新の実体データを格納する最新パケットの配信を要求するデータ取得リクエストを受信するリクエスト受信ステップと、
前記データ取得リクエストを解析して、前記最新パケットを決定する最新パケット判定ステップと、
前記データ取得リクエストに対する応答であり、前記共通ヘッダと、前記最新パケット判定ステップにおいて決定した前記最新パケットとを含むレスポンスを作成するレスポンス作成ステップと、
前記レスポンスを、HTTPによって前記端末装置に送信するレスポンス送信ステップとをコンピュータに実行させる
ことを特徴とするプログラム。
Data transmission for transmitting a file composed of a common header, which is a header common to all contents, and entity data of the content and a plurality of packets storing the header information of the entity data to a terminal device connected via a network A program for a device,
A size information acquisition request receiving step for receiving a size information acquisition request for requesting distribution of the size information of the common header and the size information of the latest packet from the terminal device;
Analyzing the size information acquisition request, creating size information for creating the size information of the common header and the size information of the latest packet;
As a response to the size information acquisition request, a size information response creating step for creating a size information response including the size information of the common header and the size information of the latest packet;
A size information response transmission step for transmitting the size information response to the terminal device by HTTP, and the terminal device is created based on the size information of the common header and the size information of the latest packet, and the common header and the content A request receiving step for receiving a data acquisition request for requesting delivery of the latest packet storing the latest entity data in
Analyzing the data acquisition request to determine the latest packet; a latest packet determining step;
A response creation step for creating a response that is a response to the data acquisition request and includes the common header and the latest packet determined in the latest packet determination step;
A program that causes a computer to execute a response transmission step of transmitting the response to the terminal device by HTTP.
コンテンツに含まれる複数のメディアデータを多重化して、当該コンテンツ全体に共通のヘッダである共通ヘッダと、当該コンテンツの実体データおよび当該実体データのヘッダ情報を格納する複数のパケットとから構成されるファイルを作成するデータ多重化装置のためのプログラムであって、
1つ以上のパケット毎に前記パケットに含まれるメディアデータ間の同期再生を図るための同期情報を作成する同期情報作成ステップと、
前記同期情報作成ステップにおいて作成した同期情報を含むファイルを作成するファイル作成ステップとをコンピュータに実行させる
ことを特徴とするプログラム。
A file configured by multiplexing a plurality of media data included in a content and including a common header which is a header common to the entire content, and a plurality of packets storing entity data of the content and header information of the entity data A program for a data multiplexing device for creating
A synchronization information creation step of creating synchronization information for synchronizing playback between media data included in the packets for each of one or more packets;
A program for causing a computer to execute a file creation step for creating a file including the synchronization information created in the synchronization information creation step.
コンテンツに含まれる複数のメディアデータを多重化して、当該コンテンツ全体に共通のヘッダである共通ヘッダと、当該コンテンツの実体データおよび当該実体データのヘッダ情報を格納する複数のパケットとから構成されるファイルを作成するデータ多重化装置と、前記ファイルをネットワークで接続されたデータ受信装置に送信するデータ送信装置と、前記ファイルをネットワークで接続されたデータ送信装置から受信するデータ受信装置とを備えるストリーミング配信システムであって、
前記データ多重化装置は、
1つ以上のパケット毎に前記パケットに含まれるメディアデータ間の同期再生を図るための同期情報を作成する同期情報作成手段と、
前記同期情報作成手段が作成した同期情報を含むファイルを作成するファイル作成手段とを備え、
前記データ受信装置は、
前記共通ヘッダおよび前記コンテンツにおける最新の実体データを格納する最新パケットの配信を前記データ送信装置に要求するデータ取得リクエストを作成するリクエスト作成手段と、
前記データ取得リクエストを、HTTPによって前記データ送信装置に送信するリクエスト送信手段と、
前記データ取得リクエストに対する応答として、前記共通ヘッダおよび前記最新パケットを含むレスポンスを前記データ送信装置からHTTPによって受信するレスポンス受信手段と、
前記同期情報を用いて、前記メディアデータを再生する同期再生手段とを備え、
前記データ送信装置は、
前記データ受信装置から前記データ取得リクエストを受信するリクエスト受信手段と、
前記データ取得リクエストを解析して、前記最新パケットを決定する最新パケット判定手段と、
前記データ取得リクエストに対する応答として、前記レスポンスを作成するレスポンス作成手段と、
前記レスポンスを、HTTPによって前記データ受信装置に送信するレスポンス送信手段とを備える
ことを特徴とするストリーミング配信システム。

A file composed of a plurality of media data included in a content and a common header that is a header common to the entire content, and entity data of the content and a plurality of packets that store header information of the entity data Streaming distribution comprising: a data multiplexing device for generating a file; a data transmitting device for transmitting the file to a data receiving device connected via a network; and a data receiving device for receiving the file from a data transmitting device connected via a network A system,
The data multiplexing device comprises:
Synchronization information creating means for creating synchronization information for synchronizing reproduction between media data included in the packets for each of one or more packets;
A file creation means for creating a file including the synchronization information created by the synchronization information creation means,
The data receiving device is:
Request creation means for creating a data acquisition request for requesting the data transmission device to deliver the latest packet storing the latest actual data in the common header and the content;
Request transmitting means for transmitting the data acquisition request to the data transmitting apparatus by HTTP;
As a response to the data acquisition request, a response receiving unit that receives a response including the common header and the latest packet from the data transmission device by HTTP;
Synchronous playback means for playing back the media data using the synchronization information,
The data transmission device includes:
Request receiving means for receiving the data acquisition request from the data receiving device;
Analyzing the data acquisition request and determining the latest packet; latest packet determination means;
Response creation means for creating the response as a response to the data acquisition request;
Response distribution means for transmitting the response to the data receiving device by HTTP. A streaming distribution system comprising:

JP2003314530A 2003-09-05 2003-09-05 Data multiplexing method, data transmitting method and data receiving method Pending JP2005086362A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003314530A JP2005086362A (en) 2003-09-05 2003-09-05 Data multiplexing method, data transmitting method and data receiving method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003314530A JP2005086362A (en) 2003-09-05 2003-09-05 Data multiplexing method, data transmitting method and data receiving method

Publications (1)

Publication Number Publication Date
JP2005086362A true JP2005086362A (en) 2005-03-31

Family

ID=34415096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003314530A Pending JP2005086362A (en) 2003-09-05 2003-09-05 Data multiplexing method, data transmitting method and data receiving method

Country Status (1)

Country Link
JP (1) JP2005086362A (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006323678A (en) * 2005-05-19 2006-11-30 Canon Inc Content reproduction method, content reproduction system and computer program
WO2007074520A1 (en) * 2005-12-27 2007-07-05 Mitsubishi Denki Kabushiki Kaisha Distributing apparatus and reproducer
WO2008020547A1 (en) 2006-08-17 2008-02-21 Sony Corporation Communication processing device, communication control method, and computer program
JP2009225025A (en) * 2008-03-14 2009-10-01 Fujitsu Ltd Receiving apparatus and receiving method
JP2011228791A (en) * 2010-04-15 2011-11-10 Fujitsu Toshiba Mobile Communications Ltd Content playback apparatus and content playback method
JP2013503390A (en) * 2009-08-28 2013-01-31 アップル インコーポレイテッド Chunk format download on content distribution network
WO2013018517A1 (en) * 2011-07-29 2013-02-07 ソニー株式会社 Streaming distribution device and method, streaming receiving device and method, streaming system, program, and recording medium
US8411755B2 (en) 2008-08-29 2013-04-02 Canon Kabushiki Kaisha Video transmission apparatus and control method for video transmission apparatus
JP2014116805A (en) * 2012-12-10 2014-06-26 Canon Inc Imaging device, information processing device, control method therefor, and video processing system
JP2014529258A (en) * 2011-09-06 2014-10-30 クアルコム,インコーポレイテッド Network streaming of encoded video data
JP2019517219A (en) * 2016-05-24 2019-06-20 ディビックス, エルエルシー System and method for providing audio content during trick play playback
JP2021508428A (en) * 2018-05-29 2021-03-04 北京字節跳動網絡技術有限公司Beijing Bytedance Network Technology Co., Ltd. Media file playback methods, devices and storage media based on web pages
US11178205B2 (en) 2020-01-20 2021-11-16 Ideaforge Technology Pvt. Ltd. System and method for providing live streaming of video data in a low-bandwidth network
CN113709412A (en) * 2020-05-21 2021-11-26 中国电信股份有限公司 Live stream processing method, device and system and computer readable storage medium

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006323678A (en) * 2005-05-19 2006-11-30 Canon Inc Content reproduction method, content reproduction system and computer program
WO2007074520A1 (en) * 2005-12-27 2007-07-05 Mitsubishi Denki Kabushiki Kaisha Distributing apparatus and reproducer
JPWO2007074520A1 (en) * 2005-12-27 2009-06-04 三菱電機株式会社 Distribution device and playback device
JP4680268B2 (en) * 2005-12-27 2011-05-11 三菱電機株式会社 Distribution device and playback device
WO2008020547A1 (en) 2006-08-17 2008-02-21 Sony Corporation Communication processing device, communication control method, and computer program
JP2009225025A (en) * 2008-03-14 2009-10-01 Fujitsu Ltd Receiving apparatus and receiving method
US8411755B2 (en) 2008-08-29 2013-04-02 Canon Kabushiki Kaisha Video transmission apparatus and control method for video transmission apparatus
JP2013503390A (en) * 2009-08-28 2013-01-31 アップル インコーポレイテッド Chunk format download on content distribution network
JP2011228791A (en) * 2010-04-15 2011-11-10 Fujitsu Toshiba Mobile Communications Ltd Content playback apparatus and content playback method
JPWO2013018517A1 (en) * 2011-07-29 2015-03-05 ソニー株式会社 Streaming distribution apparatus and method, streaming receiving apparatus and method, streaming system, program, and recording medium
WO2013018517A1 (en) * 2011-07-29 2013-02-07 ソニー株式会社 Streaming distribution device and method, streaming receiving device and method, streaming system, program, and recording medium
US9113178B2 (en) 2011-07-29 2015-08-18 Sony Corporation Streaming distributing device and method, streaming receiving device and method, streaming system, program, and recording medium
US9357275B2 (en) 2011-09-06 2016-05-31 Qualcomm Incorporated Network streaming of coded video data
JP2014529258A (en) * 2011-09-06 2014-10-30 クアルコム,インコーポレイテッド Network streaming of encoded video data
JP2017022715A (en) * 2011-09-06 2017-01-26 クアルコム,インコーポレイテッド Network streaming of coded video data
US9900363B2 (en) 2011-09-06 2018-02-20 Qualcomm Incorporated Network streaming of coded video data
JP2014116805A (en) * 2012-12-10 2014-06-26 Canon Inc Imaging device, information processing device, control method therefor, and video processing system
US9544529B2 (en) 2012-12-10 2017-01-10 Canon Kabushiki Kaisha Information processing apparatus, image capturing apparatus, and control methods for the same
US10701417B2 (en) 2016-05-24 2020-06-30 Divx, Llc Systems and methods for providing audio content during trick-play playback
JP2019517219A (en) * 2016-05-24 2019-06-20 ディビックス, エルエルシー System and method for providing audio content during trick play playback
US11044502B2 (en) 2016-05-24 2021-06-22 Divx, Llc Systems and methods for providing audio content during trick-play playback
US11546643B2 (en) 2016-05-24 2023-01-03 Divx, Llc Systems and methods for providing audio content during trick-play playback
JP2021508428A (en) * 2018-05-29 2021-03-04 北京字節跳動網絡技術有限公司Beijing Bytedance Network Technology Co., Ltd. Media file playback methods, devices and storage media based on web pages
US11178452B2 (en) 2018-05-29 2021-11-16 Beijing Bytedance Network Technology Co., Ltd. Playing method, device and storage medium of webpage-based media file
JP7072668B2 (en) 2018-05-29 2022-05-20 北京字節跳動網絡技術有限公司 Media file playback methods, devices and storage media based on web pages
US11178205B2 (en) 2020-01-20 2021-11-16 Ideaforge Technology Pvt. Ltd. System and method for providing live streaming of video data in a low-bandwidth network
CN113709412A (en) * 2020-05-21 2021-11-26 中国电信股份有限公司 Live stream processing method, device and system and computer readable storage medium
CN113709412B (en) * 2020-05-21 2023-05-19 中国电信股份有限公司 Live stream processing method, device and system and computer readable storage medium

Similar Documents

Publication Publication Date Title
US11470405B2 (en) Network video streaming with trick play based on separate trick play files
RU2652099C2 (en) Transmission device, transmission method, reception device and reception method
AU2016219369B2 (en) Low latency video streaming
EP3363181B1 (en) Deadline signaling for streaming of media data
US8938767B2 (en) Streaming encoded video data
US9247317B2 (en) Content streaming with client device trick play index
CN110099288B (en) Method and device for sending media data
KR101575740B1 (en) Switch signaling methods providing improved switching between representations for adaptive http streaming
US9185439B2 (en) Signaling data for multiplexing video components
US8301725B2 (en) Variant streams for real-time or near real-time streaming
US20200112753A1 (en) Service description for streaming media data
US20130013803A1 (en) Method for recovering content streamed into chunk
WO2014193996A2 (en) Network video streaming with trick play based on separate trick play files
US11765444B2 (en) Streaming media data including an addressable resource index track
JP2005086362A (en) Data multiplexing method, data transmitting method and data receiving method
US20190243881A1 (en) Processing dynamic web content of an iso bmff web resource track
EP1274248A1 (en) Data reproduction apparatus and data reproduction method
JP4526294B2 (en) STREAM DATA TRANSMITTING DEVICE, RECEIVING DEVICE, RECORDING MEDIUM CONTAINING PROGRAM, AND SYSTEM
KR101452269B1 (en) Content Virtual Segmentation Method, and Method and System for Providing Streaming Service Using the Same
JP2008016894A (en) Transmission apparatus and receiving apparatus
KR20110117568A (en) Method and apparatus for transmitting/receiving service discovery information in a multimedia transmission system
JP2004312713A (en) Data transmitting apparatus
KR20200018890A (en) Wireless streaming method
JP2004056774A (en) Stream distribution system, stream server device, cache server device, and stream recording and reproducing apparatus, method and program
KR20030042486A (en) Multimedia contents download service method