Python 实现视频批量转音频:ffmpy3 库实战与跨平台兼容指南
本文介绍如何利用 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 秒内将视频转换为音频的方法,希望对大家有所帮助。如有任何疑问,请留言,小编会及时回复。感谢大家对本站的支持! 若本文对您有帮助,欢迎转载,烦请注明出处,谢谢!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













