Flutter视频压缩插件video_compress&ffmpeg_kit_flutter

发布于:2025-07-04 ⋅ 阅读:(19) ⋅ 点赞:(0)

最近项目中需要视频压缩了, 找到了这个video_compress,下载试用一下。 

还挺好的,4个月前更新了最新版本,下载运行后没有任何报错。 

接下来就是看它的视频压缩能力如何了,先找来一个视频,如图,视频大小30.8MB,尺寸是 1080*1920的,现在开始压缩。

压缩后,分辨率我配置的是 720*1280,体积也变小了,变成了 18.2MB。

不知道你们对这个压缩,是否满意,按照抖音的压缩,这样的视频,压缩发布后,应该会在10MB以内。 接下来,再看看是不是还有参数可以调整。 

发现一个 frameRate , 刚刚是没有设置它,原视频是60fps,压缩后也是60fps。 现在把它设置为30,再压缩看一下效果。 结果发现,压缩后视频还是 60 fps的,无奈了。 

仔细查看了源码,发现这个 VideoCompress 在iOS端压缩使用的是苹果的框架,并不是 ffmpeg,所以,他虽然压缩很快,但是压缩率不高。 

本着不浪费时间的原则,现在决定换另一个插件: ffmpeg_kit_flutter_new 继续尝试, 这个工程一下载下来就报错,运行不起来,去官方看看,哇,好多人都遇到这个问题,然后就看到一个热心网友,自己修改了一版, 叫 ffmpeg_kit_https_flutter 

终于,跑起来了, 但是这哥们比如懒,demo 里只写了个转换mp3的。 

接下来,我要写一个压缩视频的demo。 coding 中。。。  

2025.7.3更新

终于调通了,最终还是使用的 ffmpeg_kit_https_flutter 这个跑起来了。 

链接:ffmpeg_kit_https_flutter | Flutter package

如图,原视频是30.8 MB 是 mov 格式的 1080*1920视频,压缩后,

视频大小 2.6 MB mp4  720*1280 。 如下图:压缩后视频的参数:可以看到分辨率是 720*1280,FPS也是我配置的30。  

名称 大小 (MB) 分辨率 格式
原视频 30.8 1080*1920 MOV
压缩后 2.6 720*1280 MP4

虽然说压缩后,大大缩小了,但是这个压缩耗时有点长,用户体验不太好。 

最后,我们的方案是,在手机端压缩不需要太狠, 比如说30.8MB的视频,压缩到 15MB差不多就可以了,这样先保证视频快速压缩;

然后,视频上传到后台,在后台再做一遍压缩,让观看视频的用户请求这个再次被压缩的视频。

这样比较好一点。 

最后贴一下代码吧,

    String command = '-i "$inputPath" '
        '-vcodec h264 -b:v 1000k -r 30 -movflags +faststart ' 
        '-vf "scale=\'if(gt(iw,ih),1280,-2)\':\'if(gt(ih,iw),1280,-2)\'" '
        '-c:a aac -b:a 128k '
        '"$outputPath"';
    await FFmpegKit.execute(command).then((session) async 


网站公告

今日签到

点亮在社区的每一天
去签到