py代码,5张图片生成视频,并且加入背景音乐,视频加入转场特效,需要视频尺寸1080*1920

import cv2
import numpy as np
import os# 设置视频参数
fps = 30
size = (1080, 1920)# 加载图片
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
img3 = cv2.imread('image3.jpg')
img4 = cv2.imread('image4.jpg')
img5 = cv2.imread('image5.jpg')# 创建视频写入对象
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
video_writer = cv2.VideoWriter('output.mp4', fourcc, fps, size)# 添加转场特效
transition_frames = int(fps * 1.5)
transition_kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
for i in range(transition_frames):alpha = i / transition_framesbeta = 1 - alphaimg1_transition = cv2.morphologyEx(img1, cv2.MORPH_OPEN, transition_kernel)img2_transition = cv2.morphologyEx(img2, cv2.MORPH_OPEN, transition_kernel)img_transition = cv2.addWeighted(img1_transition, beta, img2_transition, alpha, 0)video_writer.write(img_transition)# 添加图片1
for i in range(fps * 5):video_writer.write(img1)# 添加转场特效
for i in range(transition_frames):alpha = i / transition_framesbeta = 1 - alphaimg2_transition = cv2.morphologyEx(img2, cv2.MORPH_OPEN, transition_kernel)img3_transition = cv2.morphologyEx(img3, cv2.MORPH_OPEN, transition_kernel)img_transition = cv2.addWeighted(img2_transition, beta, img3_transition, alpha, 0)video_writer.write(img_transition)# 添加图片2
for i in range(fps * 5):video_writer.write(img2)# 添加转场特效
for i in range(transition_frames):alpha = i / transition_framesbeta = 1 - alphaimg3_transition = cv2.morphologyEx(img3, cv2.MORPH_OPEN, transition_kernel)img4_transition = cv2.morphologyEx(img4, cv2.MORPH_OPEN, transition_kernel)img_transition = cv2.addWeighted(img3_transition, beta, img4_transition, alpha, 0)video_writer.write(img_transition)# 添加图片3
for i in range(fps * 5):video_writer.write(img3)# 添加转场特效
for i in range(transition_frames):alpha = i / transition_framesbeta = 1 - alphaimg4_transition = cv2.morphologyEx(img4, cv2.MORPH_OPEN, transition_kernel)img5_transition = cv2.morphologyEx(img5, cv2.MORPH_OPEN, transition_kernel)img_transition = cv2.addWeighted(img4_transition, beta, img5_transition, alpha, 0)video_writer.write(img_transition)# 添加图片4
for i in range(fps * 5):video_writer.write(img4)# 添加转场特效
for i in range(transition_frames):alpha = i / transition_framesbeta = 1 - alphaimg5_transition = cv2.morphologyEx(img5, cv2.MORPH_OPEN, transition_kernel)img1_transition = cv2.morphologyEx(img1, cv2.MORPH_OPEN, transition_kernel)img_transition = cv2.addWeighted(img5_transition, beta, img1_transition, alpha, 0)video_writer.write(img_transition)# 添加图片5
for i in range(fps * 5):video_writer.write(img5)# 释放资源
video_writer.release()# 添加背景音乐
os.system('ffmpeg -i output.mp4 -i music.mp3 -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 -shortest final.mp4')# 删除中间文件
os.remove('output.mp4')

代码使用了OpenCV库来处理图片和视频,需要先安装该库。同时,需要将图片和音乐文件放在代码所在的目录下,并将文件名修改为image1.jpgimage2.jpgimage3.jpgimage4.jpgimage5.jpgmusic.mp3。最终生成的视频文件为final.mp4


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部