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

server/2025/2/22 17:00:16/

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

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

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

重点关注就两个类

  • video_engine和(实际上是video.py)
  • ai_generation(ai.py)

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

video.py

task.py 合成视频

# 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 = 50for i in range(params.video_count):index = i + 1combined_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 生成视频

def preprocess_video(materials: List[MaterialInfo], clip_duration=4):for material in materials:if not material.url:continueext = 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

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.0search_videos = search_videos_pexelsif source == "pixabay":search_videos = search_videos_pixabayfor 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.durationlogger.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是一个很好的胶水作用,把各个功能有机地粘连在一起了


http://www.ppmy.cn/server/169887.html

相关文章

最新版免安装免费动图录制与编辑利器

软件介绍 当下市面上的 GIF 动图录制软件虽多&#xff0c;可真正好用还免费的却寥寥无几。今天就给大家诚心安利一款我自用许久的宝藏软件&#xff0c;功能超强大&#xff0c;绝对值得收藏&#xff01; 这款软件主打动图录制与编辑&#xff0c;此次分享的是最新版 2.41.1&…

Dify怎么创建数据交易的智能体

Dify怎么创建数据交易的智能体 Dify是一个低代码AI应用开发平台,能帮助你快速创建智能体。以下是使用Dify创建一个数据定价智能体的大致步骤和示例: 1. 注册与登录 首先,访问Dify官网(https://dify.ai/ ),完成注册并登录到你的账号。 2. 创建新项目 登录后,点击创建…

基于 JavaWeb 的 Spring Boot 调查问卷管理系统设计和实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

bboss v7.3.5来袭!新增异地灾备机制和Kerberos认证机制,助力企业数据安全

ETL & 流批一体化框架 bboss v7.3.5 发布&#xff0c;多源输出插件增加为特定输出插件设置记录过滤功能&#xff1b;Elasticsearch 客户端新增异地双中心灾备机制&#xff0c;提升框架高可用性&#xff1b;Elasticsearch client 和 http 微服务框架增加对 Kerberos 认证支持…

Docker 的安全配置与优化(二)

Docker 安全优化策略 &#xff08;一&#xff09;多阶段构建优化镜像大小 多阶段构建是 Docker 17.05 版本引入的强大功能&#xff0c;它允许在一个 Dockerfile 中定义多个构建阶段&#xff0c;每个阶段都可以使用不同的基础镜像和依赖项&#xff0c;最终只将必要的文件和依赖…

Ubuntu 22.04 Install deepseek

前言 deepseekAI助手。它具有聊天机器人功能&#xff0c;可以与用户进行自然语言交互&#xff0c;回答问题、提供建议和帮助解决问题。DeepSeek 的特点包括&#xff1a; 强大的语言理解能力&#xff1a;能够理解和生成自然语言&#xff0c;与用户进行流畅的对话。多领域知识&…

SpringBoot有几种获取Request对象的方法

HttpServletRequest 简称 Request&#xff0c;它是一个 Servlet API 提供的对象&#xff0c;用于获取客户端发起的 HTTP 请求信息。例如&#xff1a;获取请求参数、获取请求头、获取 Session 会话信息、获取请求的 IP 地址等信息。 那么问题来了&#xff0c;在 Spring Boot 中…

【C#/C++】C#调用C++ DLL bool返回值始终为true的问题排查

问题描述 在C#项目中&#xff0c;调用CDLL中方法时&#xff0c;bool返回值始终返回true。 问题原因 C将布尔定义为4字节int&#xff0c;C将其定义为1字节。C#团队决定在PInvoke期间使用4字节bo0l作为默认值&#xff0c;因为大多数系统API函数Q 使用4字节值作为bool。如果要更…