Видео слишком короткое в Avconv — но только при запуске в качестве crontab

Я работаю над сценарием PHP, который создает получасовые видеоролики, комбинируя 30-минутный файл MP3 с фоновым изображением в виде неподвижного кадра, а затем выкладываю его на YouTube через API Google. Он прекрасно работает, кроме случаев, когда я запускаю его из crontab, и я не могу понять, почему.

Он использует команду оболочки для запуска следующего.

avconv -loop 1 -framerate 2 -i background.png -loglevel verbose -i audio.mp3 -c:v libx264 -preset medium -tune stillimage -vf scale=\"trunc(oh*a/2)*2:720\" -crf 18 -c:a copy -shortest -y -pix_fmt yuv420p output.mkv

Когда я запускаю его из своей оболочки, он выдает видео всего за 30 минут MP3. Но если я запускаю его из любого вида crontab, результат составляет лишь часть полной длины, так как он остановится на 3-4 минуты.

Типичный вывод ниже для неудачного результата. Меня сбивает с толку то, что сценарий не прерван, и, похоже, он не истекает. Вместо того, чтобы остановиться, он продолжит работу и загрузит короткую незаконченную версию на YouTube.

Я подумал, что это может быть проблема среды оболочки, пропуская некоторую часть $ PATH или переменных. Но даже когда я импортирую все настройки env и path, похоже, он не работает.

Есть ли какой-нибудь способ убедиться, что команда avconf (или ffmpeg) продолжается до конца и не останавливается слишком рано?

Типичный выходной дамп ниже одного из случаев сбоя: https://gist.github.com/anonymous/ecaa77037926821dba19e9db5ccb3a10

(Я использовал avconv, потому что мой хост-сервис утверждал, что ffmpeg устарел, и что вместо этого я должен использовать avconv. Может ли библиотека типа PHP-FFMPEG быть лучше для этого?)

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …