Skip to content

Instantly share code, notes, and snippets.

@docPhil99
Last active April 30, 2024 20:43
Show Gist options
  • Star 48 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save docPhil99/d8667de1e8c5e96e2203f2bc0f28f89d to your computer and use it in GitHub Desktop.
Save docPhil99/d8667de1e8c5e96e2203f2bc0f28f89d to your computer and use it in GitHub Desktop.
Mac webcam FFmpeg

#Capture and stream a webcam To capture using the iSight camera on a Mac, or infact any other webcam connected to the Mac, we can use FFmpeg. First get a list of the devices installed.

ffmpeg -f avfoundation -list_devices true -i "" 

This will list the aviable video and audio devices.

The below will capture at 30fps and the set video size to a file. ffmpeg -f avfoundation -framerate 30 -video_size 640x480 -i "0:none" out.avi

The -i 0:none will select the 0 indexed video source and no audio.

We can stream this to the network with

ffmpeg -f avfoundation -framerate 30 -video_size 640x480 -i "0:none" -vcodec libx264 -preset ultrafast -tune zerolatency -pix_fmt yuv422p -f mpegts udp://localhost:12345

This can be viewed using VLC or OpenCV, although there maybe a significant lactancy in the stream.

To save the stream to file, it might be useful to save it as multiple files so out.avi does not get too big. We can change the output file every minute or so with the segment filter

For example, this captures my webcam and saves to a new file every 60 seconds. ffmpeg -f avfoundation -framerate 25 -video_size 640x480 -i "0:none" -flags +global_header -f segment -segment_time 60 -segment_format_options movflags=+faststart -reset_timestamps 1 test%d.mp4

@shivam-51
Copy link

@docPhil99 what would be the command for mac? v42l does not work on my machine.

@vudzero
Copy link

vudzero commented Aug 31, 2022

I'm also looking for a way to list webcam supported formats on MacOS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment