视频帧提取与处理:Operit 内置 ffmpeg 能力
从哪来的 ffmpeg
Operit 的 Ubuntu chroot 环境里可以直接 apt install ffmpeg——和 Linux 桌面完全一样。装完就能在终端里用,也能通过对话自然语言触发。
此外,Operit 的「格式转换」Skill 封装了 ffmpeg 的常用操作,对话里说人话就能触发,不需要记命令。
安装 ffmpeg
apt update && apt install ffmpeg -y
ffmpeg -version # 确认版本
Ubuntu 24 官方源自带 ffmpeg 7.x 版本,支持绝大多数格式。
常见操作
帧提取
从视频里抽帧——适合截图、做动图、送进 OCR 处理:
# 每秒抽 1 帧
ffmpeg -i input.mp4 -vf fps=1 output/frame_%04d.png
# 每 N 秒抽 1 帧
ffmpeg -i input.mp4 -vf fps=1/5 output/frame_%04d.png
# 指定时间段抽帧(第 0 分钟到第 30 分钟)
ffmpeg -ss 0 -to 30 -i input.mp4 -vf fps=2 output/frame_%04d.png
视频格式转换
# MP4 → GIF(低帧率,体积小)
ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1" output.gif
# MP4 → WebM(浏览器友好格式)
ffmpeg -i input.mp4 -c:v libvpx-vp9 -c:a libopus output.webm
# 手机拍摄的视频 → MP4 H.264(兼容性最好)
ffmpeg -i input.mov -c:v libx264 -preset fast output.mp4
视频压缩
# 压缩到指定大小(约 50MB)
ffmpeg -i input.mp4 -c:v libx264 -b:v 2M output-compressed.mp4
# 只压缩视频,音频不动
ffmpeg -i input.mp4 -c:v libx265 -preset fast -crf 28 output-h265.mp4
抽取音频
# 抽成 MP3
ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3
# 抽成 WAV(无损)
ffmpeg -i input.mp4 -vn -c:a pcm_s16le output.wav
裁剪 / 拼接
# 裁剪(从 01:30 到 03:00)
ffmpeg -i input.mp4 -ss 01:30 -to 03:00 -c copy output.mp4
# 拼接(两个文件首尾相接)
ffmpeg -f concat -i list.txt -c copy output.mp4
# list.txt 内容:file 'part1.mp4'\nfile 'part2.mp4'
对话触发(不记命令)
> 「帮我把这个视频每秒抽 2 帧,存到 /sdcard/frames/ 目录」
> 「把这个 MP4 压缩到 50MB 以内,还是 MP4 格式」
> 「从视频里抽音频,存成 128kbps 的 MP3」
> 「把这两个视频首尾接起来」
Operit 自动:
- 匹配「视频处理」Skill(封装了 ffmpeg)
- 转译成正确的 ffmpeg 命令
- 在 Ubuntu chroot 里执行
- 返回输出文件路径
典型场景
场景一:视频会议记录归档
把录屏的会议视频抽帧 → Operit OCR 识别每页文字 → 自动整理成 Markdown 纪要 → 归档
场景二:短视频素材剪辑
多个原始视频 → Operit 自动拼接 / 裁剪 / 压缩 → 输出适合发布的成品
场景三:播客音频提取
发一段视频播客 → Operit 抽音频 → TTS 再加工 → 存到网盘
性能与磁盘
- 处理速度:手机 CPU 比桌面弱,1080p 视频处理可能比桌面慢 2–5 倍
- 磁盘空间:ffmpeg 处理过程中会产生临时文件,建议在 /sdcard 而非 chroot 内部磁盘操作(chroot 空间有限)
- 后台处理:大视频处理时间长,建议在插入电源时做,避免中途杀后台
常见问题
ffmpeg 命令报编码错误
- 确认 ffmpeg 版本够新(
ffmpeg -version) - 加
-y参数强制覆盖已有输出文件 - 加
-c copy可以跳过重编码(速度快但格式要求严格)
输出文件放哪
- 放到
/sdcard/...或手机公共存储,Operit 文件工具能访问 - chroot 内部磁盘空间有限,不建议放大文件