Categorygithub.com/7byte/videomerger
repositorypackage
0.0.0-20250123072920-c21317672940
Repository: https://github.com/7byte/videomerger.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

videomerger

videomerger 是一个用于合并监控视频文件的工具,支持通过命令行参数指定输入路径、输出路径、日期范围以及定时任务等功能。

功能特性

  • 合并指定目录下的监控视频文件
  • 支持通过日期范围筛选视频文件
  • 支持设置定时任务定期合并视频文件
  • 自动跳过已完成合并的视频

TODO

  • 支持更多的视频文件名格式(目前只支持识别20240706212250_20240706213600.mp4
  • 支持自定义视频输出格式(目前固定输出mp4)
  • 合并视频的兼容性测试

使用方法

构建项目

在项目根目录下运行以下命令构建项目:

make build

运行项目

构建完成后,可以通过以下命令运行项目:

./bin/videomerger merge -i <输入路径> -o <输出路径> -r <日期范围> -c <cron表达式>

命令行参数

  • --input_path, -i:待合并视频文件的目录(必填)
  • --output_path, -o:合并后视频的输出路径,默认为当前路径
  • --cron_spec, -c:cron 表达式,默认为空,即只运行一次。cron语法参考:https://en.m.wikipedia.org/wiki/Cron
  • --date_range, -r:日期范围,如 "20060102-20060202",开始日期和结束日期都可以为空,默认为空,即合并所有文件

示例

合并指定目录下的所有视频文件:

./bin/videomerger merge -i /path/to/input -o /path/to/output

合并指定日期范围内的视频文件:

./bin/videomerger merge -i /path/to/input -o /path/to/output -r 20230101-20230631

设置定时任务,每天凌晨 2 点合并视频文件:

nohup ./bin/videomerger merge -i /path/to/input -o /path/to/output -c "0 2 * * *" > output.log 2>&1 &

Docker运行

本地构建Docker镜像

# 创建多平台构建builder,如果只需要本地运行可跳过该步骤
make multi_builder

# 构建本地docker镜像
make image

单次运行

docker run --rm -v /path/to/input:/app/videos -v /path/to/output:/app/output github.com/7byte/videomerger:latest

后台运行,每天凌晨 2 点合并视频文件

docker run -d \
--name=videomerger \
--restart always \
-e TZ=Asia/Shanghai \
-v /path/to/input:/app/videos \
-v /path/to/output:/app/output \
github.com/7byte/videomerger:latest -c "0 2 * * *"