视频切割检测和分析工具
最新版本:v0.6.4(2024年6月10日)
快速入门示例:scenedetect.com/cli/
Discord:https://discord.gg/H83HbJngk7
快速安装:
pip install scenedetect[opencv] --upgrade
视频分割支持需要ffmpeg/mkvmerge。Windows版本(MSI安装程序/便携式ZIP)可以在下载页面找到。
快速开始(命令行):
使用ffmpeg
在每个快速切割处分割输入视频:
scenedetect -i video.mp4 split-video
保存每个切割的一些帧:
scenedetect -i video.mp4 save-images
跳过输入视频的前10秒:
scenedetect -i video.mp4 time -s 10s
更多示例可以在文档中找到。
快速开始(Python API):
要开始使用,库中有一个高级函数可以对视频进行内容感知场景检测(从Python提示符尝试):
from scenedetect import detect, ContentDetector
scene_list = detect('my_video.mp4', ContentDetector())
scene_list
现在将是一个包含视频中找到的所有场景的开始/结束时间的列表。还有一个两遍版本AdaptiveDetector
,可以更好地处理快速相机移动,以及ThresholdDetector
用于处理淡出/淡入事件。
尝试调用print(scene_list)
,或遍历每个场景:
from scenedetect import detect, ContentDetector
scene_list = detect('my_video.mp4', ContentDetector())
for i, scene in enumerate(scene_list):
print(' 场景 %2d: 开始 %s / 帧 %d, 结束 %s / 帧 %d' % (
i+1,
scene[0].get_timecode(), scene[0].get_frames(),
scene[1].get_timecode(), scene[1].get_frames(),))
如果安装了ffmpeg
,我们还可以将视频分割成每个场景(也支持mkvmerge
):
from scenedetect import detect, ContentDetector, split_video_ffmpeg
scene_list = detect('my_video.mp4', ContentDetector())
split_video_ffmpeg('my_video.mp4', scene_list)
对于更高级的用法,API高度可配置,可以轻松集成到任何管道中。这包括使用不同的检测算法、分割输入视频等。以下示例展示了如何实现类似上述的函数,但使用scenedetect
API:
from scenedetect import open_video, SceneManager, split_video_ffmpeg
from scenedetect.detectors import ContentDetector
from scenedetect.video_splitter import split_video_ffmpeg
def split_video_into_scenes(video_path, threshold=27.0):
# 打开视频,创建场景管理器,并添加检测器。
video = open_video(video_path)
scene_manager = SceneManager()
scene_manager.add_detector(
ContentDetector(threshold=threshold))
scene_manager.detect_scenes(video, show_progress=True)
scene_list = scene_manager.get_scene_list()
split_video_ffmpeg(video_path, scene_list, show_progress=True)
更多示例请参见文档。
参考
帮助与贡献
请将任何错误/问题或功能请求提交到问题跟踪器。提交之前,请确保搜索现有问题(包括开放和关闭的),以避免创建重复条目。 欢迎并鼓励提交拉取请求。PySceneDetect在BSD 3-Clause许可下发布,提交的代码应符合该许可。
如需帮助或其他问题,您可以加入官方PySceneDetect Discord服务器,在Github上提交问题/错误报告,或通过我的网站联系我。
代码签名
本程序使用SignPath.io提供的免费代码签名,以及SignPath Foundation提供的免费代码签名证书。
许可证
BSD-3-Clause;详见LICENSE
和THIRD-PARTY.md
。
版权所有 (C) 2014-2024 Brandon Castellano。 保留所有权利。