как конвертировать mp3 в ogg по php?
Я использую windows 7 и xampp в localhost.Я хочу конвертировать mp3-аудио в ogg audio с помощью php-скрипта.Я загрузил ' 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
Я сохраняю ' ffmpegConverter_v0.2 ' папка, mp.php и ' a.mp3' в той же папке и использовал следующий код в mp.на PHP:
<?php
exec("ffmpegConverter_v0.2serviceConversorserviceConversor.exe -i a.mp3 -acodec libvorbis ap.ogg");
?>
затем появилось следующее сообщение об ошибке :
что я сделал не так ? каков точный способ установки ffmpeg ? что точный способ написать команду в PHP-скрипте для этого и как это можно использовать в онлайн-сервере ? есть ли другой лучший конвертер ?
-спасибо.
EDIT:
когда я использовал следующую строку
<?php
exec("ffmpegConverter_v0.2consoleConversorconsoleConversor.exe -i a.mp3 -acodec libvorbis ap.ogg");
?>
затем я получил это сообщение
Я также попытался это :
<?php
exec("c:WindowsMicrosoft.NETFrameworkv2.0.50727InstallUtil.exe serviceConversor.exe");
exec("ffmpegConverter_v0.2serviceConversorserviceConversor.exe -i a.mp3 -vcodec libtheora -acodec libvorbis ap.ogg");
?>
затем получил то же сообщение, что и первое изображение.
5 ответов
забудьте об этом serviceConversor
вещь.
получить сборка FFmpeg для Windows (статическая сборка, соответствующая вашей архитектуре, должна быть хорошим началом, чтобы избежать других DLL / etc. проблемы.)
затем использовать exec
:
<?php
$retCode = exec('C:\path\to\ffmpeg.exe -y -i file.mp3 -acodec libvorbis file.ogg');
?>
не забудьте избежать обратных косых черт (\
); вы этого не сделали в своем вопросе.
exec
вернет код возврата FFmpeg (я положил его в $retCode
здесь), что равно 0 для a успех.
как некоторые отметили, Вы можете добавить -aq
опция для установки качества вывода OGG для перекодирования VBR.
libvorbis построен в статической версии FFmpeg; я только что проверил с помощью ffmpeg.exe -codecs
:
DEA.L. vorbis Vorbis (decoders: vorbis libvorbis )
где DE означает декодирование и кодирование поддерживаются для этого кодека.
один из них должен работать:
ffmpeg -y -i a.mp3 -acodec libvorbis -aq 50 output.ogg
ffmpeg -i 1.mp4 -vcodec libtheora -acodec libvorbis testjohn4545454.ogg
выполните это в своем собственном процессе и в фоновом режиме, иначе ваш PHP-скрипт будет висеть во время ожидания завершения преобразования.
код:
passthru("/usr/local/bin/ffmpeg -i 1.mp4 -vcodec libtheora -acodec libvorbistestjohn4545454.ogg 1> /path/to/logfile.txt 2>&1 &");
лучший совет, который я могу дать вам:
если есть файл README, и что-то не работает. Читай!
это, как говорится, вы пытаетесь выполнить команду против serviceConversor.exe
. Это не будет работать, так как это служба windows, и она должна быть установлена в первую очередь. Существует также другой файл под названием consoleConverser.exe
и, как говорится в файле README, " может быть выполнен без предыдущей установки.'.
Я предполагаю, что у вас уже есть ffmpeg установлен, как того требует
таким образом, ваш первый вариант - попытаться выполнить правильную команду. Имейте в виду, что я не знаком с этим собеседником, поэтому я понятия не имею, правильная ли это команда. Я здесь, чтобы помочь с сообщением об ошибке.
<?php
exec("ffmpegConverter_v0.2\consoleConversor\consoleConversor.exe -i a.mp3 -acodec libvorbis ap.ogg");
?>
теперь, если это не удастся, вы все равно можете попробовать вторую часть readme. Который должен установить службу windows. Это должно быть сделано вручную, что объяснил в ms база знаний.
к сожалению, serviceConversor был протестирован только с Windows XP и я не могу установить его на моей системе Windows 7, но, возможно, Вам повезет больше.
теперь это говорит, что вы можете напрямую позвонить installutil serviceConversor.exe
когда вы находитесь в ffmpegConverter_v0.2\serviceConversor\
папку с помощью cmd
, но скорее всего, вы получите сообщение о том, что installutil не может быть найден. В этом случае вы можете запустить его с полным путем, который обычно является одним из них, в зависимости от вашей версии .NET и если вы используете window 7 32 или 64.
c:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe
c:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
c:\Windows\Microsoft.NET\Framework64\v2.0.50727\InstallUtil.exe
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe
поэтому в моем случае полная команда будет (из папки serviceConversor)
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe serviceConversor.exe
MP3 - >OGG
ffmpeg -i input.mp3 -ab 6400 output.ogg
OGGDEC.ИСПОЛНЯЕМЫЙ ОГГ->МР3
OGGDEC.EXE myfile.ogg --stdout | LAME.EXE -V5 --vbr-new - myfile.mp3