编辑
2025-11-06
Linux备份教学
00
请注意,本文编写于 77 天前,最后修改于 77 天前,其中某些信息可能已经过时。

目录

直播录制工具
-所有代码由AI创建,本人只负责测试工作
⚠️ 使用前必读
📦 两种版本
功能特点
系统要求
安装依赖
使用方法
1. 基本使用(立即开始,手动停止)
2. 指定开始和结束时间
3. 只指定开始时间(录制到手动停止)
4. 使用自定义URL
参数说明
输出文件
多条链接支持
示例场景
场景1:凌晨比赛录制
场景2:晚上比赛录制
注意事项
后台运行
🐳 Docker 版本
📊 存储空间计算
💡 版本选择建议
选择 Docker 版本,如果:
选择直接运行版本,如果:

直播录制工具

-所有代码由AI创建,本人只负责测试工作

开发原由:大晚上的比赛不想熬夜观看,在飞牛中部署脚本,晚上定时录制,第二天上班摸鱼观看。

功能:用于录制 m3u8 格式的直播流,支持自定义开始时间、结束时间和分段时长。

⚠️ 使用前必读

主要需要修改:

  • 直播链接.txt - 将示例URL替换为您的实际直播源地址
  • docker/env.exampledocker/.env - Docker版本的环境变量配置(可选)

📦 两种版本

本项目提供两种运行方式:

  1. 直接运行版本 - 直接在系统上运行 Python 脚本(当前目录)
  2. Docker 版本 - 使用 Docker Compose 运行(docker/ 目录)

功能特点

  • ✅ 支持自定义开始录制时间(适合凌晨开始的比赛)
  • ✅ 支持自定义结束录制时间
  • ✅ 支持自定义分段时长(避免长时间录制出错)
  • 支持多条链接同时并行录制(在 直播链接.txt 中每行一个URL)
  • ✅ 自动分段保存,每个分段独立文件
  • ✅ 文件名包含时间戳和分段编号
  • ✅ 多条链接时,每个链接的文件保存在独立子目录中

系统要求

  • Debian/Linux 系统
  • Python 3.6+
  • ffmpeg

安装依赖

bash
# 安装 ffmpeg sudo apt-get update sudo apt-get install -y ffmpeg # 安装 Python(如果还没有) sudo apt-get install -y python3 python3-pip

使用方法

1. 基本使用(立即开始,手动停止)

bash
python3 record_live.py --segment 5

2. 指定开始和结束时间

bash
# 23:30 开始,02:00 结束(跨天),每10分钟一段 python3 record_live.py --start 23:30 --end 02:00 --segment 10

3. 只指定开始时间(录制到手动停止)

bash
python3 record_live.py --start 23:30 --segment 10

4. 使用自定义URL

bash
# ⚠️ 请将 example.com 替换为您的实际直播源地址 python3 record_live.py --url https://example.com/live/stream.m3u8 --start 23:30 --end 02:00 --segment 5

参数说明

  • --url: 直播流URL(可选,如果不提供会从 直播链接.txt 读取)
  • --start: 开始时间,格式 HH:MMHH:MM:SS(如:23:30
  • --end: 结束时间,格式 HH:MMHH:MM:SS(如:02:00
  • --segment: 每个分段的分钟数(默认:10分钟)

输出文件

录制文件保存在 data/ 目录下:

单条链接时:

data/ └── YYYYMMDD_HHMMSS_segment_001.mp4 YYYYMMDD_HHMMSS_segment_002.mp4 ...

多条链接时(每条链接独立子目录):

data/ ├── stream_01_example/ # 第1条链接的录制文件 │ ├── YYYYMMDD_HHMMSS_segment_001.mp4 │ └── YYYYMMDD_HHMMSS_segment_002.mp4 └── stream_02_example/ # 第2条链接的录制文件 ├── YYYYMMDD_HHMMSS_segment_001.mp4 └── YYYYMMDD_HHMMSS_segment_002.mp4

多条链接支持

直播链接.txt 文件中,可以添加多个URL,每行一个:

# ⚠️ 请将下面的示例URL替换为您的实际直播源地址 https://example.com/live/stream1.m3u8 https://example.com/live/stream2.m3u8 https://example.com/live/stream3.m3u8

脚本会自动检测所有链接,并同时并行录制所有链接。每条链接的文件会保存在独立的子目录中,方便管理。

注意:# 开头的行会被忽略(可以作为注释)。

示例场景

场景1:凌晨比赛录制

比赛在 00:30 开始,预计 03:00 结束,每5分钟一段:

bash
python3 record_live.py --start 00:30 --end 03:00 --segment 5

场景2:晚上比赛录制

比赛在 20:00 开始,预计 22:30 结束,每10分钟一段:

bash
python3 record_live.py --start 20:00 --end 22:30 --segment 10

注意事项

  1. 确保网络连接稳定
  2. 确保有足够的磁盘空间
  3. 如果录制时间跨越午夜,结束时间会自动识别为第二天
  4. 可以随时按 Ctrl+C 手动停止录制
  5. 如果某个分段录制失败,会自动跳过并继续下一个分段

后台运行

如果需要后台运行,可以使用 nohupscreen

bash
# 使用 nohup nohup python3 record_live.py --start 23:30 --end 02:00 --segment 10 > record.log 2>&1 & # 或使用 screen screen -S record python3 record_live.py --start 23:30 --end 02:00 --segment 10 # 按 Ctrl+A 然后 D 分离会话 # 重新连接: screen -r record

🐳 Docker 版本

如果需要使用 Docker 版本,请查看 docker/ 目录:

bash
cd docker docker compose up -d

详细文档请参考:docker/README.md


📊 存储空间计算

根据测试数据(1分钟 = 24MB):

  • 1 小时 = 1.44 GB
  • 2 小时 = 2.88 GB
  • 3 小时 = 4.32 GB

建议预留至少 5-10 GB 空间用于录制。


💡 版本选择建议

选择 Docker 版本,如果:

  • ✅ 想要环境隔离,不污染系统
  • ✅ 需要在多台机器上部署
  • ✅ 希望一键启动,简化部署流程
  • ✅ 需要自动重启和日志管理
  • ✅ 系统环境比较复杂,避免依赖冲突
  • ✅ 使用飞牛 NAS 等容器化平台

选择直接运行版本,如果:

  • ✅ 资源有限,希望最小化开销
  • ✅ 需要频繁调试和修改代码
  • ✅ 已有完善的系统环境和工具链
  • ✅ 希望与系统服务深度集成(如 systemd)
  • ✅ 对 Docker 不熟悉或不想使用容器

对于飞牛 NAS 用户,推荐使用 Docker 版本,因为飞牛 NAS 本身就是基于容器的平台,Docker 版本可以更好地与系统集成。

脚本地址:蓝奏云

本文作者:口水

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!