Есть ли способ программно пройти по файлу и извлечь из него (например) последовательные 10-секундные фрагменты в отдельные файлы?
В настоящее время мой коллега использует для этого ffmpeg, но я думаю, что вызов этой команды один раз для каждого сегмента приведет к поиску файла много, который может не понадобиться.
Или я ошибаюсь, есть ли в этих файлах какой-то временной индекс, который делает поиск очень быстрым?
В настоящее время для вызова ffmpeg используется язык Ruby, поэтому скомпилированная библиотека C может работать, а библиотека Java определенно будет работать (с JRuby).
В настоящее время он выполняет системные вызовы и запускает исполняемый файл ffmpeg.
Это то, что делает мультиплексор сегментов.
На самом деле системные вызовы будут незначительными по сравнению с тем, что делает ffmpeg, и доступом к диску, и если это не какой-то процесс, который работает постоянно и чувствителен ко времени, дополнительный файл, который ищет ffmpeg, не будет чтобы иметь большое значение для чего-либо. Скорее всего, было бы лучше, если бы поток оставался открытым на стороне ffmpeg, но этот kust означает настройку того, какие команды вы даете.
@Gyan Вот она, я предполагал, что это была команда, но мой опыт работы с ffmpeg был равносилен некоторому баловству много лет назад, лол.

Обработка видео и жесткие вычисления не являются сильной стороной Ruby, но, как вы заявили, вы можете найти привязки для ffmpeg, VLC или любой другой видеотеки, которая соответствует типу файла, который вам нужно обработать. Кажется, ваш вопрос требует библиотеки, но в то же время укажите, что вы уже используете с Ruby, поэтому мне так мало непонятно.