Сегментирование видео на части X секунд с помощью ffmpeg

у меня есть одно видео длительностью одна минута и 35 секунд. Я могу разделить его на несколько 30-секундных сегментов (я полностью осведомлен о других способах разделения видео, но выбрал это по определенной причине). Тем не менее, это дает 3 видео, 30 секунд, и одно видео, 5 секунд. Каков был бы лучший способ устранить отставание видео, которое составляет менее 15 секунд, и добавить к сегментам?

разделить на сегменты

ffmpeg -i test.mp4 -codec:v copy -codec:a copy -segment_time 30 test-%03d.mp4

продолжительность

ffprobe -i test.mp4 -show_format -v quiet | grep '.=.'
20
задан MaryCoding
09.01.2023 0:14 Количество просмотров материала 2568
Распечатать страницу

1 ответ

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

для этого вы, вероятно, повторите общую длину видео дважды. При первом запуске определите длину сегментов. Если вы обнаружите, что последний сегмент короче, скажем, 15 секунд, вам просто нужно настроить длину второго до последнего. Это можно легко сделать с помощью скриптов языки.

после этого, нужно сказать segment muxer длительность отдельного сегмента:

-segment_times 0,30,60,80
1
отвечен slhck 2023-01-10 08:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх