Вот простая (рабочая) установка с использованием gst-launch (установите пакет gstreamer-tools в Ubuntu / Debian):
gst-launch v4l2src device = / dev / video1! видеомасштаб ffmpegcolorspace! video / x-raw-yuv, ширина = 640, высота = 480! Видеобокс border-alpha = 0 осталось = -640! название видеомиксера = микс! ffmpegcolorspace! xvimagesink v4l2src! видеомасштаб ffmpegcolorspace! video / x-raw-yuv, ширина = 640, высота = 480! Видеобокс справа = -640! перемешайте.
Это в основном читает два видео с использованием видео 4 linux 2, одно с устройства по умолчанию, а другое с / dev / video1. Возможно, вы захотите изменить это, если ваши настройки отличаются.
Первая часть (не выделена жирным шрифтом) отвечает за чтение видео с устройства захвата, согласование размера и цветового пространства (videoscale! Ffmpegcolorspace), форсирование определенного формата видео (video / x-raw-yuv, width = 640). , высота = 480), добавление 640 прозрачных пикселей слева (тем самым перемещая изображение вправо) и создание видеомиксера с названием «mix». Наконец, он снова автоматически согласовывает цветовое пространство и отображает результат в окне XVideo.
Вторая часть (жирным шрифтом) читает второй видеопоток (с устройства захвата по умолчанию добавьте device = / dev / videoX , чтобы выбрать другое устройство), затем выполните то же цветовое пространство, согласование размера и выбор формата видео, как для первого потока, затем перемещает видео на 640 пикселей влево и передает результат в элемент с именем mix (наш видеомикшер). Точка в конце обязательна и указывает gstreamer искать существующий элемент с именем «mix» вместо поиска фильтра.
Вы можете заменить v4l2src device = / dev / video1 на filesrc location = video.avi! decodebin для получения входных данных из видеофайла.
Замените xvimagesink на jpegenc! avimux! fileink location = out.avi , чтобы записать результат в видеофайл.