Skip to content

steven-varga/chromakey

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

chromakey

live green screen solution with ffmpeg and v4l2 pseudo device

In order to get this work you need to have a recent kernel with v4l2 loopback device enabled, and ffmpeg 3.4 or greater with chroma key support. Make sure to check which camera device to use: v4l2-ctl --list-devices

Then load

sudo apt install v4l2loopback-utils v4l2loopback-dkms ffmpeg sudo modprobe v4l2loopback video_nr=2 exclusive_caps=1 card_label="green-screen"

The exclusive_caps=1 makes it work with chrome browser and google conference, shamelessly lifted from here Thanks figuring this out!

To check if mjpg is supported:

v4l2-ctl --list-formats -d /dev/video3 ioctl: VIDIOC_ENUM_FMT	Type: Video Capture	[0]: 'YUYV' (YUYV 4:2:2)	[1]: 'H264' (H.264, compressed)	[2]: 'MJPG' (Motion-JPEG, compressed) 

Download and copy this script into /usr/local/bin then execute with

when background image is specified, the behavior is same is before:

chromakey -i path_to_background_image.png -c /dev/video3 -o /dev/video2 

alternatively you can grab an area of the screen:

chromakey -c /dev/video3 -o /dev/video2 -x_pos=0 y_pos=800 
steven@io:~/projects/chromakey$ ./chromakey -h chromakey replaces specified color key with background image of live video when '--image' is not specified it grabs the screen at '--x_pos' and '--y_pos' of area specified with '--size' USAGE: chromakey [arguments] ARGS: -h, --help # This help message -v, --verbose # Enable verbose messages -k, --key # specify color key (DEFAULT: green) -m, --similarity # chromakey similarity (DEFAULT: 0.19) -b, --blend # specify color key (DEFAULT: 0.07) -s, --size # video stream size in pixels: 1280x720 -i, --image # specify image for background (DEFAULT: ) -c, --camera # the real input camera device path (DEFAULT: /dev/video0) -o, --output # v4l2 pseudo device (DEFAULT: /dev/video1) -r, --rate # frame rate (DEFAULT: 30) -x, --x_pos # xgrab: x position (DEFAULT: 0) -y, --y_pos # xgrab: y position (DEFAULT: 0) Copyright (c) <Steven Varga 2010-2021> <steven@vargaconsulting.ca, Toronto, On> 

The live chromakey-ed videostream will be available on specified output device, usually /dev/video1 and can be checked with ay v4l2 compatible device here is firefox: https://webrtc.github.io/samples/src/content/devices/input-output/ Skype also known to work.

About

live green screen solution with ffmpeg and v4l2 pseudo device

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published