如何通过PHP将mp3转换为ogg?

use*_*626 7 php audio converter

我在localhost中使用windows 7和xampp.我想通过php脚本将mp3音频转换为ogg音频.我下载了'ffmpegConverter_v0.2'zip文件,其中文件夹结构是:

ffmpegConverter_v0.2
  --consoleConversor
      --consoleConversor
      --consoleConversor.exe
      --ffmpeg.dll

  --consoleMonitor
      --consoleMonitor
      --consoleMonitor.exe
      --ffmpeg.dll
      --Queue.xml

  --serviceConversor
      --ffmpeg.dll
      --serviceConversor
      --serviceConversor.exe

  --serviceMonitor
      --ffmpeg.dll
      --Queue.xml
      --serviceMonitor
      --serviceMonitor.exe

  --LEEME.txt
  --README.txt
Run Code Online (Sandbox Code Playgroud)

我将'ffmpegConverter_v0.2'文件夹,mp.php和'a.mp3'保存在同一文件夹中,并在mp.php中使用以下代码:

<?php    
exec("ffmpegConverter_v0.2\serviceConversor\serviceConversor.exe -i a.mp3 -acodec libvorbis ap.ogg");
?>
Run Code Online (Sandbox Code Playgroud)

然后收到以下错误消息: 在此输入图像描述

我做错了什么?什么是安装ffmpeg的确切方法?在php脚本中编写命令的确切方法是什么?如何在在线服务器中使用?还有其他更好的转换器吗?

-谢谢.

编辑:

当我使用以下行时

<?php
 exec("ffmpegConverter_v0.2\consoleConversor\consoleConversor.exe -i a.mp3 -acodec libvorbis ap.ogg");
?>
Run Code Online (Sandbox Code Playgroud)

然后我收到了这条消息 在此输入图像描述

我也试过这个:

<?php   
exec("c:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe serviceConversor.exe"); 
exec("ffmpegConverter_v0.2\serviceConversor\serviceConversor.exe -i a.mp3 -vcodec libtheora -acodec libvorbis ap.ogg");
?>
Run Code Online (Sandbox Code Playgroud)

然后得到了与第一张照片相同的信息.

eep*_*epp 3

忘记那serviceConversor件事吧。

获取适用于 Windows 的 FFmpeg 构建(与您的体系结构相匹配的静态构建应该是避免其他 DLL/等问题的良好开端)。

然后使用exec

<?php
    $retCode = exec('C:\\path\\to\\ffmpeg.exe -y -i file.mp3 -acodec libvorbis file.ogg');
?>
Run Code Online (Sandbox Code Playgroud)

不要忘记转义反斜杠 ( \\);你的问题中没有。

exec会返回FFmpeg的返回码(我放在$retCode这里),0表示成功。

正如一些人指出的,您可以添加-aq选项来设置 VBR 转码的 OGG 输出质量。

libvorbis 内置于静态 FFmpeg 版本;我刚刚检查使用ffmpeg.exe -codecs

DEA.L. vorbis               Vorbis (decoders: vorbis libvorbis )
Run Code Online (Sandbox Code Playgroud)

其中 DE 表示该编解码器支持解码和编码。