Skip to content

Instantly share code, notes, and snippets.

@Te4g
Forked from docPhil99/macFFmpeg.md
Created September 2, 2021 09:17
Show Gist options
  • Select an option

  • Save Te4g/7ba4c9370ba48c59e77136a32b99f841 to your computer and use it in GitHub Desktop.

Select an option

Save Te4g/7ba4c9370ba48c59e77136a32b99f841 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

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