2008.03.21 Friday
携帯での動画・着うた配信 〜ストリーミング or ダウンロード〜
携帯サイトに関わっている期間は結構長いですが, 今までメディア関係で扱ったことがあるのは主に待受け画像関係。後は Flash を少々。
個人的に着メロ, 動画/着うたにはとんと興味がなかったのでずっとスルーしていたのですが, 今回, 動画/着うたを初めて業務で扱うことになったので, 備忘録を兼ねてメモ。
個人的に着メロ, 動画/着うたにはとんと興味がなかったのでずっとスルーしていたのですが, 今回, 動画/着うたを初めて業務で扱うことになったので, 備忘録を兼ねてメモ。
動画の再生方式には, ストリーミングとダウンロード の 2種類あります。
・ストリーミング
動画を受信しながら再生する
端末に保存不可能
・ダウンロード
動画を完全に受信した後, 再生
端末に保存可能
キャリア毎のファイル容量は以下の範囲です(機種ごとに違います)。
・DoCoMo
ストリーミング 2MB 〜 10MB
ダウンロード 300KB 〜 10MB
・au
ショートストリーミング 140KB
ダウンロード 512KB 〜 1.5MB
ストリーミング 1.5MB
・SoftBank
ストリーミング -
ダウロード 200KB 〜 300KB
1つのファイルをどのキャリアにも対応させようとすると, ダウンロード方式で 200KB以下で作らないといけないことになりますね。
DoCoMo にはプログレッシブダウンロードというストリーミングとダウンロードのいいとこ取りをした方式があり, 受信しながら再生し端末に保存できます。
au のショートストリーミングは名前はストリーミングですが, 再生されるのは動画を完全に受信した後。
単純に端末に保存できないだけ。
au のストリーミングは KDDI の配信サーバを利用しないといけないらしいので, 普通のサーバでは無理っぽいです。
SoftBank は基本的にはストリーミング再生できません。ダウンロードのみ。
SD(Separated Delivery)方式を使えばストリーミング再生可能ですが, かなりややこしい方式且つ公式サイトにしか対応してません。
MIMEタイプは以下。
・動画
video/3gpp (DoCoMo, SoftBank)
video/3gpp2 (au)
・着うた
audio/3gpp (DoCoMo, SoftBank)
audio/3gpp2 (au)
動画/着うたを配信するタグですが, DoCoMo/au は objectタグで, SoftBank は単に aタグでリンクします。
著作権保護(転送禁止)設定は, DoCoMo/au はツールを使って設定, SoftBank は相変わらずお馴染みの x-jphone-copyrightヘッダで。
また, DoCoMo/au に関しては, 動画/着うたファイルへのリクエストに Rangeヘッダが付加されます。
このヘッダを受けた場合は, 206 Partial Content のステータスを返さなければなりません。
通常は Apache が勝手に処理してくれるので意識する必要はないのですが, 自前のスクリプトでメディアファイルのデータを出力する場合は Rangeヘッダを適切に処理する必要があります。
具体的には以下の様に Content-Rangeヘッダをつけて要求された範囲のデータのみ出力すれば OK です。
...しかし, 動画/着うたの仕様は画像に輪をかけて複雑ですな(´∀`;)
相変わらずキャリア毎に仕様違うし, 携帯の世界の仕様はカオス過ぎ。
それが携帯サイト構築ノウハウになって強みになるんでしょうが, いい加減統一して欲しい。
参考
・NTTドコモ - MP4対応iモーション
・KDDI au:技術情報 - EZムービー
・ストリーミング
動画を受信しながら再生する
端末に保存不可能
・ダウンロード
動画を完全に受信した後, 再生
端末に保存可能
キャリア毎のファイル容量は以下の範囲です(機種ごとに違います)。
・DoCoMo
ストリーミング 2MB 〜 10MB
ダウンロード 300KB 〜 10MB
・au
ショートストリーミング 140KB
ダウンロード 512KB 〜 1.5MB
ストリーミング 1.5MB
・SoftBank
ストリーミング -
ダウロード 200KB 〜 300KB
1つのファイルをどのキャリアにも対応させようとすると, ダウンロード方式で 200KB以下で作らないといけないことになりますね。
DoCoMo にはプログレッシブダウンロードというストリーミングとダウンロードのいいとこ取りをした方式があり, 受信しながら再生し端末に保存できます。
au のショートストリーミングは名前はストリーミングですが, 再生されるのは動画を完全に受信した後。
単純に端末に保存できないだけ。
au のストリーミングは KDDI の配信サーバを利用しないといけないらしいので, 普通のサーバでは無理っぽいです。
SoftBank は基本的にはストリーミング再生できません。ダウンロードのみ。
SD(Separated Delivery)方式を使えばストリーミング再生可能ですが, かなりややこしい方式且つ公式サイトにしか対応してません。
MIMEタイプは以下。
・動画
video/3gpp (DoCoMo, SoftBank)
video/3gpp2 (au)
・着うた
audio/3gpp (DoCoMo, SoftBank)
audio/3gpp2 (au)
動画/着うたを配信するタグですが, DoCoMo/au は objectタグで, SoftBank は単に aタグでリンクします。
著作権保護(転送禁止)設定は, DoCoMo/au はツールを使って設定, SoftBank は相変わらずお馴染みの x-jphone-copyrightヘッダで。
また, DoCoMo/au に関しては, 動画/着うたファイルへのリクエストに Rangeヘッダが付加されます。
Range: bytes=1-1023
このヘッダを受けた場合は, 206 Partial Content のステータスを返さなければなりません。
通常は Apache が勝手に処理してくれるので意識する必要はないのですが, 自前のスクリプトでメディアファイルのデータを出力する場合は Rangeヘッダを適切に処理する必要があります。
具体的には以下の様に Content-Rangeヘッダをつけて要求された範囲のデータのみ出力すれば OK です。
header('HTTP/1.1 206 Partial Content');
header('Content-Range: bytes ' . $from . '-' . $to . '/' . filesize($file));
header('Content-Type: ' . $mime);
header('Content-Length: ' . ($to - $from + 1));
header('Accept-Ranges: bytes');
...しかし, 動画/着うたの仕様は画像に輪をかけて複雑ですな(´∀`;)
相変わらずキャリア毎に仕様違うし, 携帯の世界の仕様はカオス過ぎ。
それが携帯サイト構築ノウハウになって強みになるんでしょうが, いい加減統一して欲しい。
参考
・NTTドコモ - MP4対応iモーション
・KDDI au:技術情報 - EZムービー









Comments