PDA

View Full Version : مشکل پخش mp4



sara_aryanfar
چهارشنبه 24 مهر 1398, 13:48 عصر
با سلام خدمت دوستان من توسط کد زیر فایل mp4 خودم رو پخش می کنم

$file = $filename;
$fp = @fopen($file, 'rb');
$size = filesize($file); // File size
$length = $size; // Content length
$start = 0; // Start byte
$end = $size - 1; // End byte
header('Content-type: video/mp4');
header("Accept-Ranges: 0-$length");
if (isset($_SERVER['HTTP_RANGE'])) {
$c_start = $start;
$c_end = $end;
list(, $range) = explode('=', $_SERVER['HTTP_RANGE'], 2);
if (strpos($range, ',') !== false) {
header('HTTP/1.1 416 Requested Range Not Satisfiable');
header("Content-Range: bytes $start-$end/$size");
exit;
}
if ($range == '-') {
$c_start = $size - substr($range, 1);
}else{
$range = explode('-', $range);
$c_start = $range[0];
$c_end = (isset($range[1]) && is_numeric($range[1])) ? $range[1] : $size;
}
$c_end = ($c_end > $end) ? $end : $c_end;
if ($c_start > $c_end || $c_start > $size - 1 || $c_end >= $size) {
header('HTTP/1.1 416 Requested Range Not Satisfiable');
header("Content-Range: bytes $start-$end/$size");
exit;
}
$start = $c_start;
$end = $c_end;
$length = $end - $start + 1;
fseek($fp, $start);
header('HTTP/1.1 206 Partial Content');
}
header("Content-Range: bytes $start-$end/$size");
header("Content-Length: ".$length);
$buffer = 1024 * 8;
while(!feof($fp) && ($p = ftell($fp)) <= $end) {
if ($p + $buffer > $end) {
$buffer = $end - $p + 1;
}
set_time_limit(0);
echo fread($fp, $buffer);
flush();
}
fclose($fp);
exit();

حالا مشکلی که دارم این هست که وقتی آدرس مستقیم ویدئو رو در مرورگر صدا میزنم مرورگر اون فایل رو پخش می کنه اما وقتی آدرس موقت رو صدا میزنم پخش نمی کنه و

Video format or MIME type is not supported

می زنه برای فایل حالا اگر همین آدرس موقت رو در یک تگ ویدئو فراخونی کنم اگر type="video/mp4" داشته باشه پخش می کنه در غیر اونصورت خیر ممنون میشم راهنمایی کنید

plague
جمعه 26 مهر 1398, 17:58 عصر
معمولا هدر ها مشکل دارن وقتی این اررور ها رو میده
یه سرچ بکن
php play mp4 file

کلی نمونه کد هست تستشون کن ببین چی جواب میده