Moviepy模块之视频去除声音、添加音乐

news/2024/9/23 14:31:58/

文章目录

  • 前言
  • 一、视频去除声音
    • 1.1 引入库
    • 1.2 加载视频文件
    • 1.3 去除视频声音
    • 1.4 保存无声视频
  • 二、视频添加音乐
    • 2.1 引入库
    • 2.2 加载视频文件
    • 2.3 加载音频文件
    • 2.4 裁剪多余音频
    • 2.5 将音频文件添加到视频中
    • 2.6 保存新的视频文件
  • 总结


前言

大家好,我是空空star,本篇给大家分享一下Moviepy模块之视频去除声音、添加音乐。
本篇使用的moviepy版本如下:
Name: moviepy
Version: 1.0.3


一、视频去除声音

1.1 引入库

from moviepy.video.io.VideoFileClip import VideoFileClip

1.2 加载视频文件

local = '/Users/kkstar/Downloads/video/'
video = VideoFileClip(local+"demo.mp4")

1.3 去除视频声音

video_without_audio = video.without_audio()

1.4 保存无声视频

video_without_audio.write_videofile(local+"output_video.mp4")

二、视频添加音乐

2.1 引入库

from moviepy.audio.io.AudioFileClip import AudioFileClip
from moviepy.video.io.VideoFileClip import VideoFileClip

2.2 加载视频文件

local = '/Users/kkstar/Downloads/video/'
video = VideoFileClip(local+"demo.mp4")

2.3 加载音频文件

audio = AudioFileClip(local+"demo.mp3")

2.4 裁剪多余音频

if audio.duration>video.duration:audio = audio.subclip(0,video.duration)

2.5 将音频文件添加到视频中

video = video.set_audio(audio)

2.6 保存新的视频文件

video.write_videofile(local+"new_video.mp4")

总结

without_audio:从视频中删除音频轨道,只保留视频轨道。具体来说,它会将视频文件中的音频部分剪切掉,只保留视频部分,返回一个新的仅包含视频的视频剪辑副本。这个函数常用于需要仅保留视频部分的情况,比如在制作无声视频或者需要单独编辑音频和视频的时候。
set_audio:用于将音频替换或添加到视频剪辑中的函数。它可以接受一个音频文件路径或一个AudioFileClip对象作为参数,并将其与视频剪辑合并。如果视频剪辑已经具有音频,set_audio函数还可以用于替换现有的音频。需要注意的是,set_audio函数返回一个新的视频剪辑对象,而不是修改原始视频剪辑。因此,如果您想在原始视频剪辑中替换音频,您需要将结果重新分配给原始变量。
subclip:用于从一个视频剪辑中提取一个子剪辑,可以指定起始时间和结束时间,只保留这个时间段内的视频。该函数的参数包括剪辑起始时间、剪辑结束时间以及可选的命名参数如音频和视频编解码器。该函数返回一个新的视频剪辑对象,可以再次编辑和导出。subclip函数是Moviepy中非常有用的函数之一,可以帮助用户快速提取需要的视频片段,提高视频编辑效率。


http://www.ppmy.cn/news/42993.html

相关文章

代码随想录算法训练营第41天| 343. 整数拆分,96.不同的二叉搜索树

代码随想录算法训练营第41天| 343. 整数拆分,96.不同的二叉搜索树343. 整数拆分96.不同的二叉搜索树343. 整数拆分 题目链接:343. 整数拆分,难度:中等 【实现代码】 class Solution { public:int integerBreak(int n) {vector&l…

Win10搭建我的世界Minecraft服务器「内网穿透远程联机」

文章目录1. Java环境搭建2.安装我的世界Minecraft服务3. 启动我的世界服务4.局域网测试连接我的世界服务器5. 安装cpolar内网穿透6. 创建隧道映射内网端口7. 测试公网远程联机8. 配置固定TCP端口地址8.1 保留一个固定tcp地址8.2 配置固定tcp地址9. 使用固定公网地址远程联机转载…

iTOP-RK3568开发板Android kernel移植-单独编译内核

此方法常用于 kernel 的开发和调试,以下的方法既编译 kernel 部分时, 同 时打包成 boot.img, 这样加快了我们开发的速度; 进入内核目录下, 输入以下命令: cd kernel make ARCHarm64 CC../prebuilts/cla…

【故障定位】基于多元宇宙算法的主动配电网故障定位方法研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

NC237662 葫芦的考验之定位子串(SAM + 后缀链接树上倍增)

题意&#xff1a; 给出一个字符串S&#xff0c;|S| ≤ 250000&#xff0c;给出 Q < 250000 次询问&#xff0c;每次需要回答 S[l, r] 在 S 中共出现了多少次。 思路&#xff1a; 如果使用 SAM&#xff0c;我们提前求出每个状态的 cnt[u]&#xff0c;询问就是要求我们快速…

【C++】你了解命名空间吗?

C语言之父&#xff1a;Bjarne Stroustrup博士(本贾尼) 当我们在编写代码的时候&#xff0c;可能会产生一些命名冲突&#xff0c;为了解决这一冲突我们引出命名空间的概念 (ps:命名冲突的产生主要包括两个方面原因&#xff1a;1、与库函数名冲突&#xff1b;2、相互之间的冲突&…

20230411英语学习

今天学点单词 imitation n.模仿&#xff0c;效仿&#xff1b;赝品&#xff0c;仿品 theoretical adj.&#xff08;研究、解释&#xff09;理论的&#xff0c;理论性的&#xff1b;理论上的 appliance n.(用于特定目的的)器具(尤指家用器具); 器械, 装置; 应用 evolve v.进化…

seata学习笔记

Seata 官网&#xff1a; https://seata.io/zh-cn/index.html 是什么&#xff1f; Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式…