news 2026/4/22 19:39:38

Python + FFmpeg 批量提取视频音频(支持 Windows / macOS / Linux)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python + FFmpeg 批量提取视频音频(支持 Windows / macOS / Linux)

在日常开发或音频处理场景中,我们经常需要从大量视频文件中批量提取音频,例如:

  • 从课程视频中提取音频
  • 将短视频转为 MP3
  • 做语音识别 / 音频分析前处理

本文介绍一种使用 Python 调用 FFmpeg的通用方案,同时支持 Windows、macOS 和 Linux


一、环境准备

1️⃣ 安装 Python

确保已安装Python 3.7+

python --version

2️⃣ 安装 FFmpeg(关键)

FFmpeg 是跨平台音视频处理神器,本脚本依赖它。


✅ Windows
  1. 下载 FFmpeg
    👉 https://ffmpeg.org/download.html
  2. 解压后,将bin目录加入系统环境变量 PATH
  3. 验证:
ffmpeg -version

✅ macOS(推荐 Homebrew)
brewinstallffmpeg

验证:

ffmpeg -version

✅ Linux(Ubuntu / Debian)
sudoaptupdatesudoaptinstallffmpeg

CentOS / Rocky:

sudoyuminstallffmpeg

二、项目目录结构

project/ ├── v/ # 存放视频文件 │ ├── a.mp4 │ ├── b.mkv │ └── c.mov ├── mp3/ # 输出 MP3 音频 └── extract_audio.py

📌 支持格式:mp4 / mov / avi / mkv(可自行扩展)


三、完整 Python 脚本

importosimportsubprocessdefextract_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}")exceptsubprocess.CalledProcessError:print(f"❌ 处理失败:{video_file}")defprocess_videos(input_dir,output_dir):os.makedirs(output_dir,exist_ok=True)forfile_nameinos.listdir(input_dir):iffile_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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 16:28:01

【稀缺技术揭秘】:阿里P9不愿公开的虚拟线程调优日志技巧

第一章:云原生日志虚拟线程处理的演进与挑战随着云原生架构的广泛应用,传统的日志处理机制在高并发、低延迟场景下面临严峻挑战。虚拟线程(Virtual Threads)作为轻量级线程模型,显著提升了应用的并发能力,但…

作者头像 李华
网站建设 2026/4/17 16:28:35

彻底搞懂虚拟线程与平台线程的内存隔离差异:80%团队都用错了

第一章:虚拟线程内存隔离策略的本质解析虚拟线程作为 Project Loom 的核心特性,旨在提升高并发场景下的系统吞吐量。其轻量级特性使得单个 JVM 可以承载数百万级别的并发任务。然而,在如此高密度的线程环境下,内存隔离策略成为保障…

作者头像 李华
网站建设 2026/4/17 16:28:36

从毫秒级延迟到纳秒级响应,UUID生成优化全攻略,打造高并发基石

第一章:从毫秒到纳秒——UUID生成优化的演进之路在分布式系统与高并发场景日益普及的今天,唯一标识符(UUID)的生成效率直接影响系统的整体性能。传统基于时间戳的UUID版本1(UUIDv1)依赖毫秒级时间戳&#x…

作者头像 李华
网站建设 2026/4/21 17:12:02

Qwen2.5-0.5B-Instruct性能优化:让对话响应速度提升3倍

Qwen2.5-0.5B-Instruct性能优化:让对话响应速度提升3倍 1. 引言 在边缘计算和资源受限设备上部署大语言模型(LLM)正成为AI落地的重要方向。Qwen/Qwen2.5-0.5B-Instruct 作为通义千问系列中体积最小、推理最快的小参数模型,凭借其…

作者头像 李华
网站建设 2026/4/22 19:57:33

【Oracle】 闪回技术(Flashback)的底层原理

第一部分 官方定义与核心作用一、官方定义 (Official Definition)Oracle闪回技术是一组特性的集合,它通过利用数据库内部自动维护的历史数据(如Undo数据)或专用日志(如Flashback Logs),使用户能够以极细的粒…

作者头像 李华