在Android采集视频过程中增加水印功能实现
来源:互联网 发布:js 延时执行函数 编辑:程序博客网 时间:2024/04/27 19:09
在Android采集视频过程中增加水印,并且水印包含一个变化的时间戳,这里考虑方案实现的时候,就想到了ffmpeg,ffmpeg包含很多filter能实现水印添加的功能。
基本实现方案是,Camera预览 -> 得到预览帧的bitmap -> 给bitmap通过ffmpeg 添加水印 -> ffmpeg把bitmap使用h264编码 -> 写文件。
其实ffmpeg添加水印功能在网上例子很多,也都大同小异,但在Android端,比较难搞的地方其实是ffmpeg编译出能带水印添加功能的so库文件,其中:ffmpeg的drawtext filter依赖freetype的so,需要先编一个android平台下freetype的so,而在android平台的编译ffmpeg时,难搞的pkg-cfg总是检查依赖的freetype失败,迫不得已修改了ffmpeg的configure,不在对freetype库做检查,但编译配置的时候需要手动指定freetype so的搜索路径。
我使用的配置如下:
/usr/local/lib/pkgconfig $FFMPEG_ROOT/configure --target-os=linux \--prefix=$PREFIX \--disable-encoders \--disable-decoders \--disable-muxers \--disable-demuxers \--disable-parsers \--disable-bsfs \--disable-protocols \--disable-devices \--disable-avdevice \--disable-zlib \--disable-bzlib \--enable-cross-compile \--enable-runtime-cpudetect \--pkg-config-flags="--static" \--disable-asm \--arch=arm \--enable-armv5te \--cc=$PREBUILT/bin/arm-linux-androideabi-gcc \--cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \--disable-stripping \--nm=$PREBUILT/bin/arm-linux-androideabi-nm \--sysroot=$PLATFORM \--enable-nonfree \--enable-version3 \--enable-gpl \--disable-doc \--disable-ffplay \--disable-ffserver \--disable-ffprobe \--enable-avcodec \--enable-avformat \--enable-avutil \--enable-avfilter \--enable-avresample \--enable-swresample \--enable-swscale \--enable-postproc \--enable-libx264 \--enable-encoder=libx264 \--enable-decoder=h264 \--enable-hwaccels \--enable-memalign-hack \--disable-debug \--enable-pthreads \--disable-filters \--enable-libfreetype \--enable-filter=drawbox \--enable-filter=drawtext \--enable-avisynth \--enable-iconv \--extra-cflags="-Os -s -I$X264_ROOT -I$NDK/sysroot/include -I$PREFIX/include/freetype -I$PREFIX/include/ -fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -mfpu=neon -marm -march=armv7-a -mvectorize-with-neon-quad" \--extra-ldflags="-L$ELIB -L$NDK/sysroot/lib -L$NDK/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a -L$PREFIX/lib" \--extra-libs="-lfreetype2-static -lstdc++ -lgnustl_static -fexceptions -lsupc++ -llog "
然后添加水印过程中出现水波纹的现象,主要原因是给定的width和height和实际的bitmap比匹配产生。
0 5
- 在Android采集视频过程中增加水印功能实现
- ffmpeg 代码实现视频添加水印功能
- ffmpeg 代码实现视频添加水印功能
- Android 在ListView中使用CheckBox,实现增加联系人的功能
- 在ecshop 首页中实现增加刷选功能
- 在ParaView中增加实现MPR/MIP功能的filter
- html中实现添加水印的功能
- html中实现添加水印的功能
- 用java实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)
- 用java实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)
- html中实现添加水印的功能 / 在jsp页面上直接打开PDF文件
- Android开发之清除缓存功能实现方法,可以集成在自己的app中,增加一个新功能。
- 如何在视频中添加水印?给视频添加水印方法
- IOS视频添加水印功能
- 增加水印,在文档之下。
- Java实现水印功能
- 使用FFmpeg为视频增加水印
- Directshow 如何在视频中插入水印Logo图片
- Android UI性能优化实战 识别绘制中的性能问题
- SAM模板啦啦啦...
- 微信发送被动响应信息
- java几种经典排序
- HDU1012——u Calculate e
- 在Android采集视频过程中增加水印功能实现
- Spring常用注解
- python初级教程:入门详解
- 华为oj 单词倒排
- X Window System的一些概念
- day09_python socket ssh交互
- BZOJ3387 [Usaco2004 Dec]Fence Obstacle Course栅栏行动
- ThreadLocal
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)-转