videos online musical musica maker hacer generador fotos editar crear con como collage celular layout video montage

layout - online - ¿Cómo puedo crear mosaicos de videos/crear un montaje de video?



generador de videos (4)

Tengo cuatro videos que me gustaría poner en mosaico de forma 2x2 para hacer un nuevo video. ¿Hay alguna manera de que pueda hacer esto fácilmente, preferiblemente de forma gratuita y bajo Linux? Estoy dispuesto a programar una cantidad moderada, tal vez para interactuar con alguna biblioteca, pero no estoy dispuesto a escribir un programa completo de procesamiento de video. Puede suponer que los videos de entrada y salida están en el formato común más conveniente.

Un análogo del comando de montaje gm (para imágenes) sería fantástico.


Una posible solución sería describir el diseño de su montaje de video con SMIL , un lenguaje de marcado multimedia. Esto requiere un editor de texto para escribir su documento SMIL y un reproductor de video SMIL (por ejemplo, Ambulante , Quicktime o Realplayer) para mostrarlo.


Esto suena como el tipo de problema que AviSynth fue diseñado para resolver.

AviSynth es esencialmente un lenguaje de scripting para manipular transmisiones de video. Un archivo de texto describe las operaciones que desea aplicar a una o más secuencias de video de entrada. El archivo de texto se entrega al motor AviSynth, que proporciona un archivo .AVI virtual que manipula las transmisiones de origen un fotograma a la vez cuando las obtiene.

Combine AviSynth con una herramienta separada que lea del archivo .AVI virtual y escriba en un nuevo archivo para guardar los cambios.


Actualmente estoy usando GStreamer para un proyecto similar (conferencia-captura) yo mismo. Probablemente estés buscando el elemento videomixer . Echa un vistazo a este ejemplo: video 4-way split screen gstreamer pipeline (la secuencia de comandos se encuentra aquí ).

GStreamer funciona perfectamente bien en Windows también. Es posible que desee consultar GStreamer WinBuilds si está interesado.

Ejemplo
Aquí hay una secuencia de comandos básica que funciona para mí en Windows (no tiene las barras diagonales inversas porque utilizo la llamada gst_parse_launch del código C para analizar la descripción de la interconexión ):

v0. ! queue ! decodebin ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240 ! videobox right=-320 bottom=-240 ! ffmpegcolorspace ! vmix.sink_0 v1. ! queue ! decodebin ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240 ! videobox bottom=-240 ! ffmpegcolorspace ! vmix.sink_1 v2. ! queue ! decodebin ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240 ! videobox right=-240 ! ffmpegcolorspace ! vmix.sink_2 v3. ! queue ! decodebin ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! vmix.sink_3 vmix. ! queue ! ffmpegcolorspace ! dshowvideosink filesrc location="c:/test.mpg" name="v0" filesrc location="c:/test.mpg" name="v1" filesrc location="c:/test.mpg" name="v2" filesrc location="c:/test.mpg" name="v3" videomixer name=vmix sink_0::xpos=0 sink_0::ypos=0 sink_0::zorder=0 sink_1::xpos=320 sink_1::ypos=0 sink_1::zorder=1 sink_2::xpos=0 sink_2::ypos=240 sink_2::zorder=2 sink_3::xpos=320 sink_3::ypos=240 sink_3::zorder=3


El siguiente comando ffmpeg hará exactamente lo que el interlocutor quería:

ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 -filter_complex / ''[0:v]pad=iw*2:ih*2:0:0[int2];[int2][1:v]overlay=0:H/2[int3];[int3][2:v]overlay=W/2:0[int4];[int4][3:v]overlay=W/2:H/2[out]'' / -map [out] -c:v libx264 -crf 23 -preset veryfast output.mp4

Primero, el filtro del pad duplica el tamaño del primer video de entrada, dejando el video original en la esquina superior izquierda. Los filtros de superposición en serie colocan las otras entradas sobre el relleno negro agregado por el filtro de almohadilla.

Si los videos tienen resoluciones diferentes, el comando requerirá algunas modificaciones.