Чтобы получить уменьшенное изображение с изображения на 100
секунд, я могу сделать ffmpeg -ss 100 -i /tmp/video.mp4 -frames:v 1 -s 200x100 image.jpg
. Однако, если видеоролик меньше 100
секунд, ffmpeg не создает миниатюру, но также не выходит с кодом ошибки, что довольно неожиданно.Принудительное ffmpeg для выхода с кодом ошибки, когда эскиз не был успешно создан
Команда выходит без кода ошибки (статус выхода 0
). Он выводит сообщение только на stderr
, говоря Output file is empty, nothing was encoded (check -ss/-t/-frames parameters if used)
.
Я хочу, чтобы ffmpeg завершил работу с кодом ошибки под любая ситуация, когда миниатюра не была создана. В противном случае мне всегда нужно сделать еще одну проверку из кода приложения после команды ffmpeg, чтобы гарантировать, что ожидаемое количество эскизов будет выведено в файловую систему.
Есть ли способ сделать эту проверку на уровне приложения и заставить ffmpeg терпеть неудачу всякий раз, когда он не успевает записать миниатюру в файловую систему?
спасибо. Кстати, на страницах man есть также флаг '-xerror', который говорит' Stop и exit on error'. Разве ffmpeg не останавливается/не выходит на ошибки? Стоит ли добавлять этот флаг, знаете ли вы, в каких случаях это поможет? – user779159
Это не ошибка команды, если точка поиска находится вне ввода EOF. Результат просто null. Так как это обычно не ожидается, значит, предупреждение .. 'xerror', AFAICT, только выходит из выпадающих временных меток на выходе. – Mulvya
Что означают не по порядку временные метки, как это могло произойти? – user779159