2011-11-19 118 views
0

我無法獲得在我的網站上工作的ffmpeg音頻轉換。這個想法是文件在網站上傳時應該被轉換。ffmpeg音頻轉換不起作用

我這有我上傳的形式確定音頻文件的格式上:

if(isset($_POST['audio']) && $_POST['audio'] != ''){ 
       $ext1 = substr($_POST['audio'], -4); 

這是我想出來的最好的轉換M4A等MP3:

if(isset($_POST['audio']) && $_POST['audio'] != ''){ $file = $_POST['audio'];  if($ext1==".m4a"){ $call="/usr/local/bin/ffmpeg -i ".$file." -ab 192k -f -acodec mp3";} 
$convert = (popen("start /b ".$call, "r")); pclose($convert); 

的問題是,它不會轉換。 ffmpeg的路徑是正確的。

現在我可能會對此感到滿意,但如果有一個簡單的解決方案,我很樂意聽到它。

編輯。

有了這個:

if(isset($_POST['audio']) && $_POST['audio'] != ''){ 
    $file = $_POST['audio']; 
        $ext1 = substr($_POST['audio'], -4); /*get the last 4 chars*/ 
        $mp3 = echo 'mp3'; 
if($ext1=".m4a"){ 
"/usr/local/bin/ffmpeg -i \"". $file . "\" -ab 192k -y -f mp3 \"".ext1.$mp3."\""; 
} 
} 

,我認爲我是對的上轉換自己的錢,但如果提交的形式只是用來加載infinitly。所以我猜測轉換正在發生,但表單不知道何時完成。有關於此的任何想法?

回答

1

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

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

實施例用PHP:

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

我用襪也非常有用的程序。 – Flinth