HOWTO · PHP
PHP 비디오 플레이어
이 튜토리얼은 PHP에서 비디오 플레이어를 만드는 방법을 보여줍니다.
이 페이지의 내용
이 튜토리얼은 PHP에서 비디오 플레이어를 만드는 방법을 보여줍니다.
PHP 비디오 플레이어
HTML 스트리밍 로직을 사용하여 PHP에서 비디오 플레이어를 만들 수 있습니다. PHP를 사용하여 비디오 파일을 열고 읽고 스트리밍을 위해 보낼 수 있습니다.
예제로 이동한 다음 작동 방식을 설명하겠습니다.
<?php
$Video_File = "C:\Users\Sheeraz\OneDrive\Desktop\New folder\sample.ogv";
if(!file_exists($Video_File)) return;
$File_Open = @fopen($Video_File, 'rb');
$File_Size = filesize($Video_File); // size of the video file
$Video_Length = $File_Size; // length of the video
$Video_Start = 0; // The start byte
$Video_End = $File_Size - 1; // The end byte
header('Content-type: video/mp4');
header("Accept-Ranges: 0-$Video_Length");
header("Accept-Ranges: bytes");
if (isset($_SERVER['HTTP_RANGE'])) {
$V_Start = $Video_Start;
$V_End = $Video_End;
list(, $Video_Range) = explode('=', $_SERVER['HTTP_RANGE'], 2);
if (strpos($Video_Range, ',') !== false) {
header('HTTP/1.1 416 Requested Video Range Not Satisfiable');
header("Content-Range: bytes $Video_Start-$Video_End/$File_Size");
exit;
}
if ($Video_Range == '-') {
$V_Start = $File_Size - substr($Video_Range, 1);
}else{
$Video_Range = explode('-', $Video_Range);
$V_Start = $Video_Range[0];
$V_End = (isset($Video_Range[1]) && is_numeric($Video_Range[1])) ? $Video_Range[1] : $File_Size;
}
$V_End = ($V_End > $Video_End) ? $Video_End : $V_End;
if ($V_Start > $V_End || $V_Start > $File_Size - 1 || $V_End >= $File_Size) {
header('HTTP/1.1 416 Requested Video Range Not Satisfiable');
header("Content-Range: bytes $Video_Start-$Video_End/$File_Size");
exit;
}
$Video_Start = $V_Start;
$Video_End = $V_End;
$Video_Length = $Video_End - $Video_Start + 1;
fseek($File_Open, $Video_Start);
header('HTTP/1.1 206 Partial Video Content');
}
header("Content-Range: bytes $Video_Start-$Video_End/$File_Size");
header("Content-Length: ".$Video_Length);
$buffer = 1024 * 8;
while(!feof($File_Open) && ($p = ftell($File_Open)) <= $Video_End) {
if ($p + $buffer > $Video_End) {
$buffer = $Video_End - $p + 1;
}
set_time_limit(0);
echo fread($File_Open, $buffer);
ob_flush();
}
fclose($File_Open);
exit();
?>
위의 코드는 HTML 5 스트리밍 기능과 같이 브라우저에서 비디오를 재생할 수 있는 비디오 스트리밍 플레이어를 구현합니다. 출력을 참조하십시오.
이 비디오 플레이어가 PHP에서 구현되는 방법을 설명하겠습니다.
-
먼저 코드는 비디오 파일을 열려고 시도한 다음 비디오 크기, 길이, 시작 바이트 및 끝 바이트를 포함하여 매개 변수를 설정합니다.
-
그런 다음 코드는 동영상에 적절한 헤더를 설정하려고 시도합니다. 브라우저를 사용하여 브라우저와 통신해야 하므로 가장 중요한 단계입니다.
-
헤더 단계에서 비디오의 기본 형식과 브라우저에서 허용할 비디오 범위를 결정합니다.
-
HTTP_RANGE는 브라우저가 범위를 요청할 때 사용됩니다. 범위 요청의 유효성을 검사하고 그에 따라 데이터를 보냅니다. -
맞춤형 버퍼는 서버 메모리 활용을 최적화하는 데 사용되므로 비디오를 스트리밍하는 동안 많은 메모리가 사용되지 않습니다.
-
마지막으로 파일을 닫고 종료합니다.