FFmpeg 和 Packages 管理扩展音视频处理能力
什么是 Packages
YTDLnis 的组件化设计把运行时依赖做成了独立可升级的包:
- Python — yt-dlp 跑在 Python 上,默认预装
- FFmpeg — 音视频后处理(合并音频轨、裁剪、重编码、字幕烧录等)
- Node.js / Deno / QuickJS — 某些网站的 JS 挑战解析需要
- aria2 — 多线程下载加速(需要配合命令模板用)
默认预装 Python 和基础版 FFmpeg,其他组件按需安装。
怎么装 Packages
「更多 → 设置 → Updating → Packages」— 这里能看到当前已安装的所有包,每个包旁边有安装按钮。YTDLnis 从官方的 ytdlnis-packages 仓库下载,不用自己找 APK 或手动装。
为什么 FFmpeg 版本重要
YTDLnis 的裁剪、字幕烧录、视频重编码都调用 FFmpeg。较新的 FFmpeg 版本支持更多编码格式、修复更多 bug。特别是处理 VP9 / AV1 视频时,需要 FFmpeg 7.1.1 及以上才能正确裁切(crop)。如果裁 VP9 视频时出问题,先检查 FFmpeg 版本。
在终端里手动用 FFmpeg
即使 YTDLnis 卡片里的处理能覆盖大部分场景,有时你还是想直接手动跑 ffmpeg——比如下载完之后单独转一个格式:
# 终端里直接转一个本地 mp4 到 mp3
ffmpeg -i /path/to/video.mp4 -vn -acodec libmp3lame -q:a 2 output.mp3
# 从视频里截出第 2 分钟到第 5 分钟
ffmpeg -i video.mp4 -ss 00:02:00 -to 00:05:00 -c copy output.mp4
终端里的 ffmpeg 和卡片里的处理用的是同一个二进制——升级 Packages 里的 FFmpeg 后两边同时生效。
升级 FFmpeg 的时机
- 某些处理命令报「未知编码器」或「不支持的输入格式」
- 裁 VP9 / AV1 视频报错
- 想用到新的编码优化(比如 AV1 的更高效编码)
打开 Packages 页面,点 FFmpeg 旁边的升级按钮即可,应用会自动下载并替换新版本。旧版本不保留,所以升级前最好确保当前没有正在跑的处理任务。
其他 Packages
| 包 | 什么时候需要 |
|---|---|
| Node.js | 某些站点(比如需要大量 JS 挑战的)用 yt-dlp 时报错「需要 JavaScript 运行时」 |
| aria2 | 想加速下载时,用 yt-dlp 的 --external-downloader aria2c 参数 |
| Deno | 另一种 JS 运行时,某些站点的 extractor 优先用它 |
| QuickJS | 轻量 JS 引擎,资源占用最低 |
一般用户只需要 Python + FFmpeg。遇到特定站点报 JS 错误再装 Node.js。