首页 > 编程语言 >用Python打造精彩动画与视频,3.3 添加音频和简单效果

用Python打造精彩动画与视频,3.3 添加音频和简单效果

时间:2024-07-31 16:58:59浏览次数:15  
标签:视频 动画 Python 音频 video 3.3 audio

 3.3 添加音频和简单效果

在本节中,我们将学习如何使用 MoviePy 库为视频添加音频和一些简单的效果。这些操作可以让你的视频更具吸引力和个性化。

准备工作

首先,确保你已经安装了 MoviePy 和 pydub 库。你可以通过以下命令安装:

pip install moviepy pydub

同时,你需要确保系统中安装了 `ffmpeg`。你可以从 [ffmpeg.org](https://ffmpeg.org/download.html) 下载并安装 `ffmpeg`。安装完成后,将 `ffmpeg` 添加到系统的 PATH 环境变量中。

验证安装

在 PyCharm 中新建一个 Python 文件,例如 `verify_installation.py`,并编写以下代码来验证 MoviePy 库的安装:

from moviepy.editor import VideoFileClip

验证 MoviePy 库的安装

video = VideoFileClip("I:/《从基础到精通:用Python打造精彩动画与视频》/python动画视频项目目录/MyNewProject/浪迹天涯的游子想家了吗.mp4")

print(f"视频时长: {video.duration} 秒")

运行这段代码,如果没有错误,并且输出了视频的时长,则表明 MoviePy 库安装成功。

生成音频文件

在 PyCharm 中新建一个 Python 文件,例如 `generate_audio.py`,并编写以下代码来生成一个简单的 MP3 音频文件:

from pydub.generators import Sine

生成一个 5 秒钟的正弦波音频

tone = Sine(440).to_audio_segment(duration=5000)

保存生成的音频文件

tone.export("I:/《从基础到精通:用Python打造精彩动画与视频》/python动画视频项目目录/MyNewProject/background_music.mp3", format="mp3")

print("Audio file generated successfully.")

运行这段代码后,会生成一个名为 `background_music.mp3` 的音频文件,并保存在指定的目录中。你可以使用这个音频文件进行后续的操作。

 步骤一:在 PyCharm 中创建一个新项目

1. 打开 PyCharm。

2. 创建一个新项目,命名为 `MyNewProject`。

3. 在项目目录下创建一个新的 Python 文件,例如 `main.py`。

步骤二:编写添加音频和效果的代码

在 `main.py` 文件中,编写以下代码来实现为视频添加音频和简单效果:

from moviepy.editor import VideoFileClip, AudioFileClip

from moviepy.video.fx.all import fadein, fadeout

读取视频文件

video = VideoFileClip("I:/《从基础到精通:用Python打造精彩动画与视频》/python动画视频项目目录/MyNewProject/浪迹天涯的游子想家了吗.mp4")

读取音频文件

audio = AudioFileClip("I:/《从基础到精通:用Python打造精彩动画与视频》/python动画视频项目目录/MyNewProject/background_music.mp3")

为视频添加音频

video = video.set_audio(audio)

添加简单效果(例如:淡入淡出效果)

video = video.fx(fadein, duration=2).fx(fadeout, duration=2)

保存最终视频

video.write_videofile("I:/《从基础到精通:用Python打造精彩动画与视频》/python动画视频项目目录/MyNewProject/final_video_with_audio.mp4")

 代码解释

1. 导入库:

    from moviepy.editor import VideoFileClip, AudioFileClip

   from moviepy.video.fx.all import fadein, fadeout

   导入 `VideoFileClip` 和 `AudioFileClip` 用于读取视频和音频文件,导入 `fadein` 和 `fadeout` 用于添加视频效果。

2. 读取视频和音频文件:

   video = VideoFileClip("I:/《从基础到精通:用Python打造精彩动画与视频》/python动画视频项目目录/MyNewProject/浪迹天涯的游子想家了吗.mp4")

   audio = AudioFileClip("I:/《从基础到精通:用Python打造精彩动画与视频》/python动画视频项目目录/MyNewProject/background_music.mp3")

   读取视频和音频文件并创建相应的对象。

3. 为视频添加音频:

     video = video.set_audio(audio)

  

   使用 `set_audio` 方法将音频添加到视频中。

4. 添加简单效果:

    video = video.fx(fadein, duration=2).fx(fadeout, duration=2)

   使用 `fadein` 和 `fadeout` 方法为视频添加淡入淡出效果,每个效果的持续时间为 2 秒。

5. 保存最终视频:

    video.write_videofile("I:/《从基础到精通:用Python打造精彩动画与视频》/python动画视频项目目录/MyNewProject/final_video_with_audio.mp4")

   使用 `write_videofile` 方法将添加音频和效果后的最终视频保存到指定路径。

步骤三:运行代码

1. 确保你的 `main.py` 文件中包含上述代码。

2. 在 PyCharm 中运行 `main.py` 文件。

运行后,PyCharm 的控制台会显示视频处理的进度。处理完成后,添加音频和效果的视频文件 `final_video_with_audio.mp4` 将会保存到指定路径。

总结

通过以上步骤,你已经学会了如何使用 MoviePy 库在 PyCharm 中为视频添加音频和简单的效果。你可以根据需要调整音频和效果的参数,进一步探索 MoviePy 提供的其他功能来创建更复杂的视频编辑项目。

标签:视频,动画,Python,音频,video,3.3,audio
From: https://blog.csdn.net/wfbl123456/article/details/140827346

相关文章

  • 用Python打造精彩动画与视频,3.2 基本的剪辑和合并操作
     3.2基本的剪辑和合并操作在这一节中,我们将学习如何使用MoviePy库对视频进行基本的剪辑和合并操作。MoviePy是一个用于视频编辑的Python库,可以轻松地实现视频的剪辑、合并、添加音频等操作。准备工作首先,确保你已经安装了MoviePy库。你可以通过以下命令安装:pipins......
  • 计算机毕业设计django/flask导师双选指导系统python+vue
    通过分析企业对于本科生导师指导平台的需求,创建了一个计算机管理本科生导师指导平台的方案。文章介绍了本科生导师指导平台的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。 Python版本:python3.7+前端:vue.js+elementui框架:django/flask都......
  • 农产品商城自主供销服务系统 微信小程序-python+uniapp
    小程序端运行软件 微信开发者工具/hbuiderxuni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。农产品供销系统是基于微信小程序开发,本系统分为用户,管理员,商家三个角色;用户功能是注册登陆后,在线购买商品,加入购物车,生成订单,在线咨......
  • VSCode:Python 虚拟环境未在集成终端中自动激活
    我最近安装了VSCode,并注意到当我打开集成终端时,Python虚拟环境不会自动激活。从此链接中VSCode内提供的信息:https://github.com/microsoft/vscode-python/wiki/Activate-Environments-in-Terminal-Using-Environment-Variables看来Python扩展可能不会对......
  • Python 中的多元回归
    我想在Python中基于多个相关数据数组和多个独立数据执行多元线性回归。我见过很多多重线性回归,具有多个独立输入,几乎每个人都认为多重=多元,但事实并非如此。我在互联网上看不到任何真正的多元教程。我想要的是多个输出+多个输入。frompandasimportDataFramefromsklear......
  • Python 复选框和 Excel
    我有一个Python系统,它收集用户的条目,进行计算并显示结果。当用户单击条目数据按钮时,所有数据条目和结果都会转换为Excel。在系统界面中有是部分的复选框,结果显示在Excel中。我需要一个助手来编写代码,以便我可以在每次用户选择选定的复选框时转换结果,将复选框的每......
  • Python - Class Decorators
    Wehaveusedfunctionstodecoratefunctionsandtodecorateclasses.Now,wewillseehowtodefineaclassasadecorator.Atthestartofthischapter,inthedefinitionofdecorator,wehadseenthatadecoratorisacallable;acallableisanyobject......
  • 基于Python的高校成绩分析【源码+LW+PPT+部署讲解】
    作者主页:编程千纸鹤作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待......
  • 基于Python网络爬虫的电子产品信息查询可视化系统
    作者主页:编程千纸鹤作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待......
  • [SUCTF 2019]Pythonginx (unicode转IDNA域名分割漏洞)
    代码我看到这两个就感觉有问题了,第一个转编码这个搜了一下是unicode转idna的问题,第二个urlopen是Python标准库中urllib.request模块中的一个函数,用于向指定的URL发送HTTP请求并获取响应参考文章:https://xz.aliyun.com/t/6070?time__1311=n4%2BxnD0DgDcmG%3DrDsYoxCqiIQ7KDtH......