Используя FFMPEG, я получаю сообщение об ошибке при попытке вставить затухание примерно через 35 минут в длинное видео — возможно ли это?

#ffmpeg

#ffmpeg

Вопрос:

У меня есть исходное видео продолжительностью в час, из которого я хочу извлечь пару минут ближе к концу и добавить затухание видео в начале обрезанного раздела.

Используя FFMPEG, я указываю следующую команду:

 ffmpeg -i MyLongVideo.mp4 -q:v 0 -y -ss 00:50:00.000 -to 00:52:00.000 -vf "fade=t=in:st=3000.0:d=1.0, scale=iw*min(1280/iw,720/ih):ih*min(1280/iw,720/ih),pad=1280:720:(1280-iw)/2:(720-ih)/2" ./testoutput.ts
  

Это предназначено для обрезки исходного видео с 50: 00.000 до 52:00.00 и затухания с 50-й минуты в течение 0,5 секунды (таким образом, при 3000 секундах in — st = 3000.0).

Эта команда, которую мы создаем программно, работает на более коротких видео или при обрезке до 35 минут. Для этого более длинного видео я получаю сообщение об ошибке, в котором говорится:

 [fade @ 0000025399981e80] Value 3000.000000 for parameter 'st' out of range [0 - 2147.48]
  

Значение 2147.48 составляет около 35 минут в секундах, что объясняет, почему эта команда работает для более коротких видеороликов или для обрезки ранее 35 минут.

Я видел ряд других проблем с FFMPEG, говорящих об этом «волшебном» числе 2147.48 со значениями параметров. Это какой-то жесткий предел?

Есть ли способ сделать то, что я хочу сделать? Я мог бы сделать это в два прохода — извлечь фрагмент видео, а затем добавить затухание, но я бы предпочел сделать это одной командой, если это возможно, — и это работает для более коротких / ранних культур.

Ответ №1:

Получите сборку ffmpeg после 12 ноября 2018 года или до 7 октября 2018 года. В промежуточных сборках произошел регресс.