Existe um flag para fazer o ffmpeg ler a entrada sequencialmente do disco ao invés de usar acesso aleatório

1

Existe uma opção no ffmpeg para fazê-lo ler apenas seqüencialmente do início ao final do arquivo, sem tentar verificar se há eventualmente metadados no final do arquivo?

O backround é que eu pareço enfrentar uma situação em que a presença nua de um rodapé em um arquivo .mxf (mais repetição de índice) causa erros massivos de processamento.

Na verdade, não se trata de ffmpeg.exe, mas libavcodec, que é utilizado por alguns softwares de terceiros, mas este software de terceiros me permite especificar opções de ffmpeg para a abertura de arquivos mxf.

Excluir alguns bytes, como 10kb do final do arquivo de entrada de 40Gb, leva a processar o arquivo corretamente, por isso estou pedindo uma maneira de forçar a leitura sequencial.

Eu tentei usar -re opção, mas ainda analisa as informações de "rodapé".

    
por Harry 14.11.2017 / 21:00

1 resposta

2

Você pode testar o arquivo: cat file.mxf | ffmpeg -f mxf -i - out.mp4

Mas, em geral, o ffmpeg não possui uma rotina genérica para ler o arquivo. O ffmpeg primeiro identifica o formato da entrada com base em uma análise e, em seguida, depende de um módulo específico do formato (o demuxer) para analisá-lo. Se alguma rotina nesse demuxer procura os dados que estão no final, mas vai para lá.

Um segundo método é usar o protocolo de subarquivo. Isso permite que você apresente um arquivo restrito ao ffmpeg, ou seja, você pode especificar onde o 'início' e 'fim' do arquivo deve ser, por exemplo,

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

Isso diz ao ffmpeg para extrair o segmento, começando no deslocamento de byte do arquivo 183241728 e terminando no deslocamento 366490624 como entrada.

    
por 15.11.2017 / 06:32

Tags