如何使用 FFmpeg 获取 DirectShow 设备信息并展示
Posted on Wed, 25 Dec 2024 11:14:34 +0800 by LiangMingJian
概述
DirectShow 设备是指系统接入的视频音频设备,如摄像头,麦克风等。通过列出 DirectShow 设备,用户可以找到所有可使用的设备名称,然后通过 ffplay
进行播放。
列出所有设备
ffmpeg -list_devices true -f dshow -i dummy
输出:
[dshow @ 00000...] "screen-capture-recorder" (video)
[dshow @ 00000...] Alternative name "@device_sw_..."
[dshow @ 00000...] "OBS Virtual Camera" (video)
[dshow @ 00000...] Alternative name "@device_sw_..."
[dshow @ 00000...] "VoiceMeeter Output (VB-Audio VoiceMeeter VAIO)" (audio)
[dshow @ 00000...] Alternative name "@device_cm_..."
[dshow @ 00000...] "virtual-audio-capturer" (audio)
[dshow @ 00000...] Alternative name "@device_sw_..."
可以看到,这里有视频设备 screen-capture-recorder 和 OBS Virtual Camera,音频设备 VoiceMeeter Output 和 virtual-audio-capturer。
在使用时,可以直接使用设备名称,也可以使用 Alternative name 别名。
播放
ffplay -f dshow -i video="OBS Virtual Camera"
使用别名播放
ffplay -f dshow -i video="@device_sw_..."
限定分辨率
ffplay -s 1280x720 -f dshow -i video="OBS Virtual Camera"
ffplay -s 424x240 -f dshow -i video="OBS Virtual Camera"
同名设备指定
ffmpeg -f dshow -video_device_number 0 -i video="USB Video"