Android使用FFmpeg给图片视频添加水印

xiaoxiao2021-02-28  117

确定目标

最近项目新需求,需要给视频和图片后向添加水印,而前向的添加直接在surfaceview中添加水印相关的bitmap,让每一帧都有水印,然而后向添加一时不知如何处理,所以开始寻找后向添加水印的方式.

了解分析

通过google百度,了解到ffmpeg开源框架有处理图像音频视频的能力,当然项目时间紧,只能先过一遍拿来就用,所以开始深入查询相关库,开始是ffmpeg-Android,封装到位,通过demo试错,无奈视频加水印时间太长,2s视频需要10分钟,完全不能忍.几经周折,后面发现了下面博客 ,通过博客给的demo,速度可以接受,只需要修改封装成相关库即可

Android多媒体之二:jni调用ffmpeg命令

实践

有了上面那位的详细介绍,并且还提供了github上的地址,所以也就直接使用.但是提供的仅仅只是一个demo,还是需要修改一下的. 封装过并针对水印功能做了so size裁剪,可以在项目中直接使用.

https://github.com/callmeli/ffmpeg-jni

坑点

视频的尺寸和图片水印的大小位置不符 水印通过尺寸比列重建bitmap,位置通过视频的宽高比例重新计算 ffmpeg相关包太大 注ijkplayer github地址 ijkplayer 相关关于ffmpeg裁剪的教程 ffmpeg支持的android版本 目前发现的支持android 4.2以上 找不到相关so 注查询到的博客 项目中有些库使用了arm架构,而ffmpeg的so只保留了v7a的,所以删除了其他项目arm文件夹 添加水印时间过程非常长 注ffmpeg常用命令 1 添加 -acodec copy 保证只处理视频,音频直接拷贝. 2 子线程加载so,运行命令.主线程传递命令和相关回调
转载请注明原文地址: https://www.6miu.com/read-28806.html

最新回复(0)