我无法在我的网站上获得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."\"";
}
}
我认为我对转换本身的钱是正确的,但表单只是在提交时无限加载。所以我猜测转换正在发生,但表单不知道何时完成。有什么想法?
答案 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/