現在の位置: ホーム> 最新記事一覧> PHPビデオストリーミング:一般的な方法とコードの例

PHPビデオストリーミング:一般的な方法とコードの例

M66 2025-06-13

PHPビデオストリーミング:一般的な方法とコードの例

インターネットの急速な発展に伴い、ビデオストリーミングがユーザーがビデオを視聴して共有する主な方法になりました。 Webアプリケーションを開発するとき、PHPはビデオストリームを処理するさまざまな方法を提供します。これにより、開発者はビデオストリームの再生機能と処理機能を簡単に実現できます。この記事では、いくつかの一般的なPHPビデオストリーミング方法を紹介し、コードの例を介してそれを行う方法を示します。

1.ローカルビデオファイルを開き、ビデオストリームを出力します

PHPを使用すると、ローカルビデオファイルを簡単に開き、ビデオストリームに変換できます。簡単な例を次に示します。

$ filename = 'path/to/video.mp4';
ヘッダー( 'Content-Type:Video/MP4');
ヘッダー( 'Content-Length:'。Filesize($ filename));
readfile($ filename);
    

上記のコードでは、最初にビデオファイルのMIMEタイプがビデオ/MP4であることを指定し、コンテンツ長ヘッダーを設定します。次に、readfile()関数を使用して、ビデオファイルコンテンツをブラウザに直接出力します。

2。ビデオストリーミングにFFMPEGを使用します

FFMPEGは、さまざまなビデオストリーミングメディアを処理できる強力なオープンソースマルチメディア処理ツールです。 PHPのexec()関数を使用すると、FFMPEGコマンドを簡単に動画をトランスコードすることができます。 FFMPEGトランスコーディングのサンプルコードは次のとおりです。

$ inputfile = 'path/to/input.mp4';
$ outputFile = 'path/to/output.mp4';
$ ffmpegcommand = "ffmpeg -i {$ inputfile} -c:v libx264 -c:aac -strict experimental {$ outputfile}";
exec($ ffmpegcommand);
    

このコードでは、最初に入力ファイルと出力ファイルのパスを設定し、次にexec()関数を介してFFMPEGコマンドを実行して、ビデオをh.264形式ビデオおよびAAC形式のオーディオにトランスコードします。

3。ビデオファイルのストリーミング

いくつかのアプリケーションシナリオでは、ストリーミングを有効にするためにチャンクでビデオファイルを転送する必要がある場合があります。 PHPを使用したビデオストリーミングのコード例を次に示します。

$ filename = 'path/to/video.mp4';
ヘッダー( 'Accept-ranges:bytes');
$ start = 0;
$ end = filesize($ filename)-1;
Header( "content-range:bytes {$ start}  -  {$ end}/"。filesize($ filename));
ヘッダー( "content-length:"。filesize($ filename));
$ fp = fopen($ filename、 'rb');

if($ fp){
    fseek($ fp、$ start、seek_set);
    while(!feof($ fp)&&($ p = ftell($ fp))<= $ end){
        $ length =($ p + 1024> $ end)? $ end -$ p + 1:1024;
        Echo Fread($ fp、$ length);
        ob_flush();
        フラッシュ();
    }
}

fclose($ fp);
    

このコードの例は、「Accept-Range」および「Content-Range」ヘッダーを設定することにより、ファイルのチャンク転送を実装します。 `fopen()`を使用してビデオファイルを開き、 `fseek()`を介して読み取り位置を見つけます。

要約します

この記事では、ビデオストリームを直接出力する方法、ビデオトランスコーディングにFFMPEGを使用する方法、ビデオファイルをストリーミングする方法など、PHPでいくつかの一般的なビデオストリーミング方法を紹介します。これらの方法は、開発者がさまざまなビデオ処理のニーズを簡単に達成するのに役立ち、さまざまなビデオストリーミングアプリケーションシナリオに適しています。