#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
avfoundation is for OS X
for linux use:
For Windows, you will need something different (see, https://trac.ffmpeg.org/wiki/Capture/Webcam#Listdevices1)