使用过小米摄像头的朋友应该知道,小米摄像头保存到NAS的视频都是一分钟一个的小文件,而且保存在NAS上的视频也不支持在APP中回看,相当的不方便,你只能到NAS中一个一个的点着播放。那么这个小工具就是来解决这个问题的,它支持将这些小文件合并一个大的视频文件,这样观看起来就方便多了。
1️⃣ 工具简介
这款工具是开源大佬hslr-s
基于另一位大神开发的 Windows脚本,移植成 Golang 的版本,使用ffmpeg
来实现视频的合并转存,将多个一分钟一个的小视频合并为1小时一个的视频,并按天保存在原视频文件所在的目录,合并后的视频文件为.mov
格式,下面合并前后的对比图:
2️⃣ 使用方法
工具本身支持自行使用源码编译并使用命令执行,但需要自行搭建ffmpeg和Golang环境,对于大多数看到代码就头疼的朋友来说还是有点挑战性的,那么作者也考虑到了这点,提供了一个Docker镜像,解决了各种环境问题,直接在NAS中跑一个容器就可以了。
笔者参照作者的指导文档,准备了Docker和Docker Compose两种部署方式,任选一种即可。
1、Docker方式
docker run --rm -it --restart=no \
-v xiaomi/to/camera:/app/video \
-e "DELETE_SUCCESS=true" \
-e "MAX_MERGE=100" \
--name xiaomi-camera-merge \
xiaomi-camera-merge:latest
2、Docker Compose方式
version: '3.9'
services:
xiaomi-camera-merge:
image: xiaomi-camera-merge:latest
container_name: xiaomi-camera-merge
restart: no
network_mode: bridge
environment:
DELETE_SUCCESS: true
MAX_MERGE: 100
volumes:
- xiaomi/to/camera:/app/video
参数说明:
- restart:设置为
no
,一定不要设置为自动重启,否则可能会反复合并视频 - xiaomi/to/camera: 就是NAS上储存视频的目录,改成你自己的
- DELETE_SUCCESS:表示合并后是否删除原文件,true删除,false为不删除,如果不删除每次运行都会把目录里所有的视频重新合并一次
- MAX_MERGE:表示每次最多合并多少个文件,默认为 0 即不限制,建议根据自己视频文件的数量设置一个合适的数字
⚠️温馨提示:有一些版本摄像头可能不支持,正式开始前请先拷贝部分视频到一个单独目录测试一下,千万别一股脑梭哈。技术有价,数据无价。若造成数据丢失,笔者概不负责哦!
最后再说明一下,这个 Docker 一定不要设置为自动重启,建议配合定时任务每隔一段时间启动一次,就可以将源源不断的小视频文件分时段合并成大文件。
原创不易,如果觉得此文对你有帮助,不妨点赞+收藏+关注,你的鼓励是我持续创作的动力!
文章评论