几行代码迅速提取音频,YYDS!
文 | 闲欢
来源:Python 技术「ID: pythonall」
前几天,有个小妹妹问我:哪里可以找到 BBC 英语的音频?
她只有视频文件,但是她想在路上听音频学英语。
我当时就去网盘资源里面搜索,废了好大功夫才找到她要的资源。
今天,突发奇想:为什么不用程序将视频中的音频给提取出来呢?
于是,查阅了相关资料,发现其实这事用 Python 实现非常简单,几行代码,眨眼功夫就可以搞定!
FFmpeg 简介
FFmpeg 是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了 libavcodec ——这是一个用于多个项目中音频和视频的解码器库,以及 libavformat ——一个音频与视频格式转换库。
在 Python 中,有一个库跟 FFmpeg 对应,叫 ffmpy
,利用这个库,我们就可以很轻松地从视频中提取音频了。
安装这个库的方式也很简单:
pip install ffmpy -i https://pypi.douban.com/simple
代码实现
我们只需要传入三个参数——视频地址、音频结果存放地址和音频的格式后缀,就可以调用 FFmpeg 提取音频了。
def run_ffmpeg(video_path: str, audio_path: str, format: str):ff = FFmpeg(inputs={video_path: None},outputs={audio_path: '-f {} -vn'.format(format)})ff.run()return audio_path
然后,再写个接收参数的函数:
def extract(video_path: str, tmp_dir: str, ext: str):file_name = '.'.join(os.path.basename(video_path).split('.')[0:-1])return run_ffmpeg(video_path, os.path.join(tmp_dir, '{}.{}'.format(uuid.uuid4(), ext)), ext)
最后,我们来测试一下:
if __name__ == '__main__':print(extract('C:/个人/video/test/bbc.mp4', 'C:/个人/video/test', 'wav'))
运行这个代码,就会在你的视频目录生成一个文件名为 uuid 的 wav 格式音频文件。
你也可以选择输出 mp3 格式的音频。
其实,这个提取过程就等价于在命令行敲了一行命令:
ffmpeg -i C:/个人/video/test/bbc.mp4 -f wav -vn C:/个人/video/test\77350be1-b2ae-4fc8-af80-da4eda463fa9.wav
总结
整个音频提取过程的核心代码其实就几行,最终执行的是一个命令行的命令,可以说是相当简单了。这段代码可以作为一个工具类收藏着,需要用的时候可以迅速拿出来使用。今天的技能你学会了吗?
PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!
老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!
【代码获取方式】
识别文末二维码,回复:闲欢
几行代码迅速提取音频,YYDS!相关推荐
- 如何用python提取音频
可以使用 Python 的多种库来提取音频.其中一种方法是使用 ffmpeg 库. 首先,需要安装 ffmpeg 库,可以使用以下命令进行安装: pipinstall ffmpeg 然后,可以使用以下 ...
- 图片提取文字功能很神奇?Java几行代码搞定它!
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/weixin_44671737/ article/details/110000864 摘要 近日浏 ...
- 保存blob到本地_用12行代码提取浏览器自动保存的密码
在本文中,我将演示如何轻松提取Chrome配置文件中保存的用户名和密码.有人可能会认为Chrome会加密自动保存的密码,但并非如此.当你在使用Chrome时,往往需要输入某个密码才能同步自动保存的密码 ...
- python听不懂_看日本电影真痛苦,本来就听不懂!还没字幕!6行代码音频转文字...
进群:125240963 即可获取数十套PDF哦! 前面几天想看一个电影(至于什么电影就不说了),搜了半天没有中文字幕. 看日本电影再也不怕看不懂了,6行Python代码轻松实现音频转文字 这么贵 ...
- 从GTF文件中提取TSS上下游1kb的区间,要多少行代码?
欢迎关注"生信修炼手册"! 在ATAC_seq数据分析中,需要绘制reads在TSS位点附近的分布图, 如下所示 左侧为NFR reads在TSS位点两侧的分布图,右侧为单个核小体 ...
- 对ORBslam2前端ORBextractor点提取的理解(理解每行代码在干啥)
前言:受高博的启发,想自己写一个完整的slam,不知如何动手,想到将orbslam2拆分,按照自己的理解组装一个slam(先整出个视觉里程计吧),所以开始研究orbslam2前端的代码,在slam14 ...
- 新版TCGA表达矩阵1行代码提取2.0版
配合视频教程使用更佳:[1行代码提取6种TCGA表达矩阵和临床信息] https://www.bilibili.com/video/BV12R4y197Ne/?share_source=copy_we ...
- python读取excel文件代码封装_12行代码教会你用python读excel文件提取数据生成条形码...
12 行代码教会你用 python 读 excel 文件,提取数据,生成 条形码 一.需求分析条形码应用广泛,尤其是人事.财务和库 管等等岗位,常需根据 excel 文件成批生成条码,如果是经 常性天 ...
- Python3,5行代码,Chatxxx能对PDF文件进行旋转、提取、合并等一系列操作,看了这篇,80岁老奶奶走路都不扶墙了。
ChatPDF的妙用 1.引言 2.代码实战 2.1 原理 2.2 安装 2.2 示例 2.2.1 创建PDF文件 2.2.2 旋转PDF文件 2.2.3 拆分PDF文件 2.2.4 合并PDF文件 ...
最新文章
- 600度近视眼恢复方法_近视眼了怎么办?试试这几种方法,或许能奏效
- BZOJ 2662: [BeiJing wc2012]冻结(最短路)
- CompletableFuture并行异步处理类使用示例
- OpenCASCADE:Modeling Data之拓扑
- GDCM:gdcm::ModuleEntry的测试程序
- 手机usb共享计算机网络连接,如何将手机wifi网络通过USB共享给电脑?小编教你共享方法...
- liveness 生存性/活性
- 查看高通kernel用哪个dsti
- jacob将WORD转换成PDF文件(要装有Word另存为PDF文件的插件)
- 关于改进邮政编码的建议 2018-03-08
- 如何在网页浏览器中缩放网页?
- JavaScript-ES7~ES8新特性使用教程
- Lettuce: Connection to xxx not allowed. This partition is not known in the cluster view.
- 前端面试总结2020年9月12家面试
- 如何对手机进行软件测试?
- matlab关于年月日的程序,自己编的小程序!Matlab日期计算
- 你对明星直播带货有多少误解?
- Knockout监控属性
- 利用新浪微博第三方认证OAuth登录自己的网站
- 什么情况下会导致内存泄露
热门文章
- Android 7.0 挂断电话流程分析
- android+p+华为手机,小米之后 华为与荣耀多款手机开启Android P内测
- 阿里P8被裁员无法接受事实,疑似给市长写信:房贷月供3w,压力很大,出去找工作没面试机会!...
- 熵权法的计算--基于Excel
- 多分类任务中精确率(Precision)、召回率(Recall)以及准确率(Accuracy)评估指标的计算
- painter X Sumi-e(黑墨笔)画笔
- 微信JS-SDK说明文档---自己总结了config时的参数获取方式
- weex-eros+vue Android拍照并预览图片踩坑【小白向】
- 鸿蒙os系统演示视频,华为宣布重大消息 鸿蒙操作系统演示视频来了
- 饿了么Mysql异地多_饿了么异地多活技术实现(四)- 实时双向复制工具(DRC)...