3 个版本
0.1.2 | 2024年4月10日 |
---|---|
0.1.1 | 2024年4月6日 |
0.1.0 | 2024年4月1日 |
#63 in 多媒体
15KB
228 行
simple-network-video-recorder
一个简单的网络视频录制器(NVR),您可以使用它将视频流捕获为mp4文件,而不会完全填满您的磁盘!
功能
它执行两个功能
- 将RTSP流的 内容保存为固定持续时间的视频段(mp4)(这使用FFmpeg),并且;
- 视频段的总大小永远不会超过一个阈值:删除最旧的视频段来为新段腾出空间。
安装
在继续之前,请花些时间阅读 LICENSE
协议。
警告! 目前,您必须 自行编译二进制文件,因为您需要首先设置一些环境变量。我计划在未来通过引入CLI来修复这个问题。
安装步骤
-
您必须在您的系统上已经安装了
rust
和ffmpeg
。请参阅 rust-lang.org 和 ffmpeg.org 了解如何满足此要求; -
使用
git clone https://github.com/dancavolix/simple-network-video-recorder.git
克隆此仓库 -
切换到项目 根目录
cd simple-network-video-recorder
; -
使用
cargo build --release
在本地构建项目。
设置
在 根目录 内,运行 cp .env.example .env
复制配置文件。在运行应用程序之前,您首先需要在 .env
文件中设置值。以下是每个值的简要说明
URI
: 流URI,类似于rtsp://username:[email protected]/cam/example
;SOURCE_ID
:用于更好地识别你的文件(如果有多个流)。请避免使用空格和特殊字符;SAVE_DIR
:片段将被存储到该目录中的文件,例如,SAVE_DIR=/home/user/my-videos
;SEGMENT_DURATION
:片段的时长(以秒为单位),例如,设置3600
以创建一个小时的片段;STORAGE_CAPACITY
:片段总共应该占用多少磁盘空间,例如,设置128000000000
(九个零)以创建128GB的空间。
警告! SEGMENT_DURATION
和 STORAGE_CAPACITY
的值设置非常重要。你必须进行自己的实验,找到最适合你的需求,但请注意默认设置(一小时长度的片段和128GB的存储大小将足够,只要你磁盘上有这么多的空闲空间)。
开始录制
只需运行 cargo run --release
。