ffmpeg - aparar e mesclar clipes de vídeo sem reencodificar

2

Eu tenho dois vídeos que quero cortar e depois mesclar a saída aparada. Eles são todos do mesmo tamanho / codec, então eu gostaria de fazer isso sem recodificar demais. Mas se eu fizer:

ffmpeg -i clip1.mp4 -ss 1.2 -t 2.0 -c copy clip1.trimmed.mp4
ffmpeg -i clip2.mp4 -ss 0.2 -t 2.0 -c copy clip2.trimmed.mp4
ffmpeg -filter_complex '[0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1 [v] [a]'\
-map [v] -map [a] -c:v libx264 merge.mp4

O vídeo mesclado tem problemas com a sincronização de áudio / vídeo. Isso não acontece se eu substituir -c copy por -vcodec libx264 no comando de aparagem. É possível que, ao não re-codificar, algo saia errado com o tempo?

A resposta correta, de Mulvya:

ffmpeg -ss 1.2 -t 2.0 -i clip1.mp4 -ss 0.2 -t 2.0 -i clip2.mp4 \
   -filter_complex '[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" \
   -map [v] -map [a] -c:v libx264 merge.mp4

Caso isso ajude, eu gostaria de acrescentar que a sintaxe para adicionar filtros específicos de clipes é como:

ffmpeg -ss 1.2 -t 2.0 -i clip1.mp4 -ss 0.2 -t 2.0 -i clip2.mp4 \
   -filter_complex '[0:v]scale=1920:960[v0]; [v0] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" \
   -map [v] -map [a] -c:v libx264 merge.mp4
    
por Guig 06.04.2016 / 01:03

2 respostas

2

Como você está recodificando os segmentos mesclados, basta fazer isso em um comando,

ffmpeg -ss 1.2 -t 2.0 -i clip1.mp4 -ss 0.2 -t 2.0 -i clip2.mp4 \
       -filter_complex '[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" \
       -map [v] -map [a] -c:v libx264 merge.mp4
    
por 06.04.2016 / 07:04
1

A mesclagem de vídeos sem recodificação é possível e descrita nas respostas a essa outra pergunta .

A divisão de um vídeo sem recodificação só pode ser possível para formatos sem perdas. Codecs com perdas, como h264 (geralmente) usam uma série de quadros-chave e, então, codificam quadros intermediários como diferenças entre o quadro atual e o quadro anterior. (É por isso que você percebe que é estranho entrar em um vídeo danificado porque desaparece em uma mudança de cena.)

Teoricamente, você pode dividir um vídeo se o corte for antes de um quadro-chave. Descobrir onde estão esses keyframes e como fazer o corte está além de mim.

    
por 06.04.2016 / 01:20

Tags