Maison  >  Article  >  développement back-end  >  PHP FFmpeg : analyser et convertir le format audio SILK

PHP FFmpeg : analyser et convertir le format audio SILK

PHPz
PHPzoriginal
2023-04-11 10:41:211855parcourir

FFmpeg est un framework multimédia open source capable d'analyser et de convertir presque tous les formats audio et vidéo courants. Par conséquent, c'est également l'un des outils préférés pour analyser et convertir de l'audio ou de la vidéo à l'aide de PHP. Cet article explique comment utiliser PHP et l'extension FFmpeg pour analyser et convertir le format audio SILK.

Qu'est-ce que la SOIE ?

SILK est un format de codec audio (codec) spécial utilisé par Skype pour les appels VoIP. Ce codec est largement utilisé dans Skype et est également utilisé par plusieurs autres applications de messagerie. Étant donné que SILK n'est pas pris en charge par défaut sous Linux ou Unix, nous devons utiliser FFmpeg pour le gérer.

Installez FFmpeg

Avant de commencer, assurez-vous d'avoir installé FFmpeg et les extensions associées. Sinon, veuillez l'installer à l'aide de la commande suivante sur votre système Linux ou Unix :

sudo apt-get update
sudo apt-get install ffmpeg php-ffmpeg

Parse SILK

Pour analyser les fichiers SILK dans d'autres formats audio courants, vous devez d'abord utiliser FFmpeg pour décoder les fichiers SILK. Avant d'exécuter des commandes FFmpeg via PHP, veuillez lire attentivement la documentation FFmpeg pour vous assurer que vous êtes familier avec son utilisation.

Lorsque vous utilisez l'extension FFmpeg en PHP, vous pouvez utiliser la méthode open() de la classe FFMpegFFMpeg pour ouvrir le fichier audio. Cette méthode renvoie un objet FFMpegMediaAudio, qui peut accéder à diverses propriétés et informations de l'audio et effectuer un traitement arbitraire. FFMpegFFMpeg 类的 open() 方法打开音频文件。该方法返回一个 FFMpegMediaAudio 对象,该对象可以访问音频的各种属性和信息,并可以进行任意处理。

以下是通过 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,如果是,则解码为 PCM 格式。然后,使用 FFMpegFormatAudioMp3()

Voici un exemple de code pour analyser un fichier SILK via PHP :

rrreee

Dans l'exemple de code, la méthode open() est utilisée pour ouvrir le fichier SILK. La méthode $format->getAudioCodec() est utilisée pour obtenir le nom du codec audio, généralement "silk".

Convertir SILK🎜🎜Lors de la conversion d'un fichier SILK, vous devez d'abord le décoder au format PCM, puis encoder le PCM via FFmpeg. Utilisez la commande dans FFmpeg ffmpeg -f s16le -ar 24000 -ac 1 -i input.pcm -codec:a libmp3lame -qscale:a 4 output.mp3 pour convertir le contenu de PCM en MP3 (ou autres formats). 🎜🎜Voici un exemple de code pour convertir un fichier SILK en MP3 en utilisant PHP : 🎜rrreee🎜Le code ci-dessus vérifie d'abord si le codec est SILK et si c'est le cas, le décode au format PCM. Ensuite, utilisez FFMpegFormatAudioMp3() pour créer un objet au format MP3 et enregistrez-le sous forme de fichier. 🎜🎜Résumé🎜🎜L'extension FFmpeg est un outil puissant pour analyser et convertir de l'audio ou de la vidéo en PHP. Dans cet article, nous montrons comment analyser et convertir le format audio SILK à l'aide de PHP et de l'extension FFmpeg. Cela aidera les développeurs à convertir facilement les fichiers SILK vers d'autres formats audio courants en fonction de leurs besoins. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn