小编Cha*_*win的帖子

youtube-dl - 下载最佳音频/视频,嵌入缩略图,并转换为 mp4

我已经仔细阅读了 youtube-dl 文档。我发现我认为正是我想要的……但我遇到了一个障碍,我很想知道 youtube-dl 的任何更高级的选项是否可以帮助解决我的问题。对于一些更高级的选项,没有太多的文档,而且我还在学习 Python……所以浏览源代码是一项努力。哈哈。

目标:

  • 下载最佳视频 + 最佳音频(如果组合不可用,默认为“最佳”)
  • 嵌入缩略图
  • 在文件中包含元数据信息
  • 将最终文件输出为 MP4 - 不能是 MKV

我当前的命令:

youtube-dl -f "bestvideo+bestaudio[ext=m4a]/best" --embed-thumbnail --add-metadata [url]
Run Code Online (Sandbox Code Playgroud)

问题:

如果“最佳视频”是 webm 文件...它会检测到 WEBM + M4A 不兼容,并将合并为 MKV 文件而不是 MP4(就像通常那样)。由于此步骤是在通过 AtomicParsley 嵌入缩略图之前执行的...引发错误,因为缩略图嵌入不支持 MKV。

更新:我后来想起上面的说法是不准确的。实际发生的是 WEBM 视频工作正常,但导致问题的是 WEBM 音频。YouTube 对 WEBM 音频使用 Opus 编码,当 youtube-dl 尝试合并这两个文件时,它最终将不得不使用 MKV 容器而不是 MP4,因为 ffmpeg 不允许在 MP4 容器中安全地使用 WEBM/Opus。为了强制进行这种转换,您必须向 ffmpeg 添加“--strict 2”(可以通过 youtube-dl 参数传入)。我的解决方案是使用“bestaudio[ext=m4a]”排除 WEBM 音频格式。完成此操作后,我只需将“--merge-output-format mp4”添加到我的 youtube-dl 命令中(如标记答案所推荐)。

但是...如果仅视频的 webm 文件首先转换为 MP4,那么这一切都不是问题。

所以......有谁知道,如果有办法告诉 youtube-dl 在下载视频文件时,在做其他任何事情之前立即将其转换为给定类型(MP4)?

又名:

  1. [youtube-dl] 下载缩略图
  2. [youtube-dl] 下载视频文件 …

powershell ffmpeg youtube-dl powershell-core

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

ffmpeg ×1

powershell ×1

powershell-core ×1

youtube-dl ×1