Skip to main content

VideoConverter Python Worker:从 queue 目录读取任务并执行切分/去字幕/合成

Project description

Python Worker 使用说明

0) 安装(任选其一)
- 从 PyPI 安装(推荐,Windows/Linux/macOS 通用):
pip install videoconverter-worker
安装后运行: videoconverter 或 videoconverter-worker [--data-dir DIR] [--path-replace OLD=NEW]
- 或从本地源码安装: cd src/python && pip install .

1) 简易模式(当前目录 + 开始/结束时间 + 字幕高度,便于测试)
不经过队列,直接在指定目录内对单个文件或批量视频做「切分→去字幕→合成」:
- 单文件:
videoconverter --simple --dir . --start 0 --end 120 --crop-bottom 208 --file 视频.mp4
- 批量(当前目录下所有 .mp4/.mkv/.mov 等):
videoconverter --simple --dir . --start 0 --end 60 --crop-bottom 208 --batch
- 参数:--dir 工作目录(默认当前目录),--start/--end 秒(0 表示到结尾),
--crop-bottom 字幕高度/裁底像素(默认 208),--crop-left/--crop-right 默认 293,
--output 输出目录(默认 <dir>/videoconverter_out)。
输出在 <dir>/videoconverter_out 或 --output 指定目录下,合成文件为 <video_id>_merged.mp4。

2) 作用(队列模式)
与 Java BackendWorker 行为一致:从 queue 目录读取任务(queue/<task_id>.json),
执行 SPLIT / DESUBTITLE / MERGE / ONE_CLICK_COMPOSE,更新状态与 metadata.json。
适合在服务器上运行,利用多核与高性能做切分、去字幕、合成。

3) 环境
- Python 3.8+
- 系统已安装 ffmpeg、ffprobe(或在 PATH 中)
- 可选:环境变量 FFMPEG_PATH、FFPROBE_PATH 指定路径

4) 本机与 Java 共用同一队列(同一台机器)
- 数据目录一致即可,例如: ~/.videoconverter/data
- 先由 Java 前端创建任务(写 queue/*.json),再在本机运行 Python worker 处理:
cd src/python
python worker.py
- 或指定数据目录:
python worker.py --data-dir /path/to/.videoconverter/data

5) 把「前端处理过的文件夹」拷到服务器后运行
- 将本机用于队列的「数据目录」整个拷到服务器(例如 /server/data),
其中应包含 queue/ 目录及 queue/*.json 任务文件。
- 若任务 JSON 里的路径是本机绝对路径(如 /Users/me/videos/a.mp4),
需要在服务器上做路径替换,否则找不到文件:
python worker.py --data-dir /server/data --path-replace "/Users/me/videos=/server/videos"
- 环境变量方式(便于脚本/ systemd):
export VIDEOCONVERTER_DATA_DIR=/server/data
export VIDEOCONVERTER_PATH_REPLACE="/Users/me/videos=/server/videos"
python worker.py
- 建议:在服务器上把视频放在固定目录(如 /server/videos),
拷过去的 data 里 queue 的 JSON 中路径统一用本机前缀,用 --path-replace 换成服务器前缀。

6) 多进程并发
当前 worker 为单进程单线程循环。要跑满多核,可在同一 data-dir 下启动多个进程:
- 任务抢占通过 queue/<task_id>.lock 原子创建,多进程不会抢到同一任务。
- 示例(4 个 worker 进程):
for i in 1 2 3 4; do python worker.py --data-dir /server/data & done
或使用 systemd/supervisor 起多个 worker 实例。

7) 暂停/继续
队列暂停由 queue_config.json 的 queue_paused 控制("true" 为暂停)。
Python worker 会定期读该配置,为 true 时不取新任务。可由 Java 前端或手动改该文件控制。

8) 对方如何提供数据(喂数据)
- 运行以下命令查看完整任务/队列格式说明:
videoconverter --show-schema
- 按说明在数据目录下创建 queue/<task_id>.json(status=PENDING),
Worker 会按 created_time 顺序抢占并执行。

9) 与 Java 的约定
- 任务与 config 格式详见 --show-schema 或项目根目录 queue_task_schema.txt。
- metadata.json 与 Java 生成的格式一致,合成(MERGE)以 metadata 为准。

10) 打包与部署
- 打 zip 包(拷贝到服务器解压即用):
cd src/python
./build_deploy.sh
会生成 videoconverter.zip,解压后在该目录执行:
python3 worker.py [--data-dir DIR] [--path-replace OLD=NEW]
- 或安装为命令行(本机/服务器均可):
cd src/python
pip install .
然后可直接运行: videoconverter 或 videoconverter-worker [--data-dir DIR] [--path-replace OLD=NEW]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

videoconverter_worker-1.8.13.tar.gz (30.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

videoconverter_worker-1.8.13-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file videoconverter_worker-1.8.13.tar.gz.

File metadata

  • Download URL: videoconverter_worker-1.8.13.tar.gz
  • Upload date:
  • Size: 30.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for videoconverter_worker-1.8.13.tar.gz
Algorithm Hash digest
SHA256 21e9d70f3e20cb5be26583315b69941b6100ec6b22ef7cb91507ea43f08cde78
MD5 91305845abf51c7a89ddd10fed51267c
BLAKE2b-256 353e716d4677a1cf83e13ddf98a268e66d81ddb3950cef104d495fd218750f31

See more details on using hashes here.

File details

Details for the file videoconverter_worker-1.8.13-py3-none-any.whl.

File metadata

File hashes

Hashes for videoconverter_worker-1.8.13-py3-none-any.whl
Algorithm Hash digest
SHA256 dcc7b58e8e9f540659d22e332918f4c1a9dcc128849924c625dbf61453baaa89
MD5 b61535344a02b729eff01b41d7e8de75
BLAKE2b-256 a7cf13209c7baea8de7abd3594dbc00d4a5e0cf50f2beb36da0d6a41d85e281b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page