JPWO2019167633A1 - コンテンツ配信制御装置、コンテンツ配信制御方法、プログラム、およびコンテンツ配信システム - Google Patents
コンテンツ配信制御装置、コンテンツ配信制御方法、プログラム、およびコンテンツ配信システム Download PDFInfo
- Publication number
- JPWO2019167633A1 JPWO2019167633A1 JP2020502926A JP2020502926A JPWO2019167633A1 JP WO2019167633 A1 JPWO2019167633 A1 JP WO2019167633A1 JP 2020502926 A JP2020502926 A JP 2020502926A JP 2020502926 A JP2020502926 A JP 2020502926A JP WO2019167633 A1 JPWO2019167633 A1 JP WO2019167633A1
- Authority
- JP
- Japan
- Prior art keywords
- content
- definition information
- transcoding
- information
- content distribution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000009826 distribution Methods 0.000 title claims abstract description 256
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000004044 response Effects 0.000 claims abstract description 49
- 238000012545 processing Methods 0.000 claims description 61
- 238000003860 storage Methods 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 34
- 230000003044 adaptive effect Effects 0.000 claims description 11
- 230000007613 environmental effect Effects 0.000 claims description 5
- 238000003702 image correction Methods 0.000 claims description 5
- 230000006978 adaptation Effects 0.000 claims description 3
- 238000012384 transportation and delivery Methods 0.000 abstract description 13
- 238000012546 transfer Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 19
- 230000014509 gene expression Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000009877 rendering Methods 0.000 description 7
- 239000004576 sand Substances 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000013475 authorization Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 239000012092 media component Substances 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234309—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
- H04N21/2225—Local VOD servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234363—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/254—Management at additional data server, e.g. shopping server, rights management server
- H04N21/2543—Billing, e.g. for subscription services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25825—Management of client data involving client display capabilities, e.g. screen resolution of a mobile phone
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25833—Management of client data involving client hardware characteristics, e.g. manufacturer, processing or storage capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26258—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440218—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computer Graphics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本開示は、異なるCDNでコンテンツを配信する際のトランスコードに関わる条件を共通化し、標準的なアップロードインターフェイスをサポートすることができるようにするコンテンツ配信制御装置、コンテンツ配信制御方法、プログラム、およびコンテンツ配信システムに関する。
メタデータファイルに定義情報が格納されている場合、定義情報に基づいて、オリジナルセグメントのトランスコードが制御される。一方、メタデータファイルに定義情報にアクセスするためのアクセス情報が格納されている場合、そのアクセス情報に基づいて定義情報をリクエストし、リクエストに応じて受信された定義情報に基づいて、オリジナルセグメントのトランスコードが制御される。MPEG-DASHを利用してコンテンツを配信するコンテンツ配信システムに適用できる。
メタデータファイルに定義情報が格納されている場合、定義情報に基づいて、オリジナルセグメントのトランスコードが制御される。一方、メタデータファイルに定義情報にアクセスするためのアクセス情報が格納されている場合、そのアクセス情報に基づいて定義情報をリクエストし、リクエストに応じて受信された定義情報に基づいて、オリジナルセグメントのトランスコードが制御される。MPEG-DASHを利用してコンテンツを配信するコンテンツ配信システムに適用できる。
Description
本開示は、コンテンツ配信制御装置、コンテンツ配信制御方法、プログラム、およびコンテンツ配信システムに関し、特に、異なるCDN(Contents Delivery Network)でコンテンツを配信する際のトランスコードに関わる条件を共通化し、標準的なアップロードインターフェイスをサポートすることができるようにしたコンテンツ配信制御装置、コンテンツ配信制御方法、プログラム、およびコンテンツ配信システムに関する。
IPTV(Internet Protocol Television)等のインターネットストリーミングにおける標準化の流れとして、HTTP(Hypertext Transfer Protocol)ストリーミングによるVOD(Video On Demand)ストリーミングや、ライブストリーミングに適用される方式の標準化が行われている。
特に、ISO/IEC/MPEGで標準化が行われているMPEG-DASH(Dynamic Adaptive Streaming over HTTP)が注目されている(例えば、非特許文献1参照)。
MPEG-DASHは、MPD(Media Presentation Description)と呼ばれるメタファイルと、そこに記述されるチャンク化されたオーディオ、ビデオ、又は字幕等のメディアデータのアドレス(URL:Uniform Resource Locator)に従い、ストリームデータを取得して再生するものである。
また、現在、ストリームキャプチャデバイスからクラウドへのアップロードインターフェイスとして、3GPP(Third Generation Partnership Project)において、FLUS(Framework For Live Uplink Streaming)のフレームワークが検討されている(例えば、非特許文献2および3参照)。
ISO/IEC 23009-1:2012 Information technology Dynamic adaptive streaming over HTTP (DASH)
3GPP TS 26.238 V15.0.0(2017-12) 3rd Generation Partnership Project ; Technical Specification Group Services and System Aspects ; Uplink Streaming (Release 15)
3GPP TS 26.114 V15.1.0(2017-12) 3rd Generation Partnership Project ; Technical Specification Group Services and System Aspects ; IP Multimedia Subsystem(IMS) ; Multimedia Telephony ; Media handling and interaction (Release 15)
ところで、配信フェーズに移行したストリーミングコンテンツが、例えば、エンドユーザの近傍のエッジサーバ(CDNの構成要素)において、エンドユーザのストリーム再生環境条件に応じて、トランスコードされて提供される可能性がある。例えば、トランスコードの際には、オリジナルのストリームを一旦デコードしてベースバンドストリームに落とし、さらにユーザの再生環境にふさわしいストリームとしてエンコードすることが行われる。このベースバンドに落とす際に、今後、余力のあるエッジサーバが、エンドユーザの環境条件に応じて様々なアップスケール(アップコンバート)処理を施す可能性がある。
例えば、エンドユーザのデバイスのディスプレイのアスペクト比または空間解像度や、再生機器の特性などを加味して最適な絵音作りが行われてから、デコーダの処理能力に応じたストリームとしてエンコードし直す可能性がある。ここで、最適な絵音作りとしては、単なる線形外挿補間的なアップコンバート以外にも、例えば、AI(Artificial Intelligence)等を利用した高度な画像または音声を追加することが想定される。但し、このアップスケール処理や絵音作り等は、コンテンツプロバイダ(コンテンツのオーナ)、または、サービスプロバイダ(配信サービスプロバイダ等)の意向により可否制御されるべきという要件がある。即ち、配信プラットフォームのエッジサーバまでは、オーナやサービサー等の意向通りの配信制御を行うことができるようにする必要がある。
ところで、現状では、様々なベンダで提供されるCDNサービスにおいて共有可能な、ストリームの再生制御に関わる標準的なメタデータは用意されていない。従って、DASH-MPD(または、HLSのm3u8)等のストリーミングマニフェストファイルに、上述したようなトランスコードに係る様々な条件を記述することで、コンテンツを配信する際のトランスコードに関わる条件を共通化することが求められている。
即ち、CDNは、複数のベンダで提供されるのが一般的であり、それぞれ異なるCDNにおいてコンテンツを共通のマニフェストで配信するのに関わる様々な制御やポリシーなどの標準化が行われていない。そのため、マニフェスト(MPD)に、例えば、トランスコードに関わる制限や条件などをレポーティング(ログ収集)するための宛先などを定めることが必要となる。
さらに、例えば、UGC(User Generated Contents)コンテンツ等のストリームを配信するユースケースの増加に伴い、ビデオエコシステム等の配信プラットフォームにおいても、標準的なコンテンツアップロードインタフェイス(ライブストリームアップリンク)をサポートすることになる可能性がある。
従って、こういったプロトコルにおいても配信フェーズに移行したストリーミングコンテンツのエッジサーバでのトランスコード可否制御を宣言したり、実行されるトランスコードの種類や頻度等のログを収集して効果的な運用に利用したりすることができるようにサポートすることが求められている。また、トランスコードには、コンテンツ改変を伴うケースも含まれることが想定され、そのようなケースに対応するアップロードインターフェイスの定義が必要となる。
本開示は、このような状況に鑑みてなされたものであり、異なるCDNでコンテンツを配信する際のトランスコードに関わる条件を共通化し、標準的なアップロードインターフェイスをサポートすることができるようにするものである。
本開示の一側面のコンテンツ配信制御装置は、コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASHに従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、前記メタデータファイルを受信する受信部と、前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部とを備え、前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御し、前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御する。
本開示の一側面のコンテンツ配信制御方法は、コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASHに従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、前記メタデータファイルを受信する受信部と、前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部とを備えるコンテンツ配信制御装置が、前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと、前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することとを含む。
本開示の一側面のプログラムは、コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASHに従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、前記メタデータファイルを受信する受信部と、前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部とを備えるコンテンツ配信制御装置のコンピュータに、前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと、前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することとを含む処理を実行させる。
本開示の一側面のコンテンツ配信システムは、コンテンツを記憶する記憶部を有する第1のサーバと、前記コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASHに従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、前記メタデータファイルを受信する受信部と、前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部とを有し、前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御し、前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御するコンテンツ配信制御を行う第2のサーバと、前記コンテンツ配信制御に従って配信されるコンテンツを取得して、再生するクライアントとを備える。
本開示の一側面においては、コンテンツをトランスコードするために必要な定義情報、または、定義情報にアクセスするための第1のアクセス情報と、コンテンツから生成されたオリジナルのデータであるMPEG-DASHに従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルが生成され、メタデータファイルが受信され、第2のアクセス情報に基づいて取得されたオリジナルセグメントのトランスコードに関する制御が行われる。そして、メタデータファイルに定義情報が格納されている場合、定義情報に基づいて、オリジナルセグメントのトランスコードが制御される。一方、メタデータファイルに第1のアクセス情報が格納されている場合、第1のアクセス情報に基づいて定義情報がリクエストされ、そのリクエストに応じて受信された定義情報に基づいて、オリジナルセグメントのトランスコードが制御される。
本開示の一側面によれば、異なるCDNでコンテンツを配信する際のトランスコードに関わる条件を共通化し、標準的なアップロードインターフェイスをサポートすることができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
<コンテンツ配信システムの第1および第2の構成例>
図1は、本技術を適用したコンテンツ配信システムの第1の実施の形態の構成例を示すブロック図であり、図2は、本技術を適用したコンテンツ配信システムの第2の実施の形態の構成例を示すブロック図である。
図1は、本技術を適用したコンテンツ配信システムの第1の実施の形態の構成例を示すブロック図であり、図2は、本技術を適用したコンテンツ配信システムの第2の実施の形態の構成例を示すブロック図である。
図1に示すコンテンツ配信システム11Aは、例えば、インターネットを経由して様々なサービスを提供するクラウドコンピューティング(以下、クラウドと称する)12に、コンテンツ提供装置13AおよびDASHプレイヤ14が接続されて構成される。そして、コンテンツ配信システム11Aでは、コンテンツ提供装置13Aが備えるストリームソースサーバ21から配信されるコンテンツは、クラウド12上にあるDASH配信サーバ22を経由して、クラウド12上の複数のCDNサーバにより構築されるCDN23を介して、DASHプレイヤ14に提供される。
図2に示すコンテンツ配信システム11Bは、コンテンツ配信システム11Aと同様に、クラウド12に、コンテンツ提供装置13BおよびDASHプレイヤ14が接続されて構成される。そして、コンテンツ配信システム11Bでは、コンテンツ提供装置13Bが備えるストリームソースサーバ21からDASH配信サーバ22を経由して配信されるコンテンツは、クラウド12上の複数のCDNサーバにより構築されるCDN23を介して、DASHプレイヤ14に提供される。
即ち、図1のコンテンツ配信システム11Aは、ストリームソースサーバ21を備えたコンテンツ提供装置13Aとは別に、クラウド12上にDASH配信サーバ22が設けられた構成となっている。一方、図2のコンテンツ配信システム11Bは、ストリームソースサーバ21を備えたコンテンツ提供装置13Aが、DASH配信サーバ22も備えた構成となっている。
コンテンツ提供装置13Aおよび13Bは、例えば、いわゆるスマートフォンやディジタルカメラなどのように、コンテンツの入力を行う入力装置(ストリームキャプチャデバイス)である。
DASHプレイヤ14は、例えば、いわゆるスマートフォンやタブレット、パーソナルコンピュータ、テレビジョン受像機、ゲーム機器、ヘッドマウントディスプレイなどのように、コンテンツを再生して出力する出力装置である。
ストリームソースサーバ21は、コンテンツ配信システム11Aまたは11Bにおいて配信されるコンテンツを記憶する記憶部を有しており、例えば、DASHプレイヤ14から配信が要求されたコンテンツを記憶部から読み出して配信する。
DASH配信サーバ22は、エンコーダ、DASHセグメンタ、およびMPDジェネレータを少なくとも有しており、コンテンツ配信システム11Aまたは11Bにおいて配信されるコンテンツのエンコード、MPEG-DASHに従ったセグメントの生成、および、MPDの生成を行うことができる。
CDN23は、複数のCDNサーバ(後述するCDNオリジンサーバ41aや、CDN中継サーバ、CDNエッジサーバ41bなど)により多段に構成され、コンテンツを配信するために最適化されたネットワークを構築する。
なお、コンテンツ提供装置13Aまたは13Bからクラウド12へのアップロードインターフェイスについては、FLUS(上述の非特許文献2および3参照)のフレームワークが利用される。即ち、図1に示すように、コンテンツ配信システム11Aでは、ストリームソースサーバ21およびDASH配信サーバ22の間で、FLUSインターフェイスが利用され、例えば、DASH配信サーバ22はFLUSインターフェイスを介してセグメントおよびMPDを取得する。また、図2に示すように、コンテンツ配信システム11Bでは、DASH配信サーバ22およびCDN23の間で、FLUSインターフェイスが利用され、例えば、CDN23はFLUSインターフェイスを介してセグメントおよびMPDを取得する。
<FLUSインターフェイスを介したコンテンツ配信処理>
図3を参照して、図1のコンテンツ提供装置13AにおけるFLUSインターフェイス界面のシステム構成について説明する。
図3を参照して、図1のコンテンツ提供装置13AにおけるFLUSインターフェイス界面のシステム構成について説明する。
コンテンツ提供装置13Aでは、ストリームソースサーバ21を備えるコンテンツ提供装置13AがFLUSソースとなり、DASH配信サーバ22を備えるクラウド12上にFLUSシンクが設けられる。ここでは、FLUSメディアに関する処理を、ストリームソースサーバ21およびDASH配信サーバ22が行い、FLUSコントロールに関する処理を、コンテンツ提供装置13Aおよびクラウド12により提供されるFLUSコントローラが行うものとして説明する。
ステップS11において、コンテンツ提供装置13AのFLUSコントローラは、AuthenticationまたはAuthorizationの要求を行い、コンテンツ提供装置13Aからクラウド12にAuthenticationまたはAuthorizationのパラメタが送信される。
クラウド12のFLUSコントローラは、ステップS11で送信されてくるAuthenticationまたはAuthorizationのパラメタを受信すると、ステップS12において、AuthenticationまたはAuthorizationの返答を行う。これにより、クラウド12からコンテンツ提供装置13Aに、サービスにアクセスする権利が与えられたことを示すAccessTokenが送信される。
コンテンツ提供装置13AのFLUSコントローラは、ステップS12で送信されてくるAccessTokenを受信すると、ステップS13において、Service確立の要求を行い、コンテンツ提供装置13Aからクラウド12にAccessTokenが送信される。ここで、このようにAccessTokenが送信されるのは、Service確立を要求するメッセージにAccessTokenが付与されていて、サービスにアクセスする権利が与えられていることの証明を目的として使用される。なお、以下のステップで送信されるAccessTokenも、それぞれの処理において同様の目的で使用される。
クラウド12のFLUSコントローラは、ステップS13で送信されてくるAccessTokenを受信すると、ステップS14において、Service確立の返答を行う。これにより、クラウド12からコンテンツ提供装置13Aに、クラウド12で確立したServiceのServiceIDが送信される。
コンテンツ提供装置13AのFLUSコントローラは、ステップS14で送信されてくるServiceIDを受信すると、ステップS15において、ServiceResourceの要求を行う。これにより、コンテンツ提供装置13Aからクラウド12にAccessTokenおよびServiceIDが送信される。
クラウド12のFLUSコントローラは、ステップS15で送信されてくるAccessTokenおよびServiceIDを受信すると、ステップS16において、ServiceResourceの返答を行う。これにより、クラウド12からコンテンツ提供装置13Aに、ServiceResourceが送信される。
コンテンツ提供装置13AのFLUSコントローラは、ステップS16で送信されてくるServiceResourceを受信すると、以降、Serviceそのものの属性に変更が必要となった場合には、ステップS17において、受信したServiceResourceで更新を行う。そして、コンテンツ提供装置13Aからクラウド12にAccessToken、ServiceID、およびServiceResourceが送信される。
クラウド12のFLUSコントローラは、ステップS17で送信されてくるAccessToken、ServiceID、およびServiceResourceを受信すると、ステップS18において、それらの受信が成功したことを示すACK返答を行う。
コンテンツ提供装置13AのFLUSコントローラは、ステップS18におけるACK返答を受信すると、ステップS19において、Session確立の要求を行う。これにより、コンテンツ提供装置13Aからクラウド12にAccessTokenが送信される。
クラウド12のFLUSコントローラは、ステップS19で送信されてくるAccessTokenを受信すると、ステップS20において、Session確立の返答を行う。これにより、クラウド12からコンテンツ提供装置13Aに、クラウド12で確立したSessionのSessionIDが送信される。
コンテンツ提供装置13AのFLUSコントローラは、ステップS20で送信されてくるSessionIDを受信すると、ステップS21において、SessionResourceの要求を行う。これにより、コンテンツ提供装置13Aからクラウド12にAccessTokenおよびServiceIDが送信される。
クラウド12のFLUSコントローラは、ステップS21で送信されてくるAccessTokenおよびServiceIDを受信すると、ステップS22において、SessionResourceの返答を行う。これにより、クラウド12からコンテンツ提供装置13Aに、SessionResourceが送信される。
コンテンツ提供装置13AのFLUSコントローラは、ステップS22で送信されてくるSessionResourceを受信すると、ステップS23において、受信したSessionResourceで更新を行う。そして、コンテンツ提供装置13Aからクラウド12に、AccessToken、ServiceID、およびSessionResourceが送信される。
クラウド12のFLUSコントローラは、ステップS23で送信されてくるAccessToken、ServiceID、およびSessionResourceを受信すると、ステップS24において、それらの受信が成功したことを示すACK返答を行う。
その後、ストリームソースサーバ21は、ストリームおよびメタデータの転送を開始し、ステップS25において、AccessTokenおよびSessionIDとともに、StreamおよびMetadataを送信する。このとき、ステップS23で更新されたSessionResourceに格納することにより通知した内容と同様な内容をMetadataに格納することによっても、当該StreamのTranscodeDirectiveを通知することができる。
DASH配信サーバ22は、ステップS25で送信されてくるAccessTokenおよびSessionIDとともに、StreamおよびMetadataを受信すると、ステップS26において、それらの受信が成功したことを示すACK返答を行う。
以下、ストリームの配信が終了するまで、ストリームソースサーバ21とDASH配信サーバ22との間で、ステップS25およびS26と同様の処理が繰り返して行われる。
そして、ストリームの配信が終了すると、ステップS27において、コンテンツ提供装置13AのFLUSコントローラは、Session解放の要求を行う。これにより、コンテンツ提供装置13Aからクラウド12にAccessTokenおよびSessionIDが送信される。
クラウド12のFLUSコントローラは、ステップS27で送信されてくるAccessTokenおよびSessionIDを受信すると、ステップS18において、それらの受信が成功したことを示すACK返答を行う。これに応じて、クラウド12のFLUSコントローラは、Sessionを解放する処理を行う。
コンテンツ提供装置13AのFLUSコントローラは、ステップS28におけるACK返答を受信すると、ステップS29において、Service解放の要求を行う。これにより、コンテンツ提供装置13Aからクラウド12にAccessTokenおよびServiceIDが送信される。
クラウド12のFLUSコントローラは、ステップS29で送信されてくるAccessTokenおよびServiceIDを受信すると、ステップS30において、それらの受信が成功したことを示すACK返答を行う。これに応じて、クラウド12のFLUSコントローラは、Serviceを解放する処理を行い、そのACK返答が受信されると処理は終了される。
以上のように、コンテンツ提供装置13AのFLUSコントローラが、クラウド12のFLUSコントローラから送信されてくるSessionResourceの内容を更新してクラウド12のFLUSコントローラに送信するか、または、ストリームソースサーバ21が、Metadataをクラウド12のDASH配信サーバ22に送信するかの、いずれかにより、FLUSソース側が、当該StreamのTranscodeDirectiveを、FLUSシンク側に通知することができる。
図4を参照して、図2のコンテンツ提供装置13BにおけるFLUSインターフェイス界面のシステム構成について説明する。
コンテンツ提供装置13Bでは、DASH配信サーバ22を備えるコンテンツ提供装置13BがFLUSソースとなり、DASH配信サーバ22を備えるCDN23上にFLUSシンクが設けられる。ここでは、FLUSメディアに関する処理を、DASH配信サーバ22CDN23が行い、FLUSコントロールに関する処理を、コンテンツ提供装置13Bおよびクラウド12により提供されるFLUSコントローラが行うものとして説明する。
ステップS51からステップS64までは、図3のステップS11からステップS24までと同様の処理が、コンテンツ提供装置13Bおよびクラウド12のFLUSコントローラの間で行われる。
そして、ステップS65において、DASH配信サーバ22は、DASHセグメントおよびMPDの転送を開始する。
その後、DASH配信サーバ22は、DASHセグメントおよびMPDの転送を開始し、ステップS65において、AccessTokenおよびSessionIDとともに、DASH-Segment群およびMPDを送信する。このとき、ステップS63で更新されたSessionResourceに格納することにより通知した内容と同様な内容をMPDに格納することによっても、当該DASH-SegmentのTranscodeDirectiveを通知することができる。
CDN23は、ステップS65で送信されてくるAccessTokenおよびSessionID、並びに、DASH-Segment群およびMPDを受信すると、ステップS66において、それらの受信が成功したことを示すACK返答を行う。
以下、ストリームの配信が終了するまで、DASH配信サーバ22とCDN23との間で、ステップS65およびS66と同様の処理が繰り返して行われる。
そして、ストリームの配信が終了すると、ステップS67からステップS70まで、図3のステップS27からステップS30までと同様の処理が、コンテンツ提供装置13Bおよびクラウド12のFLUSコントローラの間で行われる。
以上のように、コンテンツ提供装置13BのFLUSコントローラが、クラウド12のFLUSコントローラから送信されてくるSessionResourceの内容を更新してクラウド12のFLUSコントローラに送信するか、または、DASH配信サーバ22が、クラウド12上のCDN23にMPDを送付するかの、いずれかにより、FLUSソース側が、当該DASH-SegmentのTranscodeDirectiveを、FLUSシンク側に通知することができる。
<プロトコルの詳細例>
図5乃至図11を参照して、図3および図4のコンテンツ配信処理で用いられるプロトコルの詳細について説明する。例えば、APIはRESTful API(RESTの原則に則って構築されたWebシステムのHTTPでの呼び出しインターフェイス)により実装される。
図5乃至図11を参照して、図3および図4のコンテンツ配信処理で用いられるプロトコルの詳細について説明する。例えば、APIはRESTful API(RESTの原則に則って構築されたWebシステムのHTTPでの呼び出しインターフェイス)により実装される。
図5の(a)に示すように、Service確立の要求(図3のステップS13および図4のステップS53)では、FLUSソースからFLUSシンクへHTTPメソッドが送信され、例えば、FLUSソース側からデータを送るためのHTTP POSTが送信される。このとき、ボディパートには、例えば、ServiceResourceが格納される。
そして、その要求に対する応答(図3のステップS14および図4のステップS54)では、FLUSシンクからFLUSソースへHTTPステータスコードが送信され、例えば、Service確立の要求が成功した結果新たなリソースが作成されたことを示すHTTP 201 CREATEDが送信される。このとき、locationヘッダには、例えば、FLUSシンクで更新されたServiceResourceのurlが格納される。また、図6に示すServiceResourceの一例のように、Service確立に成功した場合には、FLUSシンク側で生成されたServiceResourceのservice-idに割り当てられた値(ServiceID)が格納される。
図5の(b)に示すように、ServiceResourceの要求(図3のステップS15および図4のステップS55)では、FLUSソースからFLUSシンクへHTTPメソッドが送信され、例えば、urlで指定した情報を要求するHTTP GETが送信される。このとき、HTTP GETでは、Service確立の応答で返されたFLUSシンクで更新されたServiceResourceのurlが指定される。
そして、その要求に対する応答(図3のステップS16および図4のステップS56)では、FLUSシンクからFLUSソースへHTTPステータスコードが送信され、例えば、ServiceResourceの要求が成功したことを示すHTTP 200 OKが送信される。このとき、ボディパートには、当該ServiceResourceが格納される。
図5の(c)に示すように、ServiceResourceの更新(図3のステップS17および図4のステップS57)では、FLUSソースからFLUSシンクへHTTPメソッドが送信され、例えば、urlで指定したサーバ上のファイルを置き換えるHTTP PUTが送信される。このとき、ボディパートには、FLUSソースで更新したServiceResourceが格納される。
そして、その更新に対する応答(図3のステップS18および図4のステップS58)では、FLUSシンクからFLUSソースへHTTPステータスコードが送信され、例えば、ServiceResourceの更新が成功したことを示すHTTP 200 OKが送信される。このとき、ServiceResourceの更新に成功した場合、locationヘッダには、FLUSシンクで更新したServiceResourceのurlが格納される。
図5の(d)に示すように、Session確立の要求(図3のステップS19および図4のステップS59)では、FLUSソースからFLUSシンクへHTTPメソッドが送信され、例えば、FLUSソース側からデータを送るためのHTTP POSTが送信される。このとき、ボディパートには、例えば、SessionResourceが格納される。
そして、その要求に対する応答(図3のステップS20および図4のステップS60)では、FLUSシンクからFLUSソースへHTTPステータスコードが送信され、例えば、Session確立の要求が成功した結果新たなリソースが作成されたことを示すHTTP 201 CREATEDが送信される。このとき、locationヘッダには、例えば、FLUSシンクで更新されたSessionResourceのurlが格納される。また、図7に示すSessionResourceの一例のように、Session確立に成功した場合には、FLUSシンク側で生成されたSessionResourceのSessione-idに割り当てられた値(SessionID)が格納される。
ここで、図7に示すように、SessionResourceには、『"FLUSシンクがFLUSソースからストリームを(Push/Pull)取得するための情報"』が記述され、図8に、その一例が示されている。
図8に示すように、この情報には、Pull取得の場合には、『"当該セッションストリームのMPDのURL"』が記述され、Push取得の場合には『"当該セッションストリームのSDP(Session Description Protocol)のURL"』が記述される。
さらに、図9には、図8に示す『"当該セッションストリームのSDP(Session Description Protocol)のURL"』におけるSDPの一例が示されている。例えば、SDPを利用してストリームを配信するとき、図9に示すように、SDPには、ビデオのセッション属性記述のパートにTranscodeDirectiveを配置できるように、新たなセッション属性a=transcodeDirectiveが導入される。
また、図9に示す『a=transcodeDirective: "TranscodeDirectiveの内容(XMLで記述されたTranscodeDirectiveの文字列をbase64エンコードしたもの)"』のバリエーションとして、TranscodeDirective情報構造(ファイル)のURLを格納する場合には、『a=transcodeDirective: "TranscodeDirectiveのURL(XMLで記述されたTranscodeDirectiveファイルのURL)"』が記載される。
なお、図9では、IETF(Internet Engineering Task Force)で規格定義されるSDPファイルをメタデータファイルとして用い、TranscodeDirectiveを、SDPの当該メディアセッションのメディア記述部に格納する一例を示したが、このバリエーションとして、図10に示すように、FLUSの当該SessionResourceの中に格納してもよい。さらに、そのバリエーションとして、ファイルのurlの場合もある。
図11の(a)に示すように、SessionResourceの要求(図3のステップS21および図4のステップS61)では、FLUSソースからFLUSシンクへHTTPメソッドが送信され、例えば、urlで指定した情報を要求するHTTP GETが送信される。このとき、HTTP GETにより、Session確立の応答で返されたFLUSシンクで更新されたSessionResourceのurlが指定される。
そして、その要求に対する応答(図3のステップS22および図4のステップS62)では、FLUSシンクからFLUSソースへHTTPステータスコードが送信され、例えば、SessionResourceの要求が成功したことを示すHTTP 200 OKが送信される。このとき、ボディパートには、当該SessionResourceが格納される。
図11の(b)に示すように、SessionResourceの更新(図3のステップS23および図4のステップS63)では、FLUSソースからFLUSシンクへHTTPメソッドが送信され、例えば、urlで指定したサーバ上のファイルを置き換えるHTTP PUTが送信される。このとき、ボディパートには、FLUSソースで更新したSessionResourceが格納される。
そして、その要求に対する応答(図3のステップS24および図4のステップS64)では、FLUSシンクからFLUSソースへHTTPステータスコードが送信され、例えば、SessionResourceの更新が成功したことを示すHTTP 200 OKが送信される。このとき、Service更新に成功した場合、locationヘッダには、FLUSシンクで更新したSessionResourceのurlが格納される。
図11の(c)に示すように、Sessionの解放(図3のステップS27および図4のステップS67)では、FLUSソースからFLUSシンクへHTTPメソッドが送信され、例えば、urlで指定したサーバ上のファイルを削除するHTTP DELETEが送信される。このとき、HTTP DELETEでは、SessionResourceのurlが指定される。
そして、その解放に対する応答(図3のステップS28および図4のステップS68)では、FLUSシンクからFLUSソースへHTTPステータスコードが送信され、例えば、Sessionの解放が成功したことを示すHTTP 200 OKが送信される。このとき、Sessionの解放に成功した場合、locationヘッダには、解放されたSessionResourceのurlが格納される。
図11の(d)に示すように、Serviceの解放(図3のステップS29および図4のステップS69)では、FLUSソースからFLUSシンクへHTTPメソッドが送信され、例えば、urlで指定したサーバ上のファイルを削除するHTTP DELETEが送信される。このとき、HTTP DELETEでは、ServiceResourceのurlが指定される。
そして、その解放に対する応答(図3のステップS30および図4のステップS70)では、FLUSシンクからFLUSソースへHTTPステータスコードが送信され、例えば、Serviceの解放が成功したことを示すHTTP 200 OKが送信される。このとき、Serviceの解放に成功した場合、locationヘッダには、解放されたServiceResourceのurlが格納される。
<コンテンツ配信システムの各ブロックの構成例>
図12乃至図17を参照して、コンテンツ配信システム11を構成する各ブロックの構成例について説明する。なお、図12に示すコンテンツ配信システム11は、図1のコンテンツ配信システム11Aおよび図2のコンテンツ配信システム11Bのどちらの構成にも対応する。即ち、コンテンツ配信システム11Aの構成では、ストリームソースサーバ21とDASH配信サーバ22との間でFLUSインターフェイスが利用され、コンテンツ配信システム11Bの構成では、DASH配信サーバ22とCDN23−1およびCDN23−2との間でFLUSインターフェイスが利用される。
図12乃至図17を参照して、コンテンツ配信システム11を構成する各ブロックの構成例について説明する。なお、図12に示すコンテンツ配信システム11は、図1のコンテンツ配信システム11Aおよび図2のコンテンツ配信システム11Bのどちらの構成にも対応する。即ち、コンテンツ配信システム11Aの構成では、ストリームソースサーバ21とDASH配信サーバ22との間でFLUSインターフェイスが利用され、コンテンツ配信システム11Bの構成では、DASH配信サーバ22とCDN23−1およびCDN23−2との間でFLUSインターフェイスが利用される。
図12に示すように、コンテンツ配信システム11では、ストリームソースサーバ21にDASH配信サーバ22が接続され、DASH配信サーバ22にストリーミング配信マネジャ31が接続されている。例えば、DASH配信サーバ22からストリーミング配信マネジャ31へ、オリジナルのMPDが供給され、ストリーミング配信マネジャ31からDASH配信サーバ22へ、TranscodeDirectiveが追記されたMPDが戻される。
また、図12に示すコンテンツ配信システム11では、2つのベンダにより提供されるCDN23−1およびCDN23−2を利用してコンテンツを配信する例が示されており、CDN23−1およびCDN23−2は、多段のCDNサーバ41により構成されている。そして、DASH配信サーバ22から、CDN23−1のCDNオリジンサーバ41a−1およびCDN23−2のCDNオリジンサーバ41a−2それぞれへ、MPDおよびセグメントが送信される。
CDN23−1は、CDNオリジンサーバ41a−1、図示しない多段のCDN中継サーバ、およびCDNエッジサーバ41b−1により構成される。DASH配信サーバ22からCDNオリジンサーバ41a−1へ供給されたMPDおよびセグメントは、図示しない多段のCDN中継サーバを介して、CDNエッジサーバ41b−1へ至る。そして、CDNエッジサーバ41b−1からDASHプレイヤ14−1および14−2それぞれへ、MPDおよびセグメントが送信され、コンテンツが再生される。
CDN23−2は、CDNオリジンサーバ41a−2、図示しない多段のCDN中継サーバ、およびCDNエッジサーバ41b−2により構成され、CDNエッジサーバ41b−2は、トランスコーダ42およびトランスコードマネジャ43を有している。DASH配信サーバ22からCDNオリジンサーバ41a−2へ供給されたMPDおよびセグメントは、図示しない多段のCDN中継サーバを介して、CDNエッジサーバ41b−2へ至る。
CDNエッジサーバ41b−2では、TranscodeDirectiveが追記されたMPDと、トランスコード前のセグメントとが、トランスコーダ42に入力される。そして、CDNエッジサーバ41b−2では、トランスコード後のセグメントを参照するように変更されたMPDと、トランスコード済みのセグメントとが、トランスコーダ42から出力される。そして、CDNエッジサーバ41b−2からDASHプレイヤ14−3へ、トランスコード後のセグメントを参照するように変更されたMPDと、トランスコード済みのセグメントとが送信される。従って、DASHプレイヤ14−3は、このように配信されるコンテンツを取得して、再生する。
図13は、ストリームソースサーバ21の構成例を示すブロック図である。
図13に示すように、ストリームソースサーバ21は、ビデオ入力部51、オーディオ入力部52、ストリーム生成/記憶部53、ストリーム配信部54、メタデータ生成/記憶部55、およびメタデータ配信部56を備えて構成される。
ビデオ入力部51には、例えば、図示しない撮像装置により撮像されたビデオデータが入力され、オーディオ入力部52には、例えば、図示しない収音装置により集音されたオーディオデータが入力される。
ストリーム生成/記憶部53は、ビデオ入力部51から供給されるビデオデータと、オーディオ入力部52から供給されるオーディオデータとに基づいてストリームを生成し、記憶する。
ストリーム配信部54は、ストリーム生成/記憶部53からストリームを読み出して、DASH配信サーバ22へ配信する。
メタデータ生成/記憶部55は、ストリーム生成/記憶部53に記憶されているストリームのメタデータを生成し、記憶する。
メタデータ配信部56は、メタデータ生成/記憶部55からメタデータを読み出して、DASH配信サーバ22へ配信する。
図14は、ストリーミング配信マネジャ31の構成例を示すブロック図である。
図14に示すように、ストリーミング配信マネジャ31は、TranscodeDirective生成部61を備えて構成される。
TranscodeDirective生成部61は、例えば、トランスコーダ42においてトランスコードを行う際の制御や条件等を記述するTranscodeDirective(定義情報)を生成する。そして、TranscodeDirective生成部61は、生成したTranscodeDirectiveを、DASH配信サーバ22から供給されるオリジナルのMPDに追記して、DASH配信サーバ22へ供給する。
図15は、DASH配信サーバ22の構成例を示すブロック図である。
図15に示すように、DASH配信サーバ22は、メタデータ取得/記憶部71、ストリーム取得/記憶部72、セグメント生成部73、MPD生成部74、セグメント配信部75、およびMPD配信部76を備えて構成される。
メタデータ取得/記憶部71は、ストリームソースサーバ21のメタデータ配信部56から供給されるメタデータを取得し、そのメタデータを記憶する。そして、メタデータ取得/記憶部71は、メタデータをストリーム取得/記憶部72およびMPD生成部74に供給する。
ストリーム取得/記憶部72は、ストリームソースサーバ21のストリーム配信部54から供給されるストリームを取得し、そのストリームを記憶する。また、ストリーム取得/記憶部72は、メタデータ取得/記憶部71から供給されるメタデータに基づいてストリームをエンコードして、そのストリームで配信されるコンテンツをセグメント生成部73に供給する。
セグメント生成部73は、ストリーム取得/記憶部72から供給されるコンテンツから、MPEG-DASHに従ったセグメントを生成してセグメント配信部75に供給するとともに、そのセグメントのMPDの生成をMPD生成部74に要求する。
MPD生成部74は、メタデータ取得/記憶部71から供給されるメタデータに基づいて、セグメント生成部73において生成されたセグメントについてのオリジナルのMPDを生成(メディアデータのURLを格納)し、そのMPDをストリーミング配信マネジャ31に供給する。そして、MPD生成部74は、ストリーミング配信マネジャ31においてTranscodeDirectiveが追記されたMPDを受け取って、MPD配信部76へ供給する。
セグメント配信部75は、セグメント生成部73から供給されるセグメントを、CDN23へ配信する。
MPD配信部76は、MPD生成部74から供給されるMPDを、CDN23へ配信する。
図16は、CDN23を構成するCDNサーバ41の構成例を示すブロック図である。なお、図12のCDNオリジンサーバ41a、図示しないCDN中継サーバ、およびCDNエッジサーバ41bは、それぞれCDNサーバ41と同様の構成となっている。
図16に示すように、CDNサーバ41は、MPD取得部81、セグメント取得部82、MPD記憶部83、トランスコード制御部84、トランスコード処理部85、セグメント記憶部86、MPD配信部87、およびセグメント配信部88を備えて構成される。
MPD取得部81は、DASH配信サーバ22のMPD配信部76から配信されるTranscodeDirectiveが追記されたMPDを取得し、セグメント取得部82およびMPD記憶部83に供給する。
セグメント取得部82は、DASH配信サーバ22のセグメント配信部75から配信されるセグメントを取得し、セグメント記憶部86に供給する。
MPD記憶部83は、MPD取得部81により取得されたTranscodeDirectiveが追記されたMPD、および、トランスコード制御部84により更新済みのTranscodeDirectiveが追記されたMPDを記憶する。
トランスコード制御部84は、MPD記憶部83からTranscodeDirectiveが追記されたMPDを読み出して、そのMPDを解析し、TranscodeDirectiveの解析を行う。そして、トランスコード制御部84は、解析の結果に従ってMPDを更新し、TranscodeDirectiveが追記されたMPDに戻すとともに、更新されたMPDに基づいて、トランスコード処理部85によるセグメントのトランスコードを制御する。例えば、トランスコード制御部84は、MPDにTranscodeDirective要素が格納されている場合(後述する図24参照)には、そのTranscodeDirective要素に基づいてトランスコードを制御する。または、トランスコード制御部84は、MPDにTranscodeDirectiveファイルのURLが格納されている場合(後述する図25参照)には、そのTranscodeDirectiveファイルのURLに基づいてTranscodeDirectiveをリクエストするのに応じて受信されたTranscodeDirective要素に基づいてトランスコードを制御する。
トランスコード処理部85は、セグメント記憶部86からセグメントを読み出し、トランスコード制御部84による制御に従ってトランスコードし、トランスコード済みのセグメントをセグメント記憶部86に戻す。
セグメント記憶部86は、セグメント取得部82により取得されたセグメント、および、トランスコード処理部85によりトランスコード済みのセグメントを記憶する。
MPD配信部87は、トランスコード制御部84により更新済みのTranscodeDirectiveが追記されたMPDをMPD記憶部83から読み出して、DASHプレイヤ14へ配信する。
セグメント配信部88は、トランスコード済みのセグメントをセグメント記憶部86から読み出して、DASHプレイヤ14へ配信する。
図17は、DASHプレイヤ14の構成例を示すブロック図である。
図17に示すように、DASHプレイヤ14は、MPD取得部91、プレイヤ制御部92、インタラクション処理部93、セグメント取得部94、セグメント処理部95、およびレンダリング処理部96を備えて構成される。
MPD取得部91は、CDNサーバ41のMPD配信部87から配信されるMPDを取得して、プレイヤ制御部92へ供給する。
プレイヤ制御部92は、MPD取得部91から供給されるMPD(CDNサーバ41で更新済みのTranscodeDirectiveが追記されたMPD)に従って、セグメント取得部94、セグメント処理部95、およびレンダリング処理部96に対する制御を行う。このとき、プレイヤ制御部92は、インタラクション処理部93により取得されるユーザのインタラクション(例えば、DASHプレイヤ14がヘッドマウントディスプレイの場合にはユーザの顔の向きなど)に応じてコンテンツの再生を制御する。
インタラクション処理部93は、図示しない入力部に入力される各種の情報(例えば、DASHプレイヤ14がヘッドマウントディスプレイの場合には向きを示す情報など)に対する処理を行って、DASHプレイヤ14に対するユーザのインタラクションを取得し、プレイヤ制御部92に供給する。
セグメント取得部94は、CDNサーバ41のセグメント配信部88から配信されるセグメントを取得し、プレイヤ制御部92による制御に従って、DASHプレイヤ14でコンテンツを再生するのに必要なセグメントをセグメント処理部95に供給する。
セグメント処理部95は、プレイヤ制御部92による制御に従って、セグメント取得部94から供給されるセグメントに対する処理を行って、コンテンツを再生してレンダリング処理部96に供給する。
レンダリング処理部96は、プレイヤ制御部92による制御に従って、セグメント処理部95から供給されるコンテンツに対するレンダリングを行って、図示しない出力部に出力して、コンテンツを表示させる。
ここで、上述したようなストリームソースサーバ21、ストリーミング配信マネジャ31、DASH配信サーバ22、CDNサーバ41、およびDASHプレイヤ14により構成されるコンテンツ配信システム11におけるコンテンツ配信処理について詳細に説明する。
例えば、コンテンツ配信システム11で放送ストリームを配信する場合、ストリームソースサーバ21には、番組やコマーシャルなどが蓄積されている。そして、図12に示したように、ストリームソースサーバ21から配信されるストリームは、DASH配信サーバ22を経由し、配信サービスプロバイダが提供するCDN23を構成する複数のCDNサーバ41のうちの、CDNオリジンサーバ41aから多段のCDN中継サーバを介してCDNエッジサーバ41bに至り、最終的にDASHプレイヤ14で再生される。
このとき、DASH配信サーバ22では、MPD生成部74(図15)が、生成したオリジナルのMPDをいったんストリーミング配信マネジャ31に渡す。そして、ストリーミング配信マネジャ31では、TranscodeDirective生成部61(図14)が、そのストリームの配信ポリシーに基づいて、適宜MPDを改変してMPD生成部74に戻す。
このとき、TranscodeDirective生成部61は、例えば、ストリームのCDN23におけるトランスコードに係る制御や条件等を記述するTranscodeDirective要素を、AdaptationSet要素に追加することによりMPDを改変する。そこには、サービサーやオーサー側が認めた変換後プロファイルの候補などをシンプルに表現する形式が用いられる。さらには、図16のCDNサーバ41で行われるデコード、レンダリング、または再エンコード処理において制限したい内容があれば、それらを的確に表現する形式であることが必要となる。
即ち、CDNサーバ41におけるトランスコード処理の過程で、エンコードされたオリジナルのストリームをいったんベースバンドストリームに戻してから再エンコードする際に、以下に示すような宣言を行えるようにすることが望まれる。
まず、第1に、様々な画像補正をかけてアップスケーリングするケースが増えてくるが、そのような処理を可能とするか否かを宣言できることが望まれる。また、第2に、アップスケーリングの処理方法として、単純な空間解像度または時間解像度の整数倍変換のみならず、様々なアップスケーリングの処理パターン(後述する図35乃至図38参照)を認めるか否かを宣言できることが望まれる。
さらに、第3に、viewport dependentなスケーリングやエンコーディングを行うケースも増えてくると思われるが、そのようなpartialなトランスコード処理を可能とするか否かを宣言できることが望まれる。また、第4に、トランスコードが行われる際に上限とする最大遅延時間や、品質差分の上限(例えば、オリジナルのベースバンドデータとの乖離)等のトランスコード処理の可否制御における条件記述を宣言できることが望まれる。
そして、第5に、そういった処理がなされた場合に、オーサー側にフィードバックレポートする機能が必要となるが、その際のNotificationメッセージの構造、URL等といった内容を宣言できることが望まれる。ここでは、例えば、CDN23の内部や、複数のCDN23をまたぐとき、ユーザ近傍のCDNエッジサーバ41b等のどの段階で、どういった処理が行われたかをフィードバックレポートすることが想定される。
このような内容が記述されたTranscodeDirective要素が追記されて改変されたMPDとDASHセグメントとが、図12のCDN23−1およびCDN23−2に渡され、多段のCDNサーバ41を介してCDNエッジサーバ41bに転送される。そして、DASHプレイヤ14は、所望のMPDを取得するとHTTPを利用してCDNエッジサーバ41b上のセグメントをフェッチする。なお、CDN23の内部では、HTTPや、DASHセグメント以外の、プロトコルやフォーマットにより、セグメンタからCDNエッジサーバ41bに配信されることもある。また、CDNエッジサーバ41bは、例えば、より上段のCDNサーバ41からHTTPにより所望のセグメントをPULL取得することもある。
ここで、CDNエッジサーバ41bを経由して、DASHプレイヤ14がMPDを取得する場合、CDNエッジサーバ41bとDASHプレイヤ14との間のネットワークの状態や、個々のDASHプレイヤ14のエンドユーザの視聴嗜好等に基づいてセグメントのエンコード方式を変更することがある。こういったトランスコードは、CDN23の内部のCDNエッジサーバ41b上で、負荷状態に応じて適宜負荷分散しながら実行される。
例えば、一般のVoD(Video On Demand)ストリーミングにおいては、CDNオリジンサーバ41aにおいて、配信が開始される前に、とあるコンテンツの複数ビットレートストリームを生成してから、ユーザリクエストに応じて配信してもよい。または、レスポンスのパフォーマンスを向上させるため、クライアントからのリクエストがなされる前に、CDNエッジサーバ41b(または、配信経路上の中間ノードとなるCDN中継サーバ)に事前配信(プリフェッチまたはプッシュ配信)しておいてもよい。
ここで、CDNエッジサーバ41b(以降、配信経路上の中間ノード(CDN中継サーバ)を含めて、CDNエッジサーバ41bとの表現を用いる)が、クライアントからのリクエストの傾向を事前に把握(想定)できる場合には、あらかじめ、オリジナルのストリームをもとに、クライアントの再生または視聴の嗜好を考慮にいれて、ストリーミングの品質(画音質からレスポンスパフォーマンスを含む)に対する改善を施すことが可能となる。例えば、CDNエッジサーバ41bにアクセスするクライアント群からのリクエストの過去の統計から予測されるDASHプレイヤ14の再生能力やコーデックの種類等に基づいて、CDNエッジサーバ41bにおけるストリーミングの品質改善が施される。
また、オーサー側からROI(Region Of Interest)メタデータ等が提供され、あらかじめクライアントが要求しそうな画像上の領域(ROIが同一画像上に複数あることも想定)を特定することが可能な場合には、CDNエッジサーバ41bにて、それらのROI領域を中心にアップスケーリングを施してからエンコードし直すこともある。このような場合には、例えば、最初の数セグメントについてはクライアントからのリクエストがばらつく(ROI領域がそれぞれのクライアント毎に異なる)ことを想定して、トランスコード済みセグメントの複数のバージョンを準備する。そして、クライアントからのリクエストが定常状態に落ち着いた後に、後続のセグメント(最初のバリエーションのうちのサブセット、即ち、同一画像上の複数ROIのうちのサブセットを中心に)をトランスコードすることにより、CDNエッジサーバ41bのキャッシュ領域を大幅にセーブすることも可能となる。
このようなフレキシブルなトランスコードを制御するため、CDNエッジサーバ41bにトランスコードマネジャ43を実装する。トランスコードマネジャ43は、DASHプレイヤ14との間のネットワークの負荷状況を把握したり、CDNエッジサーバ41bの負荷状況を考慮に入れながら、DASHプレイヤ14に渡したMPDとそれに基づくリクエストについての知識を利用して、CDNエッジサーバ41bに実装されるトランスコーダ42に対してセグメントのトランスコードを指示する。
また、トランスコードマネジャ43は、MPDに記述されるTranscodeDirectiveの内容をパースし、そこに記述されるトランスコード処理に関わる様々な制約または条件に基づいて、トランスコーダ42に対して当該セグメントについてのトランスコードを指示する。そして、トランスコードマネジャ43は、トランスコーダ42においてトランスコード処理が行われると、TranscodeDirectiveに記載されたレポートバックURLに、レポートメッセージを送付する。
さらに、トランスコードマネジャ43は、MPDの内容を更新し、オリジナルのセグメント参照から、トランスコードがなされたセグメント参照へと変更する。ここで、後述する、viewportを考慮にいれたセグメントの部分的な変更のように、MPDの内容の更新を伴わない場合、即ち、アップスケーリングによるパラメタ改変がファイルフォーマットレベルにクローズしている(例えば、MPDに染み出していない)場合、オリジナルのセグメント参照のままで、セグメントの内容のみが変更されることがある。この場合は、クライアントにはMPDの更新取得を促す必要はない。
DASHプレイヤ14は、このようなトランスコードがなされたセグメントを参照するように変更されたMPDを取得し、そのMPDに基づいてセグメントを取得して再生する。
図18を参照して、図12のコンテンツ配信システム11で行われるコンテンツ配信処理において、DASH配信サーバ22およびストリーミング配信マネジャ31、CDNサーバ41(主にCDNエッジサーバ41bのトランスコーダ42およびトランスコードマネジャ43)、並びに、DASHプレイヤ14で行われる処理について説明する。
ステップS101において、DASH配信サーバ22では、ストリームソースサーバ21から配信されるストリームをストリーム取得/記憶部72が受信してエンコードし、セグメント生成部73がセグメントを生成する。そして、ストリーミング配信マネジャ31は、TranscodeDirectiveが追記されたMPDを生成する。このとき、ストリーミング配信マネジャ31は、例えば、TranscodeDirectiveの内容がFLUSインターフェイスを介したメタデータとして上流側から提供される場合、上述の図9に示したようなTranscodeDirectiveの内容をMPDに挿入する。または、ストリーミング配信マネジャ31は、TranscodeDirectiveに替えて、上述したように、TranscodeDirectiveファイルのURLをMPDに挿入してもよい。
ステップS102において、CDNサーバ41は、DASH配信サーバ22に対してMPDおよびセグメントの取得を要求する。
DASH配信サーバ22は、ステップS102におけるCDNサーバ41からの要求を取得すると、ステップS103において、TranscodeDirectiveが追記されたMPDとセグメントとの転送を開始する。
ステップS104において、トランスコードマネジャ43は、リクエスト処理状況の計測を行う。
CDNサーバ41が、ステップS103でDASH配信サーバ22から転送されてくるTranscodeDirectiveが追記されたMPDとセグメントとを受信すると、ステップS105において、トランスコードマネジャ43は、TranscodeDirectiveが追記されたMPDをパースする。そして、トランスコードマネジャ43は、TranscodeDirectiveの解析を行い、その解析結果に従って、トランスコーダ42に対するトランスコードを指示する。
トランスコーダ42は、トランスコードマネジャ43によるトランスコード指示に従って、ステップS106においてセグメントをデコードし、ステップS107においてアップスケーリングを行い、ステップS108においてセグメントをエンコードする。そして、ステップS109において、トランスコーダ42は、トランスコード済みのセグメントを参照するMPDを生成する。
ステップS110において、DASHプレイヤ14は、CDNサーバ41に対してMPDの取得を要求する。
CDNサーバ41は、ステップS110におけるDASHプレイヤ14からの要求を受信すると、ステップS111において、トランスコード済みのセグメントを参照するMPDをDASHプレイヤ14に転送する。
DASHプレイヤ14は、ステップS111で転送されてくるトランスコード済みのセグメントを参照するMPDを取得すると、ステップS112において、そのMPDをパースする。そして、DASHプレイヤ14は、CDNサーバ41に対してセグメントを要求する。
CDNサーバ41は、ステップS112におけるDASHプレイヤ14からの要求を取得すると、ステップS113において、DASHプレイヤ14により要求されたトランスコード済みのセグメントの転送を行う。
DASHプレイヤ14は、ステップS113で転送されてくるトランスコード済みのセグメントを受信すると、ステップS114において、その受信したトランスコード済みのセグメントの再生を行う。
その後、コンテンツの配信が終了するまで、トランスコード済みのセグメントの転送と、その再生が継続して行われる。
以上のように、ストリーミング配信マネジャ31が、TranscodeDirectiveが追記されたMPDを生成することで、トランスコードマネジャ43は、そのMPDをパースして、TranscodeDirectiveを解析し、トランスコードを指示することができる。
なお、ここでは、CDNサーバ41側からDASH配信サーバ22に対してMPDやセグメントの取得を要求する例を示したが、例えば、DASH配信サーバ22側からプッシュ風にCDNサーバ41に対してMPDやセグメントを転送してもよい。または、DASHプレイヤ14が最初にMPDの要求を行って、その要求に従ってCDNサーバ41からMPDやセグメントを転送するようにボトムアップでフローが開始されてもよい。このようなパターンも含めて、後述する図21乃至図23には、ライブストリーミングの際に起こりうる可能性のあるMPDが動的に更新される場合における処理の例を示す。
ここで、図19には、図18のステップS101において、TranscodeDirectiveの内容がFLUSインターフェイスを介したメタデータ(SDP)として渡される場合の対応関係が示されている。即ち、SDPに記載されるTranscodeDirectiveと、MPDに挿入されるTranscodeDirectiveとの間には、図19に示すような対応関係がある。同様に、ストリームソースサーバ21からのストリームと、DASH配信サーバ22より後段のクラウド12上のストリームとの間には、図19に示すような対応関係がある。
図20は、ストリーミング配信マネジャ31がクラウド12上に設けられるバリエーションのコンテンツ配信システム11Bの構成例を示すブロック図である。
図20に示すように、コンテンツ配信システム11Bは、TranscodeDirectiveの内容をMPDに追加するストリーミング配信マネジャ31が、コンテンツ提供装置13のDASH配信サーバ22と、クラウド12上のCDN23との間に配置されて構成される。従って、コンテンツ配信システム11Bでは、コンテンツ提供装置13Bと、ストリーミング配信マネジャ31およびCDN23と間で、FLUSインターフェイスが利用される。なお、このように構成されるコンテンツ配信システム11Bでは、MPDには、TranscodeDirectiveが記載されていないパターンと、すでに記載されているパターンとがある。
図21を参照して、図20に示すように構成されるコンテンツ配信システム11Bにおけるコンテンツ配信処理について説明する。
ステップS131において、図18のステップS101と同様に、DASH配信サーバ22では、ストリームソースサーバ21から供給されるストリームがエンコードされて、セグメントが生成される。
ステップS132において、CDNサーバ41は、DASH配信サーバ22に対してMPDおよびセグメントの取得を要求する。
DASH配信サーバ22は、ステップS132におけるCDNサーバ41からの要求を取得すると、ステップS133において、ストリーミング配信マネジャ31に対するMPDとセグメントとの転送を開始する。
ストリーミング配信マネジャ31は、ステップS133で転送されてくるMPDとセグメントとを受信すると、ステップS134において、TranscodeDirectiveのMPDへの挿入を行う。そして、ストリーミング配信マネジャ31は、CDNサーバ41に対して、TranscodeDirectiveが追記されたMPDとセグメントとの転送を開始する。
その後、図18のステップS105以降と同様の処理により、コンテンツの配信が行われる。
このように、ストリーミング配信マネジャ31がクラウド12上に設けられる構成では、DASH配信サーバ22からストリーミング配信マネジャ31を介してCDNサーバ41へ、TranscodeDirectiveが追記されたMPDおよびセグメントが配信される。
図22を参照して、図12のコンテンツ配信システム11において、トランスコード済みセグメントを参照するMPDをクライアントに通知してセグメントを取得させるコンテンツ配信処理について説明する。
ステップS151において、図18のステップS101と同様に、DASH配信サーバ22では、ストリームソースサーバ21から供給されるストリームがエンコードされて、セグメントが生成される。さらに、DASH配信サーバ22では、MPD生成部74が、オリジナルのMPDを生成する。
ステップS152において、DASH配信サーバ22は、ステップS151で生成したMPDおよびセグメントを転送し、CDNサーバ41において取得される。
ステップS153において、DASHプレイヤ14は、CDNサーバ41に対してMPDの取得を要求する。
CDNサーバ41は、ステップS153におけるDASHプレイヤ14からの要求を受信すると、ステップS154において、ステップS152で取得していたMPDをDASHプレイヤ14に転送する。
DASHプレイヤ14は、ステップS154で転送されてくるMPDを取得すると、ステップS155において、そのMPDをパースする。そして、DASHプレイヤ14は、CDNサーバ41に対してセグメントを要求する。
CDNサーバ41は、ステップS155におけるDASHプレイヤ14からの要求を取得すると、ステップS156において、DASHプレイヤ14により要求されたセグメントの転送を行う。
DASHプレイヤ14は、ステップS156で転送されてくるセグメントを受信すると、ステップS157において、その受信したセグメントの再生を行う。
ステップS158において、トランスコードマネジャ43は、リクエスト処理状況の計測を行う。
ステップS159において、DASH配信サーバ22は、MPDを更新して転送、即ち、ストリーミング配信マネジャ31によりTranscodeDirectiveが追記されたMPDをCDNサーバ41へ転送する。
CDNサーバ41が、ステップS159でDASH配信サーバ22から転送されてくるTranscodeDirectiveが追記されたMPDとセグメントとを受信すると、処理はステップS160において、トランスコードマネジャ43は、TranscodeDirectiveが追記されたMPDをパースする。そして、トランスコードマネジャ43は、TranscodeDirectiveの解析を行い、その解析結果に従って、トランスコーダ42に対するトランスコードを指示する。
トランスコーダ42は、トランスコードマネジャ43によるトランスコード指示に従って、ステップS161においてセグメントをデコードし、ステップS162においてアップスケーリングを行い、ステップS163においてセグメントをエンコードする。そして、ステップS164において、トランスコーダ42は、トランスコード済みのセグメントを参照するMPDを生成する。
ステップS165において、CDNサーバ41は、MPDが更新されたことをDASHプレイヤ14に対して通知する。
ステップS166において、DASHプレイヤ14は、ステップS165でのCDNサーバ41からの通知に応じて、CDNサーバ41に対してMPDの取得を要求する。
CDNサーバ41は、ステップS166におけるDASHプレイヤ14からの要求を受信すると、ステップS167において、トランスコード済みのセグメントを参照するMPDをDASHプレイヤ14に転送する。
DASHプレイヤ14は、ステップS167で転送されてくるトランスコード済みのセグメントを参照するMPDを取得すると、ステップS168において、そのMPDをパースする。そして、DASHプレイヤ14は、次のセグメントとして、CDNサーバ41に対してトランスコード済みのセグメントを要求する。
CDNサーバ41は、ステップS168におけるDASHプレイヤ14からの要求を取得すると、ステップS169において、DASHプレイヤ14により要求されたトランスコード済みのセグメントの転送を行う。
DASHプレイヤ14は、ステップS169で転送されてくるトランスコード済みのセグメントを受信すると、ステップS170において、その受信したトランスコード済みのセグメントの再生を行う。
その後、コンテンツの配信が終了するまで、トランスコード済みのセグメントの転送と、その再生が継続して行われる。
以上のように、CDNサーバ41からDASHプレイヤ14へ、MPDが更新されたことを通知し、その通知に応じて、DASHプレイヤ14が、トランスコード済みのセグメントを参照するMPDを取得し、トランスコード済みのセグメントを再生することができる。
図23を参照して、図12のコンテンツ配信システム11において、トランスコード前のセグメントのURLをトランスコード済みセグメントのURLに流用してクライアントにセグメントを取得させるコンテンツ配信処理について説明する。
ステップS201からステップS213までは、図22のステップS151からステップS163までと同様の処理が行われる。
そして、ステップS214において、DASHプレイヤ14は、次のセグメントを要求する。
このとき、トランスコード前のセグメントのURLがトランスコード済みセグメントのURLに流用されており、ステップS214でDASHプレイヤ14が要求したURLのセグメントは、トランスコード済みセグメントにより置き換えられている。
従って、ステップS215において、CDNサーバ41は、DASHプレイヤ14の要求に応じて、トランスコード済みのセグメントの転送を行う。
DASHプレイヤ14は、ステップS215で転送されてくるトランスコード済みのセグメントを受信すると、ステップS216において、その受信したトランスコード済みのセグメントの再生を行う。
以上のように、トランスコード前のセグメントのURLをトランスコード済みセグメントのURLに流用することで、例えば、トランスコード後のセグメントを参照するように変更されたMPDをDASHプレイヤ14に転送しなくても、DASHプレイヤ14は、トランスコード済みセグメントを取得することができる。
<TranscodeDirectiveの構造>
図24乃至図33を参照して、CDNサーバ41(主にCDNエッジサーバ41b)において、解析または可否の判定に用いられるメタデータであるTranscodeDirectiveの構造について説明する。
図24乃至図33を参照して、CDNサーバ41(主にCDNエッジサーバ41b)において、解析または可否の判定に用いられるメタデータであるTranscodeDirectiveの構造について説明する。
例えば、ストリーミングサービスのマニフェストとしてDASH-MPDを利用する場合には、このメタデータがトランスコードの対象となるAdaptationSet要素(または、Representation要素、SubRepresentation要素)に追記される。なお、トランスコードマネジャ43は、要素や値が複数記載できるものに関して、最適なものを選択することができる。
図24には、DASH-MPDへのTranscodeDirective要素の配置例が示されている。例えば、TranscodeDirective要素は、単独のファイルとして記憶され、図24に示すように、AdaptationSet要素に追記するように、<TranscodeDirective...>から</TranscodeDirective>の間に、TranscodeDirective要素を配置することができる。
また、図25には、DASH-MPDへのTranscodeDirective要素の配置のバリエーションの一例が示されている。図25に示すように、AdaptationSet要素に追記するように、TranscodeDirectiveファイルのURLを配置することができる。
以下では、TranscodeDirective要素の詳細について説明する。
図26の(a)に示すように、transcodable属性により、トランスコード可能か否かがtrueまたはfalseにより指定される。例えば、TranscodeDirective要素にtranscodable属性のみが存在し、かつ、transcodable属性によりtrueと指定された場合には、任意のパターンのトランスコードが可能であることを示す。逆に、transcodable属性によりfalseと指定された場合には、一切のトランスコード処理が禁止であることを示す。
そして、transcodable属性において、トランスコードが可能であることが示されているとき、以下の属性が存在できる。
図26の(b)に示すように、upScalable属性により、トランスコードの際にアップスケール可能か否かがtrueまたはfalseにより指定される。例えば、transcodable属性においてtrueが指定されているときにupScalable属性のみが存在し、かつ、upScalable属性によりtrueと指定された場合には、再エンコードした後に、任意のパターンのアップスケーリングが可能であることを示す。逆に、upScalable属性のみが存在し、かつ、upScalable属性によりfalseと指定された場合には、再エンコードの前に一切のアップスケーリングが禁止であることを示す。
図26の(c)に示すように、processingLimit属性により、トランスコードの処理にかかる時間の上限値である遅延最大時間が指定される。
図26の(d)に示すように、Allowed要素により、再エンコードの際に選択可能なコーデックパラメタとして、Parameters/VideoおよびParameters/Audioのうちの少なくとも一方が指定(複数可)される。なお、Allowed要素において『/Parameters/"他のメディアタイプ"』のように指定することで、他のメディアタイプを選択可能とすることも包含するように拡張することができる。
図26の(e)に示すように、Prohibited要素により、再エンコードの際に選択不可能なコーデックパラメタとして、Parameters/VideoおよびParameters/Audioのうちの少なくとも一方が指定(複数可)される。なお、Prohibited要素において『/Parameters/"他のメディアタイプ"』のように指定することで、他のメディアタイプを選択不可能とすることも包含するように拡張することができる。
図26の(f)に示すように、Condition要素により、schemeIdUri属性に条件記述のフォーマット(条件記述言語)を識別するURIが指定される。例えば、条件記述をODRLにて記述する場合には、urn:ODRLのように指定される。また、Condition要素のコンテンツパートのCDATAセクション("<![CDATA["という文字列で始まり、"]]>"という文字列で終わる)には、条件記述が格納される。
例えば、図27に示すように、Condition要素のコンテンツパートのCDATAセクションに条件記述が格納される。
また、図28に、ODRLによる条件記述の一例を示す。図28では、サービスオーナーである"a.com"は、2017/12/31までであれば、"cdn.com"に対して、当該トランスコードを許可するという例が記述されている。
図29の(a)に示すように、TranscodeEventNotification要素により、当該TranscodeDirectiveに記載される各種制限や方針等が適用されたイベント通知が指定される。
図29の(b)に示すように、dateTime属性により、イベントが発生した時刻が指定される。
図29の(c)に示すように、MPDUrl属性により、当該MPDのURLが指定される。
図29の(d)に示すように、AdaptationSetId属性により、トランスコード対象のAdaptationSetのIdが指定される。
図29の(e)に示すように、notificationUrl属性により、notification送付先URLが指定される。
ここで、例えば、当該TranscodeDirectiveの適用対象となるストリーム(セグメント)に対してトランスコードが適用された場合には、上述したdateTime属性、MPDUrl属性、およびAdaptationSetId属性のTranscodeDirective要素そのものを、notificationUrl属性で指定されるURLにHTTP POSTで通知する。これにより、実際に適用されたトランスコード処理の内容報告が行われる。このとき、適用されたトランスコードのパターンに応じて適宜要素、属性、または値が埋められるものとする。
具体的には、オリジナルビデオストリームを、4K解像度および120フレームレートにアップコンバートしてから再エンコードした場合には、図30に示されるようなTranscodeDirective要素が、notificationUrl属性で指定されるURLに通知される。
図31の(a)に示すように、Parameters/Video要素により、Videoの各種属性が指定される。
図31の(b)に示すように、profile属性により、カンマにより区切られた”profile名”のリストが指定される。
図31の(c)に示すように、resolution属性により、カンマにより区切られた”縦×横”の画素数のリストが指定される。なお、resolution属性の他の表現例として、縦画素数の上限または下限と、横画素数の上限または下限により指定してもよい。
図31の(d)に示すように、frameRate属性により、カンマにより区切られた”フレームレート(fps単位)”のリストが指定される。なお、frameRate属性の他の表現例として、フレームレートの上限または下限により指定してもよい。
図31の(e)に示すように、bitDepth属性により、カンマにより区切られた”ビット数(深度)”のリストが指定される。なお、bitDepth属性の他の表現例として、ビット数の上限または下限により指定してもよい。
図31の(f)に示すように、colorSpace属性により、カンマにより区切られた”色空間名”のリストが指定される。
図31の(g)に示すように、gamma属性により、カンマにより区切られた”ガンマ値”のリストが指定される。
図31の(h)に示すように、upScalingPatternList属性により、カンマにより区切られた”アップスケーリングパターン”のリストが指定される。
図32の(a)に示すように、partialTransformability属性により、部分的アップスケーリングを伴うレンダリングおよびトランスコードが可能であるか否かがtrueまたはfalseにより指定される。
図32の(b)に示すように、deviationLimit要素により、差分フォーマット識別子と、その方式で表現される値が指定される。
図32の(c)に示すように、Parameters/Audio要素により、Audioの各種属性が指定され、可否指定対象のAudio属性が列挙される。
図32の(d)に示すように、profileList属性により、カンマにより区切られた”プロファイル名”のリストが指定される。
図32の(e)に示すように、samplingRate属性により、カンマにより区切られた”サンプリングレート(Hz単位)”のリストが指定される。なお、samplingRate属性の他の表現例として、サンプリングレートの上限または下限により指定してもよい。
図32の(f)に示すように、bitDepth属性により、カンマにより区切られた”ビット数(深度)”のリストが指定される。なお、bitDepth属性の他の表現例として、ビット数の上限または下限により指定してもよい。
図32の(g)に示すように、deviationLimit要素により、差分フォーマット識別子と、その方式で表現される値が指定される。例えば、図33に示すように、deviationLimit要素のschemeIdUri属性にdeviationの表現方式を識別するURIが指定(例えば、PSNRであれば、urn:PSNRのように指定)され、value属性に、その値(図33の例では35)が格納される。
図34は、TrasncodeDirectiveの構成の一例が示されている。
図34に示すように、VideoのAdaptationSetに配置される場合は、Parameters要素の下はVideo要素のみとなる。また、AudioのAdaptationSetに配置される場合は、Parameters要素の下はAudio要素のみとなる。
<アップスケーリングの種類>
図35乃至図38を参照して、部分的な画像修正処理を含むアップスケーリングの種類について説明する。
図35乃至図38を参照して、部分的な画像修正処理を含むアップスケーリングの種類について説明する。
図35には、SDTV(4:3)の左右に、黒味を追加することで、HDTV(16:9)に変換するアップスケーリング(FullHeight)の例が示されている。なお、例えば、SDTVの上下に、黒味を追加することで、HDTVに変換するアップスケーリング(FullWidth)を行って画角を変換してもよく、黒味以外を追加してもよい。
図36には、SDTV(4:3)からHDTV(16:9)へ横幅を合わせて、上下をカットすることで、HDTV(16:9)に変換するアップスケーリング(FullWidth-TopBottomCrop-BlowUp)の例が示されている。なお、例えば、SDTVからHDTVへ縦幅を合わせて、左右をカットすることで、HDTVに変換するアップスケーリング(FullHeight- SideCrop-BlowUp)を行って画角を変換してもよい。
図37には、SDTV(4:3)から左右に引き伸ばすことで、HDTV(16:9)に変換するアップスケーリング(FullSize-Anamorphic)の例が示されている。なお、SDTVから上下に引き伸ばすことで、HDTVに変換するアップスケーリング(FullSize-Anamorphic)を行って画角を変換してもよい。
図38には、SDTV(4:3)から左右を補完することで、HDTV(16:9)に変換するアップスケーリング(Artificial-FullSize-Anamorphic)の例が示されている。このとき、例えば、知的画像処理技術等を利用して画像を類推生成して画像の中のオブジェクトの縦横比を維持しながら画像を補完することによって画角を変換することができる。即ち、図38に示すように、左右に人工的に補完(その他、類推、外挿、または想像)するように画像が追加される。
<PartialTransformabilityを利用した処理>
図39を参照して、PartialTransformabilityを利用してコンテンツを配信するコンテンツ配信処理について説明する。例えば、上述の図32の(a)に示したpartialTransformability属性をtrueまたはfalseに設定することにより、クライアントデバイスにおけるユーザのviewportの情報に基づいたオリジナルストリームの部分的なアップスケーリングを含むトランスコーディングの最適化を図ることができる。つまり、クライアントの環境情報(例えば、viewport)に基づいて、コンテンツのトランスコードを行うことができる。
図39を参照して、PartialTransformabilityを利用してコンテンツを配信するコンテンツ配信処理について説明する。例えば、上述の図32の(a)に示したpartialTransformability属性をtrueまたはfalseに設定することにより、クライアントデバイスにおけるユーザのviewportの情報に基づいたオリジナルストリームの部分的なアップスケーリングを含むトランスコーディングの最適化を図ることができる。つまり、クライアントの環境情報(例えば、viewport)に基づいて、コンテンツのトランスコードを行うことができる。
ステップS251において、DASHプレイヤ14は、CDNサーバ41(主にCDNエッジサーバ41b)に対して、MPDの取得を要求する。
CDNサーバ41は、ステップS251におけるDASHプレイヤ14からの要求を受信すると、ステップS252において、MPDをDASHプレイヤ14に転送する。
DASHプレイヤ14は、ステップS252で転送されてくるMPDを取得すると、ステップS253において、そのMPDをパースする。そして、DASHプレイヤ14は、CDNサーバ41に対してセグメントを要求する。
CDNサーバ41は、ステップS253におけるDASHプレイヤ14からの要求を取得すると、ステップS254において、例えば、SAND等により現在検討途上のImmersiveMedia系のDASH metrics等を利用した転送要求付きのセグメントを転送する。
ステップS255において、トランスコードマネジャ43は、リクエスト処理状況の計測を行う。
DASHプレイヤ14は、ステップS254で転送されてくるSAND転送要求付きのセグメントを取得すると、ステップS256において、SANDにより、DASHプレイヤ14におけるユーザのviewportメタデータを通知する。そして、DASHプレイヤ14は、ステップS257において、取得したセグメントの再生を行う。
トランスコードマネジャ43は、ステップS256でDASHプレイヤ14から送信されてくるSANDによるviewport通知を取得すると、ステップS258において、TranscodeDirectiveが追記されたMPDをパースする。そして、トランスコードマネジャ43は、TranscodeDirectiveの解析を行い、その解析結果に従って、トランスコーダ42に対するトランスコードを指示する。
このとき、トランスコードマネジャ43は、MPD(例えば、今後拡張される予定のOMAF対応拡張が施されたバージョン)、または、MP4ファイル(例えば、それがOMAFを利用している場合)の内容に基づいて、当該viewportに対応するストリームまたは、ストリームの一部分を特定する。これに従い、トランスコーダ42は、そのストリームの全体、または、当該viewportを含むストリームの一部分に対して、トランスコードディレクティブにて制限または許可されるアップスケーリングを行った後に、トランスコード処理を行うことができる。
即ち、トランスコーダ42は、ステップS259においてセグメントをデコードし、ステップS260においてアップスケーリングを行う際に、viewportに従った処理を行う。そして、トランスコーダ42は、ステップS261においてセグメントをエンコードする。
ステップS262において、DASHプレイヤ14は、次のセグメントを要求する。
CDNサーバ41は、ステップS262におけるDASHプレイヤ14からの要求を取得すると、ステップS263において、DASHプレイヤ14により要求されたトランスコード済みのセグメントの転送を行う。
DASHプレイヤ14は、ステップS263で転送されてくるトランスコード済みのセグメントを受信すると、ステップS264において、その受信したトランスコード済みのセグメントの再生を行う。
その後、コンテンツの配信が終了するまで、トランスコード済みのセグメントの転送と、その再生が継続して行われる。
以上のように、DASHプレイヤ14からCDNサーバ41へviewport通知を行うことで、CDNサーバ41は、そのviewportに対応するストリームを特定して、適切にアップスケーリングされるようにトランスコードを制御することができる。
<クライアントデバイスでのviewport通知>
図40および図41を参照して、ストリーム再生側となるクライアントデバイスであるDASHプレイヤ14でのviewport通知について説明する。
図40および図41を参照して、ストリーム再生側となるクライアントデバイスであるDASHプレイヤ14でのviewport通知について説明する。
例えば、プレイバックデバイスにおけるviewportが、図40に示すようなX軸、Y軸、およびX軸と、これらの軸を中心にしたアングル(pitch,yaw,roll)とにより特定される場合、胴体が固定されていると、アングルは頭の動きで決定されることになる。また、X軸、Y軸、およびX軸の正方向を向いて、各々のアングルは時計方向に増加するものと設定される。さらに、X−Zプレーンは、地上に平行であり、Z軸の正方向を見ているときには、すべてのアングルが0であると定義する。
そして、このviewportメタデータの座標系からストリームソースにおける座標系にマッピングする。
例えば、ソースにおける座標系が方位角/高度角を利用した表現方法を利用していて、クライアント側がpitch,yaw,roll表現による座標系を利用しているとして説明を行う。この場合、ソース座標系の方位角/高度角(centerAzimuth/centerElevation)いずれも0の方向が、DASHプレイヤ14におけるpitch,yaw,rollがすべて0の方向に一致するようにマッピングする。
そして、変換された座標系でのviewport座標値は、OMAFで規定される構造SphereRegionStructに沿って、図41に示すような現在検討途上のImmersive Media MetricsのViewportViewsパラメタに格納され、このMetricsを包内するSANDMessageを新たに定義して利用する。
<クライアントデバイスからのデバイス属性通知>
図42には、ストリーム再生側となるクライアントデバイスであるDASHプレイヤ14から通知されるデバイス属性の一例が示されている。
図42には、ストリーム再生側となるクライアントデバイスであるDASHプレイヤ14から通知されるデバイス属性の一例が示されている。
例えば、クライアントデバイスの能力属性については、図42に示すような現在検討途上のImmersive Media MetricsのVRDeviceInfoパラメタに格納され、このMetricsを包内するSANDMessageを新たに定義して利用する。
<FLUSのアーキテクチャ>
図43および図44を参照して、FLUのアーキテクチャについて説明する。
図43および図44を参照して、FLUのアーキテクチャについて説明する。
図43に示すように、FLUSソースは、1つまたは複数のキャプチャデバイスからメディアコンテンツを受信する。また、FLUSシンクは、メディアコンテンツをデコードし、レンダリング機能にフォワードする。または、FLUSシンクがネットワークに実装される構成では、メディアコンテンツは、メディアコンテンツをプロセシングサブファンクションまたはディストリビューションサブファンクションにフォワードされる。
そして、リファレンスポイントにより、FLUSソースとFLUSシンクとが接続され、FLUSソースが単体のFLUSセッションと複数のメディアセッションとを確立し制御する。
FLUSコントロールプレーン機能(F-C)は、アップロードとそれに続くダウンストリーム配信に関するFLUSシンクのメディア処理を制御する。FLUSユーザプレーン機能(F-U)は、メディアセッションを確立し、例えば、MTSI-based FLUSセッション確立におけるIMSセッションセットアップを行い、1または複数のメディアストリームセッションからなる。
また、FLUSコントロールプレーン機能(F-C)は、FLUSセッションを確立して制御する機能である。FLUSソースは、FLUSコントロールプレーン機能により、メディアセッション開設、メディアセッションの静的メタデータのプロビジョニング、および、プロセシング/ディストリビューションサブファンクションの選択とコンフィギュレーションを実行する。
また、メディアセッション開設は、FLUSセッションの一部として定義される。FLUSユーザプレーン機能(F-U)には、メディアセッション確立プロシジャが含まれる。1つのFLUSセッションに、複数の異なるメディアセッションが確立されることが想定される。
また、メディアセッションは、1つあるは複数のメディアストリームを含む。メディアストリームは、単一メディアコンポーネント(例えば、音声のみ)を含む場合もあれば、複数の異なるメディアコンポーネント(例えば、音声と動画)を含む場合もある。メディアセッションは、1つ以上の同一メディアストリーム(例えば、複数の動画ストリーム)を含む場合もある。また、FLUSシンクがメディアセッションを開設することが想定される。
図44には、FLUSにおけるメディアセッションおよびメディアストリームの一例が示されている。
図44に示すように、FLUSセッションは、1または複数のメディアストリームを転送し、メディアストリームは、FLUSセッションの時間依存メディアである。例えば、メディアストリームがアクティブになると、FLUSソースはメディアコンテンツをFLUSシンクに転送する。
また、FLUSセッションは、1つ以上のメディアストリームからなる、0または1以上のメディアセッションから構成される。なお、HTTPをメディアストリーミングに使用する場合には、メディアセッションは明示的には確立されない。
<SANDのViewportViewsメッセージの追加拡張>
図45には、SANDのViewportViewsメッセージの追加拡張の一例が示されている。
図45には、SANDのViewportViewsメッセージの追加拡張の一例が示されている。
図45において、二点鎖線で囲われているViewportViewsTypeが新たに定義される部分である。
<コンピュータの構成例>
なお、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。また、プログラムは、1のCPUにより処理されるものであっても良いし、複数のCPUによって分散処理されるものであっても良い。
なお、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。また、プログラムは、1のCPUにより処理されるものであっても良いし、複数のCPUによって分散処理されるものであっても良い。
また、上述した一連の処理(コンテンツ配信制御方法)は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラムが記録されたプログラム記録媒体からインストールされる。
図46は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)101,ROM(Read Only Memory)102,RAM(Random Access Memory)103は、バス104により相互に接続されている。
バス104には、さらに、入出力インターフェイス105が接続されている。入出力インターフェイス105には、キーボード、マウス、マイクロホンなどよりなる入力部106、ディスプレイ、スピーカなどよりなる出力部107、ハードディスクや不揮発性のメモリなどよりなる記憶部108、ネットワークインタフェースなどよりなる通信部109、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア111を駆動するドライブ110が接続されている。
以上のように構成されるコンピュータでは、CPU101が、例えば、記憶部108に記憶されているプログラムを、入出力インターフェイス105及びバス104を介して、RAM103にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU101)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア111に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア111をドライブ110に装着することにより、入出力インターフェイス105を介して、記憶部108にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部109で受信し、記憶部108にインストールすることができる。その他、プログラムは、ROM102や記憶部108に、あらかじめインストールしておくことができる。
<構成の組み合わせ例>
なお、本技術は以下のような構成も取ることができる。
(1)
コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルのデータのトランスコードに関する制御を行う制御部と
を備え、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御し、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御する
コンテンツ配信制御装置。
(2)
前記メタデータファイルは、ISO IEC 23009で規格定義されるMPD(Media Presentation Description)ファイルである
上記(1)に記載のコンテンツ配信制御装置。
(3)
前記オリジナルのデータは、MPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントである
上記(1)または(2)に記載のコンテンツ配信制御装置。
(4)
前記定義情報および前記アクセス情報は、前記MPDのAdaptationSetに格納される
上記(3)に記載のコンテンツ配信制御装置。
(5)
前記定義情報および前記アクセス情報は、前記MPDのRepresentationに格納される
上記(3)に記載のコンテンツ配信制御装置。
(6)
前記定義情報および前記アクセス情報は、前記MPDのSubRepresentationに格納される
上記(3)に記載のコンテンツ配信制御装置。
(7)
前記オリジナルのデータは、SDP(Session Description Protocol)を利用して配信されるオリジナルストリームである
上記(1)から(6)までのいずれかに記載のコンテンツ配信制御装置。
(8)
前記メタデータファイルは、IETF(Internet Engineering Task Force)で規格定義されるSDPファイルであって、
前記定義情報および前記アクセス情報は、前記SDPのメディア記述部に格納される
上記(7)に記載のコンテンツ配信制御装置。
(9)
前記定義情報は、単独のファイルとして記憶されている
上記(1)から(8)までのいずれかに記載のコンテンツ配信制御装置。
(10)
前記定義情報により、前記コンテンツがトランスコード可能であるか否かが指定される
上記(1)から(9)までのいずれかに記載のコンテンツ配信制御装置。
(11)
前記定義情報には、部分的な画像修正処理を含むアップスケーリング方式が定義されている
上記(1)から(10)までのいずれかに記載のコンテンツ配信制御装置。
(12)
前記定義情報には、トランスコードの可否制御に利用する条件記述言語に基づく条件記述が定義されている
上記(1)から(11)までのいずれかに記載のコンテンツ配信制御装置。
(13)
前記定義情報には、実際に適用されたトランスコード処理の内容報告に利用する情報構造が定義されている
上記(1)から(12)までのいずれかに記載のコンテンツ配信制御装置。
(14)
前記コンテンツのトランスコードは、前記コンテンツを取得して再生するクライアントから取得される前記クライアントの環境情報に基づいて行われる
上記(1)から(12)までのいずれかに記載のコンテンツ配信制御装置。
(15)
前記クライアントからviewport通知が行われるのに応じ、そのviewportを含むようにアップスケーリングするトランスコードを制御する
上記(14)に記載のコンテンツ配信制御装置。
(16)
コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルのデータのトランスコードに関する制御を行う制御部と
を備えるコンテンツ配信制御装置が、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御することと、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御することと
を含むコンテンツ配信制御方法。
(17)
コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルのデータのトランスコードに関する制御を行う制御部と
を備えるコンテンツ配信制御装置のコンピュータに、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御することと、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御することと
を含む処理を実行させるためのプログラム。
(18)
コンテンツを記憶する記憶部を有する第1のサーバと、
前記コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルのデータのトランスコードに関する制御を行う制御部と
を有し、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御し、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御する
コンテンツ配信制御を行う第2のサーバと、
前記コンテンツ配信制御に従って配信されるコンテンツを取得して、再生するクライアントと
を備えるコンテンツ配信システム。
なお、本技術は以下のような構成も取ることができる。
(1)
コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルのデータのトランスコードに関する制御を行う制御部と
を備え、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御し、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御する
コンテンツ配信制御装置。
(2)
前記メタデータファイルは、ISO IEC 23009で規格定義されるMPD(Media Presentation Description)ファイルである
上記(1)に記載のコンテンツ配信制御装置。
(3)
前記オリジナルのデータは、MPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントである
上記(1)または(2)に記載のコンテンツ配信制御装置。
(4)
前記定義情報および前記アクセス情報は、前記MPDのAdaptationSetに格納される
上記(3)に記載のコンテンツ配信制御装置。
(5)
前記定義情報および前記アクセス情報は、前記MPDのRepresentationに格納される
上記(3)に記載のコンテンツ配信制御装置。
(6)
前記定義情報および前記アクセス情報は、前記MPDのSubRepresentationに格納される
上記(3)に記載のコンテンツ配信制御装置。
(7)
前記オリジナルのデータは、SDP(Session Description Protocol)を利用して配信されるオリジナルストリームである
上記(1)から(6)までのいずれかに記載のコンテンツ配信制御装置。
(8)
前記メタデータファイルは、IETF(Internet Engineering Task Force)で規格定義されるSDPファイルであって、
前記定義情報および前記アクセス情報は、前記SDPのメディア記述部に格納される
上記(7)に記載のコンテンツ配信制御装置。
(9)
前記定義情報は、単独のファイルとして記憶されている
上記(1)から(8)までのいずれかに記載のコンテンツ配信制御装置。
(10)
前記定義情報により、前記コンテンツがトランスコード可能であるか否かが指定される
上記(1)から(9)までのいずれかに記載のコンテンツ配信制御装置。
(11)
前記定義情報には、部分的な画像修正処理を含むアップスケーリング方式が定義されている
上記(1)から(10)までのいずれかに記載のコンテンツ配信制御装置。
(12)
前記定義情報には、トランスコードの可否制御に利用する条件記述言語に基づく条件記述が定義されている
上記(1)から(11)までのいずれかに記載のコンテンツ配信制御装置。
(13)
前記定義情報には、実際に適用されたトランスコード処理の内容報告に利用する情報構造が定義されている
上記(1)から(12)までのいずれかに記載のコンテンツ配信制御装置。
(14)
前記コンテンツのトランスコードは、前記コンテンツを取得して再生するクライアントから取得される前記クライアントの環境情報に基づいて行われる
上記(1)から(12)までのいずれかに記載のコンテンツ配信制御装置。
(15)
前記クライアントからviewport通知が行われるのに応じ、そのviewportを含むようにアップスケーリングするトランスコードを制御する
上記(14)に記載のコンテンツ配信制御装置。
(16)
コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルのデータのトランスコードに関する制御を行う制御部と
を備えるコンテンツ配信制御装置が、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御することと、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御することと
を含むコンテンツ配信制御方法。
(17)
コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルのデータのトランスコードに関する制御を行う制御部と
を備えるコンテンツ配信制御装置のコンピュータに、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御することと、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御することと
を含む処理を実行させるためのプログラム。
(18)
コンテンツを記憶する記憶部を有する第1のサーバと、
前記コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルのデータのトランスコードに関する制御を行う制御部と
を有し、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御し、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルのデータのトランスコードを制御する
コンテンツ配信制御を行う第2のサーバと、
前記コンテンツ配信制御に従って配信されるコンテンツを取得して、再生するクライアントと
を備えるコンテンツ配信システム。
<構成の組み合わせ例>
なお、本技術は以下のような構成も取ることができる。
(1)
コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部と
を備え、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御し、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御する
コンテンツ配信制御装置。
(2)
前記メタデータファイルは、ISO IEC 23009で規格定義されるMPD(Media Presentation Description)ファイルである
上記(1)に記載のコンテンツ配信制御装置。
(3)
前記定義情報および前記アクセス情報は、前記MPDのAdaptationSetに格納される
上記(2)に記載のコンテンツ配信制御装置。
(4)
前記定義情報および前記アクセス情報は、前記MPDのRepresentationに格納される
上記(2)または(3)に記載のコンテンツ配信制御装置。
(5)
前記定義情報および前記アクセス情報は、前記MPDのSubRepresentationに格納される
上記(2)から(4)までのいずれかに記載のコンテンツ配信制御装置。
(6)
前記定義情報は、単独のファイルとして記憶されている
上記(1)から(5)までのいずれかに記載のコンテンツ配信制御装置。
(7)
前記定義情報により、前記コンテンツがトランスコード可能であるか否かが指定される
上記(1)から(6)までのいずれかに記載のコンテンツ配信制御装置。
(8)
前記定義情報には、部分的な画像修正処理を含むアップスケーリング方式が定義されている
上記(1)から(7)までのいずれかに記載のコンテンツ配信制御装置。
(9)
前記定義情報には、トランスコードの可否制御に利用する条件記述言語に基づく条件記述が定義されている
上記(1)から(8)までのいずれかに記載のコンテンツ配信制御装置。
(10)
前記定義情報には、実際に適用されたトランスコード処理の内容報告に利用する情報構造が定義されている
上記(1)から(9)までのいずれかに記載のコンテンツ配信制御装置。
(11)
前記コンテンツのトランスコードは、前記コンテンツを取得して再生するクライアントから取得される前記クライアントの環境情報に基づいて行われる
上記(1)から(10)までのいずれかに記載のコンテンツ配信制御装置。
(12)
前記クライアントからviewport通知が行われるのに応じ、そのviewportを含むようにアップスケーリングするトランスコードを制御する
上記(11)に記載のコンテンツ配信制御装置。
(13)
コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部と
を備えるコンテンツ配信制御装置が、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと
を含むコンテンツ配信制御方法。
(14)
コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部と
を備えるコンテンツ配信制御装置のコンピュータに、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと
を含む処理を実行させるためのプログラム。
(15)
コンテンツを記憶する記憶部を有する第1のサーバと、
前記コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部と
を有し、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御し、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御する
コンテンツ配信制御を行う第2のサーバと、
前記コンテンツ配信制御に従って配信される前記コンテンツを取得して、再生するクライアントと
を備えるコンテンツ配信システム。
なお、本技術は以下のような構成も取ることができる。
(1)
コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部と
を備え、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御し、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御する
コンテンツ配信制御装置。
(2)
前記メタデータファイルは、ISO IEC 23009で規格定義されるMPD(Media Presentation Description)ファイルである
上記(1)に記載のコンテンツ配信制御装置。
(3)
前記定義情報および前記アクセス情報は、前記MPDのAdaptationSetに格納される
上記(2)に記載のコンテンツ配信制御装置。
(4)
前記定義情報および前記アクセス情報は、前記MPDのRepresentationに格納される
上記(2)または(3)に記載のコンテンツ配信制御装置。
(5)
前記定義情報および前記アクセス情報は、前記MPDのSubRepresentationに格納される
上記(2)から(4)までのいずれかに記載のコンテンツ配信制御装置。
(6)
前記定義情報は、単独のファイルとして記憶されている
上記(1)から(5)までのいずれかに記載のコンテンツ配信制御装置。
(7)
前記定義情報により、前記コンテンツがトランスコード可能であるか否かが指定される
上記(1)から(6)までのいずれかに記載のコンテンツ配信制御装置。
(8)
前記定義情報には、部分的な画像修正処理を含むアップスケーリング方式が定義されている
上記(1)から(7)までのいずれかに記載のコンテンツ配信制御装置。
(9)
前記定義情報には、トランスコードの可否制御に利用する条件記述言語に基づく条件記述が定義されている
上記(1)から(8)までのいずれかに記載のコンテンツ配信制御装置。
(10)
前記定義情報には、実際に適用されたトランスコード処理の内容報告に利用する情報構造が定義されている
上記(1)から(9)までのいずれかに記載のコンテンツ配信制御装置。
(11)
前記コンテンツのトランスコードは、前記コンテンツを取得して再生するクライアントから取得される前記クライアントの環境情報に基づいて行われる
上記(1)から(10)までのいずれかに記載のコンテンツ配信制御装置。
(12)
前記クライアントからviewport通知が行われるのに応じ、そのviewportを含むようにアップスケーリングするトランスコードを制御する
上記(11)に記載のコンテンツ配信制御装置。
(13)
コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部と
を備えるコンテンツ配信制御装置が、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと
を含むコンテンツ配信制御方法。
(14)
コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部と
を備えるコンテンツ配信制御装置のコンピュータに、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと
を含む処理を実行させるためのプログラム。
(15)
コンテンツを記憶する記憶部を有する第1のサーバと、
前記コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部と
を有し、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御し、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御する
コンテンツ配信制御を行う第2のサーバと、
前記コンテンツ配信制御に従って配信される前記コンテンツを取得して、再生するクライアントと
を備えるコンテンツ配信システム。
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
11 コンテンツ配信システム, 12 クラウド, 13 コンテンツ提供装置, 14 DASHプレイヤ, 21 ストリームソースサーバ, 22 DASH配信サーバ, 23 CDN, 31 ストリーミング配信マネジャ, 41 CDNサーバ, 41a CDNオリジンサーバ, 41b CDNエッジサーバ, 42 トランスコーダ, 43 トランスコードマネジャ
Claims (15)
- コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部と
を備え、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御し、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御する
コンテンツ配信制御装置。 - 前記メタデータファイルは、ISO IEC 23009で規格定義されるMPD(Media Presentation Description)ファイルである
請求項1に記載のコンテンツ配信制御装置。 - 前記定義情報および前記アクセス情報は、前記MPDのAdaptationSetに格納される
請求項2に記載のコンテンツ配信制御装置。 - 前記定義情報および前記アクセス情報は、前記MPDのRepresentationに格納される
請求項2に記載のコンテンツ配信制御装置。 - 前記定義情報および前記アクセス情報は、前記MPDのSubRepresentationに格納される
請求項2に記載のコンテンツ配信制御装置。 - 前記定義情報は、単独のファイルとして記憶されている
請求項1に記載のコンテンツ配信制御装置。 - 前記定義情報により、前記コンテンツがトランスコード可能であるか否かが指定される
請求項1に記載のコンテンツ配信制御装置。 - 前記定義情報には、部分的な画像修正処理を含むアップスケーリング方式が定義されている
請求項1に記載のコンテンツ配信制御装置。 - 前記定義情報には、トランスコードの可否制御に利用する条件記述言語に基づく条件記述が定義されている
請求項1に記載のコンテンツ配信制御装置。 - 前記定義情報には、実際に適用されたトランスコード処理の内容報告に利用する情報構造が定義されている
請求項1に記載のコンテンツ配信制御装置。 - 前記コンテンツのトランスコードは、前記コンテンツを取得して再生するクライアントから取得される前記クライアントの環境情報に基づいて行われる
請求項1に記載のコンテンツ配信制御装置。 - 前記クライアントからviewport通知が行われるのに応じ、そのviewportを含むようにアップスケーリングするトランスコードを制御する
請求項11に記載のコンテンツ配信制御装置。 - コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部と
を備えるコンテンツ配信制御装置が、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと
を含むコンテンツ配信制御方法。 - コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部と
を備えるコンテンツ配信制御装置のコンピュータに、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御することと
を含む処理を実行させるためのプログラム。 - コンテンツを記憶する記憶部を有する第1のサーバと、
前記コンテンツをトランスコードするために必要な定義情報、または、前記定義情報にアクセスするための第1のアクセス情報と、前記コンテンツから生成されたオリジナルのデータであるMPEG-DASH(Dynamic Adaptive Streaming over HTTP)に従ったオリジナルセグメントにアクセスするための第2のアクセス情報とが格納されたメタデータファイルを生成する生成部と、
前記メタデータファイルを受信する受信部と、
前記第2のアクセス情報に基づいて取得された前記オリジナルセグメントのトランスコードに関する制御を行う制御部と
を有し、
前記メタデータファイルに前記定義情報が格納されている場合、前記制御部は、前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御し、
前記メタデータファイルに前記第1のアクセス情報が格納されている場合、前記制御部は、前記第1のアクセス情報に基づいて前記定義情報をリクエストし、そのリクエストに応じて前記受信部において受信された前記定義情報に基づいて、前記オリジナルセグメントのトランスコードを制御する
コンテンツ配信制御を行う第2のサーバと、
前記コンテンツ配信制御に従って配信される前記コンテンツを取得して、再生するクライアントと
を備えるコンテンツ配信システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018035081 | 2018-02-28 | ||
JP2018035081 | 2018-02-28 | ||
PCT/JP2019/005188 WO2019167633A1 (ja) | 2018-02-28 | 2019-02-14 | コンテンツ配信制御装置、コンテンツ配信制御方法、プログラム、およびコンテンツ配信システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2019167633A1 true JPWO2019167633A1 (ja) | 2021-03-11 |
Family
ID=67806199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020502926A Pending JPWO2019167633A1 (ja) | 2018-02-28 | 2019-02-14 | コンテンツ配信制御装置、コンテンツ配信制御方法、プログラム、およびコンテンツ配信システム |
Country Status (7)
Country | Link |
---|---|
US (1) | US11405445B2 (ja) |
EP (1) | EP3761651A4 (ja) |
JP (1) | JPWO2019167633A1 (ja) |
KR (1) | KR20200127997A (ja) |
CN (1) | CN111771386A (ja) |
TW (1) | TW201944248A (ja) |
WO (1) | WO2019167633A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10965945B2 (en) * | 2019-03-29 | 2021-03-30 | Bitmovin, Inc. | Optimized multipass encoding |
CN112751886B (zh) * | 2019-10-29 | 2023-05-26 | 贵州白山云科技股份有限公司 | 一种转码方法、***、传输设备及存储介质 |
US11438398B2 (en) * | 2020-03-30 | 2022-09-06 | Tencent America LLC | 3rd generation partnership project (3gpp) framework for live uplink streaming (flus) sink capabilities determination |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9584793B2 (en) | 2012-04-09 | 2017-02-28 | Intel Corporation | Signaling three-dimensional video information in communication networks |
US9357272B2 (en) | 2012-08-03 | 2016-05-31 | Intel Corporation | Device orientation capability exchange signaling and server adaptation of multimedia content in response to device orientation |
EP3148290B1 (en) | 2012-10-26 | 2023-08-30 | Apple Inc. | Multimedia adaptation based on video orientation |
WO2014066887A1 (en) * | 2012-10-26 | 2014-05-01 | Intel Corporation | Streaming with coordination of video orientation (cvo) |
KR102062764B1 (ko) * | 2013-07-19 | 2020-02-21 | 삼성전자주식회사 | 모바일 단말 화면을 위한 3k해상도를 갖는 디스플레이 영상 생성 방법 및 장치 |
US10165028B2 (en) | 2014-03-25 | 2018-12-25 | Intel Corporation | Context-aware streaming of digital content |
US9888047B2 (en) * | 2014-04-03 | 2018-02-06 | Cisco Technology, Inc. | Efficient on-demand generation of ABR manifests |
US10924781B2 (en) * | 2014-06-27 | 2021-02-16 | Satellite Investors, Llc | Method and system for real-time transcoding of MPEG-DASH on-demand media segments while in transit from content host to dash client |
CN107637045B (zh) * | 2015-06-16 | 2020-11-27 | 苹果公司 | 使用动态无线接入网信息的自适应视频流送 |
US11979470B2 (en) * | 2016-03-01 | 2024-05-07 | Comcast Cable Communications, Llc | Delivering notification information |
US10511864B2 (en) * | 2016-08-31 | 2019-12-17 | Living As One, Llc | System and method for transcoding media stream |
EP3563574A1 (en) * | 2017-01-02 | 2019-11-06 | Koninklijke KPN N.V. | Selectively updating a dynamic manifest file |
-
2019
- 2019-02-14 CN CN201980014780.6A patent/CN111771386A/zh not_active Withdrawn
- 2019-02-14 US US16/971,689 patent/US11405445B2/en active Active
- 2019-02-14 EP EP19761701.2A patent/EP3761651A4/en not_active Withdrawn
- 2019-02-14 KR KR1020207023719A patent/KR20200127997A/ko unknown
- 2019-02-14 WO PCT/JP2019/005188 patent/WO2019167633A1/ja unknown
- 2019-02-14 JP JP2020502926A patent/JPWO2019167633A1/ja active Pending
- 2019-02-18 TW TW108105234A patent/TW201944248A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20200412784A1 (en) | 2020-12-31 |
TW201944248A (zh) | 2019-11-16 |
CN111771386A (zh) | 2020-10-13 |
KR20200127997A (ko) | 2020-11-11 |
EP3761651A4 (en) | 2021-01-27 |
WO2019167633A1 (ja) | 2019-09-06 |
US11405445B2 (en) | 2022-08-02 |
EP3761651A1 (en) | 2021-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9351020B2 (en) | On the fly transcoding of video on demand content for adaptive streaming | |
JP6014870B2 (ja) | ストリーミング・メディア・コンテンツのリアルタイム・トランスマックス変換の方法およびシステム | |
JP6170920B2 (ja) | マルチメディア・ストリームの適応トランスコーディングの方法及び装置 | |
US11652903B2 (en) | Method and system for streaming applications using rate pacing and MPD fragmenting | |
CN108769616A (zh) | 一种基于rtsp协议的实时视频无插件预览方法及*** | |
US7921150B1 (en) | Method for viewing videos on distributed networks | |
US9118738B2 (en) | Systems and methods for controlling access to a media stream | |
JP5889311B2 (ja) | ストリーミングの適応制御における方法及び装置 | |
US20140297804A1 (en) | Control of multimedia content streaming through client-server interactions | |
US20140359679A1 (en) | Content streaming with client device trick play index | |
US20130198342A1 (en) | Media format negotiation mechanism delivering client device media capabilities to a server | |
JPWO2019167633A1 (ja) | コンテンツ配信制御装置、コンテンツ配信制御方法、プログラム、およびコンテンツ配信システム | |
JP2009147902A (ja) | ユーザ端末にマルチメディアコンテンツとコーデックを提供する適応的マルチメディアシステムおよびその方法 | |
US20190069036A1 (en) | System and method for distributed control of segmented media | |
KR20170141677A (ko) | 수신 장치, 송신 장치 및 데이터 처리 방법 | |
JPWO2019167634A1 (ja) | コンテンツ配信制御装置、コンテンツ配信制御方法、プログラム、およびコンテンツ配信システム | |
US10390069B2 (en) | Adaptive broadcasting of multimedia content | |
Yang et al. | Implementation of HTTP live streaming for an IP camera using an open source multimedia converter | |
KR100502186B1 (ko) | 고화질 인터넷 방송 서비스 시스템 | |
US10547878B2 (en) | Hybrid transmission protocol | |
KR101568317B1 (ko) | Ip 카메라에서 hls 프로토콜을 지원하는 시스템 및 그 방법 |