1

Есть ли в ffmpeg опция, позволяющая читать его последовательно от начала до конца файла, не пытаясь проверить, есть ли в конце метаданные в конце файла?

Задним фоном является то, что я, кажется, столкнулся с ситуацией, когда простое присутствие нижнего колонтитула в файле .mxf (плюс повторение индекса) вызывает массовые ошибки обработки.

На самом деле речь идет не о ffmpeg.exe, а о libavcodec, который используется каким-либо программным обеспечением от 3-х сторон, но это программное обеспечение от 3-х сторон позволяет мне указывать параметры ffmpeg для открытия файлов MXF.

Удаление нескольких байтов, например 10 КБ конца входного файла 40 ГБ, приводит к правильной обработке файла, поэтому я прошу способ принудительного последовательного чтения.

Я попытался использовать опцию -re, но она все еще анализирует информацию "нижнего колонтитула".

1 ответ1

2

Вы можете попробовать передать файл: cat file.mxf | ffmpeg -f mxf -i - out.mp4

Но в целом, ffmpeg не имеет общей процедуры для чтения файла. Сначала ffmpeg идентифицирует формат ввода на основе зонда, а затем использует для анализа его модуль, специфичный для формата (демультиплексор). Если какая-то подпрограмма в этом демультиплексоре ищет данные, которые в конце концов оказываются, но они идут туда.

Второй способ - использовать протокол подфайлов. Это позволяет вам представить ограниченный файл для ffmpeg, т.е. вы можете указать, где должны быть «начало» и «конец» файла, например

ffmpeg -i "subfile,,start,183241728,end,366490624,,:file.mxf"

Это указывает ffmpeg извлечь сегмент, начиная со смещения байта файла 183241728 и заканчивая смещением 366490624 в качестве входных данных.

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