前言
在日常生活中,有好听的翻唱视频或音乐视频可以将其音频分离保存到网易云或QQ音乐中随时听,然而大部分的音频分离软件需要下载和安装,使用起来极其笨重,本文提供了一种提取音频的简便方法。
提示:本文出现的代码在Python环境下安装完相应的库后可以直接使用
一、🎋环境准备以及编写其核心代码
1.安装第三方库moviepy
打开Cmd或者PowerShell输入一下命令安装库
pip install moviepy
2.核心代码
代码如下(示例):可直接使用
import moviepy.editor as mp
my_clip = mp.VideoFileClip("C:\\Users\\ME08I\\Desktop\\1.mp4")#ci此处为视频的绝对路径。
my_clip.audio.write_audiofile('./test.mp3')#此处为输出的音频名称和格式
注意:Python中'\'符号会被识别为转义字符,所以要使用'\\'
二、🎠代码改进
提示:代码中引入的库,除了moviepy库,其它的都是python3自带的库,直接引入就好
1.引入tkinter
过后在启动脚本时可以直接使用窗口来选择文件,而不需要修改代码中的路径,同时直接使选择的视频文件名为抽离的音频文件名。
import os
import moviepy.editor as mp
import tkinter as tk
from tkinter import filedialog
#关闭黑窗口
root = tk.Tk()
root.withdraw()
def divest() -> None:
"""
音频分离核心功能
:return: None
"""
try:
filePath = select_single_file()
my_clip = mp.VideoFileClip(filePath)
# 切割文件名和后缀名
fileName = os.path.basename(filePath).split(".")[0]
if os.path.exists(f'{fileName}.mp3'):
print("文件已存在于当前目录,请重新选择!")
divest()
else:
my_clip.audio.write_audiofile(f'{fileName}.mp3')
except Exception as e:
print(e)
def select_single_file() -> str:
"""
选择一个文件
:return: 所选文件的绝对路径
"""
filePath = filedialog.askopenfilename()
return filePath
if __name__ == '__main__':
divest()
2.实现效果
- 执行脚本文件
- 选择视频文件
- 完成分离
- 生成的音频文件在脚本的路径下,路径完全可以自己修改,比如将生成的音频文件生成在与视频文件相同的目录下。
总结
现如今大部分的视频剪辑软件都有一键音频分离的功能,但是,视频软件都极其的笨重,从打开到初始化都可能需要几十秒,而使用Python的moviepy库仅需3行代码便可完成分离,改进后的代码在加入了抓错和窗口选择后,完全可以当作一款小工具使用,望收藏!
如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!
😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓
1️⃣零基础入门
① 学习路线
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
② 路线对应学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
③练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
2️⃣国内外Python书籍、文档
① 文档和书籍资料
3️⃣Python工具包+项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
②Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
③Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
4️⃣Python面试题
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。