Áudio mais longo que o vídeo ao cortar arquivos MP4 com o FFMPEG

1

Acabei de descobrir sobre o FFMPEG e preciso que ele corte cargas de arquivos MP4 nos últimos 20 segundos de cada. Cada arquivo MP4 tem uma trilha de vídeo e duas faixas de áudio, além de ter taxa de quadros variável.

Eu tenho usado essa linha de código:

for %F in (*.mp4) do ffmpeg -sseof -20 -i "%F" -map 0:v -map 0:a -c:v copy -c:a copy "%~nF_trimmed.mp4"

O corte vai bem, mas há um problema com o áudio. Este erro aparece sem cancelar o processo de recorte, embora eu acredite que não tenha nada a ver com o meu problema:

[mp4 @ 0000025740443740] track 1: codec frame size is not set
[mp4 @ 0000025740443740] track 2: codec frame size is not set

E quando eu solto os arquivos aparados em um software de edição de vídeo, isso pode ser visto:

A segunda faixa de áudio é maior que a faixa de vídeo.

O comando -shortest não funcionou. Talvez eu esteja apenas usando errado?

    
por LordPorongus 29.05.2018 / 23:02

1 resposta

1

Eu estava brincando com -shortest e tendo problemas com uma faixa de áudio mais longa não reduzida ao tamanho do vídeo. É assim que eu estava tentando usá-lo:

ffmpeg -i INPUT -c copy -shortest OUTPUT

Depois de ler a documentação da opção um pouco mais de perto:

Finish encoding when the shortest input stream ends.

Com o comando FFmpeg acima, existe apenas um único fluxo de entrada. Então o seguinte comando finalmente funcionou:

ffmpeg -i INPUT -i INPUT -c copy -shortest -map 0:v -map 1:a OUTPUT

em que ambos os INPUT s são o mesmo arquivo.

    
por 08.08.2018 / 06:36

Tags