camera-settings
v0.0.7
Published
Modify the configuration of the usb camera, support windows and linux, support electron
Downloads
3
Maintainers
Readme
camera-settings
English | 简体中文
获取和修改 usb 摄像头的配置,支持 Windows 和 Linux。一般用于 Electron 应用。
- 在 Windows 上,使用 DirectShow。
- 在 Linux 上,使用 v4l2。
安装
npm install camera-settings
使用
import { CameraSettings } from "camera-settings";
(async () => {
const cs = new CameraSettings(0);
await cs.open();
// 获取摄像头配置
const settings = await cs.getSettings();
// 设置摄像头配置,如白平衡
await cs.setSettings([{ prop: "WhiteBalance", val: 2900, isAuto: true }]);
// 获取所有可选分辨率
const resolutions = await cs.getResolutions();
await cs.close();
})();
API
CameraSettings
constructor(cameraId: number | string)
cameraId
摄像头索引,从 0 开始,或者摄像头名称,如HD USB Camera
open(): Promise<void>
做一些准备工作,比如查找设备。
close(): Promise<void>
清理缓存,释放资源。
getSettings(): Promise<CameraSetting[]>
获取摄像头配置。
interface CameraSettingInfo extends CameraSettingSetInfo {
prop: TagCameraControlProperty | TagVideoProcAmpProperty;
val: number;
isAuto?: boolean;
min: number;
max: number;
step: number;
/** rangeFlags & 1 Auto; rangeFlags & 2 Auto Manual */
rangeFlags: number;
/** 默认配置 */
def: number;
ctrlType: "video" | "camera";
}
setSettings(settings: CameraSetting[]): Promise<void>
设置摄像头配置。
interface CameraSetting {
prop: TagCameraControlProperty | TagVideoProcAmpProperty;
val: number;
isAuto?: boolean;
}
getResolutions(): Promise<Resolution[]>
获取所有可选分辨率。
interface Resolution {
width: number;
height: number;
/** mjpg, yuy2, yuyv... */
type: string;
}