使用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 } }'
网友回复