newest / best format would be AV1, but my computer doesn’t support it completely. VP9 is completely supported.

the command I’ve been using: yt-dlp -f bv*[ext=mp4]+ba[ext=m4a]/b[ext=mp4] -S height:1080 --all-subs --no-warnings -v https://www.youtube.com/watchx

this command downloads the best available video up to 1080p, but if the best video format available is AV1, it will download it. I need a command that downloads the best video but up to VP9.

Help appreciated.

  • data1701d (He/Him)@startrek.website
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 hours ago

    Honestly, AV1 software decode isn’t that bad on most recent hardware. My desktop with 2018 hardware does it just fine, and so does my 2023 laptop.

    • Peffse@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      21 minutes ago

      I learned the VP9 sort after I saw how randomly abysmal the encoding is for AV1.

      Just look at these numbers:

      and a direct comparison, same frame from AV1:

      and then VP9:

  • Peffse@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    20 hours ago

    use --compat-options prefer-vp9-sort

    yt-dlp -f bv*[ext=mp4]+ba[ext=m4a]/b[ext=mp4] -S height:1080 --compat-options prefer-vp9-sort --all-subs --no-warnings -v https://www.youtube.com/watchx

  • gyrfalcon@beehaw.org
    link
    fedilink
    English
    arrow-up
    1
    ·
    17 hours ago

    I think you would want to include [vcodec!=av1] somewhere in your format specifications. Let me try it and see.

    • gyrfalcon@beehaw.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      17 hours ago

      Okay looks like your format spec should look something like 'bv*[ext=mp4][vcodec!^=av01]+ba[ext=m4a]/b[ext=mp4][vcodec!^=av01]'. Single quotes needed to keep shell expansion from fighting me, not sure if that will be an issue for you. You may have intended this, but the extension restriction does mean that you’ll sometimes skip “better” formats like VP9 if they are webms or something, and you can specify an output mux if that is what you are trying to achieve.