現在の位置: ホーム> 最新記事一覧> PHPを使用してビデオトランスコーディングおよび圧縮機能を実装する方法は?

PHPを使用してビデオトランスコーディングおよび圧縮機能を実装する方法は?

M66 2025-06-17

PHPを使用してビデオトランスコーディングおよび圧縮機能を実装する方法は?

インターネットの急速な発展に伴い、ビデオは人々が情報とエンターテイメントを取得する主な方法となっています。ただし、ビデオファイルは通常大きく、ファイルの転送速度を上げてストレージスペースを削減するために、通常、Webサイトはビデオをトランスコードして圧縮する必要があります。この記事では、FFMPEGツールと組み合わせたPHP言語の使用方法を紹介して、ビデオトランスコーディングおよび圧縮機能を実装します。

ffmpegをインストールします

FFMPEGは、さまざまなオーディオおよびビデオ形式を処理できるオープンソースマルチメディアフレームワークです。サーバーにFFMPEGをインストールすることは、ビデオトランスコーディングと圧縮を実装するための前提条件です。特定のインストール方法については、FFMPEGの公式ドキュメントを参照するか、コマンドラインで対応するインストールコマンドを実行できます。

トランスコーディングビデオ

PHPファイルでは、 `exec()` functionコールコマンドラインを介してFFMPEGトランスコーディングコマンドを実行できます。これが簡単なトランスコーディングの例です。
$ sourcefile = '元のビデオファイルパス';
$ targetFile = 'トランスコーディングビデオファイルパス';
$ command = "ffmpeg -i $ sourcefile -vcodec libx264 -acodec aac -preset slow -crf 22 $ targetfile";
exec($ command);

上記のコードで:

  • $ sourceFileは、元のビデオへのパスです。

  • $ TargetFileは、トランスコーディングビデオファイルパスです。

  • -vcodec libx264ビデオエンコーディングにx264エンコーダーの使用を指定します。

  • -ACODEC AACオーディオエンコーディングにAACエンコーダーの使用を指定します。

  • -Preset Slowは、動画の品質を向上させるために遅いトランスコーディング速度を使用します。

  • -CRF 22は、ビデオ品質の圧縮パラメーターです。値が小さいほど、ビデオの品質が高くなります。

これらのパラメーターを調整することにより、必要に応じてトランスコードできます。

圧縮ビデオ

トランスコーディング関数に加えて、FFMPEGはビデオ圧縮もサポートしています。これが圧縮ビデオのサンプルコードです:
$ sourcefile = '元のビデオファイルパス';
$ targetFile = '圧縮ビデオファイルパス';
$ command = "ffmpeg -i $ source -file -vcodec libx264 -acodec aac -s 640x480 -b:v 500k $ targetfile";
exec($ command);

このコードで:

  • $ sourceFileは、元のビデオへのパスです。

  • $ターゲットファイルは、圧縮されたビデオファイルパスです。

  • -s 640x480ビデオの解像度を640x480に設定します。

  • -B:V 500Kビデオのビットレートを500kbpsに設定します。

これらのパラメーターを調整することにより、ビデオの圧縮レベルと品質を柔軟に制御できます。

エラー処理とプロンプト情報

FFMPEGコマンドを実行する場合、いくつかのエラーや例外が発生する可能性があるため、適切なエラー処理メカニズムをコードに追加する必要があります。エラーを処理するためのサンプルコードは次のとおりです。
$ sourcefile = '元のビデオファイルパス';
$ targetfile = 'transcoped/圧縮ビデオファイルパス';
$ command = "ffmpeg -i $ sourcefile -vcodec libx264 -acodec aac -preset slow -crf 22 $ targetfile";
exec($ command、$ output、$ returnvar);

if($ returnvar === 0){
    エコー「ビデオトランスコーディング/圧縮に普通に」。
} それ以外 {
    echo 'ビデオトランスコーディング/圧縮失敗、エラーメッセージを確認してください:'。 Inprode( "\ n"、$ output);
}

上記のコードでは、 exec() function $ returnvarの3番目のパラメーターを使用して、コマンドの実行ステータスを返します。返品値が0の場合、コマンドの実行が成功することを意味します。 0でない場合、実行が失敗したことを意味します。 $出力でエラーメッセージを出力することにより、問題を見つけるのを支援できます。

要約します

この記事では、PHPおよびFFMPEGツールを使用してビデオのトランスコーディングおよび圧縮機能を実装する方法を紹介します。 FFMPEGのコマンドラインツールを呼び出すことにより、ニーズに応じてビデオの品質、解像度、ファイルサイズを調整できます。さらに、合理的なエラー処理メカニズムは、ビデオ処理の安定性を確保するのに役立ちます。実際に使用すると、サーバーリソースの合理的な使用とアップロードファイルの効果的な検証を確保するために、セキュリティとパフォーマンスの問題に注意を払う必要があります。