+
104
-

回答

使用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
    }
}'

网友回复

我知道答案,我要回答