ワンセグTS 続
VLCで観れるワンセグのみTSができたところで、次。
このout.tsから、TOTのfposをダンプ。先頭がfpos、後ろはTOTの内容。
173900 Wed Oct 6 02:59:33 2010 384460 Wed Oct 6 02:59:38 2010 596900 Wed Oct 6 02:59:43 2010 808964 Wed Oct 6 02:59:48 2010 1021780 Wed Oct 6 02:59:53 2010
これを加工して、こんな感じのout.m3u8を作成。
#EXTM3U #EXT-X-TARGETDURATION:5 #EXTINF:5, http://foobar/live/stream.php/out/173900/384460.ts http://foobar/live/stream.php/out/384460/596900.ts http://foobar/live/stream.php/out/596900/808964.ts http://foobar/live/stream.php/out/808964/1021780.ts #EXT-X-ENDLIST
AddType application/x-mpegURL .m3u8
続いて、stream.phpを作成する。PATH_INFOで「ワンセグTSのbasename」「開始fpos」「終了fpos」を拾って、指定ファイルの指定範囲を返すもの。
<?php $param = split("[/\.]", $_SERVER["PATH_INFO"]); $f = $param[1] . ".ts"; $s = $param[2]; $n = $param[3]; $len = $n - $s; header('Content-Type: video/MP2T'); $v = file_get_contents($f, NULL, NULL, $s, $len); print $v; ?>
最後に、こんなtest.htmlを作成。
<html> <body> <video width='320' height='180' src="out.m3u8" /> </body> </html>
これら、out.ts、out.m3u8、stream.php、test.htmlを、http://foobar/live で見えるところに置いて、準備完了。
さて、iPhoneでtest.htmlを開いてみる。。。ぐはぁ。ダメだ。
- test.htmlを読み込むと同時に、out.m3u8を何度もリクエストしてくる
192.168.0.1 - - [16/Apr/2011:13:27:39 +0900] "GET /live/test.html HTTP/1.1" 200 156 "-" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5" 192.168.0.1 - - [16/Apr/2011:13:27:39 +0900] "GET /live/out.m3u8 HTTP/1.1" 304 - "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:27:40 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 1395 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:27:40 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 2 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:27:40 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 1395 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:27:40 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 2 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:27:40 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 1395 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:27:40 +0900] "GET /live/out.m3u8 HTTP/1.1" 304 - "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:27:40 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 1395 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:27:40 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 2 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:27:40 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 1395 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:27:40 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 2 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:27:40 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 1395 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)"
- video画面をタップすると、さらに何度もリクエストしてきた
192.168.0.1 - - [16/Apr/2011:13:28:15 +0900] "GET /live/out.m3u8 HTTP/1.1" 200 1395 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:28:15 +0900] "GET /live/out.m3u8 HTTP/1.1" 304 - "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:28:15 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 1395 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:28:15 +0900] "GET /live/out.m3u8 HTTP/1.1" 200 1395 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:28:16 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 2 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:28:16 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 1395 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:28:16 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 2 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)" 192.168.0.1 - - [16/Apr/2011:13:28:16 +0900] "GET /live/out.m3u8 HTTP/1.1" 206 1395 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; ja_jp)"
- ところがvideo本体が1度もリクエストされない
- そのうち、「このムービーは再生できません。」のダイアログが。。。
out.tsを読んで怒られるならともかく、そこまで行ってない。m3u8のファイルの書き方がおかしい?