2
我想通過FTP和PHP流mp4文件,但只有mp3會流,mp4s將下載,但不是流有一種特殊的格式,mp4必須在流?用PHP流媒體的MP4
這是我想要的代碼:
$response = ftp_raw($ftp, 'SIZE '.$_GET['path']);
$size = floatval(str_replace('213 ', '', $response[0]));
if(substr($_GET['path'], -4) == '.mp3') {
header('Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3');
}
if(substr($_GET['path'], -4) == ".mp4") {
header('Content-Type: video/mpeg');
}
header('Content-Encoding: chunked');
header('Connection: keep-alive');
header('Content-Disposition: inline; filename="'. basename($_GET["path"]). '"');
header('Content-Description: File Transfer');
header("Content-Length: $size");
header('Content-Transfer-Encoding: binary');
header('X-Pad: avoid browser bug');
header('Pragma: public');
header('Expires: -1');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Content-Range: bytes 0-'.$size);
header('Accept-Ranges: bytes');
$out = fopen('php://output', 'w');
if (!ftp_fget($ftp, $out, $_GET['path'], FTP_BINARY)) die('Unable to get file: ' . $remote_file);
fclose($out);
我試過內容類型:video/mp4了。 –
我的猜測是它與'Content-Range'標題有關。客戶端可能會要求某個文件塊,但是您正在發送整個文件。另外,我不知道是否需要「Content-Encoding:chunked」。 –
您的MP4文件是否允許流式傳輸? – datasage