El uso de ffplay para obtener una vista previa de una cámara web USB usando DirectShow en Windows 10 muestra una pantalla negra

El uso de ffplay para obtener una vista previa de una cámara web USB usando DirectShow en Windows 10 muestra una pantalla negra

Cuando se usa ffplay para obtener una vista previa de una cámara web USB usando el filtro DirectShow en Windows 10 Pro, aparece una pantalla negra.

Probé CamDiag32 y CamDiag64, ambos muestran que falta quartz.dll pero aparece un "error de acceso denegado" cuando hago clic derecho y elijo corregir. CamDiag64 aún puede obtener una vista previa de la cámara web, pero CamDiag32 muestra la pantalla en negro. Probé regsvr32 en el símbolo del sistema con privilegios de administrador tanto para Quartz en System32 como para SysWOW64. Parece que se registró correctamente, pero CamDiagXX todavía se queja de los problemas de quartz.dll.

También probé GraphEdit al fijar el pin de captura en el renderizado de video y también aparece una pantalla negra.

No estoy seguro de la causa raíz del problema.

C:\Temp>ffplay.exe -f dshow -i "video=Vimicro USB Camera (Altair)"
ffplay version N-94129-g098ab93257 Copyright (c) 2003-2019 the FFmpeg developers
  built with gcc 9.1.1 (GCC) 20190621
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
  libavutil      56. 29.100 / 56. 29.100
  libavcodec     58. 53.100 / 58. 53.100
  libavformat    58. 28.101 / 58. 28.101
  libavdevice    58.  7.100 / 58.  7.100
  libavfilter     7. 55.100 /  7. 55.100
  libswscale      5.  4.101 /  5.  4.101
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, dshow, from 'video=Vimicro USB Camera (Altair)':B f=0/0
  Duration: N/A, start: 2664.043000, bitrate: N/A
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 30 fps, 30 tbr, 10000k tbn, 10000k tbc
2734.21 M-V:  0.000 fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0
C:\Temp>ffplay.exe -list_devices true -f dshow -i dummy
ffmpeg version N-94129-g098ab93257 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9.1.1 (GCC) 20190621
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
  libavutil      56. 29.100 / 56. 29.100
  libavcodec     58. 53.100 / 58. 53.100
  libavformat    58. 28.101 / 58. 28.101
  libavdevice    58.  7.100 / 58.  7.100
  libavfilter     7. 55.100 /  7. 55.100
  libswscale      5.  4.101 /  5.  4.101
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
[dshow @ 0000022188bb8a00] DirectShow video devices (some may be both video and audio devices)
[dshow @ 0000022188bb8a00]  "Vimicro USB Camera (Altair)"
[dshow @ 0000022188bb8a00]     Alternative name "@device_pnp_\\?\usb#vid_0ac8&pid_3450&mi_00#6&22d596c2&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
dummy: Immediate exit requested
C:\Temp>ffplay.exe -f dshow -i "video=Vimicro USB Camera (Altair)" -list_options true
ffplay version N-94129-g098ab93257 Copyright (c) 2003-2019 the FFmpeg developers
  built with gcc 9.1.1 (GCC) 20190621
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
  libavutil      56. 29.100 / 56. 29.100
  libavcodec     58. 53.100 / 58. 53.100
  libavformat    58. 28.101 / 58. 28.101
  libavdevice    58.  7.100 / 58.  7.100
  libavfilter     7. 55.100 /  7. 55.100
  libswscale      5.  4.101 /  5.  4.101
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
[dshow @ 000001b0b698ca40] DirectShow video device options (from video devices)
[dshow @ 000001b0b698ca40]  Pin "Capture" (alternative pin name "0")
[dshow @ 000001b0b698ca40]   pixel_format=yuyv422  min s=640x480 fps=30 max s=640x480 fps=30
[dshow @ 000001b0b698ca40]   pixel_format=yuyv422  min s=640x480 fps=30 max s=640x480 fps=30
[dshow @ 000001b0b698ca40]   pixel_format=yuyv422  min s=352x288 fps=30 max s=352x288 fps=30
[dshow @ 000001b0b698ca40]   pixel_format=yuyv422  min s=352x288 fps=30 max s=352x288 fps=30
[dshow @ 000001b0b698ca40]   pixel_format=yuyv422  min s=320x240 fps=30 max s=320x240 fps=30
[dshow @ 000001b0b698ca40]   pixel_format=yuyv422  min s=320x240 fps=30 max s=320x240 fps=30
[dshow @ 000001b0b698ca40]   pixel_format=yuyv422  min s=176x144 fps=30 max s=176x144 fps=30
[dshow @ 000001b0b698ca40]   pixel_format=yuyv422  min s=176x144 fps=30 max s=176x144 fps=30
[dshow @ 000001b0b698ca40]   pixel_format=yuyv422  min s=160x120 fps=30 max s=160x120 fps=30
[dshow @ 000001b0b698ca40]   pixel_format=yuyv422  min s=160x120 fps=30 max s=160x120 fps=30
video=Vimicro USB Camera (Altair): Immediate exit requested f=0/0
    nan    :  0.000 fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0

Respuesta1

Error de sintaxis, aquí está la corrección.

ffplay.exe -f dshow -i vídeo="Cámara Vimicro USB (Altair)"

información relacionada