I have three videos:
- lecture taken from the camcorder
- video recording of the computer desktop used in the lecture
- and video on the board
I want to create the final video with the three components that occupy a specific area of the screen.
Is it open source software that will allow me to do this (mencoder, ffmpeg, virtualdub ..)? What do you recommend?
Or is there a C / C ++ API that will allow me to create something similar programmatically?
Edit
There will be many recorded lectures in the future. This means that I need a general / automatic solution.
I am currently checking if I can write an application with GStreamer to complete this task. Any comments on this?
Solved!
I managed to do this using the GStreamer video mixer element. I use the gst-launch syntax to create the pipeline, and then load it with gst_parse_launch. This is a really effective way to implement complex conveyors.
Here, the pipeline, which receives two incoming video streams and the logo image, mixes them into one stream and duplicates it so that it is simultaneously displayed and stored on disk.
desktop. ! queue
webcam. ! queue
logo. ! queue
vmix. ! t.
t. ! queue
t. ! queue
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"
source
share