youtube-dl python脚本后处理错误:FFMPEG编解码器未被识别

时间:2016-09-23 16:06:27

标签: python youtube ffmpeg youtube-dl

我的python脚本正在尝试使用youtube-dl.py下载youtube视频。除非需要后处理,否则工作正常。代码:

r1.resamp <- resample(r1.crop, r2) # can be slow

以下是我收到的输出:enter image description here

如果我尝试设置&quot; preferredcodec&#39;我会收到类似错误到&#39; opus&#39;或者&#39;最好的&#39;。 我不确定这是否相关,但我可以运行命令行对应罚款:

import youtube_dl

options = {
    'format':'bestaudio/best',
    'extractaudio':True,
    'audioformat':'mp3',
    'outtmpl':'%(id)s',     #name the file the ID of the video
    'noplaylist':True,
    'nocheckcertificate':True,
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '192',
    }]
}

with youtube_dl.YoutubeDL(options) as ydl:
    ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])

我从互联网和其他问题中得到了一些线索,根据我的理解,这很可能是我的ffmpeg的一个问题,这不是一个python模块吗?这是我的ffmpeg版本和配置: enter image description here

如果我的问题的答案是在我的ffmpeg中添加一些配置设置,请解释我是如何做到的。

1 个答案:

答案 0 :(得分:2)

这是youtube-dl和ffmpeg之间相互影响的错误,由文件名中缺少扩展名引起。 youtube-dl调用ffmpeg。由于文件名不包含任何扩展名,因此youtube-dl要求ffmpeg生成临时文件mp3。但是,ffmpeg会通过扩展名自动检测输出容器类型并失败,因为mp3没有扩展名。

要解决此问题,只需在文件名模板中添加%(ext)s

'outtmpl': u'%(id)s.%(ext)s',