项目概览

项目 地址
代码仓库 https://github.com/jermeyhu/video_converter
官方文档 https://github.com/jermeyhu/video_converter
容器镜像 ghcr.io/jermeyhu/video_converter:latest
问题反馈 https://github.com/jermeyhu/video_converter/issues
技术栈 Docker / FFmpeg / 多硬件加速
许可 Apache-2.0

项目简介

视频转换器是一个基于 Docker 的视频转码服务,专为家庭媒体中心或 NAS 服务器设计。它监听输入目录下的顶层视频文件,使用 FFmpeg 进行转换,并将结果写入独立的输出目录。转换成功后,原始视频会自动移动到 input/processed 子目录,避免重复转换;转换失败时源视频会保留在输入目录。

核心功能

  • 批量视频转换 – 监听输入目录,自动检测文件变化并排队转换
  • 硬件加速 – 自动探测并使用 NVIDIA NVENC、Intel QSV、AMD VAAPI 等硬件编码器
  • 多种输出格式 – 默认输出 MP4 (H.264/AAC),可自定义宽度、高度、格式
  • 实时状态监控 – 提供 Web 页面(默认 http://localhost:5800)实时查看队列、进度、已用资源
  • 并发控制 – 通过 MAX_CONCURRENT_CONVERSIONS 限制同时转换数,防止资源过载
  • 配置灵活 – 全部通过环境变量 JEV_* 控制,无需配置文件

如何使用

启动服务

docker compose -f docker-compose.yaml up -d

服务将在 http://localhost:5800 可用。

配置参数

所有配置均通过环境变量实现,例如:

  • HOST_INPUT_DIR – 输入目录(默认 ./input)
  • HOST_OUTPUT_DIR – 输出目录(默认 ./output)
  • OUTPUT_FORMAT – 输出格式(默认 mp4)
  • VIDEO_CODEC – 编码格式(h264、hevc、av1 等)
  • MAX_CONCURRENT_CONVERSIONS – 并发数(默认 1)
  • WEB_PORT – 状态页面端口(默认 5800)

典型使用场景

  • 将 NAS 上的原始视频批量转码为 MP4
  • 利用硬件加速(NVENC/QSV/VAAPI)提高转码速度
  • 通过 Web 界面实时监控转换进度
  • 自定义输出分辨率和格式

优势

  • 零配置启动 – 只需 docker compose up -d,无需额外配置
  • 多硬件支持 – 自动探测 GPU 并使用最优编码器
  • 资源友好 – 可设置并发数控制并发负载
  • 透明日志 – 状态页面实时显示队列、进度、资源使用
  • 开源免费 – Apache-2.0 许可,社区支持

界面

video_converter 界面

结语

视频转换器为家庭媒体中心提供了一站式的批量转码与监控解决方案,结合 FFmpeg 的强大转换能力与 Docker 的容器化部署,既简单又高效。无论是日常的视频整理,还是对硬件加速的探索,都能轻松上手。

更多细节请参考官方文档: https://github.com/jermeyhu/video_converter

(完)