| Crates.io | capturer-svr |
| lib.rs | capturer-svr |
| version | 1.0.1 |
| created_at | 2026-01-13 08:43:44.685454+00 |
| updated_at | 2026-01-16 02:33:32.546938+00 |
| description | A Rust-based video capturing service that captures images from video streams, supporting RTSP and other video formats. |
| homepage | https://github.com/rusthing/capturer |
| repository | https://github.com/rusthing/capturer |
| max_upload_size | |
| id | 2039599 |
| size | 2,307,275 |
This is the core module of the Capturer Server application, responsible for video capturing functionality using FFmpeg.
The capturer-svr crate provides a video capturing service that extracts images from video streams. It's built with Rust and uses Actix Web for the HTTP interface and FFmpeg for video processing.
The module is organized in the following components:
api_doc: API documentation configuration using Utoipactrl: Controllers handling HTTP requests and routingdto: Data Transfer Objects for request/response datavo: Value Objects for representing business entitiessvc: Business logic servicesstream: Stream management and FLV streaming implementationffmpeg: Core FFmpeg integration for video processing
ffmpeg_cmd: Command construction for FFmpegffmpeg_eo: FFmpeg execution objectsffmpeg_error: Error handling for FFmpeg operationsffmpeg_session: Session management for video processingconfig: Application configuration management
app_config: General application configurationcapturer_config: Video capturing specific configurationKey dependencies include:
To build the project:
# In the capturer-svr directory
cargo build
# Or from the workspace root
cd ..
cargo build -p capturer-svr
The server can be started with:
# From the capturer-svr directory
cargo run
# Or from the workspace root
cd ..
cargo run -p capturer-svr
# With custom configuration
cargo run -- --config-file ./capturer-svr.toml
# With custom port
cargo run -- --port 8080
The server uses a TOML configuration file. By default, it looks for capturer-svr.toml but can accept a custom path via the --config-file command-line option.
The service provides RESTful APIs for video capturing operations. Documentation is available at /swagger-ui/ when the server is running.
Run the tests with:
cargo test
There are integration tests in the tests/ directory that verify FFmpeg functionality.
docker buildx build --platform linux/arm64,linux/amd64 -t nnzbz/capturer:1.0.1 . --push
cargo testcargo fmtcargo clippyThis project is licensed under the MIT License.