mirror of
https://github.com/Hommy-master/capcut-mate.git
synced 2026-08-28 23:27:50 +08:00
67 lines
2.6 KiB
Python
67 lines
2.6 KiB
Python
"""
|
|
这个文件用于验证我们对add_videos接口修复的逻辑是否正确
|
|
"""
|
|
|
|
def test_duration_handling_logic():
|
|
"""
|
|
测试duration处理逻辑
|
|
|
|
场景:
|
|
1. 视频实际时长为2000000微秒(2秒)
|
|
2. 用户指定duration为3000000微秒(3秒)
|
|
3. start=3000000, end=6000000 (播放时长3秒)
|
|
|
|
预期行为:
|
|
- 视频正常播放前2秒
|
|
- 第3秒显示视频最后一帧(静态画面)
|
|
"""
|
|
|
|
# 模拟视频信息
|
|
video_info = {
|
|
"video_url": "https://example.com/video.mp4",
|
|
"duration": 3000000, # 用户指定的总时长
|
|
"start": 3000000, # 在时间轴上的开始时间
|
|
"end": 6000000, # 在时间轴上的结束时间
|
|
"width": 576,
|
|
"height": 1024
|
|
}
|
|
|
|
# 实际视频时长(从文件中获取)
|
|
actual_video_duration = 2000000 # 2秒
|
|
|
|
print("输入参数:")
|
|
print(f" video_url: {video_info['video_url']}")
|
|
print(f" 指定duration: {video_info['duration']} 微秒 ({video_info['duration']/1000000}秒)")
|
|
print(f" start: {video_info['start']} 微秒 ({video_info['start']/1000000}秒)")
|
|
print(f" end: {video_info['end']} 微秒 ({video_info['end']/1000000}秒)")
|
|
print(f" 实际视频时长: {actual_video_duration} 微秒 ({actual_video_duration/1000000}秒)")
|
|
|
|
# 计算播放时长
|
|
play_duration = video_info['end'] - video_info['start']
|
|
print(f"\n计算结果:")
|
|
print(f" 播放时长 (end-start): {play_duration} 微秒 ({play_duration/1000000}秒)")
|
|
|
|
# 检查是否超出实际时长
|
|
if video_info['duration'] > actual_video_duration:
|
|
extension_duration = video_info['duration'] - actual_video_duration
|
|
print(f" 超出时长: {extension_duration} 微秒 ({extension_duration/1000000}秒)")
|
|
print(f" 结论: 视频播放{actual_video_duration/1000000}秒后,显示静态画面{extension_duration/1000000}秒")
|
|
else:
|
|
print(f" 结论: 视频按时长正常播放")
|
|
|
|
# 验证我们的解决方案
|
|
print(f"\n解决方案验证:")
|
|
print(f" 使用source_timerange: [0, {min(video_info['duration'], actual_video_duration)}]")
|
|
print(f" 使用target_timerange: [{video_info['start']}, {play_duration}]")
|
|
print(f" 保持speed=1.0,确保视频以原始速度播放")
|
|
|
|
# 验证参数
|
|
assert video_info['duration'] == 3000000
|
|
assert play_duration == 3000000
|
|
assert actual_video_duration == 2000000
|
|
assert video_info['duration'] > actual_video_duration
|
|
|
|
print("\n✅ 逻辑验证通过!")
|
|
|
|
if __name__ == "__main__":
|
|
test_duration_handling_logic() |