2

У меня установлен пакет ffmpeg в моей Linux-системе. Я использую его для разделения файлов на эквивалентные сегменты. Пока у меня есть тестирование двух подходов: 1. Создайте скрипт bash, который захватывает длительность файла ffprobe и затем выполняет математическое уравнение, чтобы получить файл, разделенный на равные сегменты 2. Сделайте это прямо из ffmpeg, используя segment_time . Первый метод в большинстве случаев является последовательным (с интервалом в 1 или 2 секунды в некоторых сегментах) при разделении сегментов на эквивалентные размеры, но в сегментах наблюдаются некоторые потери кадров, и он очень медленный. Второй метод, безусловно, самый быстрый в разбиении видеофайла, так как я непосредственно запускаю ffmpeg без необходимости внешнего вычисления длительности. Как я могу получить строгие эквивалентные размеры сегмента с помощью ffmpeg?

ffmpeg -i input.mp4 -c copy -map 0 -segment_time 10 -f segment output%03d.mp4

1 ответ1

1

Вы не можете этого не делать в общем случае, если не хотите перекодировать все mp4, которые могут нарушить ваше стремление к скорости.

Сегментер, вероятно, является лучшим вариантом для скорости и использования работы других людей.

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

Редактировать: Если вы в порядке с перекодировкой, то конвертируйте в yuv, а затем используйте segmenter. Это снизит качество видео и не будет обрабатывать ваш звук.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .