Страница 1 из 1
Запуск процессов
Добавлено: 2009-09-09 19:19:38
DeNn
Подскажите как можно запустить процесс ffmpeg'a так что б второй и более уже не запускался пока этот не закончит свою работу?
Re: Запуск процессов
Добавлено: 2009-09-09 19:21:07
paradox
а вам для каких надобностей такая сложность?
Re: Запуск процессов
Добавлено: 2009-09-09 19:39:46
DeNn
Скажим так, есть ресурс у которого стримится видео и пытаемся это автоматизировать. Сделали скрипт который вызывается раз в пять минут берет из базы видео конвертирует его. Все работает классно, но когда начинает вызываться 2 или 3 процесса для разных файлов, он в конце концов умирает и оставляет после себя 0 файл.
Думаем, что это из-за того что он (ffmpeg) делает первый проход никуда не слаживая промежуточный файл. Вот пример команды:
Код: Выделить всё
/usr/local/bin/ffmpeg -y -i /var/test2/test2.mov -pass 1 -vcodec libx264 -vpre fastfirstpass -b 600k -bt 600k -s 640x360 -aspect 16:9 -threads 2 -f mp4 -an /dev/null && ffmpeg -i /var/test2/test2.mov -pass 2 -acodec libfaac -ab 96k -ac 2 -ar 44100 -vcodec libx264 -vpre hq -b 600k -bt 600k -s 640x360 -aspect 16:9 -threads 2 -f mp4 /var/test2.mp4
Re: Запуск процессов
Добавлено: 2009-09-10 4:24:13
AMDmi3
Используйте lockf.
Так второй и последующие процессы будут ждать, пока не закончится первый:
Так второй и последующие процессы вообще не будут выполнены, если один уже выполняется
Только вам правильней будет просто запускать каждый ffmpeg в своей директории, либо явно указывать им имя файла, куда надо складывать результаты pass0.