Audio ffmpeg音频转换不工作

Audio ffmpeg音频转换不工作,audio,ffmpeg,Audio,Ffmpeg,我无法使ffmpeg音频转换在我的站点上工作。这个想法是,当文件上传到网站上时,应该对其进行转换 我的上传表上有这条信息,用于确定音频文件的格式: if(isset($_POST['audio']) && $_POST['audio'] != ''){ $ext1 = substr($_POST['audio'], -4); 这是我提出的将m4a转换为mp3的最佳方案: if(isset($_POST['audio']) && $

我无法使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."\"";
}
}

我想我对货币本身的转换是正确的,但是表单在提交时会无限加载。我猜转换正在进行,但表单不知道何时完成。有什么想法吗?

使用SoX——声音处理的瑞士军刀。非常容易使用

它是一个命令行工具,而不是PHP库,因此要从PHP中使用,您需要执行一个shell命令并在代码中获得结果。我在几个项目中使用过它

PHP示例:

SoX是一个跨平台(Windows、Linux、MacOS X等)的命令行实用程序,可以将各种格式的计算机音频文件转换为其他格式。它还可以对这些声音文件应用各种效果,另外,SoX还可以在大多数平台上播放和录制音频文件

SoX是一个非常成熟的项目!以下是链接:

以下是我在谷歌上搜索到的一些例子:

我也使用了sox,这是一个非常有用的程序。