Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP FFmpeg: Menghuraikan dan menukar format audio SILK

PHP FFmpeg: Menghuraikan dan menukar format audio SILK

PHPz
PHPzasal
2023-04-11 10:41:211790semak imbas

FFmpeg ialah rangka kerja multimedia sumber terbuka yang mampu menghuraikan dan menukar hampir semua format audio dan video biasa. Oleh itu, ia juga merupakan salah satu alat pilihan untuk menghuraikan dan menukar audio atau video menggunakan PHP. Artikel ini menerangkan cara menggunakan PHP dan sambungan FFmpeg untuk menghuraikan dan menukar format audio SILK.

Apakah SUTERA?

SILK ialah format codec audio khas (codec) yang digunakan oleh Skype untuk panggilan VoIP. Codec ini digunakan secara meluas dalam Skype dan juga digunakan oleh beberapa aplikasi pemesejan lain. Memandangkan SILK tidak disokong secara lalai dalam Linux atau Unix, kita perlu menggunakan FFmpeg untuk mengendalikannya.

Pasang FFmpeg

Sebelum anda bermula, pastikan anda telah memasang FFmpeg dan sambungan yang berkaitan. Jika tidak, sila pasangkannya menggunakan arahan berikut pada sistem Linux atau Unix anda:

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

Parsing SILK

Untuk menghuraikan fail SILK ke dalam format audio biasa yang lain, anda perlu menggunakan FFmpeg terlebih dahulu untuk menyahkod dokumen SILK. Sebelum melaksanakan arahan FFmpeg melalui PHP, sila baca dokumentasi FFmpeg dengan teliti untuk memastikan bahawa anda sudah biasa dengan penggunaannya.

Apabila menggunakan sambungan FFmpeg dalam PHP, anda boleh membuka fail audio menggunakan kaedah FFMpegFFMpeg kelas open(). Kaedah ini mengembalikan objek FFMpegMediaAudio, yang boleh mengakses pelbagai sifat dan maklumat audio dan melakukan pemprosesan sewenang-wenangnya.

Berikut ialah contoh kod untuk menghuraikan fail SILK melalui PHP:

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...

Dalam sampel kod, kaedah open() digunakan untuk membuka fail SILK. Kaedah $format->getAudioCodec() digunakan untuk mendapatkan nama codec audio, biasanya "sutera".

Tukar SILK

Apabila menukar fail SILK, anda perlu menyahkodnya terlebih dahulu kepada format PCM dan kemudian mengekod PCM melalui FFmpeg. Gunakan arahan ffmpeg -f s16le -ar 24000 -ac 1 -i input.pcm -codec:a libmp3lame -qscale:a 4 output.mp3 dalam FFmpeg untuk menukar kandungan daripada PCM kepada MP3 (atau format lain).

Berikut ialah contoh kod untuk menukar fail SILK kepada MP3 menggunakan PHP:

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);
}

Kod di atas terlebih dahulu menyemak sama ada codec ialah SILK dan jika ya, menyahkod kepada format PCM. Kemudian, gunakan FFMpegFormatAudioMp3() untuk mencipta objek format MP3 dan simpannya sebagai fail.

Ringkasan

Pelanjutan FFmpeg ialah alat yang berkuasa untuk menghuraikan dan menukar audio atau video dalam PHP. Dalam artikel ini, kami menunjukkan cara menghuraikan dan menukar format audio SILK menggunakan PHP dan sambungan FFmpeg. Ini akan membantu pembangun dengan mudah menukar fail SILK kepada format audio biasa yang lain untuk memenuhi keperluan mereka.

Atas ialah kandungan terperinci PHP FFmpeg: Menghuraikan dan menukar format audio SILK. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn