Я извлекаю фрагмент видеофайла длительностью в 1 минуту, начиная с 30 минут с начала, и добавляю субтитры из внешнего файла с помощью следующей команды:
ffmpeg -ss 1800 -i input_video.m4v -ss 1800 -i input_subtitle.srt -map 1:0 -c:a aac -c:v libx264 -c:s mov_text -crf 35 -preset slow -t 60 -avoid_negative_ts 1 output_video.mp4
Проблема, которую я получаю, состоит в том, что транскодированное видео имеет продолжительность 00:01:03.50
вместо ожидаемого 00:01:00.00
. И при воспроизведении такого видео с помощью VLC воспроизведение останавливается до того, как индикатор выполнения достигнет конца.
Длительность становится ровно 1 минутой, только если я удалю ввод субтитров. Похоже, что длительность выходного файла увеличена, чтобы соответствовать последней фразе из субтитров, которая начинается в пределах определенного 1-минутного диапазона.
Есть ли способ заставить выходную длительность точно соответствовать значению, установленному в флаге -d
?