0002-场景检测之PySceneDetect——批量分割视频,
工具人APPA
2021年07月04日 22:06

佛说,要有光

God,……众生平等

跟着教程步骤走,

实现下图视频分割效果

场景检测分割视频

批量分割视频

本教程仅适用Win系统 

教程需Python3

安装教程请转下方链接

网页链接​


承接上文

步骤一、下载ffmpeg

(PySceneDetect分割视频需调用ffmpeg)

1.1、ffmpeg从以下网址下载:

1.1.1官网链接

https://ffmpeg.org/download.html

1.1.2迅雷链接

http://192.168.31.4/ffmpeg-4.4-full_build-shared.7z?fid=y-Pgc06fgvlAmIJdHIF3l8QC8BayWhMCAAAAAPYRtJ0R5et71EhiTDj0VLYsj9jB&mid=666&threshold=150&tid=C7191E02DE2B3581AF0246FFE670C185&srcid=119&verno=1

1.2配置FFmpeg

1.2.1解压ffmpeg压缩包

解压ffmpeg压缩包

1.2.2复制bin文件夹路径

(bin文件夹内有要调用ffmpeg.exe)

复制含ffmpeg.exe程序的路径

1.2.3、快捷键Win + E,打开我的电脑 

右键—>此电脑—>属性,进入属性面板

右键此电脑进入属性面板

1.2.4在属性面板中,配置ffmpeg

步骤:高级系统设置—环境变量—PATH—新建(黏贴之前复制路径)

(缺少此步骤,切割视频指令可能不执行)

配置ffmpeg环境

1.2.5、ffmpeg路径新建后,逐步点击确定,

完成ffmepg配置

逐步点击确定,完成ffmepg配置


步骤二、场景检测,分割视频

2.1、将需要分割的视频放置在不含中文路径下

(储存路径含中文,某些指令有可能不执行)

视频推荐存放在不含中文路径下

2.2.、在视频存放目录下,新建txt文档,并打开

打开新建txt文本

2.3、根据需要在txt文本中,输入指令:

2.3.1、批量分割视频指令:

for %%i in (*) do scenedetect -i "%%i&#​34; -s "%%i.stats.csv&#​34; detect-content list-scenes split-video -o "%%i_Output_video&#​34;

批量分割视频指令

2.3.2、保存文档并关闭,然后将文档后缀拓展名txt改为bat

保存文档,修改文本拓展名txt改为bat

2.3.3、鼠标左键双击bat批处理,批量生成分割视频

批处理执行

2.3.4、批量分割视频完成

批量分割视频完成

2.4.1、若需生成分割视频并生成图片,

将2.3.1指令替换成以下指令,

重新执行操作

for %%i in (*) do scenedetect -i "%%i&#​34; -s "%%i.stats.csv&#​34; detect-content list-scenes save-images -n 1 -o "%%i_Output_images&#​34; split-video -o "%%i_Output_video&#​34;

2.4.2、批量生成分割视频并生成图片完成

批量生成视频和图片

批量生成图片

批量生成分割视频

2.5.1、若需生成分割视频、生成图片并生成html页面

将2.3.1指令换成以下指令,重新执行操作

for %%i in (*) do scenedetect -i "%%i&#​34; -s "%%i.stats.csv&#​34; detect-content list-scenes save-images -n 1 -o "%%i_Output_images&#​34; export-html -w 400 split-video -o "%%i_Output_video&#​34;

2.5.2、生成分割视频、生成图片并生成html页面完成

批量生成图片、视频和hlml

生成的图片和html文件

html页面

生成的视频

以上部分为使用FFmpeg模块分割视频

以下部分为使用mkvmerge模块分割视频

(拓展部分,可忽略)

三、使用mkvmerge模块分割视频

3.1、下载mkvmerge模块,链接见下方:

3.1.1、官网链接:

https://mkvtoolnix.download/downloads.html

3.1.2、其它链接:

https://www.fosshub.com/MKVToolNix.html

3.2、复制含mkverge.exe的路径

复制调用模块的路径

3.3、配置mkverge环境,步骤与配置FFmpeg模块相同

步骤见:1.2、配置FFmpeg

3.4、mkverge分割视频步骤与FFmpeg一致

步骤见:二、场景检测,分割视频

3.5、mkverge和FFmpeg分割视频不同之处在指令

split-video 默认使用ffmpge模块

split-viero -c 使用mkvmerge模块

3.5.1、mkverge批量分割视频指令:

for %%i in (*) do scenedetect -i "%%i&#​34; -s "%%i.stats.csv&#​34; detect-content list-scenes split-video -c -o "%%i_Output_video&#​34;

3.5.2、mkverge批量生成分割视频并生成图片指令:

for %%i in (*) do scenedetect -i "%%i&#​34; -s "%%i.stats.csv&#​34; detect-content list-scenes save-images -n 1 -o "%%i_Output_images&#​34; split-video -c -o "%%i_Output_video&#​34;

3.5.3、生成分割视频、生成图片并生成html页面指令:

for %%i in (*) do scenedetect -i "%%i&#​34; -s "%%i.stats.csv&#​34; detect-content list-scenes save-images -n 1 -o "%%i_Output_images&#​34; export-html -w 400 split-video -c -o "%%i_Output_video&#​34;

说明:

在默认参数下,

        mkverge分割出的视频大小几乎与原视频一致

        ffmpeg分割出的视频有所压缩