You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

yt-dlp结合ffmpeg处理视频报no such option:-l错误如何解决

问题产生原因

你当前的命令存在参数归属逻辑错误:

  • yt-dlp和ffmpeg是两个独立的命令行工具,你直接把ffmpeg的全部参数拼接在yt-dlp命令尾部,没有做逻辑分隔,shell会把所有参数都传给yt-dlp解析。
  • yt-dlp的-o参数作用是指定下载文件的输出路径/命名规则,你在-o后没有传入合法的输出文件名,直接衔接了ffmpeg的参数内容,yt-dlp在逐段解析参数时,会把ffmpeg参数里-level 3的开头-l识别为自身的命令选项,而yt-dlp本身没有-l这个选项,因此直接抛出对应报错,根本不会执行到下载、转码的逻辑。
修复方案

有两种可落地的写法,按需选择即可:

方案1:分两步执行(最稳妥,参数不易写错)

先单独调用yt-dlp把目标视频下载到本地,再单独调用ffmpeg完成转码,两个命令先后执行:

  1. 下载视频到本地,命名为in.mp4
yt-dlp "https://www.youtube.com/watch?v=PtkqwslbLY8" -o "in.mp4"
  1. 下载完成后执行ffmpeg转码,输出适配iPod Classic的视频文件output.mp4
ffmpeg -i in.mp4 -vcodec libx264 -crf 23 -preset fast -profile:v baseline \
-level 3 -refs 6 -vf "scale=640:-1,pad=iw:480:0:(oh-ih)/2,format=yuv420p" \
-acodec copy output.mp4

方案2:单命令自动完成下载+转码

借助yt-dlp自带的ffmpeg后处理能力,在下载完成后自动调用ffmpeg按指定参数转码,只需执行一次命令:

yt-dlp "https://www.youtube.com/watch?v=PtkqwslbLY8" \
--postprocessor-args "ffmpeg:-vcodec libx264 -crf 23 -preset fast -profile:v baseline -level 3 -refs 6 -vf 'scale=640:-1,pad=iw:480:0:(oh-ih)/2,format=yuv420p' -acodec copy" \
-o "output.mp4"

内容的提问来源于stack exchange,提问作者garson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 19:03:28