【问题标题】:youtube-dl python script postprocessing error: FFMPEG codecs aren't being recognizedyoutube-dl python 脚本后处理错误:无法识别 FFMPEG 编解码器
【发布时间】:2017-02-01 13:45:24
【问题描述】:

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

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'])

以下是我收到的输出:

如果我尝试将“preferredcodec”设置为“opus”或“best”,我会收到类似的错误。 我不确定这是否相关,但我可以很好地运行命令行对应项:

youtube-dl -o 'test2.%(ext)s' --extract-audio --audio-format mp3 --no-check-certificate https://www.youtube.com/watch?v=BaW_jenozKc

我从互联网和其他问题中获得了一些线索,据我了解,这很可能是我的 ffmpeg 的问题,它不是 python 模块,对吧?这是我的 ffmpeg 版本和配置:

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

【问题讨论】:

  • 为什么需要后处理?您不能只下载与 YouTube 中相同的编解码器/格式的音频以避免任何重新编码吗?
  • @knocte 在我的情况下我想要 mp3 文件,所以如果 youtube 视频的格式不是 mp3,则需要后处理才能转换为 mp3
  • 您知道重新编码会降低质量,对吗?因为 mp3 和 youtube 的原始格式都是无损的
  • 你的意思是有损?
  • 啊,对不起,有损,不是更少

标签: python youtube ffmpeg youtube-dl


【解决方案1】:

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

作为一种解决方法,只需在文件名模板中添加 %(ext)s

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-10
    • 2015-08-03
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 2015-01-28
    相关资源
    最近更新 更多