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!