Como unir dois quadros de vídeo em um, para que o vídeo final reproduza dois quadros como um simultaneamente

4

Eu quero conectar dois vídeos em um. Vamos pegar dois vídeos do Youtube como exemplo. Quero que meu vídeo final tenha a altura = altura do primeiro vídeo + altura do segundo vídeo e largura = max (largura do primeiro vídeo, largura do segundo vídeo). Na parte superior, o primeiro vídeo é reproduzido, enquanto na parte inferior, o segundo vídeo é reproduzido.

Você sabe como fazê-lo no Linux, a melhor possibilidade de usar mencoder, ffmpeg ou qualquer outro comando de linha de comando?

    
por Jakub 11.10.2010 / 15:47

3 respostas

3

Isso pode ser feito com o ffmpeg. Se os vídeos forem do mesmo tamanho:

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
'[0:v]pad=iw:ih*2:0:0[intv];[intv][1:v]overlay=0:H/2[vid]' \
-map [vid] -c:v libx264 -crf 22 -preset veryfast output.mp4

Se eles tiverem tamanhos diferentes (em que input1.mp4 tem a resolução mais alta):

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
'[0:v]pad=iw:ih*2:0:0[intv];[intv][1:v]overlay=(W-w)/2:H/2[vid]'
-map [vid] -c:v libx264 -crf 22 -preset veryfast output.mp4

Se você conhece as resoluções dos vídeos, pode obter uma saída melhor. Assumindo que input1.mp4 é maior (ou pelo menos a mesma resolução), e input2.mp4 tem uma altura de 360:

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
'[0:v]pad=iw:ih+360:0:0[intv];[intv][1:v]overlay=(W-w)/2:H-360[vid]'
-map [vid] -c:v libx264 -crf 22 -preset veryfast output.mp4
    
por 17.01.2013 / 02:02
1

Se os dois vídeos tiverem a mesma largura, você poderá usar hstack , que é mais rápido que pad + overlay :

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
'[0:v][1:v]hstack[vid]' \
-map [vid] -c:v libx264 -crf 22 -preset veryfast output.mp4
    
por 22.03.2017 / 09:57
0

Acho que encontrei a resposta aqui: link Eu vou dar uma olhada nas soluções postadas nesse tópico.

    
por 11.10.2010 / 22:48