什么是ffmpeg dshow网络摄像头属性保存和加载的正确方式?

3

命令(PS == Windows PowerShell):

PS D:\> ffmpeg -f dshow -show_video_device_dialog True -video_device_save some_profile.txt -i 'video=MicrosoftR LifeCam Studio(TM)'

FFmpeg 头部:

ffmpeg version git-2020-06-04-7f81785 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.3.1 (GCC) 20200523
  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-libsrt --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-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 49.100 / 56. 49.100
  libavcodec     58. 90.100 / 58. 90.100
  libavformat    58. 44.100 / 58. 44.100
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 84.100 /  7. 84.100
  libswscale      5.  6.101 /  5.  6.101
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100

在相机设置对话框中点击“确定”、“取消”或“关闭”后出现错误(创建了空文件)。在没有对话框的情况下尝试,问题仍然存在。
[dshow @ 0715de40] Query for IPersistStream failed.
video=Microsoft® LifeCam Studio(TM): I/O error

我认为问题出在摄像头端,但我不排除我的视力问题(在文档中没有找到任何保存设置或所需命令选项的示例)。

也许有其他方法可以保存/加载网络摄像头属性?

1个回答

2

保存/加载表示网络摄像头的DirectShow对象的属性的能力是可选的。话虽如此,“查询...失败”和“I/O错误”并不是真正的错误。这是非致命性错误。相机方面没有问题。

网络摄像头驱动程序实现可能具有其自己的内部持久性,例如,当您更改某些属性(如对比度设置)时,它可能会被存储并用于所有使用摄像头的应用程序。


但是如何控制相机属性呢?在我的情况下,自动对焦效果不佳,所以我需要禁用它。我看到的唯一方法就是那个机制。 DirectShow提供了通过对话框访问的方式,但模拟鼠标/键盘并不是我想要的机会。而且USB访问似乎像地狱般的折磨。 - C0oo1D
1
要控制/禁用自动对焦,您需要使用IAMCameraControl接口CameraControl_Focus属性(相关问题)。刚刚检查了一下-是的,根据我的数据,Microsoft® LifeCam Studio(TM)实现了它。 - Roman R.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接