ЕСТЬ КОД
<?php
//Полный путь к исходному файлу
$input = "файл.avi";
//Имя выходного файла
$output = "video.flv";
//Создание объекта ffmpeg_movie
$ffmpeg = new ffmpeg_movie($input);
//Увеличиваем ширину и высоту видео в 2 раза
$width = 2 * $ffmpeg->getFrameWidth();
$height = 2 * $ffmpeg->getFrameHeight();
//Вызываем приложение ffmpeg с соответствующими параметрами
system("ffmpeg -i $input -ar 44100 -s ".$width."x".$height." -f flv $output"
?>
Нужно влепить типа файл файл конвертируется ожидайте и ссылку обновить . После того как файл video.flv будет обработан вывести его название. Как это все слепить?
В данном случае никак
Так как скрипт завершит свою работу и выведет текст на экран только тогда, когда завершится работа функции system();
Я подобное реализовывал через базу + отдельный обработчик команд в shell
например system("php -f shell.php convert файл.avi video.avi и т.д. &"
Это запустит Php скрипт с аргументами конвертации & - запустит скрипт, и не дожидаясь его завершения вернёт ответ (это нужно, чтобы скрипт не ждал конвертации, таким образом строил очереди на конвертацию)
В обработчике же shell.php
перед началом конвертации ставил статус к файлу в базе данных, "convert"
После окончания, "ok"
А пользователю выводить, что пока файл конвертируется, ждите
Я ещё помимо этого приложение писал под 4 ядра, выделялось 50%, то есть 2
Поэтому скрипт был заточен под 2 одновременных задачи, пользователю выводился номер в очереди
В общем как-то так
Можно. В этом случае можно сделать и с ожиданием и без ожидания. Главное чтоб system() начал обработку.
Maksamka, ajax также не будет отвечать, пока скрипт не завершит работу
Более того, почему я реализовывал именно очереди
так как организовав небольшой флуд на конвертер Ваш сервер соберёт тонны медленных процессов ffmpeg, которые будут "драться" за ресурсы процессора (и диска, если он медленный)
И в итоге нужно будет "убивать" такие процессы
Maksamka, можно и апи конвертером воспользоваться, чтоб не загрузить сервер .http://www.online-convert.com/ru/developer