视频文件转语音文件
摘要:本文介绍了一个Python脚本,用于将MP4文件转换为WAV音频格式。脚本支持单个文件转换和批量处理功能,使用ffmpeg和pydub库实现音频提取。主要功能包括:自动生成输出路径、音频参数显示、错误处理等。用户可通过命令行参数指定输入输出路径,并选择单文件或批量转换模式。该工具可方便地将MP4视频中的音频提取为高质量WAV格式,适用于音频处理场景。
·
mp4文件转wav文件py脚本:
安装依赖库:pip install ffmpeg
import os
from pydub import AudioSegment
import argparse
def convert_mp4_to_wav(input_file, output_file=None):
"""
将MP4文件转换为WAV格式
Args:
input_file (str): 输入的MP4文件路径
output_file (str, optional): 输出的WAV文件路径
Returns:
bool: 转换是否成功
"""
try:
# 检查输入文件是否存在
if not os.path.exists(input_file):
print(f"错误:输入文件 '{input_file}' 不存在")
return False
# 如果未指定输出文件,则自动生成
if output_file is None:
base_name = os.path.splitext(input_file)[0]
output_file = f"{base_name}.wav"
print(f"正在转换: {input_file} -> {output_file}")
# 读取MP4文件并提取音频
audio = AudioSegment.from_file(input_file, format="mp4")
# 导出为WAV格式
audio.export(output_file, format="wav", codec="pcm_s16le")
print(f"转换成功!输出文件: {output_file}")
print(f"音频信息: 时长 {len(audio) // 1000}秒, 采样率 {audio.frame_rate}Hz")
return True
except Exception as e:
print(f"转换失败: {str(e)}")
return False
def batch_convert_mp4_to_wav(input_folder, output_folder=None):
"""
批量转换文件夹中的所有MP4文件为WAV格式
"""
if output_folder is None:
output_folder = input_folder
# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)
# 查找所有MP4文件
mp4_files = [f for f in os.listdir(input_folder) if f.lower().endswith('.mp4')]
if not mp4_files:
print(f"在文件夹 '{input_folder}' 中未找到MP4文件")
return
print(f"找到 {len(mp4_files)} 个MP4文件,开始批量转换...")
success_count = 0
for mp4_file in mp4_files:
input_path = os.path.join(input_folder, mp4_file)
output_filename = os.path.splitext(mp4_file)[0] + ".wav"
output_path = os.path.join(output_folder, output_filename)
if convert_mp4_to_wav(input_path, output_path):
success_count += 1
print(f"批量转换完成!成功转换 {success_count}/{len(mp4_files)} 个文件")
def main():
"""主函数"""
parser = argparse.ArgumentParser(description='MP4转WAV音频转换器')
parser.add_argument('input', help='输入的MP4文件路径或文件夹路径')
parser.add_argument('-o', '--output', help='输出的WAV文件路径或文件夹路径')
parser.add_argument('-b', '--batch', action='store_true', help='批量转换模式')
args = parser.parse_args()
if args.batch:
# 批量转换模式
batch_convert_mp4_to_wav(args.input, args.output)
else:
# 单个文件转换模式
convert_mp4_to_wav(args.input, args.output)
if __name__ == "__main__":
main()
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)