[AI相关]生成视频-第一个项目,20k星开源MoneyPrinterTurbo

还是之前文章介绍过地几个工具之一

AI相关各平台AI使用对比,包含大模型学习,生成视频等-CSDN博客

问问AI其结构,框架等,虽然不太完全对,但真地DeepSeek已经回答得很好了:

重点关注就两个类

下面这个图,AI-DeepSeek直接给出得的是目录名,这就肯定不可能对的了,软件是不停迭代的,肯定会改名,也会在半年,一年内大幅度更新,目录名肯定不会"正确的";但是整体框架(AI对框架的理解是非常好的,对我问的问题的立即也是非常好,这就。。。。。。。。非常恐怖了)

video.py

task.py 合成视频

python 复制代码
# task.py
def generate_final_videos(
        task_id, params, downloaded_videos, audio_file, subtitle_path
):
    final_video_paths = []
    combined_video_paths = []
    video_concat_mode = (
        params.video_concat_mode if params.video_count == 1 else VideoConcatMode.random
    )

    _progress = 50
    for i in range(params.video_count):
        index = i + 1
        combined_video_path = path.join(
            utils.task_dir(task_id), f"combined-{index}.mp4"
        )
        logger.info(f"\n\n## combining video: {index} => {combined_video_path}")
        video.combine_videos(
            combined_video_path=combined_video_path,
            video_paths=downloaded_videos,
            audio_file=audio_file,
            video_aspect=params.video_aspect,
            video_concat_mode=video_concat_mode,
            max_clip_duration=params.video_clip_duration,
            threads=params.n_threads,
        )

最终还是回到 video.py

video.py 生成视频

python 复制代码
def preprocess_video(materials: List[MaterialInfo], clip_duration=4):
    for material in materials:
        if not material.url:
            continue

        ext = utils.parse_extension(material.url)
        try:
            clip = VideoFileClip(material.url)
        except Exception:
            clip = ImageClip(material.url)

        width = clip.size[0]
        height = clip.size[1]
        if width < 480 or height < 480:
            logger.warning(f"video is too small, width: {width}, height: {height}")
            continue

python fileClip库

material.py

python 复制代码
def download_videos(
    task_id: str,
    search_terms: List[str],
    source: str = "pexels",
    video_aspect: VideoAspect = VideoAspect.portrait,
    video_contact_mode: VideoConcatMode = VideoConcatMode.random,
    audio_duration: float = 0.0,
    max_clip_duration: int = 5,
) -> List[str]:
    valid_video_items = []
    valid_video_urls = []
    found_duration = 0.0
    search_videos = search_videos_pexels
    if source == "pixabay":
        search_videos = search_videos_pixabay

    for search_term in search_terms:
        video_items = search_videos(
            search_term=search_term,
            minimum_duration=max_clip_duration,
            video_aspect=video_aspect,
        )
        logger.info(f"found {len(video_items)} videos for '{search_term}'")

        for item in video_items:
            if item.url not in valid_video_urls:
                valid_video_items.append(item)
                valid_video_urls.append(item.url)
                found_duration += item.duration

    logger.info(
        f"found total videos: {len(valid_video_items)}, required duration: {audio_duration} seconds, found duration: {found_duration} seconds"
    )

logger 打印输出

ai

《AI识别文字,视频稿部分》没写完

缺点?

基本上只是利用了pelex 等网站的视频搜索功能

(可以想象,是很传统的,标签tag管理,设置都没有什么多属性,多维度等科学的数据管理的)

然后,把搜索到的视频,胡乱拼凑

甚至都没有一点视频分析,视频AI自动生成地过程

整个项目地结构就是

(优点就是很简单,我这个0基础地门外汉,2个小时就把这个项目框架看透了)

1.基础框架steamlts

2.加上一点点功能,如互联网搜索,加上视频合成

3.最后辅佐上,最新人工智能AI-API地计息

4.当然,最后Python是一个很好的胶水作用,把各个功能有机地粘连在一起了

相关推荐
xp_xht1231 分钟前
Day1 概率机器学习 信息论
人工智能·机器学习·信息论
chuan.bai14 分钟前
Java RAG 实战(第 3 篇):从交互式聊天到多轮上下文
java·人工智能·macos·ai
雪隐18 分钟前
个人电脑玩AI-16让5060 Ti给你打工——MiniMax H3 提速实录:从"泡杯茶等视频"到"视频等你",一张 5060 Ti 的自我修养
前端·人工智能·后端
深兰科技21 分钟前
深兰科技亮相天津医疗器械创新生态大会,DeepAgent智能体赋能医疗医美并签约天津OPC项目
人工智能·科技·r语言·symfony·视觉大模型·深兰科技·deepagent智能体
cxr82822 分钟前
从“对象本体”到“关系本体”
人工智能·架构
shxjnpl25 分钟前
Whisper + CAM++ + 本地大模型:一套完全离线的AI会议处理链路
人工智能·机器学习·whisper
小润nature31 分钟前
AI 与嵌入式三时简报|早报
人工智能
今天AI了吗32 分钟前
MCP 协议打通 AI 与国产数据库,SQL 调优全流程一站式闭环
数据库·人工智能·sql
大任视点34 分钟前
“我与秦岭”主题征文与故事及“秦岭微镜头”短视频、摄影作品征集活动通知
大数据·人工智能·业界资讯
FBI HackerHarry浩35 分钟前
Pandas 库中用于分类变量独热编码(One-Hot Encoding)的函数 pd.get_dummies() 函数
开发语言·人工智能·python·pandas