| ブログトップ | PHP関連 |

大容量のmp4ファイルをPHPで読み込んで出力する場合

数MBレベルのmp4ファイルならば

header('Content-type: video/mp4');
readfile("mp4ファイルのパス");
exit;

で十分対応できていたのですが、100MB越えのファイルになった際、「ファイルが壊れているため動画を再生できません。」という表示になってしまいました。

いろいろと調べた結果、readfileがダメとのこと。

記述を

header('Content-type: video/mp4');
$handle = fopen("mp4ファイルのパス", 'rb');  
while (!feof($handle))  
{  
	echo fread($handle, 4096);  
	ob_flush();  
	flush();  
}  
fclose($handle);
exit; 

と変更したところ、正常に再生されました。

ちなみにこれ、メモリによるみたいです。
ini_set("memory_limit","256M");
とPHPに記述しメモリ制限を増やしたところ、「readfile」でもうまく行きました(使用したファイルの容量は160MBです。)

でもこれはレンタルサーバによっては効かない場合もあるので、やっぱり後者の記述方法が確実かと思います。
※後者の場合ini_set("memory_limit","8M")でも正常に再生できました。

 

参考サイト

わくわくプログラミング自習室 Blogs Home

日々の生活にhappyをプラスする|ハピタス

このエントリーをはてなブックマークに追加

LINEで送る

nandani | 2013年06月19日 | コメント(1) | トラックバック(0) | PHP関連

トラックバック

トラックバックURL

コメント一覧

1. Posted by ブランド時計コピー   2017年07月14日

激安なヴィトンコピー通販店
品質が秀逸で値段が激安なヴィトンコピー通販店
海外安心と信頼のルイ・ヴィトンコピー
業内最高レベルのブランドコピーブランド
正規品と同等品質の超人気などの商品や情報が満載!
品質が秀逸&H44値段が激安!
今、いろいろルイ・ヴィトン コピー2017春夏新品が続々登場します。
爆安SALEも開催.。

コメントする

※メールアドレスが公開されることはありません。

名前 *
メール*
URL
Copyright(c) 2010 - 2017 ダリの雑記