如何从 youtube-dl 选择视频质量?

如何从 youtube-dl 选择视频质量?

我已经在我的 14.04 中安装了 youtube-dl。

我可以通过以下命令下载视频,

$ youtube-dl [youtube-link]

但我想知道如何选择 YouTube 视频的可用像素质量(例如 1080p、720p、480p 等

在软件描述中他们说这是可能的(如下图所示),但是如何做呢......

党卫军

答案1

要下载视频,请在命令后输入 URL,如下所示:

youtube-dl 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

选择视频质量,首先使用-F选项列出可用的格式,下面是一个例子,

youtube-dl -F 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

输出如下:

[youtube] Setting language
[youtube] P9pzm5b6FFY: Downloading webpage
[youtube] P9pzm5b6FFY: Downloading video info webpage
[youtube] P9pzm5b6FFY: Extracting video information
[info] Available formats for P9pzm5b6FFY:
format code extension resolution  note 
140         m4a       audio only  DASH audio , audio@128k (worst)
160         mp4       144p        DASH video , video only
133         mp4       240p        DASH video , video only
134         mp4       360p        DASH video , video only
135         mp4       480p        DASH video , video only
136         mp4       720p        DASH video , video only
17          3gp       176x144     
36          3gp       320x240     
5           flv       400x240     
43          webm      640x360     
18          mp4       640x360     
22          mp4       1280x720    (best)

最佳质量为 22因此使用-f 22而不是-F来下载分辨率为 1280x720 的 MP4 视频,如下所示:

youtube-dl -f 22 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

或者可选择使用以下标志来自动下载可作为单个文件使用的最佳音频和视频曲目:

youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

如果您在多路复用过程中遇到任何错误或在视频质量选择方面遇到问题,您可以使用以下命令之一:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

加布里埃尔·斯台普斯指出这里,以下命令通常会选择实际最佳的单个文件视频质量分辨率而不是视频质量比特率:

youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

这些命令将确保您将视频中最高质量的 mp4 视频和 m4a 音频下载为单个文件,或将它们合并为单个 mp4(ffmpeg我的情况是使用)。如果ffmpegavconv不可用,youtube-dl则应返回单个文件-f best option而不是默认值。

单击此处获取更多详细信息和一些不同的示例。

另外,单击即可查看 Gabriel Staples 的相关回答。


来源:www.webupd8.org/2014/02/video-downloader-youtube-dl-gets.html

来源:github.com/rg3/youtube-dl

答案2

您可以使用 下载 1080p youtube-dl,但您需要做一些额外的工作。通常它只能下载 720p 作为最大值,即使您可以在 youtube.com 上看到 1080p。

运行以-F查看可用的格式:

youtube-dl -F https://www.youtube.com/watch\?v\=-pxRXP3w-sQ

171         webm      audio only  DASH audio  115k , audio@128k (44100Hz), 2.59MiB (worst)
140         m4a       audio only  DASH audio  129k , audio@128k (44100Hz), 3.02MiB
141         m4a       audio only  DASH audio  255k , audio@256k (44100Hz), 5.99MiB
160         mp4       256x144     DASH video  111k , 12fps, video only, 2.56MiB
247         webm      1280x720    DASH video 1807k , 1fps, video only, 23.48MiB
136         mp4       1280x720    DASH video 2236k , 24fps, video only, 27.73MiB
248         webm      1920x1080   DASH video 3993k , 1fps, video only, 42.04MiB
137         mp4       1920x1080   DASH video 4141k , 24fps, video only, 60.28MiB
43          webm      640x360
18          mp4       640x360
22          mp4       1280x720    (best)

请注意,youtube-dl最后一个选项 1280x720 被标记为“最佳”质量,并且默认情况下会下载该质量,但以 137 开头的行实际上是更高质量的 1920x1080。Youtube 已将标有 DASH 的行的视频和音频流分开,因此我们还需要选择最高质量的音频,在本例中是以 141 开头的行。然后我们youtube-dl再次运行,这次指定音频和视频:

youtube-dl -f 137+141 https://www.youtube.com/watch\?v\=-pxRXP3w-sQ

它会下载 1080p 视频并自动将其与最高质量的音频合并。它还会自动删除单独下载的部分。这种方法需要一点额外的工作,但会给你带来最好的效果。

答案3

要选择特定的分辨率,您可以指定大小和音频质量,以便自动选择它们 - 因此480p

-f 'bestvideo[height<=480]+bestaudio/best[height<=480]'

适用bestvideo[height<=720]+bestaudio/best[height<=720]于 720p 等。这可以添加到配置文件中~/.config/youtube-dl/config(甚至/etc/youtube-dl.conf),这样您就不会获得过大的下载:

mkdir ~/.config/youtube-dl
echo "-f 'bestvideo[height<=720]+bestaudio/best[height<=720]'" >> ~/.config/youtube-dl/config

--ignore-config如果您想禁用特定 youtube-dl 运行的配置文件,则可以使用。

请注意,通常需要下载单独的视频和音频流并将它们合并。

有关更多示例,请参阅youtube-dl的文档

答案4

更新:使用yt-dlp代替youtube-dl!这是一个分支youtube-dl,维护得更好,工作得更好!查看更多yt-dlp 在我的回答中


首先,确保您拥有最新版本youtube-dl安装。

如何安装最新的版本的youtube-dl

看:

  1. https://github.com/ytdl-org/youtube-dl/#installation
  2. https://github.com/ytdl-org/youtube-dl/#how-do-i-update-youtube-dl

运行以下命令:

# On Linux Ubuntu:

# 1. Check your current version
youtube-dl --version

# 2.Uninstall your current version, if necessary
sudo apt remove -y youtube-dl

# 3. Now, install the latest version
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

# 4. Check your current version to ensure it updated
youtube-dl --version

如何获得最好的可用的视频质量。

这个答案得票最多, 应该可以为您提供最佳的视频质量,但是......它不是总是.bestvideo+bestaudio似乎只选择最佳视频和最佳音频的选项仅限视频仅音频,然后它将两者合并在一起。请注意,这似乎也与的默认行为相同youtube-dl。但是,在我查看的视频中,最佳质量是一个预先合并的文件,该文件已经是视频和音频组合的格式。该bestvideo+bestaudio选项没有选择这个最佳质量的 720p 文件,因为它只查找分离视频和音频文件。详情如下。

解决方案?让它抓住最好的单个文件它同时包含视频和音频,如下所示:

youtube-dl -f best 'https://youtu.be/FWGC9SqA3J0'

简而言之:为了获得最佳质量,您可能需要使用-f best选项,而不是-f bestvideo+bestaudio选项!请尝试两者以查看。它可能因视频而异。

youtube-dl一般情况下各种示例的快速参考

我需要一个可以快速查找常用命令的地方。以下是一些命令:

# View the help menu (then press `/` to do a regular expression search`)
youtube-dl --help | less

# List all available format you can download for this video with 
# `-F` or `--list-formats`
youtube-dl -F 'https://www.youtube.com/watch?v=-FzqOdRpCGw'
youtube-dl --list-formats 'https://www.youtube.com/watch?v=-FzqOdRpCGw'

# Download the best **single file** containing both audio and video already 
# merged into one file
youtube-dl -f best \
    'https://www.youtube.com/watch?v=-FzqOdRpCGw'

# Download the best **stand-alone video file** and the best **stand-alone audio
# file** and then **combine** them into one file
youtube-dl -f 'bestvideo+bestaudio' \
    'https://www.youtube.com/watch?v=-FzqOdRpCGw'

# Use `-o` or `--output` to specify the name of the output file. 
# - See the "OUTPUT TEMPLATE" section here for all of the metadata tags you can 
#   use to auto-generate parts of the filename: 
#   https://github.com/ytdl-org/youtube-dl/#output-template
youtube-dl -f 'bestvideo+bestaudio' \
    'https://www.youtube.com/watch?v=-FzqOdRpCGw' --merge-output-format mkv \
    -o 'best_merged.mkv'

# [includes auto-generated subtitles]
# `time` the whole download, saving **YouTube's autogenerated subtitles** into
# the video too, AND choosing a custom name for the output file, with the
# extension specified using the meta-data template format `$(ext)s`. See link
# below for more metadata format examples.
time youtube-dl -f best --write-auto-sub \
    'https://www.youtube.com/watch?v=2WoDQBhJCVQ' -o 'greatest_shot.%(ext)s'

也可以看看:

  1. https://github.com/ytdl-org/youtube-dl/#output-template
  2. 文件名的更多元数据格式示例:https://github.com/ytdl-org/youtube-dl/#output-template-examples
  3. 超级用户:如何使用 youtube-dl 仅下载视频字幕

至少在某些情况下,证明效果-f best更好:-f bestvideo+bestaudio

(注:以下所有电路原理图均为实物截图来自这个电气工程相关的视频教程:视频一 - LTspice 入门)。

在此处输入图片描述

更具体地说,请参阅下面的运行结果

youtube-dl -F 'https://youtu.be/FWGC9SqA3J0'

要查看哪些视频格式可供下载:

gabriel ~ $ youtube-dl -F https://youtu.be/FWGC9SqA3J0
[youtube] FWGC9SqA3J0: Downloading webpage
[youtube] FWGC9SqA3J0: Downloading video info webpage
[youtube] FWGC9SqA3J0: Downloading MPD manifest
[youtube] FWGC9SqA3J0: Downloading MPD manifest
[info] Available formats for FWGC9SqA3J0:
format code  extension  resolution note
139          m4a        audio only DASH audio   50k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 2.30MiB
249          webm       audio only DASH audio   51k , opus @ 50k, 2.34MiB
250          webm       audio only DASH audio   62k , opus @ 70k, 2.85MiB
171          webm       audio only DASH audio  103k , vorbis@128k, 4.68MiB
251          webm       audio only DASH audio  109k , opus @160k, 5.10MiB
140          m4a        audio only DASH audio  130k , m4a_dash container, mp4a.40.2@128k (44100Hz), 6.13MiB
160          mp4        256x138    DASH video  108k , mp4_dash container, avc1.4d400b, 24fps, video only
134          mp4        640x348    DASH video  142k , mp4_dash container, avc1.4d401e, 24fps, video only, 3.42MiB
133          mp4        426x232    DASH video  242k , mp4_dash container, avc1.4d400c, 24fps, video only
136          mp4        1280x694   DASH video  473k , mp4_dash container, avc1.4d401f, 24fps, video only, 8.01MiB
135          mp4        854x464    DASH video 1155k , mp4_dash container, avc1.4d4014, 24fps, video only
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k, 1.63MiB
36           3gp        320x174    small , mp4v.20.3, mp4a.40.2, 2.98MiB
43           webm       640x360    medium , vp8.0, vorbis@128k, 7.44MiB
18           mp4        640x348    medium , avc1.42001E, mp4a.40.2@ 96k, 8.54MiB
22           mp4        1280x694   hd720 , avc1.64001F, mp4a.40.2@192k (best) 

请注意,第 22 行最右边写着“(最佳)”。这是唯一提供 hd720 质量的选项,这是我在 YouTube 上的网络浏览器中观看此视频时可以获得的最佳质量。它是最清晰的,具有最佳清晰度。当我使用顶部答案推荐的任一命令时:

youtube-dl -f 'bestvideo+bestaudio' 'https://youtu.be/FWGC9SqA3J0'

或者:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 'https://youtu.be/FWGC9SqA3J0'

我最终得到的视频质量和分辨率都较低,文件大小较大。我不太明白,但这个-f best选项绝对是唯一真正能给我带来最佳分辨率的选项。

以下是一些截图我正在观看的教程视频视频中显示了电子电路图。请注意后者质量更高,更清晰(单击每个图像并在放大视图中比较小字体):

  1. 使用质量较低 -f bestvideo+bestaudio这里接受的选项作为正确答案(或者仅使用默认选项:)youtube-dl 'https://youtu.be/FWGC9SqA3J0'
  • 在此处输入图片描述
  • 请注意顶部的图标有多模糊,以及打开的窗口和其中的小文字有多难阅读!
  • 这是明显更糟比我直接在浏览器中在线观看 YouTube 时获得的质量更高。
  • 由于某些原因,此选项还会占用更多内存:视频为 18.0 MB,我的系统下载和重新组合(音频+视频)所花的时间比-f best下面的选项要长,因为下面的选项只需要下载一次,不需要重新组合,因为它已经是一个文件了。
  1. 使用更高质量 -f best我推荐的选项:
  • 在此处输入图片描述
  • 请注意顶部的小图标和窗口中的小字体有多清晰!
  • 这是相同分辨率与我直接在 YouTube 浏览器上以最高分辨率观看时所获得的效果相同。
  • 此选项还占用较少的内存因某种原因而占用:视频为 14.8 MB。

补充阅读:

  1. man youtube-dl参阅详情。
  2. 我的答案如下:我如何更新 youtube-dl?。这也解决了问题:

    警告:无法下载视频信息网页:HTTP 错误 410:已消失

相关内容