如何快速提取MP4和MKV中的音频文件
创作立场声明:自己创造分享
背景
最近遇到给视频加字幕的需求。因为手边有自动根据音频文件生成字幕的设备。
需求就转变成怎么把视频文件的音频文件提取出来。
寻找软件
第一个想到的软件是 Adobe 公司的 PR,稍微问了下同事,说是提取音频文件需要的时间基本上和视频的时长差不多。考虑到 PR 又大操作又复杂,就开始在网上找有没有其他合适的软件。
经过一番搜索,终于被我发现 MKVToolNix 这个好用的免费软件。
软件使用介绍
MKVToolNix 的网址
软件有绿色版(好评),下载和直接解压就可以使用。
双击 mkvtoolnix-gui.exe 文件,打开软件。
软件使用也非常简单
在“输入文件”的对话框里面右键选择添加文件。
在编码格式对话框里面取消选择视频,保留音频。
点击界面下方的“开始混流”,音频提取就开始运行。音频文件自动生成到视频文件所在的文件夹中,2个小时时长的视频整个提取过程只需要3秒钟。
当然,这个软件还有其他很多功能。打开输出选项的文件夹,可以看到很多输出的选项。
软件不仅仅可以提取音频,也可以提取视频。根据需要,可以对视频或者提取的音频分割。有了这个软件,可以快速对视频进行分割。
例如对刚刚的视频文件分割为半个小时时长的几个文件。用时也非常快,5秒钟搞定。
我在这里抛砖引玉,小伙伴还可以深入研究下这个软件的其他的使用技巧。
One More Thing ......
之后的需求有了新的变化,给我了几百个小的视频文件,现在都需要提取出来音频,上面的软件也不好用了。
幸好我还懂一点 Python ,加上 FFmpeg ,就可以完成上述的任务了。
Python是一种广泛使用的解释型、高级和通用的编程语言。Python支持多种编程范型,包括函数式、指令式、结构化、面向对象和反射式编程。它拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛的标准库。
FFmpeg 是一个开放源代码的自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。 “FFmpeg”这个单词中的“FF”指的是“Fast Forward”。
Python 下载地址
FFmpeg 下载地址
下载和安装好 Python 和 FFmpeg 后,在放置视频的文件运行这个 Python 文件,就可以一键提取所有视频文件中的音频文件了。
import os
# 遍历文件夹中所有文件
for name in os.listdir():
# 获取不带后缀的文件名
filename = os.path.splitext(name)[0]
# 获取文件的后缀名
suffixname = os.path.splitext(name)[-1]
# 测试文件后缀名是否等于 mp4
if(suffixname == '.mp4'):
os.system('ffmpeg -i ' + '"' + name + '"' + ' -f mp3 -ab 192000 -vn ' + '"' + filename +'.mp3' + '"')
总结
互联网上的工具能满足你绝大部分的需要,需要善于使用搜索引擎,这样在别人一遍一遍重复机械性工作的时候,你就有时间上张大妈摸鱼了(手动狗头保命)。

格式工厂不香么
第一反应就是格式工厂
ffmpeg不香么,一句话
小丸工具箱,图形化的ffmpeg,小白必备。
收藏多,回复少,
好多收藏啊
高效还得是ffmpeg,这就是一神器
装wsl啊,直接用bash,珍爱生命远离微软的bat
太复杂了吧,下载开源软件shotcut 导入分离一下音频,输出就可以了,简单好用
直接拖到goldwave里面直接出声音曲线
太麻烦了 剪映或者vedioleap导入视频 分离链接 音视频就分开了
mp4不是直接改后缀就行吗?
加点脚本辅助读取文件名列表
谢谢捧场,紫薯布丁
这个好,要看看
正在找,十分感谢
随便找了个刚刚下载的电影做了个例子,没有别的意思。
波斯语?不会是知乎上的某兔吧?
遍历文件还是shell方便
我提一个 打开微信 下拉小程序 搜索视频转音频 选一个搜索结果 上传视频 下载音频 快不快?
多谢多谢多谢
讯飞有转文字的服务,听见,按时间收费
https://zhidao.baidu.com/question/546473612.html
音频转字幕是用的讯飞的硬件设备,没有通用性,就没分享出来。
格式工厂不行?
既然已经写了,就把音频转字幕的软件也放出来吧
想起了我在tlf当版主的日子
你是不是哪里设置错了?我听法考的课都是b站扒下来的视频,然后用格式工厂提取mp3,文件名就是原来的啊,只是后缀成了mp3而已。
问个事事情,如何将音轨添加进去并调整起始点呢?
无语,居然在Python里面用第三方程序,那个bat就搞定了,还用得着Python?