Python实现将多张图片合成MP4视频并加入背景音乐


Posted in Python onApril 28, 2022

实现的思路:将准备好的图片通过opencv读取出来,并将其设置好帧数等参数后合成为无声视频。

最后通过moviepy编辑视频将背景音乐加入到视频中。

Python实现将多张图片合成MP4视频并加入背景音乐

Python实现将多张图片合成MP4视频并加入背景音乐

开始之前还是需要说明一下非标准库的来源,因为有些库的名称和需要导入模块的名称不一定就是一样的。

import os  # python标准库,不需要安装,用于系统文件操作相关
import cv2  # python非标准库,pip install opencv-python 多媒体处理
from PIL import Image  # python非标准库,pip install pillow,图像处理
import moviepy.editor as mov  # python非标准库,pip install moviepy,多媒体编辑

要使用到什么模块已经叙述了,若是没有的话安装一下就可以了。接下来第一步就是将图片素材准备好来编写如何将图片转换成视频。

def image_to_video(image_path, media_path):
    '''
    图片合成视频函数
    :param image_path: 图片路径
    :param media_path: 合成视频保存路径
    :return:
    '''
    # 获取图片路径下面的所有图片名称
    image_names = os.listdir(image_path)
    # 对提取到的图片名称进行排序
    image_names.sort(key=lambda n: int(n[:-4]))
    # 设置写入格式
    fourcc = cv2.VideoWriter_fourcc('M', 'P', '4', 'V')
    # 设置每秒帧数
    fps = 2  # 由于图片数目较少,这里设置的帧数比较低
    # 读取第一个图片获取大小尺寸,因为需要转换成视频的图片大小尺寸是一样的
    image = Image.open(image_path + image_names[0])
    # 初始化媒体写入对象
    media_writer = cv2.VideoWriter(media_path, fourcc, fps, image.size)
    # 遍历图片,将每张图片加入视频当中
    for image_name in image_names:
        im = cv2.imread(os.path.join(image_path, image_name))
        media_writer.write(im)
        print(image_name, '合并完成!')
    # 释放媒体写入对象
    media_writer.release()
    print('无声视频写入完成!')

向合成后的无声视频中添加背景音乐,背景音乐可以选择从另外一段视频中提取音频。最后将提取到的音频文件添加到该无声视频中。

def set_music():
    '''
    合成视频设置背景音乐函数
    :return:
    '''
    print('开始添加背景音乐!')
    # 初始化视频文件对象
    clip = mov.VideoFileClip('./media.mp4')
    # 从某个视频中提取一段背景音乐
    audio = mov.AudioFileClip('./source.mp4').subclip(0, 83)
    # 将背景音乐写入.mp3文件
    audio.write_audiofile('./background.mp3')
    # 向合成好的无声视频中添加背景音乐
    clip = clip.set_audio(audio)
    # 保存视频
    clip.write_videofile('./media.mp4')
    print('背景音乐添加完成!')


# image_to_video('./images/', './media.mp4')
set_music()

上述代码块已经过素材完成测试,运行没有任何报错直接copy使用即可。

到此这篇关于Python实现将多张图片合成视频并加入背景音乐的文章就介绍到这了!


Tags in this post...

Python 相关文章推荐
分享Python字符串关键点
Dec 13 Python
Python中列表、字典、元组数据结构的简单学习笔记
Mar 20 Python
Django实现自定义404,500页面教程
Mar 26 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
Jan 10 Python
python操作excel的方法(xlsxwriter包的使用)
Jun 11 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
Jul 10 Python
Django对models里的objects的使用详解
Aug 17 Python
opencv python图像梯度实例详解
Feb 04 Python
PyCharm 专业版安装图文教程
Feb 20 Python
10个示例带你掌握python中的元组
Nov 23 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
Feb 05 Python
Python3+Django get/post请求实现教程详解
Feb 16 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 #Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 #Python
详解PyTorch模型保存与加载
Apr 28 #Python
Python 图片添加美颜效果
Python 视频画质增强
python 单机五子棋对战游戏
You might like
PHP4与PHP5的时间格式问题
2008/02/17 PHP
国外比较好的几个的Php开源建站平台小结
2010/04/22 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
2014/09/09 Javascript
JS简单实现城市二级联动选择插件的方法
2015/08/19 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
2016/09/17 Javascript
JS实现“隐藏与显示”功能(多种方法)
2016/11/24 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
js+css实现全屏侧边栏
2020/06/16 Javascript
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
Python中转换角度为弧度的radians()方法
2015/05/18 Python
Python基于有道实现英汉字典功能
2015/07/25 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
wxPython之解决闪烁的问题
2018/01/15 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
python绘制直方图和密度图的实例
2019/07/08 Python
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
JAVA中运算符的分类及举例
2015/09/12 面试题
静心口服夜广告词
2014/03/20 职场文书
最美护士演讲稿
2014/08/27 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
迎国庆演讲稿
2014/09/15 职场文书
房屋租赁委托书范本
2014/10/04 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
教师正风肃纪剖析材料
2014/10/20 职场文书
赤壁观后感(2)
2015/06/15 职场文书
python解决12306登录验证码的实现
2021/04/18 Python
在pyCharm中下载第三方库的方法
2021/04/18 Python
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS