首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将.m4a文件转换为.mp3时出现此错误

将.m4a文件转换为.mp3时出现此错误
EN

Stack Overflow用户
提问于 2020-08-02 19:10:05
回答 3查看 619关注 0票数 0

我在运行脚本时遇到此错误,如下所示

TEST.py

代码语言:javascript
复制
from pydub import AudioSegment
wav_audio = AudioSegment.from_file("Broken Summer.m4a", format="m4a")

wav_audio.export("audio1.mp3", format="mp3")    

错误如下所示

代码语言:javascript
复制
C:\Python\lib\site-packages\pydub\utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
  warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
C:\Python\lib\site-packages\pydub\utils.py:198: RuntimeWarning: Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work
  warn("Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work", RuntimeWarning)
Traceback (most recent call last):
  File "C:/Users/karti/Documents/Python Programs/ChatApplication/deezer.py", line 13, in <module>
    wav_audio = AudioSegment.from_file("Broken Summer.m4a", format="m4a")
  File "C:\Python\lib\site-packages\pydub\audio_segment.py", line 685, in from_file
    info = mediainfo_json(orig_file, read_ahead_limit=read_ahead_limit)
  File "C:\Python\lib\site-packages\pydub\utils.py", line 274, in mediainfo_json
    res = Popen(command, stdin=stdin_parameter, stdout=PIPE, stderr=PIPE)
  File "C:\Python\lib\subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Python\lib\subprocess.py", line 1307, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-03 23:14:01

我找到解决方案了。如果您已经安装了ffmpeg或ffmpeg-python。卸载它。由于它将不起作用,因此运行此命令

代码语言:javascript
复制
pip uninstall ffmpeg
pip uninstall ffmpeg-python

现在转到此链接https://ffmpeg.zeranoe.com/builds/

从此处下载ffmpeg并将其安装在C:\ffmpeg中,然后转到环境变量并在路径中添加一个新路径,如- C:\ffmpeg\bin,因为此路径包含ffmpeg.exe,仅此而已

现在假设您有想要转换为TEST.mp3的TEST.m4a文件,只需复制并粘贴文件名并运行以下脚本即可。注意: bewlo .py文件应该与TEST.m4a在同一目录中,否则您将需要在'CurrentFileName‘变量中添加正确的路径,现在只需创建一个.py文件并粘贴以下代码

代码语言:javascript
复制
import subprocess

CurrentFileName = 'TEST.m4a'
FinalFileName = 'TEST.mp3'

try:
    subprocess.call(['ffmpeg', '-i', f'{CurrentFileName}', f'{FinalFileName}'])

except Exception as e:
    print(e)
    print('Error While Converting Audio')

ch = input('Press Enter to Close')

这对我来说是完美的,正如我想要的那样。:)如果我的回答不清楚,请在这里告诉我,或者你可以发邮件给我- kartikeyvaish99@gmail.com

票数 0
EN

Stack Overflow用户

发布于 2020-08-03 17:57:00

即使添加了ffmpeg的依赖项,文件也很可能不会被读取。由于pydub不读取.m4a文件的事实。主要是因为'ffmpeg‘不支持通过'libav’库的这种类型的文件。

我在这方面也有问题。

票数 1
EN

Stack Overflow用户

发布于 2020-08-02 19:53:16

pip在操作前安装ffmpeg。

代码语言:javascript
复制
pip install ffmpeg-python
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63215295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档