用AI制作历史解说视频:GPT + MidJourney + PiKa + FunSound + 剪映

1. 项目介绍

最近某站看到一个看到利用AI创作视频解说,成品画面很酷炫。对此以初学者视角进行复现,创意来源:用AI制作历史解说视频
在这里插入图片描述


2. 开始创作

我们参照原作者展示的内容,对古代人物屈原来生成解说视频。

2.1 故事脚本+分镜 【由GPT-4o支持】

2.1.1 生成分镜

GPT对话:
以屈原人物解说为主题,写一个具有传奇色彩和反差感的人物传记故事脚本,一共涵盖10个分镜(包含画面和旁白)
在这里插入图片描述

2.1.2 细化内容(面向文生图)

GPT对话:
依次对十个分镜生成画面描述,用于midjourney绘图,并翻译成英文
在这里插入图片描述

初步得到优质的画面描述英文版

2.2 文生图【由MidJourney支持】

输入英文描述,
/Imagine promot[描述]
在这里插入图片描述
这里得到场景1生成的图片
在这里插入图片描述
接下来我们需要根据第一张图片确定人物形象风格,来保证后续人物的一致性,获取该图片的链接用于后续场景图片生成的参数在这里插入图片描述
对于后续图片的人物一致性,MidJourney 提供 ”–cref <url>“ 参数进行人物描绘参考
在这里插入图片描述
挑选了10张
在这里插入图片描述

2.3 图生视频【由PiKa支持】

上传图片到pika,Strength of motion 设置为2,增加动感
在这里插入图片描述
效果如下请添加图片描述
全部视频生成完毕,开始剪辑
在这里插入图片描述

2.4 语音旁白【由Funsound支持】

这里为每个旁边生成语音
在这里插入图片描述
在这里插入图片描述

2.5 语音视频长度对齐

因为生成的视频和生成的音频长度不对等,这里我们需要保持音频长度不变,对视频帧率进行调整,长度一致后合成,顺便添加中文字幕。
参考我另一篇博客 音视频对齐,这里我给出python批量处理脚本
在这里插入图片描述

import os
from av_alignment import sync_audio_video_add_subtitle

def process(audio_dir,
            video_dir,
            text_file,
            output_dir,
            output_list_file,
            font_path="./NotoSansCJKsc-Regular.ttf"):

    if not os.path.exists(output_dir):os.makedirs(output_dir)
    if os.path.exists(output_list_file):os.remove(output_list_file)

    audio_list = os.listdir(audio_dir)
    video_list = os.listdir(video_dir)
    text_list = open(text_file,'rt',encoding='utf-8').readlines()
    audio_list.sort()
    video_list.sort()

    i = 1
    f = open(output_list_file,'a+')
    for audio_file,video_file,text in zip(audio_list,video_list,text_list):
        audio_file = os.path.join(audio_dir,audio_file)
        video_file = os.path.join(video_dir,video_file)
        text = text.strip()
        out_file = '%s/%08d.mp4'%(output_dir,i)
        print("audio_file:",audio_file)
        print("video_file:",video_file)
        print("text:",text)

        sync_audio_video_add_subtitle(audio_path=audio_file,
                                      video_path=video_file,
                                      subtitle_text=text,
                                      output_path=out_file,
                                      font_path=font_path,
                                      font_size=30, # 设置字体大小
                                      font_color=(255, 255, 255), # 设置字体颜色
                                      subtitle_bottom_margin=80)
        i += 1
        print(f"{out_file}",file=f)
    f.close()

if __name__ == "__main__":

    audio_dir = r"C:\Users\60568\Pictures\create\屈原\mp3"
    video_dir = r"C:\Users\60568\Pictures\create\屈原\mp4"
    text_file = r"C:\Users\60568\Pictures\create\屈原\subtitle.txt"
    output_dir = "./sync"
    output_list_file="./sync.txt"
    output_video_file = "./output.mp4"

    # 音视频对齐
    process(audio_dir,
            video_dir,
            text_file,
            output_dir=output_dir,
            output_list_file=output_list_file)

2.6 视频融合润色【由剪映支持】

将所有片段对齐好后,在剪映上进行对齐并配上bgm,然后导出完整视频
在这里插入图片描述

3. 成品展示

写到这终于完成了第一个ai视频的创作,比较粗糙,来看看成品吧:一分钟了解历史人物屈原
欢迎大家提出建议,感谢大家关注,博主会持续更新有趣的技术内容。

4.参考

https://www.bilibili.com/video/BV1im411m7UF/?spm_id_from=333.880.my_history.page.click&vd_source=3f579fa4291151f1bdf85bf803ae2d3f

https://mmmnote.com/article/7e8/03/article-ed3f6a082982ceb0.shtml

https://www.funsound.cn

https://blog.csdn.net/Ephemeroptera/article/details/139553597?spm=1001.2014.3001.5502

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/692669.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IT闲谈-IMD是什么,有什么优势

目录 一、引言二、IDM是什么&#xff1f;三、IDM的优势1. 高速下载2. 稳定性强3. 强大的任务管理4. 视频下载5. 浏览器整合 四、应用场景1. 商务办公2. 教育学习3. 娱乐休闲 总结 一、引言 在数字化时代&#xff0c;下载管理器已成为我们日常工作和生活中不可或缺的工具。而在…

【Java】JDBC+Servlet+JSP实现搜索数据和页面数据呈现

目录 1 .功能介绍 2. 实现流程 3. 项目环境 4. 相关代码 4.1 Maven配置 4.2 SQL语句 4.3 Java代码 4.4 HTML代码 4.5 JSP代码 5. 结果展示 &#xff08;原创文章&#xff0c;转载请注明出处&#xff09; 博主是计算机专业大学生&#xff0c;不定期更新原创优质文章&…

Java基础教程 - 14 Maven项目

更好的阅读体验&#xff1a;点这里 &#xff08; www.doubibiji.com &#xff09; 14 Maven项目 Java 为什么那么强大&#xff0c;很大一部分原因是在实际的开发中&#xff0c;可以将别人开发的模块引入到我们自己的项目中&#xff0c;这样别人开发好了&#xff0c;我拿来就…

Android Media Framework(三)OpenMAX API阅读与分析

这篇文章我们将聚焦Control API的功能与用法&#xff0c;为实现OMX Core、Component打下坚实的基础。 1、OMX_Core.h OMX Core在OpenMAX IL架构中的位置位于IL Client与实际的OMX组件之间&#xff0c;OMX Core提供了两组API给IL Client使用&#xff0c;一组API用于管理OMX组件…

Mysql使用中的性能优化——批量插入的规模对比

在《Mysql使用中的性能优化——单次插入和批量插入的性能差异》中&#xff0c;我们观察到单次批量插入的数量和耗时呈指数型关系。 这个说明&#xff0c;不是单次批量插入的数量越多越好。本文我们将通过实验测试出本测试案例中最佳的单次批量插入数量。 结论 本案例中约每次…

Vue3中的常见组件通信之$attrs

Vue3中的常见组件通信之$attrs 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-model3. $re…

【机器学习基础】Python编程07:五个实用练习题的解析与总结

Python是一种广泛使用的高级编程语言&#xff0c;它在机器学习领域中的重要性主要体现在以下几个方面&#xff1a; 简洁易学&#xff1a;Python语法简洁清晰&#xff0c;易于学习&#xff0c;使得初学者能够快速上手机器学习项目。 丰富的库支持&#xff1a;Python拥有大量的机…

树莓派4b安装宝塔面板

1、打开命令窗口&#xff0c;执行如下命令 #更新 sudo apt-get update sudo apt-get upgrade #切换root权限 sudo su root #安装宝塔面板 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh安装过程有点久&#xff0c;会持…

如何远程连接Linux服务器?

远程连接Linux服务器是通过网络连接到位于远程位置的Linux服务器&#xff0c;以进行服务器管理和操作。远程连接使得系统管理员可以方便地远程访问服务器&#xff0c;进行配置、维护和故障排除等操作&#xff0c;而不必亲自在服务器前工作。以下是一些常用的远程连接方法&#…

智慧社区整体解决方案

1.智慧社区整体建设方案内容 2.整体功能介绍

NASA数据集——SARAL 近实时增值业务地球物理数据记录海面高度异常

SARAL Near-Real-Time Value-added Operational Geophysical Data Record Sea Surface Height Anomaly SARAL 近实时增值业务地球物理数据记录海面高度异常 简介 2020 年 3 月 18 日至今 ALTIKA_SARAL_L2_OST_XOGDR 这些数据是近实时&#xff08;NRT&#xff09;&#xff…

现代信号处理13_贝叶斯统计Bayesian Statistic(CSDN_20240609)

贝叶斯理论 在传统的统计中&#xff0c;我们对数据是由一定认识的&#xff0c;这种认识一般是指数据的统计模型&#xff08;Statistical Model&#xff09;f(x|θ) &#xff0c;其中θ 通常指未知参数&#xff08;Unknown Parameter&#xff09;&#xff0c;x 是已经获得的数据…

LabVIEW电机槽楔松动声测系统

LabVIEW电机槽楔松动声测系统 开发了一种利用LabVIEW软件和硬件平台&#xff0c;为大型电机设计的槽楔松动声测系统。该系统通过声波检测技术&#xff0c;实现了对电机槽楔是否松动的快速准确判断&#xff0c;极大地提高了检测效率和安全性。 项目背景 大型电机在运行过程中…

[图解]企业应用架构模式2024新译本讲解11-领域模型4

1 00:00:00,160 --> 00:00:01,870 好&#xff0c;到这里的话 2 00:00:02,620 --> 00:00:05,060 文字处理器的产品对象就生成了 3 00:00:06,880 --> 00:00:09,180 同样下面就是电子表格 4 00:00:10,490 --> 00:00:11,480 电子表格也同样的 5 00:00:11,490 -->…

html+CSS+js部分基础运用18

1. 按键修饰符的应用。①姓名&#xff1a;按下回车键时调用方法输出“姓名-密码”&#xff1b;②密码&#xff1a;按下shift回车时调用方法输出“姓名密码” 图1 初始效果图 图2 按键修饰符效果图 2. 仿淘宝Tab栏切换&#xff0c;熟悉…

MySQL使用

登录目标数据库 mysql -u root -p123456或指定编码格式登录 mysql -uroot -p密码 --default-character-setutf8 --socketmysql.sock -Amysql > select version();//查看版本号 show databases;//查看数据库有哪些 use xxx; show tables; show create database practice; …

对待谷歌百度等搜索引擎的正确方式

对待百度、谷歌等搜索引擎的方式是&#xff0c;你要站在搜索引擎之上&#xff0c;保持自己的独立思想和意见。 当谷歌宣布他们将会根据一个名为“Alphabet”的新控股公司来进行业务调整时&#xff0c;在科技界引起了一片恐慌之声。 永远不要说这是一个公司一直在做的事情。不…

攻防世界---misc---What-is-this

1、下载附件&#xff0c;是一个.gz的文件夹&#xff0c;是linux系统的压缩包后缀 2、在kali中解压&#xff0c;解压之后得到两张图片 3、想把图片拖在物理机中分析&#xff0c;但是拖不了&#xff0c;所以将.gz文件在物理机中改为.zip&#xff0c;解压之后看到了一个没有后缀的…

TensorFlow2.x基础与mnist手写数字识别示例

文章目录 Github官网文档Playground安装声明张量常量变量 张量计算张量数据类型转换张量数据维度转换ReLU 函数Softmax 函数卷积神经网络训练模型测试模型数据集保存目录显示每层网络的结果 TensorFlow 是一个开源的深度学习框架&#xff0c;由 Google Brain 团队开发和维护。它…

负反馈放大电路

开环放大倍数&#xff1a;放大电路没有加反馈时的放大倍数A 闭环放大倍数&#xff1a;电路加了反馈信号的放大倍数Af。反馈信号和输出信号的比值称为反馈系数F。 三极管各极电压变化关系 1&#xff0c;三极管的基极和发射极之间是同相关系&#xff0c;当基极电压上升&#x…