纯java视频转图片,对图片换脸,再次图片合成视频,java视频换脸

需要的私信我获取网盘地址

开发环境:Eclipse2019-12,jdk 1.8
ffmepg文件:下载地址:ffmepg官网下载

解压后需要用到bin目录下的ffmepg.exe的文件路径

上效果:在这里插入图片描述
在这里插入图片描述
图片大小没控制好,如有需要后期自行调整

首先这是使用教程!

因为开发出来的文件太多了,没法贴代码,上传文件不方便大家下载,所以存在了网盘里,有需要的私信我,接下来介绍整个项目,很多参数不能一一介绍,如有问题可以私信

1.开发起源

大家肯定见过网上那种换头的视频,当然我这个肯定没人家专业换的好,刚开学没啥事萌生这个想法,使用java开发这个项目,来制作视频

2.开发思路

众所周知视频由帧构成,常见的30帧,再到抖音前段时间挺火的60帧视频,首先就要都i视频进行切片,把帧抽取出来存储到一个文件夹里,然后对图片进行处理,可以换头,美颜,等等操作,然后对图片进行合成,最后添加声音即可

3.开发周期

总耗时3天

4.项目文件结构

在这里插入图片描述
这个错误信息可以忽略,不影响项目运行,文件过多只讲重要文件

1.changeface:

里面有一个文件:chanface.java是在切片后对图片进行换头的
在这里插入图片描述
主要参数:filepath是图片存储的位置,model是模板图片位置,需要把那张图贴上去就把图片的位置填到model,1080p下,model的大小正常在300x300,效果最佳,项目没有过多优化,可自行修改代码达到随视频中头部大小动态调节

2. com.baidu.ai.api.util

因为我的项目中调用了百度AI进行人脸位置的确定,所以导入了百度开发工具包,此包内是一些工具类,无需修改

3.com.bejson.popj

此包内是接收百度返回的json实体类文件,无需修改

4.com.bgu.edu(北京吉利学院)

此包内为主要文件
在这里插入图片描述

4.1 MainVedioToImages

此文件通过调用ffmpeg完成对视频进行截取
在这里插入图片描述
注意! 此过程会大量使用运行内存,需要随时中断程序!,比如启动时控制云显示截取到50张时,这时候内存占用达到80%需要中断程序,我的电脑16G运行内存的情况下,一次可截取100张左右,量力而行,中断后可以通过调整count的数值,如果截取到第50张,count就等于51,帧数不建议调整太大,经过测试10帧刚刚好,如果非要调整,1除以fps必须是可以除开的数,通过几次调参就完成了,完成后会显示数据生成完毕

4.2 MainImagesToMov

在这里插入图片描述
生成的视频文件会保存在java’项目文件夹中,不要将test.mov改成E:\test.mov等,在此文件最下方有代码将项目中的文件剪切到其他地址:cutFile.cut(“E:\test.mov”);
此时运行程序后,会在e盘生成一个test.mov

4.3 MainMix

4.4 MovToMp4

在这里插入图片描述
将mov格式的视频转换成MP4格式

4.5 细节说明

此时如果你的地址参数设置的没有问题,你已经得到了想要的视频了,但是有一些参数如果没有设置对,会导致报错!
MainVedioToImages、MixMusicVedio:需要设置你的ffmpeg的程序地址,按照上面的地址下载ffmpeg后需要填入你的ffmpeg.exe的地址
同时,在音视频处理过程中,会在E盘产生一些数据,请保证您的电脑上有E盘,如果没有需要修改代码的文件地址

4.6 Delete

在这里插入图片描述

5. facedetect

此包下为调用百度AI人脸识别的文件(AuthService、Facedetect),和在图片上叠加图片的文件(ImgUtil)
ImgUtil的报错可以忽略,因为系统自身原因产生报错,
AuthService中需要设置自己的Apikey和Secretkey
在这里插入图片描述
如果不知道怎么弄:可进入:百度AI网站,用百度网盘扫码登录,进入控制台,新建应用,然后随便填写应用信息,就可以创建成功了

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值