You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium单Driver会话能否使用两个不同文件模拟摄像头

在单个Selenium会话中切换模拟摄像头视频文件的方法

答案是可以实现,但直接通过启动参数--use-file-for-fake-video-capture没法中途修改——这个参数是Chrome启动时加载的,会话启动后就没法直接更改。不过可以通过以下两种方式绕开限制:

方法一:用Chrome DevTools Protocol(CDP)动态切换

这是最靠谱的方式,利用Chrome的CDP接口直接覆盖视频捕获设备的源文件,步骤如下:

  1. 启动Selenium Driver时,可选指定一个初始视频文件,或者不指定(默认会用Chrome自带的测试视频)
  2. 当需要切换到第二个视频文件时,调用CDP的Media.setVideoCaptureDeviceOverride接口,传入新文件的绝对路径
  3. 如果要切回第一个文件,再次调用这个接口传入第一个文件的路径即可

举个Python代码示例:

# 切换到第二个视频文件
driver.execute_cdp_cmd("Media.setVideoCaptureDeviceOverride", {
    "deviceId": "",  # 留空表示覆盖默认摄像头设备
    "videoFile": "/绝对路径/第二个视频文件.y4m"
})

# 切回第一个视频文件
driver.execute_cdp_cmd("Media.setVideoCaptureDeviceOverride", {
    "deviceId": "",
    "videoFile": "/绝对路径/第一个视频文件.y4m"
})

# 清除模拟,恢复真实摄像头
driver.execute_cdp_cmd("Media.clearVideoCaptureDeviceOverride", {})

注意:Chrome只认**YUV4MPEG2格式(.y4m)**的视频文件,其他格式需要转码,用ffmpeg命令即可:

ffmpeg -i 你的原视频.mp4 -f yuv4mpeg2 转换后的视频.y4m

方法二:重启媒体服务(备用方案)

如果CDP的方式不生效,可以尝试通过CDP重启Chrome的媒体服务,再重新设置视频文件:

  1. 调用Media.clearVideoCaptureDeviceOverride清除当前模拟
  2. 用Browser.resetPermissions重置媒体权限
  3. 关闭当前所有使用摄像头的页面
  4. 再次调用Media.setVideoCaptureDeviceOverride设置新的视频文件

这个方法比较繁琐,优先推荐方法一。

内容的提问来源于stack exchange,提问作者Akshay J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:57:20