Mesclar dois videoclipes em um, colocando-os um ao lado do outro

38

Eu tenho dois videoclipes. Ambos são 640 x 480 e duram 10 minutos. Um contém áudio de fundo, o outro, um ator cantor. Gostaria de criar um único videoclipe de 10 minutos, medindo 1280x480 (em outras palavras, quero colocar os vídeos um ao lado do outro e reproduzi-los simultaneamente, misturando o áudio dos dois clipes). Eu tentei tentar descobrir como fazer isso com o ffmpeg / avidemux, mas até agora eu vim vazio. Todos eles se referem à concatenação quando procuro mesclar.

Alguma recomendação?

Restabelecer Monica
fonte

Respostas:

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

Isso basicamente dobra o tamanho do input1.mp4 preenchendo o lado direito com preto do mesmo tamanho do vídeo original e, em seguida, coloca o input2.mp4 na parte superior dessa área preta com o filtro de sobreposição.

Fonte: https://superuser.com/questions/153160/join-videos-split-screen

Jan
fonte
O que -map [vid]faz?
0xcaff
@caffinatedmonkey [vid]é um chamado linklabel , que é um rótulo de link de saída definido no gráfico de filtro (a linha acima com o filter_complex). Ele mapeia a saída do gráfico de filtro complexo para o arquivo de saída.
Janeiro
Estou recebendo Unrecognized option 'crf'. Erro ao dividir a lista de argumentos: Opção não encontrada. Se eu remover crentãounrecognized option 'preset'
RS
Gettingno such filter
user1767754 15/07
25

Para ser sincero, usar a resposta aceita resultou em muitos quadros perdidos para mim.

No entanto, o uso do hstackfilter_complex produziu uma saída perfeitamente fluida:

ffmpeg -i left.mp4 -i right.mp4 -filter_complex hstack output.mp4
Albus Dumbledore
fonte
22

Isso pode ser feito com apenas dois filtros e o áudio de ambas as entradas também será incluído.

ffmpeg -i left.mp4 -i right.mp4 -filter_complex \
"[0:v][1:v]hstack=inputs=2[v]; \
 [0:a][1:a]amerge[a]" \
-map "[v]" -map "[a]" -ac 2 output.mp4
  • O hstack colocará cada vídeo lado a lado.
  • O amerge combinará o áudio de ambas as entradas em um único fluxo de áudio multicanal e -ac 2o tornará estéreo; sem essa opção, o fluxo de áudio pode terminar em 4 canais se as duas entradas forem estéreo.
llogan
fonte
Olá, posso sobrepor um vídeo a outro?
Nisarg 21/09/16
@Nisarg Use o filtro de sobreposição .
Llogan 21/09/16
Quero que o vídeo superior seja um pouco transparente para que você possa ver o que está acontecendo em segundo plano. Você pode me ajudar com isso?
Nisarg 22/09/16
Olá senhor, você pode cuidar disso ?
Nisarg 22/09/16
1
Perdi o áudio com a resposta aceita. Este funciona perfeitamente.
Matt Hough
2
ffmpeg -y -ss 0 -t 5 -i inputVideo1.mp4 -ss 0 -t 5 -i inputVideo2.mp4 -i BgPaddingImage.jpg -filter_complex nullsrc=size=720*720[base];[base][2:v]overlay=1,format=yuv420p[base1];[0:v]setpts=PTS-STARTPTS,scale=345*700[upperleft];[1:v]setpts=PTS-STARTPTS,scale=345*700[upperright];[base1][upperleft]overlay=shortest=1:x=10:y=10[tmp1];[tmp1][upperright]overlay=shortest=1:x=366:y=10 -c:a copy -strict experimental -ss 0 -t 5 -preset ultrafast -an output.mp4

Adicione dois vídeos lado a lado e também adicione a imagem de sobreposição exibida nos vídeos preenchidos com Você pode alterar a imagem de fundo [BgPaddingImage.jpg]aqui, defina o caminho da imagem bg.

Mostre este vídeo abaixo, seu comando create from Above

insira a descrição da imagem aqui

Sanjay Hadiya
fonte
1
Que língua é essa? Como você executa isso?
muru
@muru Confira agora seu comando FFMPEG ?? :)
Sanjay Hadiya