动机
生活总是不尽人意,今天也是一样。总是从网上下载了许多好听的Live视频,真是太有感觉了好吧。但是我想听歌我不想看视频呐,一锁屏就暂停这怎么能忍?想想办法把视频中的音轨提取出来呗。搜索引擎启动:在线MP4提取MP3
。一个小小的功能竟然许要下载安装这么大的软件,这怎么能忍啊。我感觉这应该不难啊,自己生撸一个不是更好😝?当然这是不存在的,一个成熟的程序员懂得在网上找现成的轮子,俺也一样。
果然说Github是程序员的天堂,过真还给我找到了。Pydub - 超过3000stars项目。我们先看看他的介绍:Pydub lets you do stuff to audio in a way that isn't stupid。划重点,Pydub让你可以让你通过不是很傻逼方式处理音频。事实证明这个库对新手是极其友好的。为什么这么说呢?因为它的API Documentation我竟然可以不借助翻译看的半懂,并且他的代码确实十分简洁易懂。
脚本介绍
Pydub:前面已经介绍了,这个库可以让我们通过不是那么傻逼的方式处理音频文件。但是Pydub只支持原生的wav格式的文件处理。所以如果你想处理其他格式的音频,或者说你想处理媒体文件中的音频那你需要在你本地安装FFmpeg支持。但是好像这个支持库蛮大的,与之前的要简单纯粹的说法相悖了,但是whatever啦,最重要的是开心啊。
FFmpeg:“FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。”,引自百度百科。
所以下文会有一个简单的教程讲解Pydub和FFmpeg的安装及其使用。相信我,Pydub的简单的强大会让你大呼牛逼。下文实现的仅仅是从视频文件保存音轨,好像只要两行代码就完成了呢。
环境搭建
Python版本: Python 3.6.5 支持库: Pydub-0.23.1 //Anaconda base环境
安装Pydub
在虚拟环境Terminal下执行命令:pip install pudub
,这个应该都会啊。
安装FFmpeg
Ⅰ.下载FFmpeg
- FFmpeg官网:https://ffmpeg.org/,找到对应的系统版本下载。
- 将压缩包解压到指定的目录。(eg:D:\ffmpeg)。
- 将安装安装目录下的bin文件夹添加到系统的Path环境变量中。
完整代码
相信我,Pydub的文档简单又纯粹,只需要简单的英语基础你就能看懂每个API的使用方法。所以API介绍?不存在的。文档地址(点击跳转),自己看看不是很好么?觉得好用的话可以给开发者点一个小小的star,star数是最让开发者自豪的谈资。这里仅仅实现一个小功能,更多使用场景需要需求的支持,现在只要满足我的一个小目的即可。代码很生疏,见谅。
from pydub import AudioSegment import os import sys path = os.getcwd() def file_exists(file_path): if os.path.isfile(os.path.join(path,file_path)): return os.path.join(path,file_path) elif os.path.isfile(file_path): return file_path else: return False def convert_video(file_path): mp3_filename = os.path.splitext(os.path.basename(file_path))[0] + '.mp3' AudioSegment.from_file(file_path).export(mp3_filename, format='mp3') if __name__ == '__main__': file_path = file_exists(sys.argv[1]) if file_path: convert_video(file_path) print("文件转换成功") else: print("文件路径错误!") input("按任意键退出\n")
在Terminal输入:python convert.py "文件路径或当前路径下文件名"
,完成之后就可以在目录下看到输出的MP3文件。
写在最后
从这个小小的例程就足以看出Python的强大,除去路径处理的代码核心代码只有一行。这要感谢Pydub作者轮子写的好,让我这个菜鸡也能写出这么优雅的代码,感谢感谢。
当然写这个目的并不主要是介绍这个小脚本。我的想法是记录一下这个Pydub这个强大的支持库,不然以后忘记了就损失惨重了。这么强大的东西以后肯定用得上,大项目不敢说,小工具真是秒出效果。
最后附上这个工具的源动力:来自河北师范大学合唱团的一首《睡在我上铺的兄弟》送给大家,希望能够喜欢。如果觉得声音不大的话可以试着用Pydub的API将音源分贝调高哦😜!
共有 0 条评论