2011-09-15 53 views
4

我需要將AMR音頻文件轉換爲MP3。我如何在沒有FFMPEG的情況下使用PHP(我沒有權限將其安裝在服務器上)。請幫幫我。轉換PHP中的音頻文件

+2

請停止發送垃圾郵件中的plutov鏈接在每一個答案和問題。請參閱http://stackoverflow.com/faq#signatures和http://stackoverflow.com/faq#promotion以獲取更多信息。 – oezi

回答

15

使用SoX--瑞士軍刀的聲音處理。非常容易使用。

這是一個不是PHP庫的命令行工具,因此要使用PHP庫,您需要執行shell命令並在代碼中獲取結果。我在很少的項目中使用過它。

實施例用PHP:

<?php 
exec('sox /mypath/my_audio.amr /mypath/my_audio.mp3'); 
?> 

SOX是跨平臺(Windows,Linux和MacOS X的,等等)的命令行實用程序,可以轉換的計算機的音頻文件的各種格式在爲其他格式。它還可以對這些聲音文件應用各種效果,並且作爲額外的好處,SoX可以在大多數平臺上播放和錄製音頻文件。

SoX是非常成熟的項目!這裏是鏈接:http://sox.sourceforge.net/

下面是一些例子我用Google搜索你: http://www.thegeekstuff.com/2009/05/sound-exchange-sox-15-examples-to-manipulate-audio-files/

+0

我的第一個想法是轉換音頻是使用LAME,但是SoX肯定是要走的路。另外,我遇​​到了一個我無法運行SoX的問題,但我將其更改爲exec('/ usr/local/bin/sox filename.aif filename.mp3'),並且它工作正常。 – adjwilli

0

AFAIK沒有辦法,至少沒有其他命令行工具。你可以嘗試使用mplayer,但我想這裏的情況與ffmpeg相同。 :)

你當然可以上傳可執行文件,並通過PHP運行它,如果你的主機的政策允許這種(安全模式,SELinux的)。

+0

非常感謝您的解釋 – pltvs

0

簡單的答案:你不能在純PHP中轉換音頻文件。我建議你創建/搜索一個Web服務來完成這項任務。 (例如:也許你可以通過curl使用this)。

+0

謝謝。任何人都知道這個網絡服務? – pltvs

+0

我剛剛在谷歌搜索「音頻轉換web服務」。你會在那裏找到更多。 – Mythli

0

只需使用ffmpeg。您可以簡單地download a binary of ffmpeg(查找「靜態構建」),然後將腳本指向二進制文件。沒有必要安裝它,所以不應該有權限問題。