Internet OnlineGame Live Protocol ○概要  インターネット上において、画像によるライブ中継を実現することは、大変有意義ではあるが、 ライブ中継が現在行われているかどうかを自動的に判断することは難しく、本来必要でない画像を 取得してしまうため、無駄なトラフィックを発生させてしまうことになる。  そこで、無駄なトラフィックを無くすと共に、より快適なライブ中継の配信・閲覧を行うために OLP(Internet OnlineGame Live Protocol)を提案する。 ○この文章について  この文章は、インターネットの基準を定義するためのものではなく、インターネットコミュニティ のために情報を提供するものである。この文章は、オリジナルと同じ場合に限り、配布に制限はない。 ○コピーライト  Copyright (C) Ragnarok online Japan Television (2002). All Rights Reserved. ○チャンネル  一つのライブ中継には、一対一で対応するチャンネルが割り与えられる  一つのチャンネルは、以下の要素によって構成される    チャンネルID    チャンネル情報ファイル    ライブ中継画像    ライブ中継サムネイル画像(オプション)  これら構成要素のファイル名については、特に制限はない。 ○チャンネル管理組織  チャンネル管理組織は、特定のチャンネル群のチャンネルIDとチャンネル情報ファイルのURLを 管理する組織である。  一つのチャンネル管理組織が、複数のチャンネルリストファイルを管理してもよい ○チャンネルリストファイル  チャンネルリストファイルは、特定のチャンネル群のチャンネルIDとチャンネル情報ファイルの URLの対応を記述したファイルである。  チャンネルリストファイルは、一つのチャンネルに対して    (ChannelID) Comma (ProtocolSignature) Comma (URL)    ChannelID:チャンネルID    ProtocolSignature:OLP/(ProtocolVersion)形式で指定されるプロトコル情報    URL:ProtocolSignatureに応じて、以下のようなファイルのURLが指定される       OLP/1.0:ライブ画像ファイルのURL       OLP/1.3:ライブ画像ファイルのURL       OLP/1.5:チャンネル情報ファイルのURL       OLP/1.7:チャンネル情報ファイルのURL       OLP/2.0:チャンネル情報ファイルのURL       OLP/3.0:チャンネル情報ファイルのURL    Comma:","(0x2C) という一行を持つファイルである。  同じチャンネルが、同じチャンネルリストファイルの中に複数回現れることは許されないが、 同じチャンネルが、複数のチャンネルリストに現れてもよい。 ○チャンネルID  チャンネルIDは、チャンネルをインターネット上で一意に区別するための文字列である このため、異なるチャンネルが同じチャンネルIDを持つことは許されない。  チャンネルIDは、以下のように定義される    大文字と小文字は区別されない    使える文字は、a-z A-Z "_"(0x2D) "-"(0x5F)    チャンネルIDの長さは、最大で255文字まで  チャンネルIDは、管理・区別を円滑に行うため、以下のようなフォーマットが望ましい    (GameName) Dot (OrganizationName) Dot (ChannelName)    GameName:そのオンラインゲームの名前    OrganizationName:チャンネル群を管理している組織名    ChannelName:その組織の中でのチャンネル名    Dot:"."(0x2E) ○チャンネル情報ファイル  チャンネル情報ファイルは、チャンネルの情報が書かれた、テキストファイルである。  このチャンネル情報ファイルの中には、以下のような情報が書かれている。    閲覧開始時に一度だけ読み込めばいい情報    放送停止中に、放送開始を知るための情報  このため、チャンネル情報ファイルは、以下の場合に更新されるべきである    放送の開始時    放送の終了時  チャンネル情報ファイルは、一つプロパティが一行に対応し、一行が    (PropertyName) = (PropertyValue) という形式で、書かれているファイルである。  これらチャンネルのプロパティは、ファイル中にどのような順番で書かれても良い。 ○チャンネルのプロパティ  チャンネルのプロパティは、以下に定義する通りである。  このうち、必須と書かれたプロパティは、必ず値を設定しなければならなく、オプション と書かれたプロパティは、値を設定してもしなくても良い。 [ProtocolSignature / 必須]  プロトコルを区別する文字列  OLP/(ProtocolVersion)形式で指定する [ChannelID / 必須]  チャンネルのID [ChannelName / オプション]  そのチャンネルの名前 [ChannelNumber / オプション]  そのチャンネルの組織内でのチャンネル番号 [URL / 必須]  ライブ画像のURL [ThumbnailURL / オプション]  サムネイル画像のURL [ReloadTime / 必須]  ライブ画像とサムネイル画像の更新間隔(秒) [CommentforChannel / オプション]  チャンネル自体に対するコメント [StatusFlag / 必須]  チャンネルの現在の状態を示すフラグ  放送中、放送休止中(短時間の放送停止)、放送停止中の3状態がある  0(0x48)か1(0x49)か2(0x50)で指定し、それぞれの値は、以下の意味を持つ  放送中:0  放送休止中:1  放送停止中:2 [BroadCastStartTime / オプション]  次に放送を開始する可能性のある時間  yyyy/mm/dd Space hh:mm:ss形式(直接指定)  + hh:mm:ss形式(Last-Modifiedからの差分時間)  Space:" "(0x20)  で指定する [Last-Modified / 必須]  チャンネル情報ファイルを更新した時間  yyyy/mm/dd Space hh:mm:ss形式で指定する  Space:" "(0x20) ○ライブ画像中のチャンネル情報  ライブ画像には、チャンネル情報の一部と現在のライブに対するコメント、ライブ画像の更新時間 を埋め込むことができる。  ライブ画像に埋め込まれたチャンネル情報の値は、チャンネル情報ファイルの値よりも優先される。  情報を埋め込む位置が自由に選択できる場合、情報を埋め込む場所は、なるべく、画像の先頭に 近い位置であることが望ましい。  画像への埋め込み方法は、各画像毎に異なる。 ○Jpeg画像へのチャンネル情報の埋め込み方法  Jpeg画像へは、APP5セグメントを利用して、チャンネル情報を埋め込む。  APP5セグメント内でのフォーマットは、以下の通り    (ProtocolSignature) Comma (StatusFlag) Comma (ReloadTime) Comma (Last-Modified) Comma (CommentforLive)    ProtocolSignature:チャンネル情報ファイル中のProtocolSignatureに同じ    StatusFlag:チャンネル情報ファイル中のStatusFlagに同じ          ただし、こちらの値の方が優先される    ReloadTime:チャンネル情報ファイル中のReloadTimeに同じ          ただし、こちらの値の方が優先される    Last-Modified:画像ファイルを更新した時間            形式は、チャンネル情報ファイル中のLast-Modifiedの形式に同じ    CommentforLive:現在のライブに対するコメント    Comma:","(0x2C) ○プロトコルバージョンの定義  Internet OnlineGame Live Protocolにどの程度沿っているかによって、以下のプロトコル バージョンが定義される。 ○OLP/1.0  情報の埋め込まれていない画像ファイルのみが配信されている場合。  つまり、チャンネル情報ファイルがなく、画像中にもチャンネル情報を埋め込んでいない というチャンネルに対して、OLP/1.0が対応する。  この場合、HTMLファイル中で     というようにして、画像更新間隔が指定されている場合には、この値をチャンネル情報の ReloadTimeプロパティの値として利用しても良い。 ○OLP/1.3  情報の埋め込まれた画像ファイルのみが配信されている場合。  ただし、OLP/1.0と違い、チャンネル情報ファイルはないが、画像中にはチャンネル情報が 埋め込まれているというチャンネルに対して、OLP/1.3が対応する。  OLP/1.3の状況は、望ましくない状況であり、改善することが望まれる。 ○OLP/1.5  情報の埋め込まれていない画像ファイルは、正しく配信されているが、チャンネル情報ファイルは 更新されない場合。  つまり、画像ファイルから情報は取得できないが、チャンネル情報ファイルからは、一部 情報が取得できる状況に対して、OLP/1.5が対応する。  OLP/1.5では、チャンネル情報ファイル中の「閲覧開始時に一度だけ読み込めばいい情報 」は 正しい情報として信用されるが、「放送停止中に、放送開始を知るための情報 」は、無視される。  具体的には、チャンネル情報ファイルのうち、以下のプロパティが無視される。    ReloadTime StatusFlag BroadCastStartTime Last-Modified  OLP/1.5の状況は、望ましくない状況であり、改善することが望まれる。 ○OLP/1.7  情報の埋め込まれた画像ファイルは、正しく配信されているが、チャンネル情報ファイルは 更新されない場合。  つまり、画像中に埋め込まれた情報は全て正しいが、チャンネル情報ファイル中の情報は 一部正しくない状況に対して、OLP/1.7が対応する  OLP/1.7では、チャンネル情報ファイル中の「閲覧開始時に一度だけ読み込めばいい情報 」は 正しい情報として信用されるが、「放送停止中に、放送開始を知るための情報 」は、無視される。  具体的には、チャンネル情報ファイルのうち、以下のプロパティが無視される。    ReloadTime StatusFlag BroadCastStartTime Last-Modified  OLP/1.7の状況は、望ましくない状況であり、改善することが望まれる。 ○OLP/2.0  情報の埋め込まれていない画像ファイルと正しいチャンネル情報ファイルが配信されている場合。  きちんとしたチャンネル情報ファイルはあるが、画像中には、チャンネル情報が埋め込まれていない というチャンネルに対して、OLP/2.0が対応する。 ○OLP/3.0  情報の埋め込まれた画像ファイルと正しいチャンネル情報ファイルが更新されている場合。  きちんとしたチャンネル情報ファイルがあり、画像中にもチャンネル情報を埋め込んでいる というチャンネルに対して、OLP/3.0が対応する。  この状況が、最も望ましい状況である。