一个强大的Python工具,能够从滚动视频中自动提取和识别文章内容,将视频转换为可读的文本文档。
- 🎥 智能帧提取: 使用FFmpeg从视频中提取关键帧
- 🧩 自动拼接: 智能识别重叠区域,将滚动帧拼接成完整长图
- 🔍 OCR识别: 基于Tesseract的高精度中文文本识别
- 📝 文本处理: 自动清理和格式化识别结果
- 🚀 一键运行: 简单命令即可完成整个流程
- Python 3.8+
- FFmpeg - 视频帧提取
- OpenCV - 图像处理
- PIL/Pillow - 图像操作
- Tesseract OCR - 文本识别
- pytesseract - Python OCR接口
# 安装FFmpeg
brew install ffmpeg
# 安装Tesseract及中文语言包
brew install tesseract
brew install tesseract-lang# 安装FFmpeg
sudo apt update
sudo apt install ffmpeg
# 安装Tesseract及中文语言包
sudo apt install tesseract-ocr
sudo apt install tesseract-ocr-chi-sim
sudo apt install tesseract-ocr-chi-tra- 下载并安装 FFmpeg
- 下载并安装 Tesseract OCR
- 确保将FFmpeg和Tesseract添加到系统PATH
git clone https://github.com/yourusername/ScrollUnroll.git
cd ScrollUnrollpip3 install -r requirements.txtpython3 main.py your_video.mp4# 处理视频文件
python3 main.py video.mov
# 指定输出目录
python3 main.py video.mp4 --output custom_output
# 调整帧提取频率(每秒提取帧数)
python3 main.py video.mp4 --fps 2# 仅提取帧,不进行拼接和OCR
python3 main.py video.mp4 --extract-only
# 使用现有帧进行拼接和OCR
python3 main.py video.mp4 --use-existing-frames
# 保留中间文件用于调试
python3 main.py video.mp4 --keep-framesScrollUnroll/
├── main.py # 主程序入口
├── frame_extractor.py # 视频帧提取模块
├── frame_stitcher.py # 帧拼接模块
├── ocr_processor.py # OCR文本识别模块
├── tesseract_ocr.py # Tesseract独立处理脚本
├── requirements.txt # Python依赖
├── output/ # 输出目录
│ ├── frames/ # 提取的视频帧
│ ├── long_article.png # 拼接后的长图
│ └── article.txt # 识别的文本内容
└── README.md # 项目文档
在 ocr_processor.py 中可以调整以下参数:
# 图像分割配置
CHUNK_HEIGHT = 3000 # 每块高度(像素)
OVERLAP = 100 # 重叠区域(像素)
# Tesseract配置
TESSERACT_CONFIGS = [
'--psm 6 -c preserve_interword_spaces=1', # 单列文本
'--psm 4 -c preserve_interword_spaces=1', # 单列可变文本
'--psm 3 -c preserve_interword_spaces=1' # 全自动分割
]在 frame_stitcher.py 中可以调整:
# 相似度阈值
threshold = 0.8 # 重叠检测阈值
identical_threshold = 0.98 # 相同帧检测阈值-
视频帧提取 📹
- 使用FFmpeg按指定FPS提取视频帧
- 自动创建frames目录存储帧文件
-
智能拼接 🧩
- 分析相邻帧的重叠区域
- 使用模板匹配算法找到最佳拼接点
- 生成完整的长图文件
-
文本识别 🔍
- 将长图分割为适合OCR的块
- 使用多种Tesseract配置提高识别率
- 自动去重和文本清理
-
结果输出 📝
- 保存清理后的文本到article.txt
- 保留原始长图用于验证
- 📱 手机录屏文章: 提取微信文章、网页长文等
- 📺 视频字幕: 从滚动字幕视频中提取文本
- 📄 文档数字化: 将滚动浏览的PDF转为文本
- 📚 学习笔记: 从教学视频中提取文字内容
- 视频质量: 确保视频清晰度足够,文字可读
- 滚动速度: 滚动不宜过快,建议匀速滚动
- 文字对比度: 黑白对比度高的文字识别效果更好
- 语言支持: 目前主要支持中文和英文识别
Q: FFmpeg命令失败
# 检查FFmpeg是否正确安装
ffmpeg -version
# 重新安装FFmpeg
brew reinstall ffmpeg # macOSQ: Tesseract识别率低
# 检查中文语言包
tesseract --list-langs
# 重新安装语言包
brew reinstall tesseract-lang # macOSQ: OpenCV导入错误
# 重新安装OpenCV
pip3 install opencv-python --upgrade欢迎提交Issue和Pull Request!
- Fork本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
- Tesseract OCR - 强大的OCR引擎
- FFmpeg - 多媒体处理框架
- OpenCV - 计算机视觉库
如果这个项目对你有帮助,请给个 ⭐ Star!