当前位置: 首页>>技术问答>>正文


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

, , , ,

问题描述

我在14.04中安装了youtube-dl。

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

$ youtube-dl [youtube-link]

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

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

14.04,video,downloaders,youtube-dl,ubuntu

最佳解决办法

要下载视频,请在命令后键入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来下载像这样的1280×720分辨率的MP4视频:

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

或者可以选择使用以下标志自动下载可用的最佳音频和视频轨道:

youtube-dl -f bestvideo+bestaudio "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"

该命令将确保您从视频中下载最高品质的mp4视频和m4a音频,并将它们合并回单个mp4(在我的情况下使用ffmpeg)。

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

次佳解决办法

您可以使用youtube-dl下载1080p,但您需要做一些额外的工作。通常情况下,即使您可以在youtube.com上看到1080p,它也只会下​​载最高720p。

使用-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已将最后一个选项1280×720标记为’best’质量,这是默认下载的内容,但以137开头的行实际上质量更高,为1920×1080。 Youtube已将视频和音频流分离为标记为DASH的行,因此我们还需要选择最高质量的音频,本例中是以141开头的行。然后我们再次运行youtube-dl,指定音频和视频:

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

并将它与highest-quality音频一起下载1080p视频和auto-merge。它也应该是auto-deleted单独下载的部分。这种方法有点额外的工作,但会给你带来最好的结果。

第三种解决办法

要选择特定分辨率,您可以指定大小和音频质量,以便自动选择 – 因此对于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

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

请注意,经常需要下载单独的视频和音频蒸汽并合并它们。

有关更多示例,请参阅youtube-dl的制作。

第四种办法

提示输入格式的bash包装器脚本,其中包括所有可用的格式,包括audio-only,video-only。

接受绝对的YouTube网址和视频ID。

#!/ usr/bin/env bash
# Download youtube video with desired quality

# Accept both full URLs and video id's such as AQcQgfvfF1M

# match by regex, starts with http:// or https://
if [[ "$1" =~ ^https?:\/\/.* ]]; then
    url=$*
else
    url="https://www.youtube.com/watch?v=$*"
fi

echo "Fetching available formats for $url..."
youtube-dl -F "$url"
read -p "Please enter the desired quality code: " FORMAT

echo "Streaming with quality $FORMAT..."
mpv --cache=1024 $(youtube-dl -f $FORMAT -g "$url")

示例输出:

    yt.sh https://m.youtube.com/watch?v=Dax_tnZRExc
    [youtube] Dax_tnZRExc: Downloading webpage
    [youtube] Dax_tnZRExc: Downloading video info webpage
    [youtube] Dax_tnZRExc: Extracting video information
    [youtube] Dax_tnZRExc: Downloading MPD manifest
    [info] Available formats for Dax_tnZRExc:
    format code  extension  resolution note
    139          m4a        audio only DASH audio   49k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 308.75KiB
    249          webm       audio only DASH audio   50k , opus @ 50k, 271.91KiB
    250          webm       audio only DASH audio   70k , opus @ 70k, 366.63KiB
    171          webm       audio only DASH audio  118k , vorbis@128k, 652.50KiB
    140          m4a        audio only DASH audio  127k , m4a_dash container, mp4a.40.2@128k (44100Hz), 820.00KiB
    251          webm       audio only DASH audio  130k , opus @160k, 705.84KiB
    160          mp4        256x144    DASH video  109k , avc1.4d400c, 13fps, video only, 703.64KiB
    278          webm       256x144    144p  111k , webm container, vp9, 25fps, video only, 439.72KiB
    242          webm       426x240    240p  243k , vp9, 25fps, video only, 623.95KiB
    133          mp4        426x240    DASH video  252k , avc1.4d4015, 25fps, video only, 1.54MiB
    134          mp4        640x360    DASH video  388k , avc1.4d401e, 25fps, video only, 1.24MiB
    243          webm       640x360    360p  458k , vp9, 25fps, video only, 1.19MiB
    135          mp4        854x480    DASH video  761k , avc1.4d401e, 25fps, video only, 2.40MiB
    244          webm       854x480    480p  893k , vp9, 25fps, video only, 2.00MiB
    136          mp4        1280x720   DASH video 1382k , avc1.4d401f, 25fps, video only, 4.56MiB
    247          webm       1280x720   720p 1754k , vp9, 25fps, video only, 3.94MiB
    137          mp4        1920x1080  DASH video 2350k , avc1.640028, 25fps, video only, 8.48MiB
    248          webm       1920x1080  1080p 2792k , vp9, 25fps, video only, 8.09MiB
    17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k
    36           3gp        320x180    small , mp4v.20.3, mp4a.40.2
    43           webm       640x360    medium , vp8.0, vorbis@128k
    18           mp4        640x360    medium , avc1.42001E, mp4a.40.2@ 96k
    22           mp4        1280x720   hd720 , avc1.64001F, mp4a.40.2@192k (best)
    Please enter the desired format #

If you want to download the video as opposed to stream it, just remove the mpv --cache=1024 part and the dollar sign with brackets.

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/285.html,未经允许,请勿转载。