ffmpeg音频转换无法正常工作

时间:2011-11-19 09:28:58

标签: audio 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的路径是正确的。

现在我可能会对这个问题感到满意,但如果有一个简单的解决方案,我很乐意听到它。

EDIT。

有了这个:

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."\"";
}
}

我认为我对转换本身的钱是正确的,但表单只是在提交时无限加载。所以我猜测转换正在发生,但表单不知道何时完成。有什么想法?

1 个答案:

答案 0 :(得分: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/