Combina dos videoclips en uno, colocándolos uno al lado del otro

38

Tengo dos videoclips. Ambos son 640x480 y duran 10 minutos. Uno contiene audio de fondo, el otro un actor cantante. Me gustaría crear un solo video clip de 10 minutos que mida 1280x480 (en otras palabras, quiero colocar los videos uno al lado del otro y reproducirlos simultáneamente, mezclando el audio de ambos clips). Intenté tratar de descubrir cómo hacer esto con ffmpeg / avidemux, pero hasta ahora me quedé vacío. Todos se refieren a la concatenación cuando busco la fusión.

¿Alguna recomendación?

Reinstalar a Mónica
fuente

Respuestas:

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

Básicamente, esto duplica el tamaño de input1.mp4 rellenando el lado derecho con negro del mismo tamaño que el video original, y luego coloca input2.mp4 sobre la parte superior de esa área negra con el filtro de superposición.

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

ene
fuente
¿Qué -map [vid]hacer?
0xcaff
@caffinatedmonkey [vid]es una denominada etiqueta de enlace , que es una etiqueta de enlace de salida definida en el gráfico de filtro (la línea de arriba con filter_complex). Asigna la salida del gráfico de filtro complejo al archivo de salida.
Jan
Me estoy poniendo Unrecognized option 'crf'. Error al dividir la lista de argumentos: opción no encontrada. Si elimino crentoncesunrecognized option 'preset'
RS
Gettingno such filter
user1767754
25

Para ser sincero, el uso de la respuesta aceptada resultó en muchos cuadros descartados para mí.

Sin embargo, el uso de hstackfilter_complex produjo una salida perfectamente fluida:

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

Esto se puede hacer con solo dos filtros y también se incluirá el audio de ambas entradas.

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
  • hstack colocará cada video uno al lado del otro.
  • amerge combinará el audio de ambas entradas en un solo flujo de audio multicanal y -ac 2lo hará estéreo; sin esta opción, la transmisión de audio puede terminar en 4 canales si ambas entradas son estéreo.
lema
fuente
Hola, ¿puedo superponer un video a otro video?
Nisarg
@Nisarg Use el filtro de superposición .
llogan
Quiero un video superior poco transparente para que uno pueda ver lo que sucede en segundo plano, ¿me pueden ayudar con eso?
Nisarg
Hola señor, ¿le importa mirar esto ?
Nisarg
1
Perdí el audio con la respuesta aceptada. Este funciona perfectamente.
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

Agregue dos videos uno al lado del otro y también agregue una imagen superpuesta que se muestre en los videos Relleno con Puede cambiar la imagen de fondo [BgPaddingImage.jpg]aquí establezca su ruta de imagen bg.

Muestre este video a continuación, su comando Crear desde arriba

ingrese la descripción de la imagen aquí

Sanjay Hadiya
fuente
1
¿Qué lenguaje es este? ¿Cómo lo ejecutas?
Muru
@muru Compruébelo ahora, ¿su comando FFMPEG? :)
Sanjay Hadiya