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は、ブラウザーが範囲要求を行うときに使用されます。 範囲要求を検証し、それに応じてデータを送信します。 -
カスタマイズされたバッファは、サーバーのメモリ使用率を最適化するために使用されるため、ビデオのストリーミング中に大量のメモリが消費されることはありません。
-
最後に、ファイルを閉じて終了します。