JAVACV实现视频帧添加中文水印
@[TOC] JAVACV实现视频帧添加中文水印
JAVACV实现视频帧添加中文水印
最近有个项目需要用到监控视频和采集数据融合显示的问题。通过各种尝试,最终确定可以使用javacv+nginx-temp来实现(类似与直播平台模式)。其中主要的一块内容是给视频叠加采集数据的问题。开始享用opencv来实现文字叠加,后来发现opencv不支持中文字符叠加~~汗汗汗。无奈支下经过各翻折腾,最终发现可以使用Graphics2D来实现给帧图片叠加中文。闲话不多说,直接进入主题。
Graphics2D是个什么东东,不用细说。就是java的一个画布工具类。细节可以问度娘。
主要实现逻辑是通过javacv调用ffmpeg获取到视频帧图片,将图片转为bufferedImage格式。然后以此bufferedImage为源做画布,将需要添加的水印文字图片添加到想要添加的位置(可以设置字体,颜色,底色,大小。图形,显示位置等等一系列操作)。然后在将此bufferedImage转为视频帧。继续生成视频流。
相关代码
Graphics2D相关
/**
* 视频帧图片加文字水印
* @param bufImg 源图片
* @param count 帧计数
* @return BufferedImage 添加水印后图片
*/
public static BufferedImage mark(BufferedImage bufImg,int count) {
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
Font font = new Font("微软雅黑", Font.BOLD, 64);String content = sdf.format(new Date());String content1 = "字符滚动效果";FontDesignMetrics metrics = FontDesignMetrics.getMetrics(font);int width = bufImg.getWidth();//计算图片的宽int height = bufImg.getHeight();//计算高Graphics2D graphics = bufImg.createGraphics();graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);graphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));//设置图片背景graphics.drawImage(bufImg, 0, 0, bufImg.getWidth(), bufImg.getHeight(), null);//设置左上方时间显示graphics.setColor(Color.orange);graphics.setFont(new Font("微软雅黑", Font.BOLD, 64));graphics.drawString(content, 0, metrics.getAscent());//设置下方蓝色背景条graphics.setColor(Color.BLUE);graphics.fillRect(0, height-110, width, 110);//设置下方滚动字幕graphics.setColor(Color.white);graphics.setFont(new Font("微软雅黑", Font.BOLD, 52));graphics.drawString(content1, width-(count*5), height-40);graphics.dispose();return bufImg;
}
bufferedImage相关
IplImage grabbedImage = conveter.convert(grabber.grab());Java2DFrameConverter converter = new Java2DFrameConverter();BufferedImage bufferedImage =converter.getBufferedImage(grabber.grabImage());bufferedImage = mark(bufferedImage,count);Frame frame = converter.getFrame(bufferedImage);
展示效果如下:
OK~完成!!!!
JAVACV实现视频帧添加中文水印相关推荐
- php 怎么支持中文图片显示,利用php怎么实现一个给图片添加中文水印的功能
利用php怎么实现一个给图片添加中文水印的功能 发布时间:2021-01-21 15:13:48 来源:亿速云 阅读:88 作者:Leah 这篇文章给大家介绍利用php怎么实现一个给图片添加中文水印的 ...
- ffmpeg录制视频时添加时间水印
IPcamera录制视频,经常用到时间戳水印.ffmpeg avfilter模块,可以实现水印的添加 设置filter const char *filters_descr = "drawte ...
- 视频批量添加透明水印,必须用这个方法
最近有很多朋友在问,如何剪辑视频,比如怎么同时给多个视频添加透明的图片LOGO呢?不知道如何操作的宝贝们,下面随小编一起来试试. 所需工具 视频剪辑高手 视频素材若干 操作步骤 运行[视频剪辑高手], ...
- 批量剪辑视频,添加图片水印
小伙伴在平时都会制作一些视频,需要在视频上面添加水印,今天为大家讲解一下如何用电脑批量给视频添加图片水印. 打开软件视频剪辑高手,主界面有三个功能,切换到批量剪辑视频页面. 第一步,添加视频,将需要剪 ...
- 使用ffmpeg在视频中心添加透明水印
参考:ffmpeg设置水印透明度 - 编程乐园 <FFmpeg Basics>中文版-22- 颜色修正 - 简书 ffmpeg 添加水印_半岛铁盒.的博客-CSDN博客_ffmpeg 水印 ...
- php 直接调用ffmpeg 中加水印,如何使用ffmpeg在视频中心添加透明水印?
我目前正在使用以下命令: Top left corner ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; ...
- python给图片加半透明水印_Python+OpenCV为图片添加中文水印与图片水印
OpenCV中在图片上输出中文一般有两种解决办法: 一种需要借助FreeType库实现.FreeType库是一个完全免费(开源)的.高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件. ...
- 利用 javacv 截取视频帧制作封面及获取视频播放时长
一.Maven依赖 <dependency><groupId>org.bytedeco</groupId><artifactId>javacv</ ...
- php怎么给视频加水印,视频怎么加水印 添加文字水印和图片水印 给视频加水印的软件...
昨天由于台风"妮妲"来了深圳,所以在家休息了一天,而且势汹汹的台风"妮妲"于2日03时35分在深圳市大鹏半岛登陆,登陆时风力达到14级,成为近年来正面登陆珠江三 ...
最新文章
- android从放弃到精通 第五天 excellent
- [算法]——归并排序(Merge Sort)
- 如何允许网页中的编辑器访问剪切板_Vditor下一代的 Markdown 编辑器,为未来而构建...
- codevs4203山区建小学
- 电商设计师必备素材|快速组合自己想要的场景和落版文字
- pytorch 入门学习反向传播-4
- 云呐-动环监控巡检表,信息机房巡检表
- VAX插件、vs2012
- TouchGFX如何校准电阻触摸屏
- linux 谷歌浏览器设置代理_Linux用谷歌浏览器模拟手机访问
- 计算机中的字体无法删除,电脑安装的字体怎么删除不了怎么办啊
- 北邮教授石川:图神经网络需要解决的几个关键问题
- 家用小型中央空调发展的现状与趋势
- spring事务管理配置
- 学生信息管理系统代码全篇
- Win10 S尽然如此对待Linux分支
- pca q matlab,PCA matlab实现
- 雷达扫描java,SLAM-OpenGL实现rplidar A2激光雷达扫描显示
- 制作可以随身携带的系统盘
- 介绍新的次谐波混频器产品类别
热门文章
- 基于stm32的超声波HC-SR04测距仪含距离报警(温度补偿)
- 2021腾讯春季校招面经
- 线性表练习扑克牌游戏(炸金花)
- matlab循环神经网络,循环神经网络的增强方法:注意力机制以及更多
- FreeBSD:从内核获取其他进程的pid及cpu占用率
- 广告精准投放的新出路为何?
- #define XXX do{ XXX } while(0) 为什么使用
- window 相关dll文件下载
- Ask Tom之中英文对照20051228——PL/SQL函数返回CLOB类型值
- 2022最新搭建第三方素材解析网站源码参考开发,附带小例子。