实现想法

使用ffmpeg命令中的filter_complex(滤镜)参数来进行展示

引入javacv版本

           <dependency><groupId>org.bytedeco</groupId><artifactId>javacv</artifactId><version>1.5.6</version></dependency><dependency><groupId>org.bytedeco</groupId><artifactId>ffmpeg-platform</artifactId><version>4.4-1.5.6</version></dependency>

命令

ffmpeg -i /file/test.mp4 -i /file/test.mp4  -filter_complex "[0:v]pad=iw*2:ih*1[a];[a][1:v]overlay=w" out.mp4

核心方法

  /*** 操作系统命令** @return*/public  static  void   execute(List<String> command) {try {String join = String.join(" ", command);System.out.println(join);ProcessBuilder  process = new ProcessBuilder(command);process.inheritIO().start().waitFor();} catch (Exception e) {e.printStackTrace();}}/***** @param videoPath  源视频路径* @param filterPath 带透明通道的视频路径* @param outputPath 目标视频路径*/public static void addSpecialEffects(String videoPath, String filterPath,int width,int height, String outputPath) throws Exception {List<String> command = Lists.newArrayList();//获取JavaCV中的ffmpeg本地库的调用路径String ffmpeg = Loader.load(org.bytedeco.ffmpeg.ffmpeg.class);command.add(ffmpeg);command.add("-i");command.add(videoPath);command.add("-i");command.add(filterPath);command.add("-filter_complex");//2分屏 加2声音command.add("[0:v]pad=iw*2:ih*1[a];[a][1:v]overlay=w");command.add("-filter_complex");command.add("amix=inputs=2:duration=first:dropout_transition=2,volume=1");command.add("-s");command.add(width+"*"+height);command.add(outputPath);long start = System.currentTimeMillis();execute(command);

调用

public static void main(String[] args) throws Exception {addSpecialEffects("./filelist/视频002.mp4","./filelist/视频001.mp4",1920,1080,"./filelist/test.mp4");}

成功截图

注意听,音视频都是有的

指定分辨率截图

命令说明

filter_complex滤镜的参数结构说明

[0:v]  这个里头两个参数,1表示的是操作对象的编号。在本例中0就是原始视频文件test.mp4,另一个参数v表示操作对象里的视频信息。
pad=iw*3 pad是将合成的视频宽高,这里iw代表第一个视频的宽,iw*3代表合成后的视频宽度加倍
ih  ih为第一个视频的高
overlay  覆盖

指定分辨率

-s 1280*720

文档参考

javacv源码

学习java群

java交流群(限订阅了的加):868794080

使用java调用ffmpeg命令将视频分屏并音视频同时播放(二分屏)相关推荐

  1. java命令截图,GitHub - xuege-cn/fmj: FMJ (FFMpeg for Java)。通过Java调用FFMpeg命令的方式来对音视频进行处理(获取信息、截图等等)。...

    项目介绍 FMJ (FFMpeg for Java) 通过Java调用FFMpeg命令的方式来对音视频进行处理(获取信息.截图等等). FFMpeg安装 建议使用 ffmpeg-2.6.1 版本 Li ...

  2. Android Java调用ffmpeg命令

    0. 前言 ffmpeg命令很强大,但是在Android工程中无法执行可执行文件ffmpeg,即无法使用ffmpeg.  本文介绍把ffmpeg改造成库文件,然后通过JNI调用它,即可实现在Java中 ...

  3. 媒体文件转换工具ffmpeg命令行汇总(包括精准裁剪音视频)

    转自:https://www.cnblogs.com/renhui/p/9223969.html 这个blog有一系列的ffmpeg的源码分析,建议系统读一下. 这里我重点关注的是精准裁剪视频,没想到 ...

  4. java调用FFmpeg实现视屏压缩

    前言 最近做人脸识别,对于过大的视屏(10M)以上,识别失败的几率比较大.找了下相关的视屏压缩资料.首先使用的是jave进行视屏压缩,但是踩坑失败,jave中有转码的过程,虽然压缩成功,各种压缩参数也 ...

  5. 流媒体方案,技术开源项目,包含Java调用FFMpeg(FFCH4J),推拉流服务器,nginx-http-flv-module,ckplayer,Flv.js,EasyPlayer.js集成

    文章目录 streaming_media 介绍 ckplayer拉流播放 软件介绍 功能介绍 软件架构 安装教程 使用说明 EasyPlayer.js拉流播放 简介 功能说明 集成使用示例 普通集成 ...

  6. ffmpeg sdk java_推荐一个强大的音视频处理的开源项目!

    原标题:推荐一个强大的音视频处理的开源项目! 1.前景提要 在我们的开发中,经常会用到音视频相关内容,一般我们都会选择FFmpeg,但是其交叉编译对于我们来说是一件很麻烦的事情.所以这里方便日后使用就 ...

  7. mysql+视频文件转成流_详解java调用ffmpeg转换视频格式为flv

    详解java调用ffmpeg转换视频格式为flv 注意:下面的程序是在Linux下运行的,如果在windows下rmvb转换成avi会出现问题,想成功需要下载下个drv43260.dll东西放到C:W ...

  8. java rtmp_搭建rtmp直播流服务之2:使用java实现ffmpeg命令接口化调用(用java执行ffmpeg命令)...

    一.环境搭建 1.安装ffmpeg 下载对应系统的ffmpeg安装包,个人采用windows平台进行开发,所以安装了windows版本(各平台ffmpeg命令都是一样的,无须纠结) 2.ffmpeg的 ...

  9. Java调用ffmpeg进行视频.H264抽帧,并保存为图片

    Java调用ffmpeg进行视频.H264抽帧,并保存为图片 1. 需求 2. 解决 3. 源码 参考 1. 需求 对视频 D:\data\01-test.H264进行抽帧并保存为图片,图片命名为1. ...

最新文章

  1. 会用python把linux命令写一遍的人,进大厂有多容易?
  2. iOS之CAEmitterLayer粒子引擎
  3. 多进程爬虫(爬取小说)Python实现
  4. html怎么设置z值,css z-index属性怎么用
  5. Android:如何生成自己的keystore(zz)
  6. 精心整理 25 个 Python 文本处理案例,收藏!
  7. 广东省2021高考2bi补录成绩查询,重磅!广东省2021年普通高考美术统考成绩1月8日起可查询!...
  8. apache axis 1.4的invoke方法设置超时_Kubernetes 网络故障常见排查方法
  9. C/C++头文件全解析
  10. 随笔(2)——未来智能穿戴:把计算机“织”进纤维里
  11. PHP报错:Cannot use a scalar value as an array
  12. 非华为电脑安装华为电脑管家步骤
  13. Base64原理和转换会变大33%左右的原因
  14. Android项目:天气预报App
  15. 提高软件开发工作效率的几种方法
  16. 双目标定(三)标定流程(含矫正)
  17. COPU副主席刘澎:中国开源在局部领域已接近或达到世界先进水平
  18. 光伏箱变保护测控装置
  19. 短信业务管理-移动短信接入
  20. pytest合集(3)— 命令行参数

热门文章

  1. 关于《Foxit Phantom的完美破解》的一点补充——打印驱动破解
  2. 05_大数据技术之Spark内核解析(1.1)
  3. python+requests+pytest 接口自动化框架(八)
  4. 股票交易中的因子汇总
  5. C51 跑马灯和流水灯的区别
  6. 手工制作的娃娃有哪些?
  7. 夏普/sharp willcom d4 刷linux,夏普手机怎么样
  8. 矿盘上手记-三星pm981a(持续更新)
  9. 济南都市丽人婚纱摄影流程
  10. 关于吸烟现象的一些调查统计