java 如何将多张JPG图片合成视频文件,比如:avi格式 或 mpg格式. 学习图像处理需要哪些编程语言

\u60f3\u4ece\u4e8b\u56fe\u50cf\u5904\u7406\u8f6f\u4ef6\u5de5\u7a0b\u5e08 \u5e94\u8be5\u5177\u5907\u54ea\u4e9b\u8f6f\u4ef6\uff0c\u7f16\u7a0b\u8bed\u8a00\u5462\uff1f

\u6211\u4e5f\u662f\u521a\u5de5\u4f5c\u6ca1\u591a\u4e45\u7684\u65b0\u624b\uff0c\u5bf9\u56fe\u50cf\u5904\u7406\u4e5f\u4e0d\u662f\u592a\u4e86\u89e3\u3002\u4e0d\u8fc7\u5927\u6982\u77e5\u9053\u7b97\u6cd5\u4e00\u5b9a\u8981\u597d\uff0c\u90a3\u4e2a\u8981\u6c42\u7279\u522b\u9ad8\u3002\u4f60\u53ef\u4ee5\u53bb\u667a\u8054\u62db\u8058\u7684\u7f51\u7ad9\u4e0a\u770b\u770b\u627e\u56fe\u50cf\u5904\u7406\u8f6f\u4ef6\u7684\u5de5\u7a0b\u5e08\uff0c\u770b\u4ed6\u4eec\u8981\u6c42\u4ec0\u4e48\u6280\u672f\uff0c\u4f60\u8981\u5b66\u5c31\u53c2\u7167\u4ed6\u4eec\u7684\u8981\u6c42\u5b66\uff0c\u90a3\u4e2a\u662f\u5de5\u4f5c\u4e2d\u771f\u6b63\u6709\u7528\u5230\u7684\u3002\u4e0d\u8fc7\u8fd8\u662f\u8981\u8bf4\u4e00\u53e5\uff0c\u56fe\u50cf\u65b9\u9762\u7684\u7b97\u6cd5\uff0c\u5c24\u5176\u662f3D\u7684\u56fe\u50cf\u5904\u7406\uff0c\u9ad8\u6570\u548c\u7ebf\u4ee3\u4e00\u5b9a\u8981\u597d\uff0c\u8fd8\u8981\u591a\u770b\u770b\u7b97\u6cd5\uff08\u540c\u4e8b\u662f\u4e2a\u7814\u7a76\u751f\uff0c\u4ed6\u5728\u770b\u7b97\u6cd5\u5bfc\u8bba\uff0c\u6211\u8868\u793a\u770b\u7740\u5f88\u9500\u9b42\uff09\u3002

\u6700\u5f00\u59cb\u5148\u5b66\u4e60matlab\u5427\uff0c\u8fd9\u6837\u505a\u56fe\u50cf\u5904\u7406\u7684\u65f6\u5019\u53ef\u4ee5\u5b9e\u65f6\u67e5\u770b\u6548\u679c\uff1bopencv\u5f00\u6e90\u5e93\u4f7f\u7528\u65b9\u4fbf\uff0c\u7f51\u4e0a\u5f88\u591a\u6559\u7a0b \u53ef\u4ee5\u7528c\u3001c++\u3001python\u8c03\u7528\u4e5f\u53ef\u4ee5\u5b9e\u65f6\u67e5\u770b\u5904\u7406\u6548\u679c\u3002\u5b66\u4e60\u56fe\u50cf\u5904\u7406\u7684\u5173\u952e\u662f\u7406\u89e3\u5404\u79cd\u56fe\u50cf\u5904\u7406\u7684\u7b97\u6cd5\u800c\u4e0d\u662f\u8bed\u8a00\u3002

之前有做过图片合成视频的功能,大概代码就是这样,你可以看一下
/**
* 图片合成视频
* @param mp4SavePath 视频保存路径
* @param imageDir 图片地址
* @param rate 这个可以理解成视频每秒播放图片的数量
*/
public static boolean jpgToMp4(String mp4SavePath, String imageDir, double rate) {
FFmpegFrameRecorder recorder = null;
boolean flag = true;
try {
File[] files = FileUtils.fileSort(imageDir);
int [] widthArray = new int[files.length];
int [] heightArray = new int[files.length];

/**
* 获取合成视频图片的最大宽高,避免图片比例不一致最终合成效果差
*/
for (int i = 0; i < files.length; i++) {
BufferedImage bufferedImage = ImageIO.read(files[i]);
widthArray[i] = bufferedImage.getWidth();
heightArray[i] = bufferedImage.getHeight();
}

/**
* 这个方法主要是防止图片比例达不到视频合成比例的要求,如果达不到下面条件视频则会无法播放
* 图片宽:必须要被32整除
* 图片高:必须要被2整除
*/
int [] maxWH = getImgMaxWH(widthArray,heightArray);
recorder = new FFmpegFrameRecorder(mp4SavePath,maxWH[0],maxWH[1]);
recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
/**
* 视频质量:目前测试出来的是25-30最清晰,视频质量范围好像是0-40,具体可以自己慢慢测
*/
recorder.setVideoQuality(25);
recorder.setFormat("mp4");
recorder.setFrameRate(rate > 0 ? rate : 1);
recorder.setPixelFormat(0);
recorder.start();

OpenCVFrameConverter.ToIplImage conveter = new OpenCVFrameConverter.ToIplImage();

/**
* 合成视频
*/
for(int i = 0; i < files.length; i++ ){
opencv_core.IplImage image = cvLoadImage(files[i].getPath());
recorder.record(conveter.convert(image));
opencv_core.cvReleaseImage(image);
}
logger.info("合成成功");
} catch(Exception e) {
e.printStackTrace();
flag = false;
logger.error("合成失败");
} finally {
try {
if (recorder != null){
recorder.stop();
recorder.release();
}
} catch (FrameRecorder.Exception e) {
e.printStackTrace();
}
}
return flag;
}

绘声绘影 威力导演 等等

我也在找这个方法 。 你找到了么

利用视频制作软件很简单就可以完成
数码大师 挺简单的,你可以尝试下一个,全中文的,0教程就能上手。

扩展阅读:手机怎么弄jpg图片 ... 手机上怎么弄jpg照片 ... 图片转换jpg免费 ... jpg格式图片 ... jpg文件格式怎么弄 ... jpg图片查看器app ... 手机照片转成jpg文件 ... 免费jpg图片压缩 ... jpg图片怎么转成pdf ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网