現在の位置: ホーム> 最新記事一覧> PHPビデオストリーミングメディア処理方法分析:PHPを介してビデオストリームを処理する方法は?

PHPビデオストリーミングメディア処理方法分析:PHPを介してビデオストリームを処理する方法は?

gitbox 2025-06-13

PHPビデオストリーミングメディア処理方法分析:PHPを介してビデオストリームを処理する方法は?

インターネットの急速な発展に伴い、ビデオストリーミングがユーザーがビデオを視聴して共有する主な方法になりました。 Webアプリケーションを開発する開発者には、PHPがビデオストリーム出力、トランスコード、ストリーミング機能を簡単に実装できる非常に実用的なビデオストリーミングメディア処理方法を提供します。この記事では、いくつかの一般的なPHPビデオストリーミング方法を詳細に紹介し、コードの例を添付して、開発者がこれらのテクノロジーをより適切に習得できるようにします。

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

PHPは、ローカルビデオファイルを読み取り、ビデオストリームに変換することにより、ブラウザに出力できます。簡単な例コードは次のとおりです。

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

上記のコードでは、ビデオファイルを直接読み取り、MIMEタイプをビデオ/MP4に設定し、 ReadFile()関数を使用してブラウザに出力します。

FFMPEGを使用したビデオストリーミング

FFMPEGは、ビデオトランスコーディング、トリミング、マージ、その他の操作をサポートする強力なオープンソースマルチメディア処理ツールです。 PHPでのexec()関数を通じて、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);
    

この例では、ffmpegコマンドはexec()を使用して実行され、入力ビデオファイルをh.264ビデオエンコード形式( libx264 )およびAACオーディオエンコード形式にトランスコードします。

ストリーミングビデオファイルを使用します

ビデオをストリーミングしたい場合は、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);
    

このコードでは、受け入れ範囲コンテンツレンジヘッダーを設定することにより、ファイルチャンク転送を実装します。 fseek()を使用してファイルポインター位置を制御し、 Fread()を介して指定された範囲内のビデオデータを読み取ります。

要約します

この記事では、ビデオストリームの直接出力、ビデオトランスコーディングにFFMPEGを使用し、PHPを使用してビデオストリーミングを実現するなど、PHPでいくつかの一般的なビデオストリーミングメディア処理方法を紹介します。これらの方法により、開発者はビデオデータをより柔軟に処理し、より豊かなビデオ再生エクスペリエンスを提供できます。