ffmpeg быстрый, но точный поиск в avi - PullRequest
1 голос
/ 21 марта 2019

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

Я обнаруживаю сцены, используя фильтр select='gt(scene,0.4)',showinfo в ffmpeg.После анализа этой информации я запускаю ffmpeg для каждой сцены, чтобы создать для них отдельные видеофайлы, например:

ffmpeg -y -i test.avi -ss 00:00:00.00 -to 00:00:54.61 -c copy test_1.avi
ffmpeg -y -i test.avi -ss 00:00:54.61 -to 00:01:38.21 -c copy test_2.avi
ffmpeg -y -i test.avi -ss 00:01:38.21 -to 00:01:59.45 -c copy test_3.avi
[...]

Как вы можете видеть, я использую параметры -ss и -to, чтобы указать, гдевыходные файлы должны начинаться и заканчиваться.Это работает очень хорошо , но становится очень, очень медленно со временем, так как мой исходный размер файла составляет ~ 50 гигабайт.

Я думаю, что -ss позволяет ffmpeg искать с началаИсходный файл ко времени начала, поскольку я могу наблюдать за действиями диска при поиске.

Размещение параметра -ss до того, как входной файл -i будет быстрее , но очень неточно (отключается на несколько секунд).

Может быть, есть какая-нибудь хитрость для увеличения производительности обрезки / обрезки без потери точности?

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

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...