参考源网络地址:https://trac.ffmpeg.org/wiki/DirectShow
首先,利用ffmpeg查看摄像头的列表:
C:\Windows\system32> ffmpeg -list_devices true -f dshow -i dummy
ffmpeg version 2020-12-24-git-9a0f5e412a-full_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 10.2.0 (Rev5, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libglslang --enable-vulkan --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
libavutil 56. 62.100 / 56. 62.100
libavcodec 58.115.102 / 58.115.102
libavformat 58. 65.100 / 58. 65.100
libavdevice 58. 11.103 / 58. 11.103
libavfilter 7. 94.100 / 7. 94.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
[dshow @ 0000017fd346b100] DirectShow video devices (some may be both video and audio devices)
[dshow @ 0000017fd346b100] "Webcam C170"
[dshow @ 0000017fd346b100] Alternative name "@device_pnp_\\?\usb#vid_046d&pid_082b&mi_00#6&e8979fb&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
[dshow @ 0000017fd346b100] "OBS Virtual Camera"
[dshow @ 0000017fd346b100] Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{A3FCE0F5-3493-419F-958A-ABA1250EC20B}"
[dshow @ 0000017fd346b100] DirectShow audio devices
[dshow @ 0000017fd346b100] "麦克风 (Webcam C170)"
[dshow @ 0000017fd346b100] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{79AED286-26B2-4725-A588-48DBCA31056F}"
[dshow @ 0000017fd346b100] "麦克风 (Realtek High Definition Audio)"
[dshow @ 0000017fd346b100] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{4D723416-0C1E-4F66-8743-ABF0DF091FF6}"
[dshow @ 0000017fd346b100] "立体声混音 (Realtek High Definition Audio)"
[dshow @ 0000017fd346b100] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{951C2BA7-DC91-4C0D-9C9E-BDF905CEA3B3}"
dummy: Immediate exit requested
从列表中找到摄像头的名称,以上可以看到我的摄像头是"Webcam C170"
然后用ffplay播放此摄像头:
C:\Windows\system32>ffplay -f dshow -i video="Webcam C170"
ffplay version 2020-12-24-git-9a0f5e412a-full_build-www.gyan.dev Copyright (c) 2003-2020 the FFmpeg developers
built with gcc 10.2.0 (Rev5, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libglslang --enable-vulkan --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
libavutil 56. 62.100 / 56. 62.100
libavcodec 58.115.102 / 58.115.102
libavformat 58. 65.100 / 58. 65.100
libavdevice 58. 11.103 / 58. 11.103
libavfilter 7. 94.100 / 7. 94.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
Input #0, dshow, from 'video=Webcam C170': 0KB sq= 0B f=0/0
Duration: N/A, start: 7285.290000, bitrate: N/A
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 30 fps, 30 tbr, 10000k tbn, 10000k tbc
7288.53 M-V: 0.006 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
E:\SampleCode\video>ffmpeg -list_options true -f dshow -i video="Webcam C170"
ffmpeg version 2020-12-24-git-9a0f5e412a-full_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 10.2.0 (Rev5, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libglslang --enable-vulkan --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
libavutil 56. 62.100 / 56. 62.100
libavcodec 58.115.102 / 58.115.102
libavformat 58. 65.100 / 58. 65.100
libavdevice 58. 11.103 / 58. 11.103
libavfilter 7. 94.100 / 7. 94.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
[dshow @ 0000022c13ecb0c0] DirectShow video device options (from video devices)
[dshow @ 0000022c13ecb0c0] Pin "捕获" (alternative pin name "0")
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=640x480 fps=15 max s=640x480 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=640x480 fps=15 max s=640x480 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=352x288 fps=15 max s=352x288 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=352x288 fps=15 max s=352x288 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=320x240 fps=15 max s=320x240 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=320x240 fps=15 max s=320x240 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=176x144 fps=15 max s=176x144 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=176x144 fps=15 max s=176x144 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=160x120 fps=15 max s=160x120 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=160x120 fps=15 max s=160x120 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=544x288 fps=15 max s=544x288 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=544x288 fps=15 max s=544x288 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=432x240 fps=15 max s=432x240 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=432x240 fps=15 max s=432x240 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=320x176 fps=15 max s=320x176 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=320x176 fps=15 max s=320x176 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=640x360 fps=15 max s=640x360 fps=30
[dshow @ 0000022c13ecb0c0] pixel_format=yuyv422 min s=640x360 fps=15 max s=640x360 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=640x480 fps=15 max s=640x480 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=640x480 fps=15 max s=640x480 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=352x288 fps=15 max s=352x288 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=352x288 fps=15 max s=352x288 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=320x240 fps=15 max s=320x240 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=320x240 fps=15 max s=320x240 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=176x144 fps=15 max s=176x144 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=176x144 fps=15 max s=176x144 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=160x120 fps=15 max s=160x120 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=160x120 fps=15 max s=160x120 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=544x288 fps=15 max s=544x288 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=544x288 fps=15 max s=544x288 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=432x240 fps=15 max s=432x240 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=432x240 fps=15 max s=432x240 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=320x176 fps=15 max s=320x176 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=320x176 fps=15 max s=320x176 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=640x360 fps=15 max s=640x360 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=640x360 fps=15 max s=640x360 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=800x480 fps=15 max s=800x480 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=800x480 fps=15 max s=800x480 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=1024x768 fps=15 max s=1024x768 fps=30
[dshow @ 0000022c13ecb0c0] vcodec=mjpeg min s=1024x768 fps=15 max s=1024x768 fps=30
video=Webcam C170: Immediate exit requested