这是一个使用 ffmpeg 的屏幕录制程序,具有以下特性:
- 持续录制: 启动后一直录制屏幕
- 自动保存: 程序退出时自动保存为视频文件
- 1分钟录制: 始终只保留最近1分钟的视频内容
- 智能管理: 自动管理临时文件,无需手动清理
- 简单高效: 避免复杂的多片段管理,直接保存最后1分钟内容
- Linux 系统(支持 X11)
- Python 3.6+
- ffmpeg
Ubuntu/Debian:
sudo apt update
sudo apt install ffmpegCentOS/RHEL:
sudo yum install ffmpeg
# 或者
sudo dnf install ffmpeg# 使用默认设置(30秒片段,2个片段)
python3 screen_recorder.py
# 使用自定义参数
python3 screen_recorder.py -d 15 -s 3 # 15秒片段,保存3个
python3 screen_recorder.py -d 60 -s 1 # 60秒片段,保存1个
python3 screen_recorder.py -d 30 -s 5 # 30秒片段,保存5个chmod +x start_recording.sh
# 使用默认设置(30秒片段,2个片段)
./start_recording.sh
# 使用自定义参数
./start_recording.sh 15 3 # 15秒片段,保存3个
./start_recording.sh 60 1 # 60秒片段,保存1个
./start_recording.sh 30 5 # 30秒片段,保存5个- 运行程序后,会自动开始录制屏幕
- 程序会显示录制状态和片段信息
- 按
Ctrl+C停止录制 - 程序会自动保存最近1分钟的录制内容为最终视频文件
- 视频文件保存在
~/Videos/目录中,文件名格式:screen_recording_YYYYMMDD_HHMMSS.mp4
- 持续录制: 程序会持续录制1分钟的视频内容
- 循环覆盖: 每1分钟自动覆盖之前的录制内容
- 退出保存: 停止时保存当前1分钟的录制内容
- 存储优化: 始终只保存1分钟内容,节省磁盘空间
- 分辨率: 2560x1440(27寸主显示器,可在代码中修改)
- 帧率: 30 FPS
- 编码: H.264
- 质量: CRF 23
- 片段长度: 30秒(默认,可通过
-d参数调整) - 片段数量: 2个(默认,可通过
-s参数调整) - 最大保存时间: 60秒(2个30秒片段)
您可以在 screen_recorder.py 中修改以下参数:
# 分辨率(27寸主显示器)
'-s', '2560x1440',
# 帧率
'-r', '30',
# 质量 (0-51, 越小质量越好)
'-crf', '23',
# 片段时长(秒)- 可通过命令行参数设置
# 默认30秒,使用 -d 参数调整
# 最大片段数量(2个片段)
self.max_segments = 2-d, --duration N: 设置每个片段的时长(秒),默认30秒-s, --segments N: 设置最多保存的片段数量,默认2个--help-params: 显示参数说明
# 查看参数帮助
python3 screen_recorder.py --help-params
# 不同参数组合的使用
python3 screen_recorder.py -d 15 -s 3 # 15秒片段,保存3个
python3 screen_recorder.py -d 30 -s 2 # 30秒片段,保存2个(默认)
python3 screen_recorder.py -d 60 -s 1 # 60秒片段,保存1个
python3 screen_recorder.py -d 10 -s 5 # 10秒片段,保存5个(总共50秒)- 确保您的系统支持 X11 图形界面
- 录制过程中会占用一定的 CPU 和磁盘空间
- 程序会自动管理临时文件,退出时会清理
- 录制的视频文件会自动保存到
~/Videos/目录中 - 如果录制失败,请检查 ffmpeg 是否正确安装
-
"未找到 ffmpeg"错误
- 确保已正确安装 ffmpeg
- 检查 ffmpeg 是否在系统 PATH 中
-
录制失败
- 检查显示器设置
- 确保有足够的磁盘空间
- 检查权限设置
-
程序启动后立即退出
- 运行
python3 test_recorder.py检查环境 - 确保在图形界面环境中运行
- 检查 X11 权限设置
- 运行
-
视频质量不佳
- 调整 CRF 值(更小的值 = 更好的质量)
- 调整分辨率设置
运行环境测试脚本:
python3 test_recorder.py如果所有测试通过,说明环境配置正确。
本项目采用 MIT 许可证。