无法使用 YouTube-dl 下载指定的比特率

Can't use YouTube-dl to download specified bitrate

在需要既简单又强大的东西来让我下载 YouTube 播放列表并且找不到更好的选择之后,我最近开始在命令行中使用 youtube-dl(带有 ffmpeg)。我目前正在尝试和测试我下载的播放列表的质量,但我 运行 在将播放列表转换为 192kbps 的 M4A 音频时遇到了问题。这是我正在使用的:

youtube-dl --extract-audio --audio-format m4a --audio-quality 192 --playlist-items 1-26 https://www.youtube.com/playlist?list=PLR3nWwHlZ9WBpi3uWsjSe6r1PiA8MTbnE

--audio-quality 192 似乎没有注册,尽管据我所知语法似乎是正确的,而且当音频文件被下载和提取时,它们由一系列不同的比特率,从 189 到 254。谁能告诉我为什么我会遇到这个问题?

根据youtube-dl帮助文件,对于比特率,您需要在192之后指定K。否则它会将其视为可变比特率:

-audio-quality QUALITY Specify ffmpeg/avconv audio quality, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K (default 5)

参见:Post Processing Options in helpfile

基于评论的更新:有一些悬而未决的问题表明 ffmpeg 没有报告它在处理时遇到的所有错误,尤其是 mp4 (m4a) 编解码器。参见 Issue 8230。替代格式可能是一种解决方法。另一个解决方法可能是更改系统的 mp4 编解码器,使 ffmpeg 更适合它们。

如果这些解决方法都不适合您,请 post 使用 --verbose 选项 运行 命令的输出,以便我们可以看到调试信息。

已更新,因为不影响 MP3:

由于已知 ffmpeg 存在一些 mp4 编解码器问题,您可以尝试的另一件事是使用 avconvavprobe 而不是 ffmpegffprobe 作为 youtube-dl 的 post-processors。您可以在此处下载最新的 Windows 个二进制文件:LibAV Windows binaries。不要忘记将可执行文件添加到您的 PATH 系统环境变量中,以便 youtube-dl 可以找到它们。

然后在 youtube-dl 命令中添加 --prefer-avconv 选项,看看它的表现是否更好。

使用 KNOWN-BUG 详细信息进行编辑:

看来您可能被这个错误 M4a Audio file post-processing skipped - While the developer has addressed the slightly different case in the bug description, it seems to occur in your case as well. It may be worth posting the details to the youtube-dl Github Issue Tracker 的 previously-missed 版本绊倒了。

切换到不同的格式(如 mp3)可能是目前唯一的解决方法。