假如要做一个短视频,我们可以怎么做。
在当前的技术以及个人可以掌握的资源下,如何搭建一套一键式短视频生成的程序。
作为文生视频的先锋,sora在刚刚出现时让人感觉非常惊艳,但是目前看来,距离一键式生成完成度高,质量好的作品,还是有很大的距离。并且浓浓的AI风很容易让人产生反感。
采用AI Agent的方式来剪辑生成一个短视频,利用个人有限的资源以及当前能够容易获取的技术,能做到什么程度呢?
文案生成
首先要有一段文案,这对于大模型来说是容易实现的,虽然往往缺乏创意,但还是很简单的就可以给出一个中规中矩的文案。给出提示词:写一段关于中秋节的中国古代诗词的短视频文案
【画面以古色古香的庭院为背景,淡雅的古琴声轻轻响起】
旁白(悠扬而古朴): “当秋风轻拂过历史的长河,千年的文化在这一刻汇聚。中秋佳节,让我们跟随古人的足迹,一同感受那份穿越时空的诗意。”
【镜头缓缓推进,展示一幅描绘月下景色的水墨画】
旁白(缓缓吟诵): ‘明月几时有?把酒问青天。’——苏轼《水调歌头》。在宋代诗人苏轼的眼中,中秋之月不仅是自然界的美景,更是寄托情感的载体。”
【画面切换至古代文人赏月的情景,背景配以诗句字幕】
旁白(继续吟诵): ‘今夜月明人尽望,不知秋思落谁家。’——王建《十五夜望月寄杜郎中》。在这月光皎洁的夜晚,文人们举杯邀明月,共叙离愁别绪。”
【镜头转向现代人手捧古籍阅读,与古人形成时空交错】
旁白(深情地): “虽然时光流转,但那份对美好的向往与追求却从未改变。在每一个中秋之夜,我们都能够从这些流传千古的诗句中找到共鸣。”
【视频最后,画面定格在一轮圆月之下,映衬出古诗文集的封面】
旁白(总结): “让这些穿越千年的诗句,为我们带来无限的想象与感动。在这个中秋佳节,让我们一起品读古人的智慧,感受那份独特的韵味。”
【视频结束,屏幕出现一行文字:“中秋佳节,品味诗意人生。”】
任务拆解
我可以继续调用大模型接口,实现任务的拆分,提示词:
我希望用这个文案通过ai智能进行实现,我需要将这些都分成一个一个的小的任务,这些小的任务通过调用一些接口就可以实现,如,步骤一中,我需要的是一个古色古香的庭院为背景,可以是古建筑、石桌石凳等元素的视频,你就可以拆成,“生成一段以古色古香的庭院为背景,可以是古建筑、石桌石凳等元素的视频”,
生成结果,在程序中,这些被放到list中:
生成一段以古色古香的庭院为背景,可以是古建筑、石桌石凳等元素的视频。生成淡雅的古琴音乐作为背景音效。生成一段旁白音频,内容为:“当秋风轻拂过历史的长河,千年的文化在这一刻汇聚。中秋佳节,让我们跟随古人的足迹,一同感受那份穿越时空的诗意。”生成一幅描绘月下景色的水墨画或书法作品的视频片段。生成一段旁白音频,内容为:“明月几时有?把酒问青天。在宋代诗人苏轼的眼中,中秋之月不仅是自然界的美景,更是寄托情感的载体。”生成一段古代文人赏月的情景视频,如文人雅士举杯对月的画面。生成一段旁白音频,内容为:“今夜月明人尽望,不知秋思落谁家。在这月光皎洁的夜晚,文人们举杯邀明月,共叙离愁别绪。”生成一段现代人手捧古籍阅读或一家人围坐一起读书的情景视频。生成一段旁白音频,内容为:“虽然时光流转,但那份对美好的向往与追求却从未改变。在每一个中秋之夜,我们都能够从这些流传千古的诗句中找到共鸣。”生成一段定格在一轮圆月下的视频,映衬出一本古诗文集的封面或书页。生成一段旁白音频,内容为:“让这些穿越千年的诗句,为我们带来无限的想象与感动。在这个中秋佳节,让我们一起品读古人的智慧,感受那份独特的韵味。”生成一段显示文字“中秋佳节,品味诗意人生”的视频。生成一段旁白音频,内容为:“感谢您的观看,祝您中秋快乐!”将所有视频片段按顺序拼接起来,并确保每个环节之间的过渡自然流畅。调整背景音乐的音量,使其与旁白和视频内容相匹配。导出最终视频文件,格式为常用的MP4或MOV等格式。拆分效果不错,除了一些地方需要调整,比如字幕的显示,画面中文字的显示等,但这些通过后面实现的步骤都可以调整过来。而在程序中,这些是很容易被结构化的,这就方便了后面我们的调用。
步骤实现
接下来就是按照步骤去一步一步实现。
第1步,获取一段视频
当前,好像很少有生成视频的接口。sora好像并没有提供对外使用的调用接口。假如有一天,有大模型平台能够提供程序调用接口,让其生成一段以古色古香的庭院为背景,可以是古建筑、石桌石凳等元素的视频这样小的视频片段是不难实现的。
另一种方案,就是通过检索,利用网络上的视频资源。但是对于个人来讲是不容易实现的,目前还没听说有对外开放的视频检索接口。不过对于拥有着大量视频资源的短视频平台等却是轻而易举的。
对于个人开发者来讲,实现的方法其实就是缩小生成短视频选题的范围,仅针对某一个方向的短视频制作,来搜集资源,通过本地的检索匹配来实现。
虽然大模型还不支持对于视频的识别,或者即使支持了,也将面对着消耗大量的算力。最简单的方式其实是对本地视频资源进行人工描述,然后通过对于文字的理解来应用大模型实现资源的索引。
还有一种更简单的方式,就是通过向量数据库实现向量匹配来实现,通过实践,这种方式是可取的,但是需要做一些额外的工作才能使效果好一些。比如人工对视频进行初步的分类。否则这种简单的匹配往往造成前后的视频不协调。
总之,这一步当前的技术是足够的,但是作为个人有限制。对于大的平台很容易实现。
第2步,获取一段音乐
音乐音频的获取和视频面对的是同样的问题,生成音频的大模型很多,但是目前好像还没有提供程序接口的。同样可以利用现成的音乐资源来替代解决。
第3步,生成语音
和生成音乐不同,语音生成可以通过很多平台的接口实现。很多平台都提供试用期限,即使购买也很便宜。
后面都是视频,音乐音频,旁白音频的生成,
第12步,文字的显示,这也使很容易实现的,通过moviepy等视频编辑软件可以实现。
第14,15,16几个步骤,都可以通过moviepy来实现。
这样看是可以实现一个低配版的短视频制作程序的。
其实,仔细看来,真正需要大模型参与的步骤并不多。从大的方面来讲,其实需要大模型参与的成分并不多。
1,文案的生成,2,步骤的拆解,3. 音视频的选择,这一步可以使用其他技术替换,如向量数据库。
在实现的步骤中,可能会有一些地方可以通过大模型的参与来简化流程。
其实从分析来看,即使除去AI的应用,也就是将1,2换做人工来实现,3采用其他技术,也依然可以完成一个视频剪辑的程序,况且AI生成的文案往往没有创意。但是一个一键式,丝毫不需要人参与的程序谁不爱呢。
实现
当各种因素由于技术或者资源方面的原因都做了妥协之后,就会导致整个作品(如果可以被叫做作品)的极度拉跨。通过实践,做出来的东西基本不符合脑海里看到文案时想象的场景。因此在整体上做了一个妥协,就是让程序面向的场景变得更窄。从而省去步骤的分解(这样大模型在整个程序中的占比更小了)变成一个统一的流程。完成了一版程序。
键入要求(这个要求也可以通过ai批量生成)
一个充满了程序味道的短视频很容易就制作成了.(不支持视频,截个图吧)图片的选择采用了向量数据库,做了人为的分类。音乐没有让程序选,而是给了一个固定的,当然也可以通过向量数据库进行选择。
后面还有几句
总结
当前的AI擅长做什么,能做到什么程度,适合在什么地方应用,如果亲自实现一遍,还是可以带来更深刻的理解的。
总起来讲,AI在程序中的应用带来了很多的可能性。
一方面,它可以提升程序的效率,比如,在传统程序中,为了提高程序的适用范围和应用场景,往往是以增加代码量,降低效率为代价的,而AI的引入可能打破这种状况,比如,它可以针对特定场景动态生成代码,而不是将代码提前准备好。
另一方面,它可以完成一些传统程序很难完成的任务。
但是,拥有这些潜在好处的同时,必须要面对程序中被引入的“不确定性”。这就决定,与传统的程序的基本准则之一背道而驰。
长期从事传统程序编写的程序员,设计者,以及需求的提出者往往延续着传统程序带来的惯性思维。把太多的心思花在了消除这种不确定性上。但是,在一些领域,这些不确定性往往是创意产生的条件。我们更应该追求的是在一定的框架中寻求可以预期的结果。
在今后的应用程序设计中,设计者,程序员,需求提出者往往需要展开一场对ai的博弈,这个博弈就是考量在程序中应该让ai参与到一个什么样的程度。
传统的程序和带有ai的程序应该被分开来看。在不同的层面上来看待。传统程序作为工具,而ai作为工具的使用者。