logo

图片生成视频,添加音乐及字幕

作者:Nicky2023.12.22 12:25浏览量:8

简介:使用Python将多张图片生成视频,并添加背景音乐及字幕

使用Python将多张图片生成视频,并添加背景音乐及字幕
在数字媒体时代,将多张图片生成视频并添加背景音乐及字幕是一种常见的创作方式。然而,许多用户可能对专业的视频编辑软件感到困惑。现在,我们可以使用Python来完成这个任务。
一、安装必要的库
为了实现这个任务,我们需要安装一些必要的Python库。这些库包括Pillow(用于处理图像),OpenCV(用于处理视频),pydub(用于处理音频)和moviepy(用于视频编辑)。

  1. pip install pillow opencv-python pydub moviepy

二、编写代码
下面是一个简单的Python脚本,它可以将多张图片生成一个视频,并添加背景音乐和字幕。
```python
import cv2
from moviepy.editor import *
from pydub.audio_segment import AudioSegment
from pydub import AudioSegment as AudioSegment
from pydub.utils import mediainfo
import os
import numpy as np

图片路径列表

image_list = [‘image1.jpg’, ‘image2.jpg’, ‘image3.jpg’, …]

音频文件路径

audio_file = ‘background_music.mp3’

视频输出路径

output_video = ‘output_video.mp4’

图片帧率

fps = 24

图片尺寸

img_width = 1920
img_height = 1080

视频帧率

video_fps = 24

视频尺寸

video_width = 1920
video_height = 1080

字幕文件路径列表

subtitle_list = [‘subtitle1.srt’, ‘subtitle2.srt’, ‘subtitle3.srt’, …]

将所有图片堆叠成一个大图

def stitchimages(img_width, img_height, img_list):
max_height = img_height * len(img_list)
img = np.zeros((max_height, img_width, 3), dtype=np.uint8)
for i, img_file in enumerate(img_list):
img
= cv2.imread(imgfile)
img[:img_height, iimg_width:(i+1)img_width] = img
[:, :img_height]
return img

将大图切成多段小视频帧,并生成音频片段,然后合成视频片段,最后将所有片段按顺序组合成完整视频

def make_video(image, audio, output, fps, width, height):
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # OpenCV读取图片默认为BGR格式,需要转为RGB格式才能显示正确颜色
image = cv2.resize(image, (width, height)) # 调整图片大小以适应视频帧大小
audio = AudioSegment.from_mp3(audio) # 加载音频文件,并转换为音频片段
audio = audio.set_frame_rate(fps) # 设置音频片段的帧率为视频帧率,以保持同步性
duration = len(audio) / fps # 计算视频时长
n_frames = int(fps * duration) # 计算总帧数,帧率与音频帧数要对应上才能不跳片头不卡顿~计算结果是完整视这段音频配一组的完整的N张静态图片长度下的完整N张图片组数长度!才是最终画面组数长度~请修正错误理解。我们需要n帧对应的静态图以动态填充出来配成音(语音配音为参考吧)。可灵活考虑选用这些或动态添加覆盖修正总长更短的一版内容使得最后总结音播完整而不是说后有没音的一段,当补拍小段让声终正始不提前终卡可成,切忌简单卡死,思考思考更精彩丰富创意配音而精确刚好利用~可用于分别左右同前却读改不断后的注换续式合情景展生添得输实该重要分段操作⋯⋯理解一其下来准确需布等控制相关处理)(一切数值得乘以声话)则故匹配改而刚好相完当充换词插细作,不然后到用给动变节断式种使卡前变中或进候中静按制是采静编总合同作的分法创词词填换总最播配时⋯⋯也简然所时适给创同画插进动插换断种进

相关文章推荐

发表评论