I want to send video to webcam device on Ubuntu which is loaded on /dev/video0

I've already seen this command that send desktop to it but is there any way to send video to it?

ffmpeg -f x11grab -r 15 -s 1280x720 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0

I should mention that i specifically want to use ffmpeg command.

  • It's my understanding that a webcam is an video input device so I would say no. What webcam do you have that supports receiving video? – Elder Geek Feb 8 '17 at 19:12
  • @ElderGeek there is no webcam.it is virtual one which need to have video on it. – dsddd Feb 8 '17 at 19:15
  • HAve you tried using a pipe? – Elder Geek Feb 8 '17 at 19:25
  • Information is available here – Elder Geek Feb 8 '17 at 19:29
  • 1
    Possible duplicate of Fake a webcam using a video loopback device? (although not necessarily using ffmpeg). – llogan Feb 8 '17 at 19:39

You can do this with v4l2loopback. First you need to install it:

Install v4l2loopback

Easy: Install v4l2loopback from the repository

sudo apt install v4l2loopback-dkms
sudo modprobe v4l2loopback

Hard: Compile v4l2loopback

If it's not in the repository for your Ubuntu version you can compile it:

sudo apt-get install build-essential checkinstall
wget https://github.com/umlaeute/v4l2loopback/archive/master.zip
unzip master.zip
cd v4l2loopback-master
sudo checkinstall --pkgname=v4l2loopback --pkgversion="$(date +%Y%m%d%H%M)-git" --default
sudo modprobe v4l2loopback


If you want to remove the package you compiled:

sudo apt-get remove v4l2loopback

Usage examples

Now run ffmpeg. Example for desktop:

ffmpeg -f x11grab -framerate 15 -video_size 1280x720 -i :0.0 -f v4l2 /dev/video0

Example for a video input:

ffmpeg -re -i input.mp4 -map 0:v -f v4l2 /dev/video0

You can view it with ffplay:

ffplay /dev/video0

Note that the actual video number may vary depending if an existing device is already using /dev/video0.

  • where can i specify my video ? – dsddd Feb 8 '17 at 21:08
  • @dsddd Example updated. – llogan Feb 8 '17 at 21:13
  • I installed the package, but I'm stuck with an error on both examples, either the x11grab or the the mp4 video give me the same [v4l2 @ 0x55ebc0cfdc40] ioctl(VIDIOC_G_FMT): Invalid argument Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument Error initializing output stream 0:0 -- Conversion failed! Is there something else I should do? some dependencies I missed? – Sabbin Jan 29 at 16:43
  • @Sabbin Please show your command and provide a link to a pastebin of the log. – llogan Jan 30 at 22:27
  • @llogan following your example above, I have this command ffmpeg -re -i 1.mp4 -map 0:v -f v4l2 /dev/video0 pastebin.com/9eDK0NTN, if I try the command to run for desktop ffmpeg -f x11grab -framerate 15 -video_size 1280x720 -i :1 -f v4l2 /dev/video0 I get this error pastebin.com/xN6uZJR6, also the folder /dev/video0 has rights for write – Sabbin Feb 4 at 7:37

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.