我观察到,对于相同分辨率的视频,mp4 视频的大小比 webm 的大。这让我想知道 webm 是否存在一些质量损失或压缩。
youtube-dl -F url
通常使用上述代码,4k 视频以 webm 质量显示。我们可以强制将 4k 视频下载为 mp4 而不是 webm 吗?
答案1
您可以通过以下方式找到视频可用的 mp4 分辨率:
youtube-dl --list-formats https://youtu.be/LXb3EKWsInQ | grep mp4
... 401 mp4 3840x2160 2160p60 18167k , av01.0.13M.10.0.110.09.16.09.0, 60fps, video only, 460.07MiB ...
对于此示例,您可以发现 401 是您需要的格式编号。
然后,使用该-f
标志:
youtube-dl -f 401 https://youtu.be/LXb3EKWsInQ
答案2
您可以使用--format
/-f
标志来指定输出格式:
youtube-dl -f mp4 -F <url>
您可以而且可能还应该指定您想要可用的最佳质量:
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]' ...
默认情况下 youtube-dl 使用-f bestvideo+bestaudio/best
如果视频不支持 4k mp4,您可以使用--recode-video
后处理选项将其转换:--recode-video mp4
答案3
我观察到,对于相同分辨率的视频,mp4 视频的大小比 webm 的大。这让我想知道 webm 是否存在一些质量损失或压缩。
YouTube 的 MP4 视频使用 H.264/AVC 编解码器进行编码。
YouTube 的 WEBM 视频通常使用 VP9 编解码器进行编码,这是一种更高效、更新的编解码器它可以更好地压缩视频(这意味着更小的文件大小),同时提供更好的图像质量。
我们可以强制将 4k 视频下载为 mp4 而不是 webm 吗?
为什么要强制下载画质较差、体积较大的东西呢?此外,YouTube 早已停止将 >=4K 视频编码为 AVC/H.264,现在仅使用 VP9/AV1 编解码器提供它们:
这是一个示例(上周上传的视频):
youtube-dl --list-formats https://www.youtube.com/watch?v=Cc5mchDdNdg | grep 2160
313 webm 3840x2160 2160p 17842k , vp9, 30fps, video only, 585.18MiB
315 webm 3840x2160 2160p60 26526k , vp9, 60fps, video only, 969.16MiB
看不到 AVC 或 MP4 -仅限 WEBM/VP9。