javacv 视频增加水印

前言:最近项目需要在视频中增加时间水印,网上查询几篇博客发现可以增加水印但是音频丢失,无奈自己还是查看源码渡劫吧。

1、工程pom文件添加依赖

<dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5</version></dependency>

工程只需要添加这一个依赖就好,不要像其他博客那样增加多余的依赖,免得增加不必要的依赖冲突甚至在使用中使用错误。

2、演示demo是将本地视频进行水印设置,直接上代码供参考。

    public static void main(String[] args) {String filePath="/Users/dongxr/Desktop/test.mp4";File file=new File(filePath);//抓取视频资源FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber(file);//Frame frame = null;FFmpegFrameRecorder recorder = null;String fileName = null;try{frameGrabber.start();Random random=new Random();fileName = file.getAbsolutePath() + random.nextInt(100)+".mp4";System.out.println("文件名-->>"+fileName);recorder = new FFmpegFrameRecorder(fileName, frameGrabber.getImageWidth(), frameGrabber.getImageHeight(), frameGrabber.getAudioChannels());
//            recorder.setFormat("mp4");recorder.setSampleRate(frameGrabber.getSampleRate());recorder.setFrameRate(frameGrabber.getFrameRate());recorder.setTimestamp(frameGrabber.getTimestamp());recorder.setVideoBitrate(frameGrabber.getVideoBitrate());recorder.setVideoCodec(frameGrabber.getVideoCodec());recorder.start();int index=0;while (true){frame=frameGrabber.grabFrame();if(frame==null){System.out.println("视频处理完成");break;}//判断音频System.out.println("音频=="+(frame.samples ==null)+"视频=="+ (frame.image==null));//判断图片帧if(frame.image !=null){IplImage iplImage = Java2DFrameUtils.toIplImage(frame);BufferedImage buffImg=Java2DFrameUtils.toBufferedImage(iplImage);Graphics2D graphics = buffImg.createGraphics();graphics.setColor(Color.BLUE);graphics.setFont(new Font("微软雅黑", Font.BOLD, 20));graphics.drawString("==最帅呢==",(iplImage.width()/2)-100,iplImage.height()/2);graphics.dispose();Frame newFrame = Java2DFrameUtils.toFrame(buffImg);recorder.record(newFrame);}//设置音频if(frame.samples !=null){recorder.recordSamples(frame.sampleRate,frame.audioChannels,frame.samples);}System.out.println("帧值="+index);index ++;}recorder.stop();recorder.release();frameGrabber.stop();}catch (Exception e){e.printStackTrace();}}

3、这里我把引入也贴出来,供参考。

import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.FFmpegFrameRecorder;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.Java2DFrameUtils;
import org.bytedeco.opencv.opencv_core.IplImage;import java.awt.*;
import java.awt.image.BufferedImage;

备注:代码仅供参考,这里我只是固定设置一个水印,如果需要设置时间水印请自行计算好帧数。

javacv 视频添加自定义水印相关推荐

  1. 怎么去除mp4视频的水印?教你去视频水印的方法

    在观看视频的时候难免会有一些比较喜欢的视频想下载下来以便日后观看,但是很多视频都带有水印.对于很多强迫症来说视频带水印是难以忍受的,且如果想把一些有意思的视频分享到朋友圈或一些平台时视频中带有水印也是 ...

  2. 安装版本swf文件转换其他视频格式工具(例:swf to mp4) ,转换后的视频无水印...

    查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧! 1.卸载你当前呆板中的Adobe Flash Player,安装11.2.202.235版本 ...

  3. lodop直接打印怎么去除水印_手机视频有水印怎么办?一招教你轻松去除,不学真是可惜了...

    随着短视频的兴起,现在我们很多地方都需要用到短视频.但是大部分视频都有水印,这是比较烦人的,而且视频上的水印还不像图片那么容易去掉,今天教分享一个非常简单的视频去水印的办法. 由于我们手机是没有自带这 ...

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

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

  5. 电脑视频加水印软件 视频消重

              电脑视频加水印软件 视频消重          主页签名里千万不要放手机号微信号等联系方式,到了后期有了粉丝基础就可以啦           关注祥瑞自媒体,了解更多视频操作方面干 ...

  6. 电脑视频加水印怎么加?

    电脑视频加水印怎么加?很多小伙伴在工作中都需要和视频打交道,例如公司的宣传视频,产品的介绍视频等,都需要对外发布或者发送给合伙伙伴.现在大家对视频版权的保护意识越来越强,为了保护公司对外发布的视频被别 ...

  7. 视频加水印怎么加?简单的方法

    视频加水印怎么加?工作中我们经常需要给视频添加水印(例如logo水印和文字水印),尤其是一些重要的视频,给视频添加水印的好处有两个:其一是可以保护视频内容不被别人随意复制盗用:其二是添加自己的专属水印 ...

  8. 视频加水印,怎么给视频加水印?

    视频加水印,怎么给视频加水印?现在是全民自媒体的时代,很多人在各种视频平台都都自己的主页,会将自己拍摄制作的原创视频分享到上面,让大家一起欣赏.这时候如果你发布的视频上没有添加水印,那么视频可能会被别 ...

  9. 视频怎么加水印上去,视频加水印怎么加?

    视频怎么加水印上去,视频加水印怎么加?现在有很多的自媒体创业者,他们会将自己创作的视频作品分享到各种平台,给别人观看的同时给自己带来一定的收益.互联网是一个开放的平台,也存在一个视频搬运工,专门盗取别 ...

最新文章

  1. Flutter开发Flutter与原生OC、Java的交互通信-2(48)
  2. 两个小工具,MySQL死锁分析,新技能又Get!!!
  3. 【LeetCode】455. 分发饼干(图解)
  4. 最大权闭合图hdu3996
  5. 聊一聊如何在.NET Core中使用Nacos 2.0
  6. JSP标签中不要省略引号
  7. 【JavaScript学习】JavaScript对象创建
  8. Installshield关于.NET安装时需要重启动的处理办法,以及延伸出的重启后继续安装的安装包的一点想法...
  9. 【leetcode 简单】第十七题 x 的平方根
  10. [Python] L1-028. 判断素数-PAT团体程序设计天梯赛GPLT
  11. HTML5 — 知识篇总结《II》【HTML5大力支持的语义化思想与规范】
  12. MUI框架-01-介绍-创建项目-简单页面
  13. Hadoop的容错性
  14. 安装系统跳过创建用户,直接以超级管理员身份进入系统
  15. 软件设计师2010上午题基础知识(易错整理)
  16. html如何与css样式表链接起来
  17. 专注于速度的公司对混乱一无所知
  18. C语言-arc画一弧线功能
  19. 产销存报表直接在MB5B上取数
  20. 想你所想,华为云桌面Workspace助你轻松办公

热门文章

  1. 人工智能猴子摘香蕉问题
  2. 安卓-system.img镜像文件过大问题
  3. 干货|关于感官实验室认可,你需要知道的知识!
  4. OpenUAV:CPS 和机器人社区的无人机测试平台
  5. python新闻评论分析_Python文本数据分析与处理(新闻摘要)
  6. Spring学习(九)
  7. Xposed插件的使用(一)进行简单的Hook
  8. JBPM实现请假流程
  9. 【毕设狗】【单片机毕业设计】基于单片机的超市收银机控制系统的设计
  10. 树莓派爱好者基地64位系统2.0版本使用VNC教程