Python结合FFmpeg实现批量提取视频音频
作者:weixin_46244623
在日常开发或音频处理场景中,我们经常需要从大量视频文件中批量提取音频,本文介绍一种 使用 Python 调用 FFmpeg 的通用方案,同时支持 Windows、macOS 和 Linux,有需要的小伙伴可以了解下
在日常开发或音频处理场景中,我们经常需要从大量视频文件中批量提取音频,例如:
- 从课程视频中提取音频
- 将短视频转为 MP3
- 做语音识别 / 音频分析前处理
本文介绍一种 使用 Python 调用 FFmpeg 的通用方案,同时支持 Windows、macOS 和 Linux。

一、环境准备
安装 Python
确保已安装 Python 3.7+
python --version
安装 FFmpeg(关键)
FFmpeg 是跨平台音视频处理神器,本脚本依赖它。
Windows
1.下载 FFmpeg
2.解压后,将 bin 目录加入 系统环境变量 PATH
3.验证:
ffmpeg -version
macOS(推荐 Homebrew)
brew install ffmpeg
验证:
ffmpeg -version
Linux(Ubuntu / Debian)
sudo apt update sudo apt install ffmpeg
CentOS / Rocky:
sudo yum install ffmpeg
二、项目目录结构
project/
├── v/ # 存放视频文件
│ ├── a.mp4
│ ├── b.mkv
│ └── c.mov
├── mp3/ # 输出 MP3 音频
└── extract_audio.py
支持格式:mp4 / mov / avi / mkv(可自行扩展)
三、完整 Python 脚本
import os
import subprocess
def extract_audio(video_file, output_dir):
# 构建输出文件路径
output_file = os.path.join(
output_dir,
os.path.splitext(os.path.basename(video_file))[0] + '.mp3'
)
# ffmpeg 命令
command = [
'ffmpeg',
'-i', video_file,
'-vn', # 不处理视频流
'-acodec', 'libmp3lame', # MP3 编码器
'-ab', '192k', # 音频码率
output_file
]
try:
subprocess.run(command, check=True)
print(f"✅ 音频已提取:{output_file}")
except subprocess.CalledProcessError:
print(f"❌ 处理失败:{video_file}")
def process_videos(input_dir, output_dir):
os.makedirs(output_dir, exist_ok=True)
for file_name in os.listdir(input_dir):
if file_name.lower().endswith(('.mp4', '.mov', '.avi', '.mkv')):
video_path = os.path.join(input_dir, file_name)
extract_audio(video_path, output_dir)
if __name__ == "__main__":
input_dir = './v'
output_dir = './mp3'
process_videos(input_dir, output_dir)
四、运行方式(全平台通用)
在项目根目录执行:
python extract_audio.py
运行后效果:
mp3/
├── a.mp3
├── b.mp3
└── c.mp3
到此这篇关于Python结合FFmpeg实现批量提取视频音频的文章就介绍到这了,更多相关Python提取视频音频内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
