DEV Community

Salad Lam
Salad Lam

Posted on

Access webcam by ffmpeg in Windows

In Windows, access multimedia devices such as webcam is through the DirectShow library.

Display available devices

ffmpeg -hide_banner -f dshow -list_devices true -i dummy
[dshow @ 000001ff6c6f1540] "Logi C615 HD WebCam" (video)
[dshow @ 000001ff6c6f1540]   Alternative name "@device_pnp_\\?\usb#vid_046d&pid_082c&mi_02#7&67fa7ba&0&0002#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
[dshow @ 000001ff6c6f1540] "Intel Virtual Camera" (video)
[dshow @ 000001ff6c6f1540]   Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{49C7D45E-2F4B-40FF-BEF7-A7D95B2CD31D}"
[dshow @ 000001ff6c6f1540] "Microphone (Logi C615 HD WebCam)" (audio)
[dshow @ 000001ff6c6f1540]   Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{C332401D-216A-4F5F-8354-B5A0FAEC6C35}"
[in#0 @ 000001ff6c6adc00] Error opening input: Immediate exit requested
Error opening input file dummy.
Enter fullscreen mode Exit fullscreen mode

Display capacity of a video device

ffmpeg -hide_banner -f dshow -list_options true -i video="Logi C615 HD WebCam"
[dshow @ 000001ee64890200] DirectShow video device options (from video devices)
[dshow @ 000001ee64890200]  Pin "Capture" (alternative pin name "0")
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=640x480 fps=5 max s=640x480 fps=30
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=640x480 fps=5 max s=640x480 fps=30 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=160x120 fps=5 max s=160x120 fps=30
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=160x120 fps=5 max s=160x120 fps=30 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=176x144 fps=5 max s=176x144 fps=30
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=176x144 fps=5 max s=176x144 fps=30 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=320x240 fps=5 max s=320x240 fps=30
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=320x240 fps=5 max s=320x240 fps=30 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=432x240 fps=5 max s=432x240 fps=30
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=432x240 fps=5 max s=432x240 fps=30 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=352x288 fps=5 max s=352x288 fps=30
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=352x288 fps=5 max s=352x288 fps=30 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=640x360 fps=5 max s=640x360 fps=30
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=640x360 fps=5 max s=640x360 fps=30 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=800x448 fps=5 max s=800x448 fps=30
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=800x448 fps=5 max s=800x448 fps=30 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=864x480 fps=5 max s=864x480 fps=24
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=864x480 fps=5 max s=864x480 fps=24 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=1024x576 fps=5 max s=1024x576 fps=15
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=1024x576 fps=5 max s=1024x576 fps=15 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=800x600 fps=5 max s=800x600 fps=24
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=800x600 fps=5 max s=800x600 fps=24 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=960x720 fps=5 max s=960x720 fps=15
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=960x720 fps=5 max s=960x720 fps=15 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=1280x720 fps=5 max s=1280x720 fps=10
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=1280x720 fps=5 max s=1280x720 fps=10 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=1600x896 fps=5 max s=1600x896 fps=7.5
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=1600x896 fps=5 max s=1600x896 fps=7.5 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=1920x1080 fps=5 max s=1920x1080 fps=5
[dshow @ 000001ee64890200]   pixel_format=yuyv422  min s=1920x1080 fps=5 max s=1920x1080 fps=5 (tv, bt470bg/bt709/unknown, topleft)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=640x480 fps=5 max s=640x480 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=640x480 fps=5 max s=640x480 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=160x120 fps=5 max s=160x120 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=160x120 fps=5 max s=160x120 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=176x144 fps=5 max s=176x144 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=176x144 fps=5 max s=176x144 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=320x240 fps=5 max s=320x240 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=320x240 fps=5 max s=320x240 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=432x240 fps=5 max s=432x240 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=432x240 fps=5 max s=432x240 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=352x288 fps=5 max s=352x288 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=352x288 fps=5 max s=352x288 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=640x360 fps=5 max s=640x360 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=640x360 fps=5 max s=640x360 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=800x448 fps=5 max s=800x448 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=800x448 fps=5 max s=800x448 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=864x480 fps=5 max s=864x480 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=864x480 fps=5 max s=864x480 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=1024x576 fps=5 max s=1024x576 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=1024x576 fps=5 max s=1024x576 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=800x600 fps=5 max s=800x600 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=800x600 fps=5 max s=800x600 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=960x720 fps=5 max s=960x720 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=960x720 fps=5 max s=960x720 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=1280x720 fps=5 max s=1280x720 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=1280x720 fps=5 max s=1280x720 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=1600x896 fps=5 max s=1600x896 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=1600x896 fps=5 max s=1600x896 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=1920x1080 fps=5 max s=1920x1080 fps=30
[dshow @ 000001ee64890200]   vcodec=mjpeg  min s=1920x1080 fps=5 max s=1920x1080 fps=30 (pc, bt470bg/bt709/unknown, center)
[in#0 @ 000001ee64854500] Error opening input: Immediate exit requested
Error opening input file video=Logi C615 HD WebCam.
Enter fullscreen mode Exit fullscreen mode

Display capacity of a audio device

ffmpeg -hide_banner -f dshow -list_options true -i audio="Microphone (Logi C615 HD WebCam)"
[dshow @ 0000017b378e2140] DirectShow audio only device options (from audio devices)
[dshow @ 0000017b378e2140]  Pin "Capture" (alternative pin name "Capture")
[dshow @ 0000017b378e2140]   ch= 2, bits=16, rate= 44100
    Last message repeated 1 times
[dshow @ 0000017b378e2140]   ch= 1, bits=16, rate= 44100
[dshow @ 0000017b378e2140]   ch= 2, bits=16, rate= 32000
[dshow @ 0000017b378e2140]   ch= 1, bits=16, rate= 32000
[dshow @ 0000017b378e2140]   ch= 2, bits=16, rate= 22050
[dshow @ 0000017b378e2140]   ch= 1, bits=16, rate= 22050
[dshow @ 0000017b378e2140]   ch= 2, bits=16, rate= 11025
[dshow @ 0000017b378e2140]   ch= 1, bits=16, rate= 11025
[dshow @ 0000017b378e2140]   ch= 2, bits=16, rate=  8000
[dshow @ 0000017b378e2140]   ch= 1, bits=16, rate=  8000
[dshow @ 0000017b378e2140]   ch= 2, bits= 8, rate= 44100
[dshow @ 0000017b378e2140]   ch= 1, bits= 8, rate= 44100
[dshow @ 0000017b378e2140]   ch= 2, bits= 8, rate= 22050
[dshow @ 0000017b378e2140]   ch= 1, bits= 8, rate= 22050
[dshow @ 0000017b378e2140]   ch= 2, bits= 8, rate= 11025
[dshow @ 0000017b378e2140]   ch= 1, bits= 8, rate= 11025
[dshow @ 0000017b378e2140]   ch= 2, bits= 8, rate=  8000
[dshow @ 0000017b378e2140]   ch= 1, bits= 8, rate=  8000
[dshow @ 0000017b378e2140]   ch= 2, bits=16, rate= 48000
[dshow @ 0000017b378e2140]   ch= 1, bits=16, rate= 48000
[dshow @ 0000017b378e2140]   ch= 2, bits=16, rate= 96000
[dshow @ 0000017b378e2140]   ch= 1, bits=16, rate= 96000
[in#0 @ 0000017b3789bac0] Error opening input: Immediate exit requested
Error opening input file audio=Microphone (Logi C615 HD WebCam).
Enter fullscreen mode Exit fullscreen mode

create a avi video from webcam's mjpeg source, without reencode, and stop recording after 30s

ffmpeg -hide_banner -f dshow -t 30 -vcodec mjpeg -video_size 1920x1080 -framerate 30 -i video="Logi C615 HD WebCam" -vcodec copy output.avi
[mjpeg @ 0000024aec2e57c0] unable to decode APP fields: Invalid data found when processing input
Input #0, dshow, from 'video=Logi C615 HD WebCam':
  Duration: N/A, start: 253712.074389, bitrate: N/A
  Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/bt709/unknown), 1920x1080, 30 fps, 30 tbr, 10000k tbn
Output #0, avi, to 'output.avi':
  Metadata:
    ISFT            : Lavf60.16.100
  Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/bt709/unknown), 1920x1080, q=2-31, 30 fps, 30 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[out#0/avi @ 0000024aec55df00] video:160382kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.029904%
size=  160430kB time=00:00:29.93 bitrate=43901.2kbits/s speed=0.998x
Enter fullscreen mode Exit fullscreen mode

Top comments (0)