mdk-sdk icon indicating copy to clipboard operation
mdk-sdk copied to clipboard

本地摄像头在设备管理器中的名称是一样的,通过名称无法区分不同的摄像头且不能同时打开

Open XXOO9 opened this issue 5 months ago • 3 comments

环境: win10 / win11 + Qt 5.15.2 + MSVC2019 大佬,我本地插着四个USB摄像头,这四个摄像头在设备管理器中的名称是一样的,都叫AFN_Cap video 我想通过steMedia 接口同时打开这四个摄像头的话是不行的, 是我使用的方法不对吗

使用的是MDK-SDK中的qml示例工程

        MDKPlayer {
            id: player1
            Layout.preferredWidth: parent.width / gridLayout.cols
            Layout.preferredHeight: parent.height / gridLayout.rows
            source: 'avdevice://dshow:video=AFN_Cap video'
            Component.onCompleted: player1.play() // to early, will stopped by setSource()
        }

        MDKPlayer {
            id: player2
            Layout.preferredWidth: parent.width / gridLayout.cols
            Layout.preferredHeight: parent.height / gridLayout.rows
            source: 'avdevice://dshow:video=AFN_Cap video'
            Component.onCompleted: player2.play() // to early, will stopped by setSource()
        }

        MDKPlayer {
            id: player3
            Layout.preferredWidth: parent.width / gridLayout.cols
            Layout.preferredHeight: parent.height / gridLayout.rows
            source: 'avdevice://dshow:video=AFN_Cap video'
            Component.onCompleted: play() // to early, will stopped by setSource()
        }

        MDKPlayer {
            id: player4
            Layout.preferredWidth: parent.width / gridLayout.cols
            Layout.preferredHeight: parent.height / gridLayout.rows
            source: 'avdevice://dshow:video=AFN_Cap video'
            Component.onCompleted: play() // to early, will stopped by setSource()
        }

XXOO9 avatar Sep 05 '25 02:09 XXOO9

大佬,我找到一个办法了,因为我看你是使用ffmpeg的命令格式打开摄像头的,所以我沿着这个思路试了一下,使用: ffmpeg -list_devices true -f dshow -i dummy 获取到相机的一些额外信息,例如: @device_pnp_\?\usb#vid_0001&pid_ff02&mi_00#6&18fabf1&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global

Image

然后把source填写成: source: "avdevice://dshow:video=@device_pnp_\\?\usb#vid_0001&pid_ff02&mi_00#6&18fabf1&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"

也可以打开摄像头,不知道这种方法咋样😀

XXOO9 avatar Sep 05 '25 05:09 XXOO9

我不清楚,能用就行,ffmpeg和命令行一样

wang-bin avatar Sep 05 '25 12:09 wang-bin

终极解决方案看这里 http://www.qtcdev.com/video_system/#137-%E6%89%93%E5%BC%80%E6%9C%AC%E5%9C%B0%E6%91%84%E5%83%8F%E5%A4%B4

feiyangqingyun avatar Sep 17 '25 00:09 feiyangqingyun