Pregunta

Tengo cuatro videos que me gustaría baldosas de una manera 2x2 para hacer un nuevo video. ¿Hay alguna manera de hacer esto fácilmente, preferiblemente libre y bajo Linux? Estoy dispuesto a programar una cantidad moderada, tal vez con el fin de interactuar con alguna biblioteca, pero dispuestos a escribir todo un programa de procesamiento de vídeo de mí mismo. Usted puede asumir que los videos de entrada y salida están en todo lo que ocurre comúnmente es el formato más conveniente.

Un análogo de la href="http://www.graphicsmagick.org/1.2/www/montage.html" rel="nofollow noreferrer"> comando montaje gm

¿Fue útil?

Solución

Actualmente estoy usando GStreamer para un proyecto similar (conferencia de captura) a mí mismo. Es probable que esté buscando el videomixer elemento. Echa un vistazo a este ejemplo: vídeo de 4 vías tubería GStreamer pantalla dividida (script se encuentra aquí ).

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

Ejemplo
He aquí un guión básico que funciona para mí en Windows (que no tiene las barras invertidas porque uso el gst_parse_launch llamada de código C para analizar la descripción de tuberías):

  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

Otros consejos

El siguiente comando ffmpeg hará exactamente lo que se deseaba:

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

En primer lugar, el filtro almohadilla duplica el tamaño del primer vídeo de entrada, dejando el vídeo original en la esquina superior izquierda. Los filtros de superposición de serie a continuación, colocar las otras entradas sobre el acolchado negro añadido por el filtro de almohadilla.

Si los videos son de diferentes resoluciones, el comando se requiere alguna modificación.

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

AviSynth es esencialmente un lenguaje de script para manipular secuencias de vídeo. Un archivo de texto describe que las operaciones que desea aplicar a una o más secuencias de vídeo de entrada. El archivo de texto se entrega al motor de AviSynth, que proporciona un archivo .AVI virtual que manipula la fuente de flujos de un fotograma a la vez a medida que los traes.

Combinar AviSynth con una herramienta independiente que lee desde el archivo .AVI virtual y escribe en un nuevo archivo para guardar los cambios.

Una posible solución sería describir la disposición de su montaje de vídeo con SMIL , un mensaje multimedia lenguaje de marcas. Esto requiere un editor de texto para escribir su documento SMIL y un reproductor de vídeo SMIL (por ejemplo, Ambulant , Quicktime o RealPlayer ) para la visualización de la misma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top