编译器:MinGW-W64 x86_64-14.2.0-release-posix-seh-ucrt-rt_v12-rev0
C++标准:C++17
其他依赖项:OpenCV 4.4.0
本程序通过将视频各帧进行提取,使用感知哈希算法计算图片相似度,最终将视频各个不相似帧提取为图片输出。
- 指定输入视频的某一个片段,仅针对此片段进行处理
- 在控制台进行日志输出,提示处理进度
- 输入视频文件
- 输出文件夹
- 目标视频片段起点时刻
- 目标视频片段终点时刻
- 跳帧幅度
考虑到PPT视频具有大量连续重复帧,其持续时间大多数情况下以秒或分钟计,本程序默认每30帧一读取,大多数情况下不会有丢页情况。
考虑到实际情况,跳帧幅度也可调整为更大
对于某些特殊的快速翻页片段,也可使用更小的跳帧幅度进行二次提取
- 进度提示间隔
- 相似度比较阈值
此值为非负整数,是图像感知哈希值的汉明距离的阈值,此值越小,则对于图片相似度的判断越严格 ,默认值为4
特别地,当此项为0时,所有截取到的帧都会被输出,相似性判断失效
当此项为1时,相似度判断最为严格
在此项为1时,可能会出现一页ppt重复输出的现象,但是对于带有动画的视频不会有漏帧的现象(即两页PPT的中间动画状态被输出的同时,第二页PPT由于与中间状态相似而没有被输出,对于使用了淡入淡出动画的PPT影响尤为明显)
不带参数直接启动程序,会依次提示输入各项参数:
.\PV2i.exe可通过命令行一次性传入参数,启动后不再询问输入:
.\PV2i.exe --input 1.mp4 --output out --start 0 --end 10 --frame-skip 30 --progress-interval 5 --threshold 4如需禁用进度输出,可加:
.\PV2i.exe --quiet --input 1.mp4 --output out如果需要“命令行预填 + 继续交互确认”,可加:
.\PV2i.exe --interactive --input 1.mp4-i,--input <PATH>:输入视频文件路径-o,--output <PATH>:输出文件夹路径-s,--start <MIN>:起点分钟数-e,--end <MIN>:终点分钟数,-1表示到视频结尾-f,--frame-skip <N>:跳帧检测值-p,--progress-interval <MIN>:进度提示间隔(分钟)-t,--threshold <N>:相似度比较阈值-q,--quiet:安静启动,禁用进度输出--interactive:即使已传入参数,也进入交互式确认-h,--help:显示帮助信息-v,--version:显示版本号