从零到一用 extract-video-ppt 把视频里的PPT一键提取成PDF文档【免费下载链接】extract-video-pptextract the ppt in the video项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt凌晨一点你终于看完了那节 2 小时的网课。起身倒水时瞥了一眼截图文件夹里面躺着 17 张图——3 张是讲师讲嗨了挥手时糊掉的画面还有 5 张是同一页 PPT 的重复截图。这样的夜晚你是不是也经历过视频里的 PPT 明明都在却只能靠暂停 → 截图 → 命名 → 整理的笨办法一页页往外搬。今天要介绍的extract-video-ppt就是为这个场景而生的一个开源的视频 PPT 提取工具你只需丢给它一个视频它就能自动判断 PPT 页面何时切换把每一页内容连同时间戳整理成一份干净的 PDF 文档。看视频的活还是你的整理 PPT 的活它全包了。不过先别急着装——我们先看看它到底能交出什么成果再聊它凭什么做得到。先看成果一行命令把视频PPT变成带时间戳的PDF跑通一次提取之后你得到的是一份 PDF 和一堆中间图片。每一页 PPT 都占 PDF 的一整页顶部还贴心地标注了这页被截取的时间点以及它和上一帧有多像。下面这张图就是项目 demo 的真实运行效果注意看左上角的文件名——frame00:00:09-0.5.jpg。这串字符信息量很大00:00:09表示这页是在视频的第 9 秒被截取的0.5表示它和前一帧的相似度是 0.5。也就是说每一页 PPT 什么时候出现、画面变化有多大都被记录得明明白白你拿到 PDF 后随时可以回跳到视频对应位置核对细节。看到这里你可能和我第一次的反应一样它是怎么做到不截重、不漏页的这就得掀开引擎盖看一眼了。原理拆解程序凭什么判断这一页PPT翻过去了extract-video-ppt 的核心思路简单到一句话每秒取一帧画面和上一帧比一比像不像差别够大就当成翻页了并保存。具体来说它做了这样三件事按秒采样视频每秒被抽出一帧作为候选画面video2ppt.py里的主循环就干这个。算相似度拿当前帧和上一帧比较用颜色直方图算出一个 0 到 1 的相似度数值1 代表几乎一模一样0 代表完全不同算法在compare.py里。过阈值门槛相似度低于阈值默认 0.6就认定内容发生了实质性变化把这一帧存成 JPG否则认为是手势、光标这类小扰动直接跳过。整个判断流程画出来就是这样的当所有帧处理完毕images2pdf.py会把存下来的图片按时间顺序拼成 PDF——这就是你最终拿到的成果。道理讲通了接下来就是动真格的时候。动手第一步三分钟安装跑通官方demo上手前先回答你心里那个问题装它麻烦吗不麻烦它是个标准 Python 包支持 Python 3.6一条命令即可pip install extract-video-ppt如果网络环境更适合源码安装也可以克隆到本地再装git clone https://gitcode.com/gh_mirrors/ex/extract-video-ppt cd extract-video-ppt python setup.py install装完后会多出一个evp命令。想确认它认识你先执行evp --help看一眼帮助信息。项目自带了 demo 视频直接用官方示例命令跑一遍验证整条链路是否通畅evp --similarity 0.6 --pdfname hello.pdf --start_frame 0:00:09 --end_frame 00:00:30 ./demo ./demo/demo.mp4运行时会实时打印处理进度百分比处理完后到./demo目录里找hello.pdf就行。这一条命令里其实已经藏了四个关键参数我们逐个拆开看。动手第二步调好相似度阈值让提取更精准刚才命令里的--similarity 0.6是全文最重要的一个旋钮。它的含义是只有当当前帧与上一帧的相似度低于这个值才认为翻页了并保存。那么问题来了什么时候该调高什么时候该调低给你一张速查表视频类型建议 similarity效果动画多、镜头切得勤0.4 ~ 0.5捕获更多变化不易漏页标准课堂演示、会议录制0.6 ~ 0.7默认值精度与效率平衡静态镜头多、页面几乎不动0.8 ~ 0.9只保留大幅变化过滤抖动记住一个原则调低更敏感容易多截调高更迟钝可能漏页。如果你发现提取出的 PDF 缺页就把阈值往 0.4~0.5 降一降如果发现同一页被截了多次就往上抬一抬。另外两个参数负责划定处理范围--start_frame和--end_frame格式都是时:分:秒。比如只想处理视频中间 15 分钟的内容evp --start_frame 00:10:00 --end_frame 00:25:00 ./output ./my_course.mp4它能帮你跳过片头片尾、广告和无关闲聊处理速度立刻提上来。输出文件名则用--pdfname自定义避免每次都叫output.pdf。到这里单个视频你已经能拿下了。但要是手上有一整个文件夹的录播课呢进阶玩法批量处理多段视频时间范围精准截取extract-video-ppt 在设计上很照顾内存它逐帧读取视频、边读边比不会把整个视频一次性加载进内存所以长视频也能扛。批量处理就更简单了写一个 5 行的 Shell 脚本就能把整个文件夹的课程视频一次跑完for video in *.mp4; do output_diroutput_${video%.*} mkdir -p $output_dir evp --similarity 0.6 --pdfname ${video%.*}.pdf ./$output_dir ./$video done这段脚本做的事很直白遍历当前目录下所有.mp4为每个视频建一个专属输出目录再用视频本身的名字命名 PDF。跑完一觉醒来一个课程资料库就成型了。最后提个醒处理过程中程序会在项目目录下创建临时文件夹.extract-video-ppt-tmp-data存放中间图片正常结束时会自动清理。如果你中途CtrlC强退了手动删掉这个目录即可不影响下次运行。收尾行动清单以及想深挖该往哪看现在你已经掌握了把视频变成 PPT PDF 的完整路径。给你一张随时可对照的行动清单pip install extract-video-ppt完成安装evp --help确认命令可用用官方 demo 命令跑通一次找到输出的hello.pdf处理自己的视频先用默认--similarity 0.6跑一遍发现漏页就调低阈值0.4~0.5发现重复就调高0.7~0.8用--start_frame/--end_frame跳过片头片尾写个批量脚本把整个文件夹的视频一次处理完如果跑通之后你对它到底怎么算相似度产生了好奇源码是最好的老师而且结构非常清晰主流程和帧处理逻辑在video2ppt/video2ppt.py相似度算法包括颜色直方图、感知哈希等好几种思路在video2ppt/compare.py图片合成 PDF 的部分在video2ppt/images2pdf.py。照着代码读一遍你对用程序处理视频的理解会上一个台阶。从今晚开始把熬夜截图从你的待办清单里划掉吧。工具已经摆在你面前剩下的就是挑一个视频试试手了。【免费下载链接】extract-video-pptextract the ppt in the video项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考