ホームページ >バックエンド開発 >PHPチュートリアル >PHP と FFMPEG を使用してオーディオとビデオを処理およびトランスコードする方法

PHP と FFMPEG を使用してオーディオとビデオを処理およびトランスコードする方法

WBOY
WBOYオリジナル
2023-06-25 16:46:401757ブラウズ

オーディオおよびビデオ メディアの急速な発展に伴い、私たちは生活や仕事の中でさまざまな形式のオーディオ ファイルやビデオ ファイルにさらされる機会が増えています。しかし、さまざまなデバイス、さまざまな機会、さまざまなニーズに応じて、さまざまなエンコード形式のオーディオ ファイルとビデオ ファイルが必要になる場合があるため、オーディオ ファイルとビデオ ファイルのトランスコーディングは不可欠な要件となっています。この記事では、PHP と FFMPEG (オープンソースのオーディオおよびビデオ コーデック) を使用してオーディオとビデオを処理およびトランスコードする方法を紹介します。

  1. FFMPEG のインストール

まず、サーバーに FFMPEG をインストールする必要があります。インストール プロセスは比較的面倒ですが、主な手順は次のとおりです。

1.1 依存関係のインストール

最初に、FFMPEG が依存するライブラリをインストールする必要があります。 Ubuntu システムでは、次のコマンドを使用してインストールできます:

sudo apt-get update
sudo apt-get install autoconf automake build-essential libass-dev libfreetype6-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev

1.2 FFMPEG をダウンロード

次に、FFMPEG ソース コードをダウンロードする必要があります。公式 Web サイト (https: //www.ffmpeg.org) 最新バージョンをダウンロードするか、次のコマンドを使用してダウンロードします。

wget https://www.ffmpeg.org/releases/ffmpeg-4.4.tar.gz
tar xvf ffmpeg-4.4.tar.gz

1.3 FFMPEG をコンパイルしてインストールする

次に、FFMPEG をコンパイルしてインストールする必要があります。次のコマンドを使用できます:

cd ffmpeg-4.4
./configure --enable-shared --disable-static --enable-gpl --enable-libfreetype --enable-libvorbis --enable-libx264 --enable-libx265 --enable-nonfree
make -j8
sudo make install

コンパイルとインストール 完了すると、サーバー上で FFMPEG を使用できるようになります。

  1. PHP を使用して FFMPEG を呼び出してオーディオとビデオを処理する

FFMPEG のインストール プロセスを理解した後、PHP を使用して FFMPEG を呼び出し、オーディオとビデオをトランスコードする方法を検討できます。ビデオ ファイルと処理。

2.1 exec 関数を使用して FFMPEG

PHP には、システム コマンド ラインでコマンドを実行するために使用できる exec 関数が用意されています。したがって、PHP の exec 関数を使用して、オーディオおよびビデオ処理のために FFMPEG を呼び出すことができます。たとえば、次のコードは、mp4 形式のビデオ ファイルを avi 形式に変換できます。

$cmd = "ffmpeg -i input.mp4 output.avi";
exec($cmd);

2.2 PHP 拡張機能を使用して FFMPEG をカプセル化します

exec 関数を使用して FFMPEG を簡単に呼び出すことができますが、明らかにセキュリティ上のリスクがあり、どのコマンドも実行できるため、その使用はお勧めできません。この目的のために、PHP 拡張機能を使用して FFMPEG API をカプセル化し、FFMPEG をより簡単に呼び出すことができます。 PHP には、FFMPEG のカプセル化に使用できる主な拡張機能が 2 つあります。FFMPEG 拡張機能 (http://ffmpeg-php.sourceforge.net) と PHP-FFMpeg (https://github.com/PHP-FFMpeg/PHP-) です。 FFMpeg )。

2.2.1 FFMPEG 拡張機能の使用

FFMPEG 拡張機能は、PECL ツールを通じてインストールでき、次のコマンドを使用してインストールできます。

sudo pecl install ffmpeg

インストールが完了すると、 php.ini ファイルに次の行を追加する必要があります。

extension=ffmpeg.so

FFMPEG 拡張機能を使用すると、オーディオおよびビデオ処理用の FFMPEG API を簡単に呼び出すことができます。たとえば、次のコードは、mp4 形式のビデオ ファイルを avi 形式に変換できます。

$movie = new ffmpeg_movie("input.mp4");
$cmd = "ffmpeg -i input.mp4 output.avi";
exec($cmd);

2.2.2 PHP-FFMpeg 拡張機能の使用

PHP-FFMpeg は、FFMPEG に基づく PHP 拡張機能です。オーディオおよびビデオ処理用に統合された API が開発されています。次のコマンドを使用してインストールできます:

composer require php-ffmpeg/php-ffmpeg

インストールが完了したら、オーディオとビデオの処理に次のコードを使用できます:

$ffmpeg = FFMpegFFMpeg::create();
$video = $ffmpeg->open('video.mp4');
$format = new FFMpegFormatVideoWMV();
$format->setAudioCodec("wmav2")
       ->setVideoCodec("wmv2");
$video->save($format, 'video.wmv');
  1. 結論

この記事では、PHP と FFMPEG を使用してオーディオとビデオを処理およびトランスコードする方法を紹介します。実際の開発では、特定のニーズに応じて、オーディオとビデオの処理とトランスコーディングに適切な方法を選択する必要があります。

以上がPHP と FFMPEG を使用してオーディオとビデオを処理およびトランスコードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。