2个版本
新版本 0.10.5 | 2024年8月16日 |
---|---|
0.10.4 | 2024年8月16日 |
#223 in 多媒体
每月342次下载
用于 uiua
465KB
8K SLoC
nokhwa
Nokhwa(녹화): 韩语单词,意为“记录”。
一个简单易用的跨平台Rust网络摄像头捕获库
使用nokhwa
可以通过将其添加到您的 Cargo.toml
中将nokhwa添加到您的crate中。
[dependencies.nokhwa]
version = "0.10.0"
# Use the native input backends, enable WGPU integration
features = ["input-native", "output-wgpu"]
您可能只会使用由 Camera
结构体提供的功能。如果您需要更底层的访问,您可以选择使用在 nokhwa::backends::capture::*
中找到的原始捕获后端。
示例
// first camera in system
let index = CameraIndex::index(0);
// request the absolute highest resolution CameraFormat that can be decoded to RGB.
let requested = RequestedFormat::<RgbFormat>::new(RequestedFormatType::AbsoluteHighestFrameRate);
// make the camera
let mut camera = Camera::new(index, requested).unwrap();
// get a frame
let frame = camera.frame().unwrap();
println!("Captured Single Frame of {}", frame.buffer().len());
// decode into an ImageBuffer
let decoded = frame.decode_image::<RgbFormat>().unwrap();
println!("Decoded Frame of {}", decoded.len());
在 examples
文件夹中可以找到使用 nokhwa
创建的命令行应用程序。
API支持
下表列出了当前的Nokhwa API支持。
- “后端”列表示后端。
- “输入”列表示从摄像头读取帧
- “查询”列表示系统设备列表支持
- “查询-设备”列表示读取设备功能
- “平台”列表示此功能可在哪些平台上使用。
后端 | 输入 | 查询 | 查询-设备 | 平台 |
---|---|---|---|---|
Video4Linux(input-native ) |
✅ | ✅ | ✅ | Linux |
MSMF(input-native ) |
✅ | ✅ | ✅ | Windows |
AVFoundation(input-native ) |
✅ | ✅ | ✅ | Mac |
OpenCV(input-opencv )^ |
✅ | ❌ | ❌ | Linux, Windows, Mac |
WASM(input-wasm ) |
✅ | ✅ | ✅ | 浏览器(Web) |
✅: 正常工作, 🔮 : 试验性, ❌ : 不支持, 🚧: 计划/进行中
^ = 可能存在错误。也支持IP摄像头。
功能
默认功能不包含任何内容。以 input-*
开头的任何内容都是启用特定后端的特性。
input-*
特性
input-native
:使用 V4L2(Linux)、MSMF(Windows)或 AVFoundation(Mac OS)。input-opencv
:启用opencv
后端。(跨平台)input-jscam
:启用使用JSCamera
结构体,该结构体使用浏览器 API。(Web)
相反,以 output-*
开头的任何内容都控制着某种输出(通常是来自摄像头的帧)的功能。
output-*
特性
output-wgpu
:启用将帧直接复制到wgpu
纹理的 API。output-threaded
:启用基于线程/回调的摄像头。
其他特性
decoding
:启用mozjpeg
解码。默认启用。docs-only
:文档特性。在 docs.rs 构建中启用。docs-nolink
:构建文档 不 链接到任何库。在 docs.rs 构建中启用。test-fail-warning
:在警告时失败。在 CI 中启用。
您可能想要挑选和选择以减少冗余。
问题
如果您正在提交问题,请确保
- 它尚未被提交
- 附加您正在执行的操作、您的环境、复现步骤和回溯。谢谢!
贡献
欢迎贡献!
- 请使用
rustfmt
格式化所有代码,并遵守 clippy 检查(除非必须这样做) - 请限制使用
unsafe
- 除非另有说明,所有贡献均受 Apache 2.0 许可证约束
最小服务 Rust 版本
nokhwa
可以在较旧的 rustc
版本上构建,但除了最新的稳定 Rust 之外,没有保证。
赞助商
- 每月 $40 的赞助商
- 每月 $5 的赞助商
请考虑捐赠!这有助于我不让我的父母失望!
依赖关系
约 2–37MB
约 548K SLoC