python - 试图通过 python 子进程调用将 .mp3 转换为 .wav 到 ffmpeg,“没有这样的文件或目录”,尽管音频文件在同一目录中?
问题描述
我正在尝试使用 Python 的子进程模块和 ffmpeg将 .mp3testaudio.mp3
转换为 .wav 。testaudio.wav
我在 Windows 上,当我使用命令提示符运行以下命令时,它可以工作并将我的 .mp3 成功转换为 .wav:
C:\PATH_programs\ffmpeg-4.4-full_build\ffmpeg-4.4-full_build\bin>ffmpeg -i testaudio.mp3 testaudio.wav
但是,当我尝试使用 Python 脚本做同样的事情时,我得到一个"No such file or directory"
错误:
import subprocess
subprocess.call(['ffmpeg', '-i', 'testaudio.mp3', 'testaudio.wav'])
、ffmpeg.exe
和文件convertmp3towav.py
都audiotest.mp3
位于 同一 目录C:\PATH_programs\ffmpeg-4.4-full_build\ffmpeg-4.4-full_build\bin
中 .
解决方案
我认为pydub比 subprocess 更灵活
from pydub import AudioSegment
audio_file = AudioSegment.from_file("testaudio.mp3")
audio_file.export("testaudio.wav", "wav")
推荐阅读
- c++ - Direct3D9 ID3DXFont 字体质量似乎很差并且没有抗锯齿
- c - ncurses 表单未分配:未知错误
- ios - 检查 textView 选择器视图是否包含某个字符串
- kubernetes - vm2节点上无法查看日志
- python - 在 Visual Studio Python Notebook 中找不到绘图查看器
- python - 一组 dicts 的 itertools.permutations
- typescript - 在 TypeScript 函数中键入返回的匿名类
- json - Flutter dio&retrofit
- reactjs - 加载状态值后调用 useSubscription
- flutter - 您如何在riverpod 中创建和修改布尔状态提供程序以实现颤振?