如何用Python直接将mkv文件音频提取为wav格式?
直接从MKV提取WAV音频的两种实现方法(Python 3.10.8)
完全可以跳过转MP4的步骤,直接从MKV文件中提取WAV格式音频,下面是两种可行的实现流程:
方法一:使用FFmpeg
FFmpeg是处理音视频的专业工具,直接用它的命令行或通过Python调用都能完成提取操作。
1. 基础命令行方式
确保系统已安装FFmpeg,终端执行以下命令:
ffmpeg -i input.mkv -vn -acodec pcm_s16le -ar 44100 -ac 2 output.wav
参数说明:
-i input.mkv:指定输入的MKV文件路径-vn:忽略视频流,仅处理音频-acodec pcm_s16le:采用WAV标准的PCM 16位小端编码-ar 44100:设置采样率为44100Hz(可按需调整)-ac 2:设置立体声声道(可按需调整)output.wav:输出的WAV文件路径
2. Python调用FFmpeg(subprocess模块)
在Python 3.10.8中,可通过subprocess直接调用FFmpeg命令,代码示例:
import subprocess def extract_wav_with_ffmpeg(input_path, output_path): command = [ 'ffmpeg', '-i', input_path, '-vn', '-acodec', 'pcm_s16le', '-ar', '44100', '-ac', '2', output_path ] subprocess.run(command, check=True, capture_output=True) # 调用示例 extract_wav_with_ffmpeg("input.mkv", "output.wav")
方法二:使用MoviePy
MoviePy是基于FFmpeg的Python音视频处理库,封装了更友好的API,适合集成到Python项目中。
1. 安装依赖
先安装兼容Python 3.10.8的MoviePy:
pip install moviepy
注:MoviePy默认依赖FFmpeg,若运行报错,需确认FFmpeg已加入系统环境变量。
2. 提取音频的Python代码
from moviepy.editor import VideoFileClip def extract_wav_with_moviepy(input_path, output_path): video_clip = VideoFileClip(input_path) audio_clip = video_clip.audio audio_clip.write_audiofile(output_path, codec='pcm_s16le') # 释放资源 audio_clip.close() video_clip.close() # 调用示例 extract_wav_with_moviepy("input.mkv", "output.wav")
两种方法对比:FFmpeg命令行效率更高,适合批量处理;MoviePy的Python API更直观,适合快速集成到项目中。
内容的提问来源于stack exchange,提问作者Sr7
相关产品推荐
相关产品推荐

