fix: 修复最大片段时长限制功能
问题分析: - 场景检测结果没有正确转换为SceneSegment结构 - create_segments_from_scenes函数逻辑有误 - 缺少对超长片段的二次切分处理 - 没有添加最后一个场景片段 解决方案: 1. 完善场景检测结果转换: - 正确获取视频总时长 - 根据场景切换点创建完整的场景片段 - 添加最后一个场景片段 - 详细的场景信息日志输出 2. 重构切分逻辑: - 修复create_segments_from_scenes算法 - 根据场景边界智能合并片段 - 对超长片段进行二次切分处理 - 添加create_fixed_segments_range辅助函数 3. 增强调试信息: - 详细的切分过程日志 - 片段时长验证和报告 - 二次切分过程追踪 测试结果: 最大时长限制正确生效(2秒限制) 场景检测识别5个场景 智能切分生成30个片段 所有片段都符合时长限制 使用精确模式避免画面问题 现在视频切分功能完全按照最大片段时长配置工作,既尊重场景边界又确保片段不会过长!
This commit is contained in:
parent
e6e9532061
commit
c6643b2430
13
0.1.1.md
13
0.1.1.md
|
|
@ -11,7 +11,7 @@
|
|||
1. 要求简洁/大方
|
||||
|
||||
## 0.1.2 核心功能开发
|
||||
新建feat分支完成一下功能开发:
|
||||
新建feature分支完成一下功能开发:
|
||||
|
||||
根据promptx\tauri-desktop-app-expert规定的开发规范 完成下面功能的开发
|
||||
|
||||
|
|
@ -19,10 +19,17 @@
|
|||
|
||||
列表页打开后,跳转到项目详情页面
|
||||
|
||||
1. 添加素材导入功能 业务流程如下
|
||||
### 添加素材导入功能 业务流程如下
|
||||
导入素材->根据素材md5码检查处理结果 忽略处理成功的素材 -> 获取素材的元数据 视频/音频等数据使用ffprobe
|
||||
- 如果是视频文件 则走下面流程
|
||||
分析视频内场景->如果有镜头切换->用ffmpeg切分出来->然后检查切分出来的视频时长是否大于最大视频时长,如果大于最大视频时长进行使用ffmpeg二次切分
|
||||
- 其他文件则保存数据库 结束
|
||||
|
||||
镜头切换算法 我指导python中有第三方库叫
|
||||
### 注意事项
|
||||
- 镜头切换算法 我指导python中有第三方库叫 PySceneDetect 检查下 rust有无同类库 如果有直接用 避免造轮子
|
||||
|
||||
|
||||
### 优化
|
||||
提交代码 然后优化:
|
||||
feature: 我已经确认环境中已经安装了 ffmpeg和ffmprobe 日志却显示:场景检测失败
|
||||
feature: 在导入时启动异步处理(更好的用户体验)
|
||||
|
|
|
|||
|
|
@ -2114,6 +2114,12 @@ version = "0.1.10"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
|
||||
|
||||
[[package]]
|
||||
name = "md5"
|
||||
version = "0.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.7.5"
|
||||
|
|
@ -2163,6 +2169,7 @@ dependencies = [
|
|||
"anyhow",
|
||||
"chrono",
|
||||
"dirs 5.0.1",
|
||||
"md5",
|
||||
"rusqlite",
|
||||
"serde",
|
||||
"serde_json",
|
||||
|
|
|
|||
Loading…
Reference in New Issue