У меня есть папка с видеофайлами, и мне нужно извлечь более 2 кадров из каждого из них, используя скрипт bash для Linux.В настоящее время я делаю это для каждого видеофайла в цикле:
ffmpeg -nostdin -loglevel fatal -ss 15 -i "${filename}" -frames:v 1 "${out1}"
ffmpeg -nostdin -loglevel fatal -sseof -15 -i "${filename}" -frames:v 1 "${out2}"
Это извлекает кадр 15 с и еще один кадр 15 с конца.Для N видеофайлов мне нужно 2N вызовов ffmpeg.Я экспериментировал с -vf select
, как меня спросили здесь , но это было намного медленнее, особенно с требованием выбирать кадры в начале и в конце.Кроме того, я уже использую параллель GNU, что имеет большое значение.
Производительность на самом деле не так уж плоха.Но мой вопрос, это может быть улучшено дальше?Я надеюсь найти способ
- для извлечения обоих кадров за один вызов ffmpeg (быстрее, чем два отдельных вызова) или
- для подачи ffmpeg более одного файла за вызов (дляуменьшить накладные расходы при запуске процесса)