tengo tres videos:Combinar varios videos en un
- una conferencia que se filmó con una cámara de vídeo
- un video de la captura de escritorio del ordenador utilizado en la conferencia
- y el video de la pizarra
Quiero crear un video final con esos tres componentes ocupando una cierta región de la pantalla.
¿Es un software de código abierto que me permitiría hacer esto (mencoder, ffmpeg, virtualdub ..)? ¿Qué recomiendas?
¿O hay una API de C/C++ que me permita crear algo así mediante programación?
Editar
Habrá varias conferencias grabadas en el futuro. Esto significa que necesito una solución genérica/automatizada.
Actualmente estoy viendo si puedo escribir una aplicación con GStreamer para hacer este trabajo. ¿Algún comentario sobre eso?
Resuelto!
Logré hacer esto con el elemento videomixer de GStreamer. Utilizo la sintaxis gst-launch para crear una canalización y luego la cargo con gst_parse_launch. Es una forma muy productiva de implementar tuberías complejas.
Aquí hay una canalización que toma dos flujos de video entrantes y una imagen de logotipo, los mezcla en una secuencia y los duplica para que se muestren y guarden simultáneamente en el disco.
desktop. ! queue
! ffmpegcolorspace
! videoscale
! video/x-raw-yuv,width=640,height=480
! videobox right=-320
! ffmpegcolorspace
! vmix.sink_0
webcam. ! queue
! ffmpegcolorspace
! videoscale
! video/x-raw-yuv,width=320,height=240
! vmix.sink_1
logo. ! queue
! jpegdec
! ffmpegcolorspace
! videoscale
! video/x-raw-yuv,width=320,height=240
! vmix.sink_2
vmix. ! t.
t. ! queue
! ffmpegcolorspace
! ffenc_mpeg2video
! filesink location="recording.mpg"
t. ! queue
! ffmpegcolorspace
! dshowvideosink
videotestsrc name="desktop"
videotestsrc name="webcam"
multifilesrc name="logo" location="logo.jpg"
videomixer name=vmix
sink_0::xpos=0 sink_0::ypos=0 sink_0::zorder=0
sink_1::xpos=640 sink_1::ypos=0 sink_1::zorder=1
sink_2::xpos=640 sink_2::ypos=240 sink_2::zorder=2
tee name="t"
O usted podría lograr todo esto en unos 30 segundos con Adobe After Effects (concedida el precio es ligeramente superior a gratis) – Adam