#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 года. В промежуточных сборках произошел регресс.