Concatenando vídeos com o ffmpeg

Esses dias precisei juntar alguns vídeos num só e daí tive aquele pensamento comum: “no ffmpeg vai ser mais rápido”.

Daí fui no site que tira todas as minhas dúvidas e ele me indicou uma solução interessante: Basta você converter todos os vídeos para mpeg e concatenar usando o comando cat. Isso mesmo, o cat mesmo.

É assim:

1. Você converte os vídeos para o formato MPEG com os mesmos bit rates, codecs, resoluções, números de quadros, etc. Eu fiz assim:

ffmpeg -i arquivo_original -s vga -target ntsc-dvd -aspect 4:3 arquivo_novo.mpg

Ou, para fazer em todos os arquivos do diretório de uma vez:

for i in *; do ffmpeg -i “$i” -s vga -target ntsc-dvd -aspect 4:3 “$i.mpg”;done

2. Depois você concatena todos os arquivos mpeg e joga a saída para um arquivo mpeg novo:

cat *.mpg > teste.mpg

Porém, contudo, todavia, no entanto, o arquivo gerado fica com o índice bagunçado.

3. Para corrigir, basta passar o arquivo pelo ffmpeg novamente:

ffmpeg -i teste.mpg -sameq arquivo_final.mpg

E voilà! Está feito.

4 opiniões sobre “Concatenando vídeos com o ffmpeg”

  1. Muito boa sua dica, e para acresentar se você possui um processador multcore, pode melhorar o desempenho do ffmpeg adicionando -threads n, onde n é o número de core do seu processador.
    Então para um dual core o comando ficaria assim:

    ffmpeg -threads 2 -i arquivo_original -s vga -target ntsc-dvd -aspect 4:3 arquivo_novo.mpg
    Vai melhorar bastante o desempenho do ffmpeg, porém vale lembrar de não estar a realizar outra tarefa pois senão vais dar carga excessiva ao cpu.
    Espero que gostem da dica.

  2. Ah mulek!

    Valeu pela dica man! Pensei em usar o cat, mas pensei… não, ele não deve juntar vídeo… e não é que funciona! A dica final de ajusta ro índice foi genial. Obrigadão man!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *