O que causa o primeiro quadro congelado de um arquivo WMV criado no FFMPEG?

0

Ao cortar um arquivo WMV usando a seguinte sintaxe:

ffmpeg -i 'INPUTFILE.wmv' -acodec copy -vcodec copy -ss 00:00:45 -t 00:00:15 'OUTPUTFILE.wmv '

Um quadro do arquivo OUTPUTFILE.wmv é exibido por aproximadamente o primeiro ou segundo segundo (durante o qual o som toca normalmente) e, em seguida, a reprodução é retomada. O "quadro congelado" que é exibido é aquele em que o movimento realmente começa (não o 1-2 segundos que o precede) - ou seja, não há "salto", pois vai do quadro congelado para o vídeo de trabalho. Em vez disso, é como se eu estivesse fazendo uma pausa no vídeo.

Mesmo se aumentar o comprimento do clipe de saída em até um minuto, ele ainda o exibe por cerca de um segundo (portanto, não é uma proporção do comprimento total do vídeo).

O que está causando isso e como posso corrigi-lo?

    
por Doofus Magoo 19.04.2011 / 17:56

1 resposta

1

O problema é que você está apenas copiando de um arquivo para outro. A menos que você comece exatamente em um dos quadros-chave, haverá um atraso até que ele alcance um quadro-chave.

Um quadro-chave é um quadro que contém dados suficientes para renderizar todo o quadro. Os quadros entre esses quadros-chave são progressivos e contêm apenas (com efeito) as alterações do quadro antes.¹

Se você quiser evitar essa pausa, precisará decodificar e recodificar cada quadro individualmente para que o primeiro quadro do arquivo de saída seja um quadro-chave.

Os quadros de som não sofrem com esse tipo de problema, e é por isso que o som é reproduzido, mas o vídeo não.

¹ É realmente muito mais complexo do que isso, mas isso está perto o suficiente por enquanto.

    
por 19.04.2011 / 18:15

Tags