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

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. javacv 视频添加自定义水印

    javacv 视频增加水印 前言:最近项目需要在视频中增加时间水印,网上查询几篇博客发现可以增加水印但是音频丢失,无奈自己还是查看源码渡劫吧. 1.工程pom文件添加依赖 <dependency ...

  2. android yuv加水印_在Android采集视频过程中增加水印功能实现

    CSDN旧文搬迁! 在Android采集视频过程中增加水印,并且水印包含一个变化的时间戳,这里考虑方案实现的时候,就想到了ffmpeg,ffmpeg包含很多filter能实现水印添加的功能. 基本实现 ...

  3. js实现给html固定区域增加水印

    背景 给视频和文档的div区域增加水印.以下代码可以在任意位置增加水印. js代码实现 var now = getNow(); watermark({"watermark_txt" ...

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

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

  5. Android视频编辑器(二)预览、录制视频加上水印和美白磨皮效果

    前言      这是视频编辑器系列的第二篇文章,在上篇文章中,我们讲解了利用OpenGl和SurfaceView进行视频预览,MediaCodec和MeidaMuxer进行视频录制和断点续录.而这篇主 ...

  6. Android视频编辑器(三)给本地视频加水印和美颜滤镜

    前言          在上两篇文章中,我们分别实现了通过OpenGL预览.录制视频,以及在预览和录制的时候加上视频水印和美白效果,而作为一个视频编辑器,当然不仅仅是录制视频,也会有从本地选择视频,然 ...

  7. Android视频编辑器(四)通过OpenGL给视频增加不同滤镜效果

    前言 在上面的几篇文章中,我们实现了录制视频.通过opengl在录制过程中和给本地视频添加水印和美颜效果,还没看过的童鞋,可以看该系列的前面三篇文章.而这篇博客,我们来实现给视频添加各种各样的滤镜.现 ...

  8. 技巧分享:如何给视频加水印?

    今天下课时,老师给我们布置了作业:每人制作一组关于"秋"的视频.说到"秋",我联想到的便是落叶,于是我便围绕落叶,制作了一个视频.等到快交作业时,才发现周围好多 ...

  9. 可以去视频的水印的软件 视频伪原创

              可以去视频的水印的软件 视频伪原创          对于抖音博主来说,视频的质量是立身之本.           关注祥瑞自媒体,了解更多视频操作方面干货            ...

  10. 怎样视频加水印?这几款软件不容错过

    在家上网课时,体育老师要求我们每天都拍摄一段运动的视频上传到群上,并且要求在视频上带上自己的名字和学号.第一次准备上传视频的时候,我就不太了解要怎么给视频加上文字水印,于是就上网搜索了一下,找到了几个 ...

最新文章

  1. anki_Anki如何挽救我的工程生涯
  2. python3 多线程简介
  3. NodeJS、NPM安装配置与测试步骤(windows版本)
  4. 十大经典排序算法之选择排序及其优化
  5. 分享一个好用的函数吧,将js中的对象转成url参数
  6. sql移动加权计算利润_计算机视觉中的半监督学习
  7. 关于Orchard CMS
  8. mysql 5.1 for linux_linux下安装mysql5.1.68
  9. Hibernate之DetachedCriteria类详解
  10. 微软取消Windows10强制更新
  11. 删除链表中的某个结点
  12. 如何接受上级指令_职场老手教你怎么应对领导错误的指令,千万要注意这几点...
  13. React路由官方网站
  14. 获取Word2vec训练得到的所有词与词向量
  15. AS | 中大丁涛/田国宝等揭示口腔菌群的差异化输入塑造了与健康状况相关的两种肺型...
  16. 2022-iOS个人开发者账号申请流程
  17. linux下apache 的安装,php安装过程
  18. 教你批量消除视频原声,一学就会
  19. PS磨皮插件免费电脑版Portraiture4.03下载及使用教程
  20. linux下erp软件开发,10个Linux平台开源ERP软件推荐

热门文章

  1. 多加速器驱动AGX的目标检测与车道分割
  2. 【转】基于知识图谱的推荐系统(KGRS)综述
  3. 中标麒麟linux系统安装打印机_中标麒麟系统安装教程
  4. 轴承的Abaqus静态分析
  5. 基于SSM实现的演唱会网上订票系统-JAVA【数据库设计、源码、开题报告】
  6. Conficker蠕虫病毒只是愚人节玩笑吗
  7. 安装配置fcitx输入法
  8. Laya的位图字体bitmapFont字体用法
  9. 中国互联网是如何起步的
  10. 下行文格式图片_谁能告诉我公文的下行文\上行文的模板