You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在yt-dlp中同时指定视频最大分辨率与格式/编码格式?

如何在yt-dlp中同时指定视频最大分辨率与格式/编码格式?

别着急,这个需求完全可以实现,你之前只是用错了语法而已~

正确的写法有两种,你可以任选其一:

写法一:用多个过滤器块叠加(更直观)

yt-dlp -v -f "bv*[height<=720][ext=mp4]+ba*[ext=m4a]" -N 4 "https://www.youtube.com/xxx"

写法二:在同一个过滤器块里用&连接多个条件

yt-dlp -v -f "bv*[height<=720 & ext=mp4]+ba*[ext=m4a]" -N 4 "https://www.youtube.com/xxx"

为什么你之前的写法不对?

  • 你尝试用逗号分隔条件height<=720,ext=mp4,这不符合yt-dlp的过滤器语法,所以会抛出语法错误;
  • bv*[height<=720]+bv*[ext=mp4]的写法,其实是让yt-dlp依次匹配两个独立的视频流规则,它会优先选择第一个符合height<=720的流,第二个规则自然就被忽略了,这并不是“同时满足两个条件”的逻辑。

补充:指定编码格式(比如avc1)

如果你的需求是限定编码格式而非仅仅容器格式,把ext=mp4换成vcodec=avc1即可,示例:

yt-dlp -v -f "bv*[height<=720][vcodec=avc1]+ba*[ext=m4a]" -N 4 "https://www.youtube.com/xxx"

备注:内容来源于stack exchange,提问作者Bart Lederman

火山引擎 最新活动