Python 实现视频批量转音频:ffmpy3 库实战与跨平台兼容指南

拾光
拾光
发布时间:2026-10-13| 4人浏览过
原创

本文介绍如何利用 Python 的 ffmpy3 库实现视频到音频的批量转换。通过封装 FFmpeg 命令行工具,代码可自动处理常见视频格式并转换为 WAV 音频。文章详细解析了目录创建、文件后缀替换及音频属性设置逻辑,并重点解决了 Windows 系统下 FFmpeg 路径配置及路径分隔符跨平台兼容性问题,提供完整的代码示例与报错处理方案。

Python 视频转音频工具开发背景

近期有读者通过微信联系,希望获得一篇关于批量将视频转换为音频的教程。应允之后,利用周末时间完成了该小工具的开发。

 

借助此工具,用户可将视频学习资料批量转换为音频文件,从而拓展学习方式的多样性。

此前曾使用 ffmpeg 处理视频,虽然功能强大,但体积较大。是否存在更轻量级的替代方案?Python 中提供了相关的库:ffmpy3,无需单独下载庞大的程序即可使用。

ffmpy3 是 ffmpy 的一个分支,作为简单的 FFmpeg 命令行包装器,它提供了 Pythonic 接口。该库通过 Python 的子进程模块实现同步执行,同时利用 Python 的 asyncio.subprocess 模块也支持异步执行模式。

ffmpy3 库安装与基础配置

安装与导入

使用 pip 命令进行快速安装。

pip install ffmpy3 

导入已安装的 ffmpy3 库。由于后续需要读取视频存放目录和音频存放目录,因此还需导入 os 模块。


import os 
from ffmpy3 import FFmpeg

音频目录自动创建逻辑

创建保存音频的目录

转换后的音频文件需存放在指定文件夹中。为了提高程序的智能性,代码会进行判断:若目录不存在则自动创建,若已存在则保持原状。


def mkdir_output(output_dir): 
  existence = os.path.exists(output_dir) 
  if not existence: 
    print('创建音频存放目录') 
    os.makedirs(output_dir)  # 创建目录 
    os.chdir(output_dir)    # 切换到创建的文件夹 
    return True 
  else: 
    print('目录已存在,即将保存!') 
    return False

存放路径作为参数传递,在调用时指定具体路径即可。

视频文件批量转换与属性处理

文件格式处理

将待转换的视频文件置于同一文件夹内,利用 os 模块读取视频文件名并存入列表。


filepath = r"/Users/brucepk/test"  # 待转换视频存放的路径 
os.chdir(filepath)         # 切换到改路径下 
filename = os.listdir(filepath) # 得到文件夹下的所有文件名称

随后将所有视频文件的后缀替换为音频格式。鉴于视频格式繁多,此处列出了常见格式。

 

将指定目录下的所有视频文件转换为 wav 格式,并存储于指定的音频目录中。

音频文件属性

仅修改文件后缀是不够的,因为文件内部属性未变,导致文件无法被正确读取。因此,需利用 FFmpeg 方法为转换后的音频文件赋予正确的音频属性。


ff = FFmpeg( 
      inputs={changefile: None}, 
      outputs={outputfile: '-vn -ar 44100 -ac 2 -ab 192 -f wav'} 
      ) 
    print(ff.cmd) 
    ff.run() 

转换效果验证

效果展示

在 test 目录下放置了两个视频文件:一个是手机拍摄的 mp4 格式视频(内含语音录制以测试效果),另一个是 mkv 格式的电影文件。

 

运行代码后,系统会自动创建一个 output 文件夹,其中包含转换完成的音频文件。

 

使用支持音频播放的软件打开,可以清晰听到音频内容。

常见报错与跨平台路径处理

运行报错处理

1、在 Windows 系统运行代码时,可能会出现 ffmpeg 未找到的报错,如图所示。

 

此时需下载 FFmpeg,访问指定地址,并根据电脑版本下载相应的安装包。

https://ffmpeg.zeranoe.com/builds/

 

解压 ffmpeg 文件,打开 ffmpy3.py 文件(按住 Ctrl 键点击 ffmpy3 可快速跳转至该模块),将代码中参数 executable 的值修改为 ffmpeg.exe 可执行文件的绝对路径。


__init__(self, executable='ffmpeg', global_options=None, inputs=None, outputs=None) 

解压后的 ffmpeg.exe 位于 bin 目录下,将路径替换即可。

 

修改后再次运行,即可顺利转换。

2、路径拼接问题

本代码在 Mac 系统中开发,Mac 路径使用 / 分隔,而 Windows 使用 \。为避免转义字符影响,路径前建议添加 r。

filepath = r"/Users/brucepk/test"

因此,在 Windows 电脑上进行路径拼接时,记得将 "/" 替换为 "\"。

changefile = filepath+"/"+filename[i]

上述为 Mac 系统的写法,Windows 中应改为:

changefile = filepath+"\\"+filename[i]

总结

以上介绍了利用 Python 在 3 秒内将视频转换为音频的方法,希望对大家有所帮助。如有任何疑问,请留言,小编会及时回复。感谢大家对本站的支持! 若本文对您有帮助,欢迎转载,烦请注明出处,谢谢!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。