如何使用安卓FFMPEG库提取指定数量的视频帧
安卓端FFmpeg限定提取帧数量实现方案
核心配置参数
-frames:v 10:FFmpeg原生通用参数,安卓端完全兼容,作用是限制输出的视频帧总数量为10,无需额外依赖即可满足需求。
适配后的命令写法
基础版(提取指定时间段前10帧)
直接在你原有命令基础上新增-frames:v 10参数即可:
String[] complexCommand = {"-y", "-i", yourRealPath, "-an", "-ss", "" + startMs / 1000, "-t", "" + (endMs - startMs) / 1000, "-frames:v", "10", dest.getAbsolutePath()};
优化版(适配类WhatsApp视频编辑场景,10帧均匀分布)
如果需要10帧均匀覆盖你选定的整段视频区间,适合做预览缩略条场景,可搭配fps滤镜实现:
// 计算选定区间的总时长(秒) float intervalDuration = (endMs - startMs) / 1000f; // 计算帧率:总帧数/总时长,实现帧均匀采样 float targetFps = 10 / intervalDuration; String[] complexCommand = {"-y", "-i", yourRealPath, "-an", "-ss", "" + startMs / 1000, "-t", "" + intervalDuration, "-vf", "fps=" + targetFps, "-frames:v", "10", dest.getAbsolutePath()};
内容的提问来源于stack exchange,提问作者Waris Ali Rehmani
相关产品推荐
相关产品推荐

