Я пытаюсь конвертировать некоторые видео с использованием ffmpeg в разные форматы.
У меня есть этот класс,
<?php
define('FFMPEG', 'C:\\cygwin\\usr\\local\\bin\\ffmpeg.exe');
class VideoEncoder {
public function multicodeFileIntoDir($file, $directory) {
$parts = explode('/', $file);
$filename = $parts[count($parts)-1];
$encode_android = FFMPEG.' -i "'.$file.'" -s 480x320 -vcodec mpeg4 -acodec aac -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 "'.$directory.$filename.'.g1.mp4"';
$encode_windows = FFMPEG.' -y -i "'.$file.'" "'.$directory.$filename.'.avi"';
$out = shell_exec($encode_android);
$out = shell_exec($encode_windows);
}
}
При отладке команд, которые будут запущены, они работают как положено и выдают правильный файл. Разрешения для каталога, для которого я вызываю этот код, имеют разрешения 777, $out
равно null
, и команда не действует.
У меня error_reporting
как E_ALL
, а display_errors
равно TRUE
.
Пример команды (значение $encode_windows
непосредственно перед выполнением):
C:\cygwin\usr\local\bin\ffmpeg.exe -y -i "C:\xampp\htdocs\cams/../front/vid20110623_122802.mp4" "C:\xampp\htdocs\cams/../front/vid20110623_122802.mp4.avi"
Редактировать: Кажется, что он пишет в STDERR, каким-то образом вывод команды находится в журнале ошибок Apache. Тем не менее, вывод, кажется, в порядке ..
Есть идеи?
Спасибо