Python脚本批量提取MP4音频并保存至原目录
本文介绍如何使用Python脚本结合pydub库,批量从指定目录及其子目录中提取MP4视频中的音频,并保存为MP3格式至原目录。脚本通过os.walk遍历文件夹,利用glob匹配视频文件,最终调用AudioSegment进行转换。
脚本功能与前置条件
该Python脚本的主要功能是从MP4(及FLV)视频中提取音频,并将其保存为MP3格式。输出文件将直接保存在视频所在的原始目录中。在运行脚本之前,需要确保环境中已安装ffmpeg,因为pydub依赖ffmpeg来处理音频转换。此外,脚本默认使用单线程进行转换,这可能导致处理耗时较长。
代码实现与操作
脚本通过以下步骤实现批量处理:
- 获取目录列表:使用
os.walk遍历用户输入的父文件夹路径,收集所有子目录。 - 遍历视频文件:在每个子目录中,使用
glob匹配*.mp4和*.flv格式的视频文件。 - 提取音频:利用
pydub库的AudioSegment类,从视频文件中提取音频,并导出为MP3格式。 - 保存与提示:生成的MP3文件与原视频同名,保存在同一目录下。每处理一个视频,脚本会打印提示信息。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2020/2/26 17:36
# @Author : CuiFeiran
# @FileName : tool.py
# @Software : PyCharm
# @email :cui2025@126.com
# @Blog : https://blog.csdn.net/qq_33273956
# @bilibili : https://space.bilibili.com/368768799
import os
import glob
from pydub import AudioSegment
wenjianjia = []
path = input('请输入要转码的父文件夹路径:')
for root, dirs, files in os.walk(path):
wenjianjia.append(root)
wjj = wenjianjia
for dir in wjj:
video_dir = dir
extension_list = ('*.mp4', '*.flv')
i = 1
os.chdir(video_dir)
for extension in extension_list:
for video in glob.glob(extension):
mp3_filename = os.path.splitext(os.path.basename(video))[0] + '.mp3'
AudioSegment.from_file(video).export(mp3_filename, format='mp3')
print('已转码', str(i), '个视频!')
i += 1
#
# for infile in glob.glob(os.path.join(video_dir, '*.mp4')):
# os.remove(infile)注意事项
脚本中注释掉的部分(os.remove)用于删除原始视频文件,若需执行此操作,请取消注释并谨慎操作,建议先备份重要数据。此外,由于转换过程为单线程,处理大量视频时可能需要较长时间。
以上就是Python脚本批量提取MP4音频并保存至原目录的详细内容,更多关于Python音频处理、pydub库使用及视频转换的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









