
CakePHP2系です。
こちらなどを参考に、
ファイルに直接アクセスするのではなくphpにアクセスすることで、
phpファイルからmp4を出力し、再生したいと思いやってみているのですが、上手く行きません。
CakePHPを使っているので、該当のControllerのactionにアクセス時に返す、といったようにしています。
PHP
1//hogeController 2 public function video() { 3 $this->layout = false; 4 $this->autoRender = false; 5 6 //ファイルパス 7 $file = '/home/hoge/cakephp/app/webroot/test/video.mp4'; 8 9 $etag = md5($_SERVER["REQUEST_URI"]).filesize($file); 10 11 header('Content-Type: video/mp4'); 12 header('Content-Length: '.filesize($file)); 13 header("Accept-Ranges: bytes"); 14 header("Etag: \"{$etag}\""); 15 header('X-Mod-H264-Streaming: version=2.2.7'); 16 17 echo readfile($file); 18 exit; 19 } 20
実際に返って来ているヘッダは下記です。
Date Thu, 23 Jun 2016 16:58:03 GMT
Server サーバーの種類
X-Powered-By secret
Etag "etagの値"
X-Mod-H264-Streaming version=2.2.7
Content-Type video/mp4
Connection close
Accept-Ranges bytes
Content-Length 143744705
ファイルに直接アクセスすると当然ちゃんと再生されます。
Date Thu, 23 Jun 2016 17:00:45 GMT
Last-Modified Thu, 23 Jun 2016 15:19:45 GMT
Server サーバーの種類
ETag "etagの値"
X-Mod-H264-Streaming version=2.2.7
Content-Type video/mp4
Connection close
Accept-Ranges bytes
Content-Length 143744737
なぜうまくいかないのでしょうか?
再生の画面は表示される(再生マークが出、
ソースはhtmlのvideoタグのsrcに、http://hoge/hoge/video という指定したURLが入っています)
何卒、ご教授お願い致します。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。