yt-dlp 与 FFmpeg 使用笔记

一、yt-dlp 在 Windows 11 上的使用

运行方式

yt-dlp.exe 是命令行工具,双击无法运行,需通过命令行调用。

方式一:在 exe 所在文件夹打开命令行

  1. 打开存放 yt-dlp.exe 的文件夹
  2. 地址栏输入 cmd 回车
  3. 执行 yt-dlp.exe "视频URL"

方式二:加入环境变量(一劳永逸)

  1. Win 搜索“环境变量”,打开“编辑系统环境变量”
  2. 环境变量 → 系统变量 → Path → 编辑 → 新建
  3. 填入 yt-dlp.exe 所在文件夹路径,保存
  4. 新开命令行,直接执行 yt-dlp "视频URL"

代理设置

下载 YouTube 需要代理。--proxy 参数填入代理软件的本地监听地址。

# HTTP 代理
yt-dlp --proxy "http://127.0.0.1:7890" "视频URL"

# SOCKS5 代理
yt-dlp --proxy "socks5://127.0.0.1:10808" "视频URL"

#`-o`文件名,`%(ext)s`自动替换成正确的扩展名
yt-dlp --proxy "http://192.168.1.9:7895" -N 4 -o "你想要的名称.%(ext)s" "视频链接"

端口号需替换为代理软件中实际的本地端口。

多线程下载

yt-dlp --proxy "http://127.0.0.1:端口号" -N 4 "视频URL"

走代理时若速度无提升或报错,去掉 -N 4 重试。

配置文件

在 yt-dlp.exe 同目录新建 yt-dlp.conf:

--proxy http://127.0.0.1:7890
-N 4

之后直接运行 yt-dlp "视频URL" 即可自动应用。

输出格式说明

  • 未安装 FFmpeg:只能下载预合并的低画质版本,通常为 360p MP4
  • 已安装 FFmpeg:自动合并音视频,输出 MP4 或 WebM

WebM 格式(VP9/AV1 + Opus)兼容性差,Windows 自带播放器可能无声,推荐用 VLC 播放。

二、FFmpeg 转换 WebM 到 MP4

基础命令

ffmpeg -i input.webm output.mp4

CPU 软编码

ffmpeg -i input.webm -c:v libx264 -preset veryfast -crf 32 output.mp4

实测参考:31 分 56 秒视频,输出约 236 MB,码率约 895 kbps,耗时 4 分 24 秒。

ffmpeg -i input.webm -c:v libx264 -preset ultrafast -crf 32 output.mp4

实测参考:同视频输出约 465 MB,码率约 1991 kbps,耗时 2 分 02 秒。

ultrafast 速度比 veryfast 快约一倍,但压缩效率明显下降,文件大小接近翻倍。追求小文件应使用 veryfast 或更慢的预设。

GPU 硬编码

ffmpeg -i input.webm -c:v h264_nvenc -preset p2 -cq 32 output.mp4

实测参考:同视频输出约 451 MB,码率约 1972 kbps,耗时 1 分 38 秒。

硬编码画质增强

ffmpeg -i input.webm -c:v h264_nvenc -preset p2 -cq 32 -spatial-aq 1 output.mp4

-spatial-aq 1 会提升画质,但文件明显变大(实测约 612 MB,码率 2616 kbps)。它是画质增强开关,不是压缩开关。

H.265 编码(体积与画质平衡最佳)

ffmpeg -i input.webm -c:v libx265 -crf 28 -preset slow -c:a aac -b:a 96k output.mp4

实测参考:同视频输出约 249 MB,码率约 1091 kbps,耗时 1 小时 19 分。

H.265 的 -crf 28 视觉质量约相当于 H.264 的 -crf 23,在相近体积下画质明显优于 H.264。缺点是编码时间极长。若嫌慢,把 -preset 改为 medium,时间可缩短约一半,文件略大。

想继续压缩,可将 -crf 提到 30-32,文件会进一步减小,画面细节有软化。

消除 Opus 警告

ffmpeg -i input.webm -c:v h264_nvenc -preset p2 -cq 32 -c:a aac -b:a 128k output.mp4

Error parsing Opus packet header 仅为警告,不影响转换结果,音频可正常转为 AAC。加 -c:a aac 可让警告消失。

三、实测数据汇总

编码方式参数文件大小码率耗时
CPU 软编码libx264 -preset veryfast -crf 32约 236 MB895 kbps4 分 24 秒
CPU 软编码libx264 -preset ultrafast -crf 32约 465 MB1991 kbps2 分 02 秒
GPU 硬编码h264_nvenc -cq 28约 677 MB2962 kbps1 分 39 秒
GPU 硬编码h264_nvenc -cq 32约 451 MB1972 kbps1 分 38 秒
GPU 硬编码-cq 32 -spatial-aq 1约 612 MB2616 kbps1 分 42 秒
H.265 软编码libx265 -preset slow -crf 28约 249 MB1091 kbps1 小时 19 分

选择建议

  • 追求文件最小:H.265 libx265 -preset slow -crf 28
  • 追求速度、硬盘充足:GPU 硬编码 h264_nvenc -preset p2 -cq 32
  • CPU 预设从 veryfast 改为 ultrafast 会显著增大文件,不推荐为省时间牺牲体积
  • GPU 编码文件偏大是正常现象,硬件编码压缩效率低于软编码
  • 想要 GPU 接近 CPU 的画质,-cq 需比 -crf 调低,可从 -cq 28 起试
  • -spatial-aq 1 提升画质但增大文件,需配合更高的 -cq 控制体积

编码参数说明

  • -crf(CPU):恒定速率因子,压缩效率高,文件小
  • -cq(GPU):恒定量化器,压缩效率低,同画质需更高码率
  • -preset:编码速度预设。libx264 常用 ultrafast/fast/veryfast/medium;libx265 常用 medium/slow;NVENC 用 p1-p7,p2 速度较快
  • -spatial-aq 1:空间自适应量化,智能分配码率,提升画质

四、查看与压缩现有 MP4

查看音频码率

ffprobe -v error -select_streams a:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 input.mp4

输出单位为 bit/s,除以 1000 即 kbps。若输出 N/A,说明音频流未写入码率字段,可用文件总码率减去视频码率估算。

查看完整流信息

ffprobe -v error -show_entries stream=index,codec_type,codec_name,bit_rate -of default=noprint_wrappers=1 input.mp4

仅压缩音频

ffmpeg -i input.mp4 -c:v copy -c:a aac -b:a 96k output.mp4

-c:v copy 直接复制视频流不重新编码,速度极快且不影响画质。音频从 128 kbps 降到 96 kbps,30 分钟视频约省 8 MB,占总文件约 3.4%,效果有限。

关于二次压缩

不要在已压缩过的 MP4 上二次压缩视频。已有损文件再压一次会叠加画质损失,且体积下降有限。应从原始 WebM 重新转,用最终参数一次到位。

关于格式与体积

文件大小由内部视频编码决定,不由容器后缀决定。WebM 通常搭配 VP9/AV1,压缩效率高于 MP4 常见的 H.264。MP4 搭配 H.265 也能达到接近 WebM 的体积。真正省空间的是编码,不是后缀。

五、其他下载方案

桌面 GUI 软件

  • Stacher:yt-dlp 的图形外壳,免费,支持 Windows/macOS/Linux
  • VidBee:开源,界面现代,支持 RSS 自动订阅
  • 4K Video Downloader Plus:付费,界面简洁,支持 8K

在线工具

  • Cobalt.tools:界面干净,但对 YouTube 支持不稳定
  • 其他在线网站广告多、画质受限,不作为首选

关于 F12 抓取

YouTube 音视频分离、链接为临时授权、内容为碎片化切片,F12 抓取基本不可用。直接复制地址栏 URL 交给 yt-dlp 是最高效的方式。

六、体积参考与转码水印

30 分钟视频体积参考

总平均码率约 1183 kbps 时,30 分钟文件约 260 MB,属于中等偏低压缩水平,体积控制良好。

画质水平1080p 典型码率30 分钟体积
高画质4000-8000 kbps900 MB - 1.8 GB
中等画质1500-3000 kbps340 MB - 680 MB
中等偏低约 1183 kbps约 260 MB
低画质500-1000 kbps110 MB - 220 MB

转码与水印

  • 容器级元数据(C2PA 溯源凭证、格式标签、流标签):重新编码后基本清除
  • 像素级或码流级隐形水印:可能扛过转码,具体取决于水印嵌入方式和鲁棒性设计
  • ffprobe 只能检测元数据层面变化,无法判断像素级水印是否被清除
  • 需要确认特定文件水印是否残留时,需使用专业数字水印检测工具

标签: none

添加新评论