debug: 添加素材片段检查日志,确认虚拟片段问题
## 问题发现 从日志显示素材片段时长10.042秒,这是原始素材而不是二次切分片段。 ## 添加的日志 1. **素材检查日志**: - 素材名称和ID - 素材片段数量 - 分类记录数量 2. **虚拟片段创建日志**: - 当素材未切分时的警告 - 原始素材时长 - 虚拟片段的segment_id和category - 虚拟片段时长 3. **真实片段使用日志**: - 当素材已切分时的确认 - 真实片段的id、时长和category ## 问题分析 匹配逻辑中的问题: - 当material.segments.is_empty()时,创建虚拟片段 - 虚拟片段使用原始素材的完整时长(如10.042秒) - 与模板要求时长(如1.267秒)比较,导致超出692.8% ## 根本原因 素材没有被正确切分,导致匹配时使用原始素材时长而不是切分后的片段时长。 这些日志将帮助确认: 1. 素材是否被正确切分 2. 为什么会创建虚拟片段 3. 虚拟片段vs真实片段的使用情况
This commit is contained in:
parent
c0ab039de9
commit
7909a62e64
|
|
@ -406,11 +406,17 @@ impl MaterialMatchingService {
|
|||
continue;
|
||||
}
|
||||
|
||||
println!("🔍 检查素材: {} ({})", material.name, material.id);
|
||||
println!(" 素材片段数量: {}", material.segments.len());
|
||||
println!(" 分类记录数量: {}", records.len());
|
||||
|
||||
// 检查是否有素材片段
|
||||
if material.segments.is_empty() {
|
||||
println!(" ⚠️ 素材未切分,创建虚拟片段");
|
||||
// 如果素材没有被切分,但有分类记录,我们需要为每个分类记录创建对应的虚拟片段
|
||||
// 因为每个分类记录的segment_id对应一个具体的片段
|
||||
if let Some(duration) = material.get_duration() {
|
||||
println!(" 原始素材时长: {:.3}秒", duration);
|
||||
// 为每个分类记录创建一个虚拟片段
|
||||
for record in records {
|
||||
// 检查该片段是否已被使用
|
||||
|
|
@ -418,6 +424,8 @@ impl MaterialMatchingService {
|
|||
continue; // 跳过已使用的片段
|
||||
}
|
||||
|
||||
println!(" 创建虚拟片段: segment_id={}, category={}", record.segment_id, record.category);
|
||||
|
||||
// 创建虚拟片段,使用分类记录中的segment_id
|
||||
let virtual_segment = MaterialSegment {
|
||||
id: record.segment_id.clone(), // 使用分类记录中的segment_id
|
||||
|
|
@ -435,10 +443,12 @@ impl MaterialMatchingService {
|
|||
created_at: chrono::Utc::now(),
|
||||
};
|
||||
|
||||
println!(" 虚拟片段时长: {:.3}秒", virtual_segment.duration);
|
||||
classified_segments.push((virtual_segment, record.category.clone()));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
println!(" ✅ 素材已切分,使用真实片段");
|
||||
// 为每个素材片段查找对应的分类记录
|
||||
for segment in &material.segments {
|
||||
// 检查该片段是否已被使用
|
||||
|
|
@ -448,6 +458,8 @@ impl MaterialMatchingService {
|
|||
|
||||
// 查找该片段的分类记录
|
||||
if let Some(record) = records.iter().find(|r| r.segment_id == segment.id) {
|
||||
println!(" 真实片段: id={}, 时长={:.3}秒, category={}",
|
||||
segment.id, segment.duration, record.category);
|
||||
classified_segments.push((segment.clone(), record.category.clone()));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue