文 | 闲欢

来源: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!相关推荐

  1. 如何用python提取音频

    可以使用 Python 的多种库来提取音频.其中一种方法是使用 ffmpeg 库. 首先,需要安装 ffmpeg 库,可以使用以下命令进行安装: pipinstall ffmpeg 然后,可以使用以下 ...

  2. 图片提取文字功能很神奇?Java几行代码搞定它!

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/weixin_44671737/ article/details/110000864 摘要 近日浏 ...

  3. 保存blob到本地_用12行代码提取浏览器自动保存的密码

    在本文中,我将演示如何轻松提取Chrome配置文件中保存的用户名和密码.有人可能会认为Chrome会加密自动保存的密码,但并非如此.当你在使用Chrome时,往往需要输入某个密码才能同步自动保存的密码 ...

  4. python听不懂_看日本电影真痛苦,本来就听不懂!还没字幕!6行代码音频转文字...

    进群:125240963   即可获取数十套PDF哦! 前面几天想看一个电影(至于什么电影就不说了),搜了半天没有中文字幕. 看日本电影再也不怕看不懂了,6行Python代码轻松实现音频转文字 这么贵 ...

  5. 从GTF文件中提取TSS上下游1kb的区间,要多少行代码?

    欢迎关注"生信修炼手册"! 在ATAC_seq数据分析中,需要绘制reads在TSS位点附近的分布图, 如下所示 左侧为NFR reads在TSS位点两侧的分布图,右侧为单个核小体 ...

  6. 对ORBslam2前端ORBextractor点提取的理解(理解每行代码在干啥)

    前言:受高博的启发,想自己写一个完整的slam,不知如何动手,想到将orbslam2拆分,按照自己的理解组装一个slam(先整出个视觉里程计吧),所以开始研究orbslam2前端的代码,在slam14 ...

  7. 新版TCGA表达矩阵1行代码提取2.0版

    配合视频教程使用更佳:[1行代码提取6种TCGA表达矩阵和临床信息] https://www.bilibili.com/video/BV12R4y197Ne/?share_source=copy_we ...

  8. python读取excel文件代码封装_12行代码教会你用python读excel文件提取数据生成条形码...

    12 行代码教会你用 python 读 excel 文件,提取数据,生成 条形码 一.需求分析条形码应用广泛,尤其是人事.财务和库 管等等岗位,常需根据 excel 文件成批生成条码,如果是经 常性天 ...

  9. 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文件 ...

最新文章

  1. 600度近视眼恢复方法_近视眼了怎么办?试试这几种方法,或许能奏效
  2. BZOJ 2662: [BeiJing wc2012]冻结(最短路)
  3. CompletableFuture并行异步处理类使用示例
  4. OpenCASCADE:Modeling Data之拓扑
  5. GDCM:gdcm::ModuleEntry的测试程序
  6. 手机usb共享计算机网络连接,如何将手机wifi网络通过USB共享给电脑?小编教你共享方法...
  7. liveness 生存性/活性
  8. 查看高通kernel用哪个dsti
  9. jacob将WORD转换成PDF文件(要装有Word另存为PDF文件的插件)
  10. 关于改进邮政编码的建议 2018-03-08
  11. 如何在网页浏览器中缩放网页?
  12. JavaScript-ES7~ES8新特性使用教程
  13. Lettuce: Connection to xxx not allowed. This partition is not known in the cluster view.
  14. 前端面试总结2020年9月12家面试
  15. 如何对手机进行软件测试?
  16. matlab关于年月日的程序,自己编的小程序!Matlab日期计算
  17. 你对明星直播带货有多少误解?
  18. Knockout监控属性
  19. 利用新浪微博第三方认证OAuth登录自己的网站
  20. 什么情况下会导致内存泄露

热门文章

  1. Android 7.0 挂断电话流程分析
  2. android+p+华为手机,小米之后 华为与荣耀多款手机开启Android P内测
  3. 阿里P8被裁员无法接受事实,疑似给市长写信:房贷月供3w,压力很大,出去找工作没面试机会!...
  4. 熵权法的计算--基于Excel
  5. 多分类任务中精确率(Precision)、召回率(Recall)以及准确率(Accuracy)评估指标的计算
  6. painter X Sumi-e(黑墨笔)画笔
  7. 微信JS-SDK说明文档---自己总结了config时的参数获取方式
  8. weex-eros+vue Android拍照并预览图片踩坑【小白向】
  9. 鸿蒙os系统演示视频,华为宣布重大消息 鸿蒙操作系统演示视频来了
  10. 饿了么Mysql异地多_饿了么异地多活技术实现(四)- 实时双向复制工具(DRC)...