@[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实现视频帧添加中文水印相关推荐

  1. php 怎么支持中文图片显示,利用php怎么实现一个给图片添加中文水印的功能

    利用php怎么实现一个给图片添加中文水印的功能 发布时间:2021-01-21 15:13:48 来源:亿速云 阅读:88 作者:Leah 这篇文章给大家介绍利用php怎么实现一个给图片添加中文水印的 ...

  2. ffmpeg录制视频时添加时间水印

    IPcamera录制视频,经常用到时间戳水印.ffmpeg avfilter模块,可以实现水印的添加 设置filter const char *filters_descr = "drawte ...

  3. 视频批量添加透明水印,必须用这个方法

    最近有很多朋友在问,如何剪辑视频,比如怎么同时给多个视频添加透明的图片LOGO呢?不知道如何操作的宝贝们,下面随小编一起来试试. 所需工具 视频剪辑高手 视频素材若干 操作步骤 运行[视频剪辑高手], ...

  4. 批量剪辑视频,添加图片水印

    小伙伴在平时都会制作一些视频,需要在视频上面添加水印,今天为大家讲解一下如何用电脑批量给视频添加图片水印. 打开软件视频剪辑高手,主界面有三个功能,切换到批量剪辑视频页面. 第一步,添加视频,将需要剪 ...

  5. 使用ffmpeg在视频中心添加透明水印

    参考:ffmpeg设置水印透明度 - 编程乐园 <FFmpeg Basics>中文版-22- 颜色修正 - 简书 ffmpeg 添加水印_半岛铁盒.的博客-CSDN博客_ffmpeg 水印 ...

  6. php 直接调用ffmpeg 中加水印,如何使用ffmpeg在视频中心添加透明水印?

    我目前正在使用以下命令: Top left corner ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; ...

  7. python给图片加半透明水印_Python+OpenCV为图片添加中文水印与图片水印

    OpenCV中在图片上输出中文一般有两种解决办法: 一种需要借助FreeType库实现.FreeType库是一个完全免费(开源)的.高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件. ...

  8. 利用 javacv 截取视频帧制作封面及获取视频播放时长

    一.Maven依赖 <dependency><groupId>org.bytedeco</groupId><artifactId>javacv</ ...

  9. php怎么给视频加水印,视频怎么加水印 添加文字水印和图片水印 给视频加水印的软件...

    昨天由于台风"妮妲"来了深圳,所以在家休息了一天,而且势汹汹的台风"妮妲"于2日03时35分在深圳市大鹏半岛登陆,登陆时风力达到14级,成为近年来正面登陆珠江三 ...

最新文章

  1. android从放弃到精通 第五天 excellent
  2. [算法]——归并排序(Merge Sort)
  3. 如何允许网页中的编辑器访问剪切板_Vditor下一代的 Markdown 编辑器,为未来而构建...
  4. codevs4203山区建小学
  5. 电商设计师必备素材|快速组合自己想要的场景和落版文字
  6. pytorch 入门学习反向传播-4
  7. 云呐-动环监控巡检表,信息机房巡检表
  8. VAX插件、vs2012
  9. TouchGFX如何校准电阻触摸屏
  10. linux 谷歌浏览器设置代理_Linux用谷歌浏览器模拟手机访问
  11. 计算机中的字体无法删除,电脑安装的字体怎么删除不了怎么办啊
  12. 北邮教授石川:图神经网络需要解决的几个关键问题
  13. 家用小型中央空调发展的现状与趋势
  14. spring事务管理配置
  15. 学生信息管理系统代码全篇
  16. Win10 S尽然如此对待Linux分支
  17. pca q matlab,PCA matlab实现
  18. 雷达扫描java,SLAM-OpenGL实现rplidar A2激光雷达扫描显示
  19. 制作可以随身携带的系统盘
  20. 介绍新的次谐波混频器产品类别

热门文章

  1. 基于stm32的超声波HC-SR04测距仪含距离报警(温度补偿)
  2. 2021腾讯春季校招面经
  3. 线性表练习扑克牌游戏(炸金花)
  4. matlab循环神经网络,循环神经网络的增强方法:注意力机制以及更多
  5. FreeBSD:从内核获取其他进程的pid及cpu占用率
  6. 广告精准投放的新出路为何?
  7. #define XXX do{ XXX } while(0) 为什么使用
  8. window 相关dll文件下载
  9. Ask Tom之中英文对照20051228——PL/SQL函数返回CLOB类型值
  10. 2022最新搭建第三方素材解析网站源码参考开发,附带小例子。