在日常开发或音频处理场景中我们经常需要从大量视频文件中批量提取音频例如从课程视频中提取音频将短视频转为 MP3做语音识别 / 音频分析前处理本文介绍一种使用 Python 调用 FFmpeg的通用方案同时支持 Windows、macOS 和 Linux。一、环境准备安装 Python确保已安装 Python 3.71python --version安装 FFmpeg关键FFmpeg 是跨平台音视频处理神器本脚本依赖它。Windows1.下载 FFmpeg2.解压后将 bin 目录加入 系统环境变量 PATH3.验证1ffmpeg -versionmacOS推荐 Homebrew1brewinstallffmpeg验证1ffmpeg -versionLinuxUbuntu / Debian12sudoapt updatesudoaptinstallffmpegCentOS / Rocky1sudo yum install ffmpeg二、项目目录结构project/├── v/ # 存放视频文件│ ├── a.mp4│ ├── b.mkv│ └── c.mov├── mp3/ # 输出 MP3 音频└── extract_audio.py支持格式mp4 / mov / avi / mkv可自行扩展三、完整 Python 脚本1234567891011121314151617181920212223242526272829303132333435363738importosimportsubprocessdefextract_audio(video_file, output_dir):# 构建输出文件路径output_fileos.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, checkTrue)print(f✅ 音频已提取{output_file})exceptsubprocess.CalledProcessError:print(f❌ 处理失败{video_file})defprocess_videos(input_dir, output_dir):os.makedirs(output_dir, exist_okTrue)forfile_nameinos.listdir(input_dir):iffile_name.lower().endswith((.mp4,.mov,.avi,.mkv)):video_pathos.path.join(input_dir, file_name)extract_audio(video_path, output_dir)if__name____main__:input_dir./voutput_dir./mp3process_videos(input_dir, output_dir)四、运行方式全平台通用在项目根目录执行1python extract_audio.py运行后效果mp3/├── a.mp3├── b.mp3└── c.mp3