2013-11-25 3 views
3

У меня странная проблема. У меня есть монитор папок с incrontab, который запускает автоматический сценарий транскодирования на CLOSE_WRITE состоянии файла, в который я зашел. Проблема заключается в том, что сценарий не ждет завершения процесса ffmpeg, прежде чем продолжить выполнение остальных команд сценария. Это означает, что исходный файл удаляется до завершения транскодирования, что плохо.Bash Scripting FFMPEG как ждать завершения процесса

Первый вопрос: В чем причина такого поведения?

Второй вопрос: В сценарии bash, что является лучшим способом убедиться, что процесс ffmpeg выполняется, прежде чем переходить к остальной части скрипта?

Сценарий:

#/bin/bash 

#transcoding 
/usr/bin/ffmpeg -i "sourcefile push with incron as $1" -vcodec somecode -acodec somecodec "destination file" 

#delete source 
rm "path/to/file$1" 

Должен ли я инкапсулировать мой FFMPEG в то время как заявление?

+1

Добро пожаловать в StackOverflow! Как выглядит ваш скрипт? – cm2

+0

, пожалуйста, покажите, как вы вызываете ffmpeg из вашего скрипта. –

+0

Есть ли ошибка, когда ffmpeg кодирует файл? Вы пробовали кодировать свой тестовый файл со сценарием и можете убедиться, что он работает так, как ожидалось? – NuclearPeon

ответ

1

сначала убедитесь, чтобы предотвратить STDIN вход на FFmpeg:

ffmpeg -i blah -vcodec blah -acodec blah result.blah </dev/null >/dev/null 2>>convert.log 

и выдать wait после команды FFmpeg

Смежные вопросы