python moviepy 图文批量合成带字幕口播视频

最近在研究将图片和文本批量合成为带字幕口播视频

主要是基于python的moviepy库

python 复制代码
from generator import audio, pics, subs, video


def main():
    texts_input = 'example'
    pics_input = 'example'

    # 图片分辨率预处理
    pics.adjust(pics_input)

    # 文字转语音
    audio.text_to_audio(texts_input)

    # 语音转视频
    video.audio_to_video(texts_input, pics_input)

    # 生成字幕
    subs.download_subs(texts_input)

    # 生成字幕视频
    video.attach_subs(texts_input)


if __name__ == "__main__":
    main()

以下是核心的图片+文本转视频逻辑

python 复制代码
import json
from mutagen.mp3 import MP3
from moviepy import editor
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
import generator.pics as pics


def audio_to_video(text_input, pics_input):
    audio_filepath = './output/audios/' + text_input.replace(' ', '_') + '.mp3'
    video_filepath = './output/videos/' + text_input.replace(' ', '_') + '.mp4'
    pics_dir = './output/pics/' + pics_input.replace(' ', '_')

    list_of_images = pics.preprocess_pics(pics_dir)

    audio = MP3(audio_filepath)
    audio_length = audio.info.length
    fps = len(list_of_images) / audio_length
    
    # 生成视频
    video = editor.ImageSequenceClip(pics_dir, fps=fps)
    audio = editor.AudioFileClip(audio_filepath)
    final_video = video.set_audio(audio)

    final_video.write_videofile(video_filepath, codec="libx264", fps=10)

以下是我实现的示例项目,可参考和star一下下哈!

https://github.com/chengxs1994/text-img-generator-vedio

相关推荐
清水白石0086 小时前
解构异步编程的两种哲学:从 asyncio 到 Trio,理解 Nursery 的魔力
运维·服务器·数据库·python
山海青风6 小时前
图像识别零基础实战入门 1 计算机如何“看”一张图片
图像处理·python
彼岸花开了吗7 小时前
构建AI智能体:八十、SVD知识整理与降维:从数据混沌到语义秩序的智能转换
人工智能·python·llm
山土成旧客7 小时前
【Python学习打卡-Day40】从“能跑就行”到“工程标准”:PyTorch训练与测试的规范化写法
pytorch·python·学习
闲人编程7 小时前
消息通知系统实现:构建高可用、可扩展的企业级通知服务
java·服务器·网络·python·消息队列·异步处理·分发器
大神君Bob7 小时前
【AI办公自动化】如何使用Pytho让Excel表格处理自动化
python
Heorine7 小时前
数学建模 绘图 图表 可视化(6)
python·数学建模·数据可视化
栈与堆7 小时前
LeetCode-1-两数之和
java·数据结构·后端·python·算法·leetcode·rust
智航GIS8 小时前
10.7 pyspider 库入门
开发语言·前端·python
副露のmagic8 小时前
更弱智的算法学习 day25
python·学习·算法