audio - ffmpeg 音频转换不工作

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

现在我可能对这个问题有点过头了,但如果有一个简单的解决方案,我很想听听。

编辑。

有了这个:
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 是非常成熟的项目!这是链接:http://sox.sourceforge.net/

以下是我为您搜索的一些示例:
http://www.thegeekstuff.com/2009/05/sound-exchange-sox-15-examples-to-manipulate-audio-files/

关于audio - ffmpeg 音频转换不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8193119/

相关文章:

Python wav 绘图,该图未绘制

audio - 在软件中放置声音是否有任何规范或要求?

iphone - 在 Objective-C 中无延迟地播放音效

youtube - 未找到 ffprobe 或 avprobe。请安装一个

batch-file - 如何从视频中检索宽度和高度

python - 动画 2D 绘图(2D 布朗运动)在 Python 中不起作用

java - 用 Java 或 Javascript 播放 BIOS 声音(通过 PC 扬声器)

java - 有时,与ScheduledExecutorService一起使用的Android SoundPool会停止播放声音

c++ - libavcodec.so 的 Asterisk 模块 app_transcoder 失败( undefined symbol avacodec_init)

ffmpeg - 以txt格式输出亮度和色度数据