在java中使用FFmpeg将图片和音频合成视频
下面分享一个我之前在java中使用FFmpeg将图片和音频合成视频的demo。
package com.xxx.console.videoProcess;import java.awt.image.BufferedImage;
import java.io.File;import org.bytedeco.javacpp.avcodec;
import org.bytedeco.javacpp.opencv_core.IplImage;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.FFmpegFrameRecorder;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.FrameGrabber;
import org.bytedeco.javacv.OpenCVFrameConverter;import com.xxx.console.photoProcess.PhotoProcess;import static org.bytedeco.javacpp.opencv_imgcodecs.cvLoadImage;public class GenerateVideo {public void dojob(String picturesPath, String audioPath, String videoPath) throws Exception {FrameGrabber audioFrames = new FFmpegFrameGrabber(audioPath);audioFrames.start();int frameRate = 2;FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(videoPath, 640, 480, audioFrames.getAudioChannels());recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264); recorder.setFormat("mp4");recorder.setFrameRate(frameRate);recorder.setPixelFormat(0); recorder.start();OpenCVFrameConverter.ToIplImage conveter = new OpenCVFrameConverter.ToIplImage();File file = new File(picturesPath);File[] flist = file.listFiles();IplImage[] images = new IplImage[flist.length];PhotoProcess photoProcess = new PhotoProcess();int width = 640;for (int i = 0; i < flist.length; i++) {String fname = picturesPath + "/" + (i + 1) + ".jpg";// 调整图片的大小,未贴出源码,可以删除跳过BufferedImage image = photoProcess.scalePhotoFromFile(fname, width);images[i] = photoProcess.toIplImage(image).clone();}Frame frameAudio;for (int j = 0; j < 80; ++j) {frameAudio = audioFrames.grabFrame();}for (int i = 0; i < flist.length; ++i) {for (int j = 0; j < frameRate * 2; ++j) {for (int k = 0; k < 80 / (frameRate * 2); ++k) {frameAudio = audioFrames.grabFrame();recorder.record(frameAudio);}recorder.record(conveter.convert(images[i]));}}audioFrames.stop();recorder.stop();recorder.release();}
}
在java中使用FFmpeg将图片和音频合成视频相关推荐
- java中文件处理之图片_在Java 7中处理文件
java中文件处理之图片 以下是The Well-Grounded Java Developer的草稿的修改后的片段. 它使您快速了解与以前版本相比,在Java 7中操作文件要容易得多. 通过使用新的 ...
- java中为按钮添加图片_我们可以在Java接口中为成员定义私有和受保护的修饰符吗?...
java中为按钮添加图片 No, it is not possible to define private and protected modifiers for the members in int ...
- java中为按钮添加图片_如何在Java中为字符串添加双引号?
java中为按钮添加图片 In Java, everything written in double-quotes is considered a string and the text writte ...
- java中文件处理之图片_Java中的文件处理
java中文件处理之图片 File Handing in java comes under IO operations. Java IO package java.io classes are spe ...
- java中Excel导出echart图片
java中Excel导出echart图片 1.在生成echart的前端代码生成图片代码后Echart.setOption(captestRcapEchartOption, true);后面加上以下代码 ...
- thumbnails java_在JAVA中使用Thumbnails为图片加水印
在JAVA中使用Thumbnails为图片加水印 将D盘下面的cat.jpg作为水印加在2.jpg上面,输出新的图片2_cat.jpg到D盘下面 1.java类import java.io.File; ...
- java中把gui插入图片_在java中使用图片实现gui的美化.pdf
在java中使用图片实现gui的美化.pdf 还剩 3页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 图形图像处理GRAPHICS AND IMAGE ...
- Java中使用tess4J进行图片文字识别(支持中文)
Java 版本:建议JDK1.8 使用的软件是tesseractocr3.02,3以后的版本才支持中文, 这个软件需要安装在本地电脑中,安装的过程中全部都按照默认进行安装(以便于Java直接调用) ...
- 在java中如何让背景图片连续不断地滚动_JS实现图片的不间断连续滚动
js替代marquee实现图片无缝滚动 可能大家都碰到过,当marquee中滚动的是图片的时候,滚到终点的时候直接就跳回到起点了,而不像文字那样可以无缝滚动,下面介绍的是通过js来实现图片的无缝滚动. ...
最新文章
- HTML5+MUI+HBuilder 之初探情人
- 网站推广专员浅析不做大幅修改如何调整网站推广内容?
- sql 使用存储过程传递列名或表名作为参数
- spring boot实战(第六篇)加载application资源文件源码分析
- NYOJ题目10505C?5S?
- ioc spring 上机案例_通过实例解析Spring Ioc项目实现过程
- 十八、对已经找到轮廓的图像进行测量
- linux下开启dhcp服务器配置,CentOS下DHCP服务器的配置
- 师范生计算机期末考试题目,2015年深圳宝安区计算机教师招聘考试试题[师范生发布]无答案...
- 教你如何制作网页木马
- 【专题5:硬件设计】 之 【50.运算放大器详解b - 负反馈电路、正反馈电路和共模干扰】
- 微商扫码发货管理系统开发
- Java序列化,碰到serialVersionUID不一致怎么处理?
- Net6.0项目发布到IIS 503
- autojs免root脚本引擎编写的QQ空间点赞脚本源码
- 配置CLion clang-format保存时自动格式化
- Windows10家庭版升级至专业版
- supervisord使用
- ISLR读书笔记(1)统计学习简介
- FRM1 P1B1P1B2 整理笔记
热门文章
- 「Python条件结构」嵌套if:实现奖学金评定
- BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View
- [bzoj4816][Sdoi2017]数字表格 (反演+逆元)
- Android OpenGL ES(十一):绘制一个20面体
- python自动化操作电脑的简单实现
- 什么是域名劫持?遇到域名劫持要怎么处理
- 2010新浪笔试---数据挖掘
- 加拿大学校申请条件获关注,雅思专家有话说
- 利用机器学习分析脑电数据(原理分析+示例代码+快速上手)
- Python+OpenCV 识别银行卡卡号