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 Sleep休眠函数使用简单实例
Feb 02 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
Dec 25 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
Jul 11 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 Python
Python并发:多线程与多进程的详解
Jan 24 Python
Django时区详解
Jul 24 Python
django 自定义filter 判断if var in list的例子
Aug 20 Python
python同步两个文件夹下的内容
Aug 29 Python
django 简单实现登录验证给你
Nov 06 Python
PyCharm 2020 激活到 2100 年的教程
Mar 25 Python
python 爬取百度文库并下载(免费文章限定)
Dec 04 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 #Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 #Python
详解PyTorch模型保存与加载
Apr 28 #Python
Python 图片添加美颜效果
Python 视频画质增强
python 单机五子棋对战游戏
You might like
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
20个非常棒的Jquery实用工具 国外文章
2010/01/01 Javascript
Jquery中删除元素的实现代码
2011/12/29 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
JavaScript字符串对象
2017/01/14 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
js动态引入的四种方法
2018/05/05 Javascript
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
es6中比较有用的7个技巧小结
2019/07/12 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
在MAC上搭建python数据分析开发环境
2016/01/26 Python
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
python实现requests发送/上传多个文件的示例
2018/06/04 Python
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
求网格中的黑点分布
2013/11/06 面试题
网络专业学生个人的自我评价
2013/12/16 职场文书
高二物理教学反思
2014/02/08 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书