下载视频为最佳质量的 mp4 格式,但不带音频?

下载视频为最佳质量的 mp4 格式,但不带音频?

我正在尝试从 Youtube 下载质量最好的 mp4 格式的视频,但不带音频。

我知道我可以使用 youtube-dl -F 查看所有可用格式,选择一种然后运行另一个命令,但我想通过脚本自动下载视频。

youtube-dl -f mp4 <URL>

这会选择最佳的 mp4 选项,但该选项也带有音频,因此通常不是最佳的视频质量(720p 而不是 1080p)。

似乎使用 bestvideo 然后指定带有 mp4 扩展名的输出路径是可行的:

youtube-dl -f bestvideo -o "%(title)s.mp4" <URL>

这是我目前的解决方案。查看带有 -F 的下载选项,似乎它仍然会下载最佳视频(无论它是否是 mp4,在我的情况下是 webm),然后将其转换为 mp4?因为下载的文件和 -F 中的最佳质量之间的文件大小相匹配。

如果有人知道更好的解决方案,请告诉我!:)

答案1

如果您指定mp4格式为 youtube-dl总是将其解释为请求一种“旧”的组合音频+视频格式,这在过去是唯一的选择。

要请求 DASH 使用的新的纯音频或纯视频流之一(用于更高质量的流),请bestvideo[filter]请求特定编解码器一起使用:

  • 要专门请求 H.264 (AVC)(即检查vcodec以 开头的avc1.):

    youtube-dl -f "bestvideo[vcodec^=avc1.][ext=mp4]" <url>
    
  • 要请求 H.264 (AVC) 或 H.265 (HEVC) 或其他适合 MP4 文件的代码:

    youtube-dl -f "bestvideo[ext=mp4]" <url>
    

(请记住,相同的“.mp4”文件格式可以有几种不同的编解码器!它不包含 VP8 或 VP9——这些只出现在 MKV/WebM 中——但它具有 AVC 或 HEVC。虽然 YouTube 可能不会为您提供 HEVC,但其他视频托管网站偶尔会提供。)

相关内容