如何从ffmpeg -list_options输出获取USB采集卡完整格式列表
获取USB采集设备完整支持格式/帧率列表的方法
方法1:FFmpeg批量验证脚本(适配VB6调用)
dshow的-list_options只会返回帧率范围,不会列出所有离散有效值。你可以写个批处理脚本,遍历常见帧率值,用FFmpeg尝试启动采集,记录能成功的帧率:
- 新建
test_fps.bat,内容如下:
@echo off set "dev=USB3.0 capture" set "res=1920x1080" set "codec=mjpeg" set "fps_list=10 20 25 30 50 60" echo Testing supported FPS for %res% %codec%... for %%f in (%fps_list%) do ( ffmpeg -f dshow -video_size %res% -framerate %%f -pixel_format mjpeg -i video="%dev%" -t 0.1 -f null - 2>nul if not errorlevel 1 ( echo SUPPORTED: %%f FPS ) else ( echo UNSUPPORTED: %%f FPS ) ) pause
- 运行脚本后,会自动输出该分辨率+编码组合下所有支持的帧率。VB6里可以通过
Shell调用这个批处理,再读取输出结果展示。
方法2:用Windows自带DirectShow工具查看
Windows自带的amcap.exe(如果系统没预装,可从微软旧SDK工具包获取)能直接查看设备所有可用格式:
- 打开
amcap.exe,点击菜单栏Options->Video Capture Filter - 在弹出的属性窗口切换到
Video Pin标签页,就能看到所有支持的分辨率、编码格式和对应的离散帧率,这是最直观的方式。
方法3:查看设备注册表信息
采集设备的支持参数会存在注册表中,手动查看步骤:
- 按
Win+R输入regedit打开注册表编辑器 - 导航到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\Devices\Video Capture - 找到你的USB采集设备对应的子项,展开
Capabilities下的VideoFormats,里面会列出所有支持的格式和帧率参数。
内容的提问来源于stack exchange,提问作者gaamaa
相关产品推荐
相关产品推荐

