V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Kastner
V2EX  ›  问与答

youtube-dl / yt-dlp 视频质量的疑惑

  •  
  •   Kastner · 2022-10-02 11:41:22 +08:00 · 3316 次点击
    这是一个创建于 543 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位好! 想请教一下,同样是调用 youtube-dl 这个 GUI http://mrs0m30n3.github.io/youtube-dl-gui/ 视频体积要比 这个 GUI https://oleksis.github.io/youtube-dl-gui/ 大一倍。

    看了设置好像都一样嘛

    12 条回复    2022-10-03 19:25:36 +08:00
    ngv2
        1
    ngv2  
       2022-10-02 11:46:11 +08:00
    两倍的话,差不多刚好是 h264/vp8 和 av1/vp9 的区别,也可能是 720p vs 1080p
    yt-dlp 有参数可以设置编码格式和分辨率优先级的,可能是两个 GUI 的默认调用参数不一样
    你看下下载回来的视频是什么编码和分辨率
    jim9606
        2
    jim9606  
       2022-10-02 12:23:00 +08:00
    不是手残的我建议直接用原始的命令行项目,有丰富的画质选择策略和输出选项可以用。
    例如我用这个设置下最高质量 vp9+opus+mp4 的组合,并写入元数据和封面图。因为绝大多数视频都有 vp9 版本,av1 在老视频上没有,容器选 mp4 是因为 vp9 默认用的 webm 容器不支持插入封面,mp4 串流支持比较广泛,不在意的话 mkv 也行。

    ```
    yt-dlp --embed-thumbnail --embed-chapters --add-metadata
    --merge-output-format mp4
    -f bv[vcodec^=vp9]+ba[acodec=opus]
    -o youtube_%(title)s_%(channel)s(%(channel_id)s)_%(id)s.%(ext)s
    --proxy <Proxy URL> <VideoURL>
    ```
    查下载的媒体信息推荐 mediainfo 。
    ref: https://github.com/yt-dlp/yt-dlp#format-selection-examples
    wonderfulcxm
        3
    wonderfulcxm  
       2022-10-02 12:34:51 +08:00 via iPhone
    编码不一样,原始的命令那个编码偏好参数可以设置得非常复杂。为了在电视盒子上看,我还真研究测试过一阵,除了清晰度之外,我不用 vp9 ,因为某些电视播放器解码不了,比如当贝播放器,也不能播放 webm 。
    kodi 是真的强,但不联网老弹 pvr
    Kastner
        4
    Kastner  
    OP
       2022-10-02 14:11:25 +08:00
    多谢 ngv2, jim9606, wonderfulcxm
    Kastner
        5
    Kastner  
    OP
       2022-10-02 15:19:55 +08:00
    我刚刚看了下两个 GUI 的使用命令,一模一样。

    youtube-dl.exe --newline -i --write-auto-sub -o "C:\Downloads\%(title)s.%(ext)s" --ignore-config --hls-prefer-native "https://www.youtube.com/watch?v="

    但一个下载体积就是比另一个大一倍。试过好几个视频了…… 额
    DTCPSS
        6
    DTCPSS  
       2022-10-02 17:58:21 +08:00 via iPhone   ❤️ 1
    这类下载器如果发现你电脑上有 FFMPEG 就会去分别下载更高质量的视频和音频,然后合并;如果没有 FFMPEG 就直接下载较低质量的带音频的视频。所以可能是一个自带 FFMPEG 一个没有。
    Kastner
        7
    Kastner  
    OP
       2022-10-02 18:25:06 +08:00
    @DTCPSS 看了下,好像还真的是如你所说。一个自带了 FFMPEG (下载视频质量更高)
    p1956
        8
    p1956  
       2022-10-02 21:08:52 +08:00
    1 楼和 3 楼说中了原因。我来详细解释下,youtube-dl 优先 H264 编码,yt-dlp 优先 vp9 编码。youtube 的 H264 编码码率一般比 vp9 大一倍。当然,2K 、4K 、8K 是没有 H264 编码。想让 yt-dlp 优先 H264 编码,得这样写:--format "(bestvideo[vcodec^=avc1][height<=1440]/bestvideo[height<=1440]/bestvideo[vcodec^=av01][height<=1080][fps>30]/bestvideo[vcodec^=avc1][height<=1080][fps<=10]/bestvideo[height<=1080][fps>30]/bestvideo[vcodec^=vp9.2][height<=1080][fps>30]/bestvideo[vcodec^=vp9][height<=1080][fps>30]/bestvideo[vcodec^=av01][height<=1080]/bestvideo[vcodec^=vp9.2][height<=1080]/bestvideo[vcodec^=vp9][height<=1080]/bestvideo[vcodec^=avc1][height<=1080]/bestvideo[height<=1080]/bestvideo[vcodec^=avc1][height<=120][fps>10]/bestvideo[vcodec^=av01][height<=720][fps>30]/bestvideo[vcodec^=vp9.2][height<=720][fps>30]/bestvideo[vcodec^=vp9][height<=720][fps>30]/bestvideo[height<=720][fps>30]/bestvideo[vcodec^=av01][height<=720]/bestvideo[vcodec^=vp9.2][height<=720]/bestvideo[vcodec^=vp9][height<=720]/bestvideo[vcodec^=avc1][height<=720]/bestvideo[height<=720]/bestvideo[vcodec^=av01][height<=480][fps>30]/bestvideo[vcodec^=vp9.2][height<=480][fps>30]/bestvideo[vcodec^=vp9][height<=480][fps>30]/bestvideo[vcodec^=avc1][height<=480][fps>30]/bestvideo[height<=480][fps>30]/bestvideo[vcodec^=av01][height<=480]/bestvideo[vcodec^=vp9.2][height<=480]/bestvideo[vcodec^=vp9][height<=480]/bestvideo[vcodec^=avc1][height<=480]/bestvideo[height<=480]/bestvideo[vcodec^=av01][height<=360][fps>30]/bestvideo[vcodec^=vp9.2][height<=360][fps>30]/bestvideo[vcodec^=vp9][height<=360][fps>30]/bestvideo[vcodec^=avc1][height<=360][fps>30]/bestvideo[height<=360][fps>30]/bestvideo[vcodec^=av01][height<=360]/bestvideo[vcodec^=vp9.2][height<=360]/bestvideo[vcodec^=vp9][height<=360]/bestvideo[vcodec^=avc1][height<=360]/bestvideo[height<=360]/bestvideo[vcodec^=avc1][height<=240][fps>30]/bestvideo[vcodec^=av01][height<=240][fps>30]/bestvideo[vcodec^=vp9.2][height<=240][fps>30]/bestvideo[vcodec^=vp9][height<=240][fps>30]/bestvideo[height<=240][fps>30]/bestvideo[vcodec^=avc1][height<=240]/bestvideo[vcodec^=av01][height<=240]/bestvideo[vcodec^=vp9.2][height<=240]/bestvideo[vcodec^=vp9][height<=240]/bestvideo[height<=240]/bestvideo[vcodec^=avc1][height<=144][fps>30]/bestvideo[vcodec^=av01][height<=144][fps>30]/bestvideo[vcodec^=vp9.2][height<=144][fps>30]/bestvideo[vcodec^=vp9][height<=144][fps>30]/bestvideo[height<=144][fps>30]/bestvideo[vcodec^=avc1][height<=144]/bestvideo[vcodec^=av01][height<=144]/bestvideo[vcodec^=vp9.2][height<=144]/bestvideo[vcodec^=vp9][height<=144]/bestvideo[height<=144]/bestvideo[vcodec^=vp9.2][height<=4320][fps>10]/bestvideo[vcodec^=vp9][height<=4320][fps>10]/bestvideo[vcodec^=av01][height<=4320][fps>10]/bestvideo[vcodec^=avc1][height<=4320][fps>10]/bestvideo[height<=4320][fps>10]/bestvideo[vcodec^=av01][height<=4320]/bestvideo[vcodec^=vp9.2][height<=4320]/bestvideo[vcodec^=vp9][height<=4320]/bestvideo[vcodec^=avc1][height<=4320]/bestvideo[height<=4320]/bestvideo[vcodec^=av01][height<=2880][fps>10]/bestvideo[vcodec^=vp9.2][height<=2880][fps>10]/bestvideo[vcodec^=vp9][height<=2880][fps>10]/bestvideo[vcodec^=avc1][height<=2880][fps>10]/bestvideo[height<=2880][fps>10]/bestvideo[vcodec^=av01][height<=2880]/bestvideo[vcodec^=vp9.2][height<=2880]/bestvideo[vcodec^=vp9][height<=2880]/bestvideo[vcodec^=avc1][height<=2880]/bestvideo[height<=2880]/bestvideo[vcodec^=av01][height<=2160][fps>30]/bestvideo[vcodec^=vp9.2][height<=2160][fps>10]/bestvideo[vcodec^=vp9][height<=2160][fps>30]/bestvideo[vcodec^=avc1][height<=2160][fps>10]/bestvideo[height<=2160][fps>10]/bestvideo[vcodec^=av01][height<=2160]/bestvideo[vcodec^=vp9.2][height<=2160]/bestvideo[vcodec^=vp9][height<=2160]/bestvideo[vcodec^=avc1][height<=2160]/bestvideo[height<=2160]/bestvideo[vcodec^=vp9.2][height<=1440][fps>5]/bestvideo[vcodec^=vp9][height<=1440][fps>5]/bestvideo[vcodec^=av01][height<=1440][fps>30]/bestvideo[vcodec^=avc1][height<=1440][fps>30]/bestvideo[height<=1440][fps>30]/bestvideo[vcodec^=av01][height<=1440]/bestvideo[vcodec^=vp9.2][height<=1440]/bestvideo[vcodec^=vp9][height<=1440]/bestvideo[vcodec^=avc1][height<=1440]/bestvideo[height<=1440]/bestvideo)+bestaudio[ext=m4a]/best[ext=mp4]/best"
    p1956
        9
    p1956  
       2022-10-02 21:10:12 +08:00
    优先最高画质及 1080p H264

    --format "(bestvideo[vcodec^=vp9.2][height>=4320][fps>10]/bestvideo[vcodec^=vp9][height>=4320][fps>10]/bestvideo[vcodec^=av01][height>=4320][fps>10]/bestvideo[vcodec^=avc1][height>=4320][fps>10]/bestvideo[height>=4320][fps>10]/bestvideo[vcodec^=av01][height>=4320]/bestvideo[vcodec^=vp9.2][height>=4320]/bestvideo[vcodec^=vp9][height>=4320]/bestvideo[vcodec^=avc1][height>=4320]/bestvideo[height>=4320]/bestvideo[vcodec^=av01][height>=2880][fps>10]/bestvideo[vcodec^=vp9.2][height>=2880][fps>10]/bestvideo[vcodec^=vp9][height>=2880][fps>10]/bestvideo[vcodec^=avc1][height>=2880][fps>10]/bestvideo[height>=2880][fps>10]/bestvideo[vcodec^=av01][height>=2880]/bestvideo[vcodec^=vp9.2][height>=2880]/bestvideo[vcodec^=vp9][height>=2880]/bestvideo[vcodec^=avc1][height>=2880]/bestvideo[height>=2880]/bestvideo[vcodec^=av01][height>=2160][fps>30]/bestvideo[vcodec^=vp9.2][height>=2160][fps>10]/bestvideo[vcodec^=vp9][height>=2160][fps>30]/bestvideo[vcodec^=avc1][height>=2160][fps>10]/bestvideo[height>=2160][fps>10]/bestvideo[vcodec^=av01][height>=2160]/bestvideo[vcodec^=vp9.2][height>=2160]/bestvideo[vcodec^=vp9][height>=2160]/bestvideo[vcodec^=avc1][height>=2160]/bestvideo[height>=2160]/bestvideo[vcodec^=vp9.2][height>=1440][fps>5]/bestvideo[vcodec^=vp9][height>=1440][fps>5]/bestvideo[vcodec^=av01][height>=1440][fps>30]/bestvideo[vcodec^=avc1][height>=1440][fps>30]/bestvideo[height>=1440][fps>30]/bestvideo[vcodec^=av01][height>=1440]/bestvideo[vcodec^=vp9.2][height>=1440]/bestvideo[vcodec^=vp9][height>=1440]/bestvideo[vcodec^=avc1][height>=1440]/bestvideo[height>=1440]/bestvideo[vcodec^=av01][height>=1080][fps>30]/bestvideo[vcodec^=avc1][height>=1080][fps>=10]/bestvideo[height>=1080][fps>30]/bestvideo[vcodec^=vp9.2][height>=1080][fps>30]/bestvideo[vcodec^=vp9][height>=1080][fps>30]/bestvideo[vcodec^=av01][height>=1080]/bestvideo[vcodec^=vp9.2][height>=1080]/bestvideo[vcodec^=vp9][height>=1080]/bestvideo[vcodec^=avc1][height>=1080]/bestvideo[height>=1080]/bestvideo[vcodec^=avc1][height>=120][fps>10]/bestvideo[vcodec^=av01][height>=720][fps>30]/bestvideo[vcodec^=vp9.2][height>=720][fps>30]/bestvideo[vcodec^=vp9][height>=720][fps>30]/bestvideo[height>=720][fps>30]/bestvideo[vcodec^=av01][height>=720]/bestvideo[vcodec^=vp9.2][height>=720]/bestvideo[vcodec^=vp9][height>=720]/bestvideo[vcodec^=avc1][height>=720]/bestvideo[height>=720]/bestvideo[vcodec^=av01][height>=480][fps>30]/bestvideo[vcodec^=vp9.2][height>=480][fps>30]/bestvideo[vcodec^=vp9][height>=480][fps>30]/bestvideo[vcodec^=avc1][height>=480][fps>30]/bestvideo[height>=480][fps>30]/bestvideo[vcodec^=av01][height>=480]/bestvideo[vcodec^=vp9.2][height>=480]/bestvideo[vcodec^=vp9][height>=480]/bestvideo[vcodec^=avc1][height>=480]/bestvideo[height>=480]/bestvideo[vcodec^=av01][height>=360][fps>30]/bestvideo[vcodec^=vp9.2][height>=360][fps>30]/bestvideo[vcodec^=vp9][height>=360][fps>30]/bestvideo[vcodec^=avc1][height>=360][fps>30]/bestvideo[height>=360][fps>30]/bestvideo[vcodec^=av01][height>=360]/bestvideo[vcodec^=vp9.2][height>=360]/bestvideo[vcodec^=vp9][height>=360]/bestvideo[vcodec^=avc1][height>=360]/bestvideo[height>=360]/bestvideo[vcodec^=avc1][height>=240][fps>30]/bestvideo[vcodec^=av01][height>=240][fps>30]/bestvideo[vcodec^=vp9.2][height>=240][fps>30]/bestvideo[vcodec^=vp9][height>=240][fps>30]/bestvideo[height>=240][fps>30]/bestvideo[vcodec^=avc1][height>=240]/bestvideo[vcodec^=av01][height>=240]/bestvideo[vcodec^=vp9.2][height>=240]/bestvideo[vcodec^=vp9][height>=240]/bestvideo[height>=240]/bestvideo[vcodec^=avc1][height>=144][fps>30]/bestvideo[vcodec^=av01][height>=144][fps>30]/bestvideo[vcodec^=vp9.2][height>=144][fps>30]/bestvideo[vcodec^=vp9][height>=144][fps>30]/bestvideo[height>=144][fps>30]/bestvideo[vcodec^=avc1][height>=144]/bestvideo[vcodec^=av01][height>=144]/bestvideo[vcodec^=vp9.2][height>=144]/bestvideo[vcodec^=vp9][height>=144]/bestvideo[height>=144]/bestvideo)+bestaudio[ext=m4a]/best[ext=mp4]/best"
    p1956
        10
    p1956  
       2022-10-02 21:19:29 +08:00
    然后建议用 yt-dlp ,因为社区很活跃。youtube-dl 出事后,尽管后来恢复了,但人都走光了,很少更新了
    KIRAYOMATO
        11
    KIRAYOMATO  
       2022-10-02 22:17:36 +08:00
    用命令行版本,可以自己选下载格式
    Kastner
        12
    Kastner  
    OP
       2022-10-03 19:25:36 +08:00
    厉害!感谢 p1956
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3320 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 13:48 · PVG 21:48 · LAX 06:48 · JFK 09:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.