使用opencv获取视频最后一帧,然后继续使用文生视频模型api生成视频,依次循环就变成一个连贯的一镜到底的视频了,像人物飞行视频就是这样做的
import cv2
def get_last_frame(video_path, output_path):
# 打开视频文件
cap = cv2.VideoCapture(video_path)
# 检查视频是否成功打开
if not cap.isOpened():
print("无法打开视频文件")
return
last_frame = None
# 逐帧读取视频
while True:
ret, frame = cap.read()
if ret:
# 保存当前帧
last_frame = frame
else:
# 视频结束,退出循环
break
# 释放视频捕获对象
cap.release()
if last_frame is not None:
# 保存最后一帧图片
cv2.imwrite(output_path, last_frame)
print(f"最后一帧图片已保存到 {output_path}")
else:
print("未找到有效帧")
# 示例用法
video_path = "your_video.mp4"
output_path = "last_frame.jpg"
get_last_frame(video_path, output_path)图是视频api,我们以通义万相测试:curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
-H 'X-DashScope-Async: enable' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "wanx2.1-i2v-turbo",
"input": {
"prompt": "一只猫在草地上奔跑",
"img_url": "https://cdn.translate.alibaba.com/r/wanx-demo-1.png"
},
"parameters": {
"prompt_extend": true
}
}' 网友回复


