ホームページ >バックエンド開発 >PHPチュートリアル >PHP と FFMPEG を使用してオーディオとビデオを処理およびトランスコードする方法
オーディオおよびビデオ メディアの急速な発展に伴い、私たちは生活や仕事の中でさまざまな形式のオーディオ ファイルやビデオ ファイルにさらされる機会が増えています。しかし、さまざまなデバイス、さまざまな機会、さまざまなニーズに応じて、さまざまなエンコード形式のオーディオ ファイルとビデオ ファイルが必要になる場合があるため、オーディオ ファイルとビデオ ファイルのトランスコーディングは不可欠な要件となっています。この記事では、PHP と 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 を使用できるようになります。
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');
この記事では、PHP と FFMPEG を使用してオーディオとビデオを処理およびトランスコードする方法を紹介します。実際の開発では、特定のニーズに応じて、オーディオとビデオの処理とトランスコーディングに適切な方法を選択する必要があります。
以上がPHP と FFMPEG を使用してオーディオとビデオを処理およびトランスコードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。