FFmpeg は、ほぼすべての一般的なオーディオおよびビデオ形式を解析して変換できるオープンソースのマルチメディア フレームワークです。したがって、PHP を使用してオーディオやビデオを解析および変換するための推奨ツールの 1 つでもあります。この記事では、PHP と FFmpeg 拡張機能を使用して SILK オーディオ形式を解析および変換する方法について説明します。
シルクとは何ですか?
SILK は、Skype for VoIP 通話で使用される特別なオーディオ コーデック (コーデック) 形式です。このコーデックは Skype で広く使用されており、他のいくつかのメッセージング アプリケーションでも使用されています。 Linux または Unix では SILK がデフォルトでサポートされていないため、FFmpeg を使用して処理する必要があります。
FFmpeg のインストール
始める前に、FFmpeg と関連拡張機能がインストールされていることを確認してください。そうでない場合は、次のコマンドを使用して Linux または Unix システムにインストールしてください:
sudo apt-get update sudo apt-get install ffmpeg php-ffmpeg
SILK の解析
SILK ファイルを他の一般的なオーディオ形式に解析するには、まず FFmpeg を使用して、 SILKファイルをデコードします。 PHP を通じて FFmpeg コマンドを実行する前に、FFmpeg のドキュメントをよく読んで、使用方法をよく理解してください。
PHP で FFmpeg 拡張機能を使用する場合、FFMpeg\FFMpeg
クラスの open()
メソッドを使用してオーディオ ファイルを開くことができます。このメソッドは、FFMpeg\Media\Audio
オブジェクトを返します。このオブジェクトは、オーディオのさまざまなプロパティや情報にアクセスし、任意の処理を実行できます。
以下は、PHP を介して SILK ファイルを解析するためのサンプル コードです:
require_once('vendor/autoload.php'); use FFMpeg\FFMpeg; $ffmpeg = FFMpeg::create(); $audio = $ffmpeg->open('input.silk'); $format = $audio->getFormat(); $codec = $format->getAudioCodec(); // Do something with the audio file...
コード例では、open()
メソッドを使用して SILK ファイルを開きます。 。 $format->getAudioCodec()
このメソッドは、オーディオ コーデックの名前 (通常は「silk」) を取得するために使用されます。
SILK の変換
SILK ファイルを変換するときは、まず PCM 形式にデコードしてから、FFmpeg 経由で PCM をエンコードする必要があります。 FFmpeg コマンド ffmpeg -f s16le -ar 24000 -ac 1 -i input.pcm -codec:a libmp3lame -qscale:a 4 Output.mp3
を使用して、コンテンツを PCM から MP3 (または他の形式) に変換します。 )。
以下は、PHP を使用して SILK ファイルを MP3 に変換するサンプル コードです。
require_once('vendor/autoload.php'); use FFMpeg\FFMpeg; $ffmpeg = FFMpeg::create(); $audio = $ffmpeg->open('input.silk'); $format = $audio->getFormat(); $codec = $format->getAudioCodec(); if ($codec === 'silk') { // Decode SILK to PCM $temp_file = tempnam(sys_get_temp_dir(), 'php-silk'); exec("ffmpeg -i input.silk -acodec pcm_s16le -ar 24000 -ac 1 -f s16le $temp_file"); $audio = $ffmpeg->open($temp_file); // Encode PCM to MP3 $format = new \FFMpeg\Format\Audio\Mp3(); $format->setAudioCodec("libmp3lame"); $format->setAudioQuality(4); $audio->save($format, "output.mp3"); unlink($temp_file); }
上記のコードは、まずコーデックが SILK かどうかを確認し、SILK であれば PCM 形式にデコードします。次に、FFMpeg\Format\Audio\Mp3()
を使用して MP3 形式のオブジェクトを作成し、ファイルとして保存します。
概要
FFmpeg 拡張機能は、PHP でオーディオまたはビデオを解析して変換するための強力なツールです。この記事では、PHP と FFmpeg 拡張機能を使用して SILK オーディオ形式を解析および変換する方法を示します。これにより、開発者はニーズに合わせて SILK ファイルを他の一般的なオーディオ形式に簡単に変換できます。
以上がPHP FFmpeg: SILK オーディオ形式を解析して変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。