java图片转视频源码_图片的源代码怎么转码

hacker|
91

文章目录:

java怎么将许多图片做成一个视频文件

让图片的路径自动每1ms更换成下一张图片得路径,就形成动态效果

JAVA 将照片转视频且有动画效果

感觉这应该是前端页面的功能吧,不是后端做的事情。是让照片以幻灯片的方式呈现,这是纯页面效果,后台只负责推送数据,怎么展现是前端的活了吧。

java 如何将多张JPG图片合成视频文件,比如:avi格式 或 mpg格式.

之前有做过图片合成视频的功能,大概代码就是这样,你可以看一下

/**

* 图片合成视频

* @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;

}

5条大神的评论

  • avatar
    访客 2022-07-17 下午 04:03:29

    态效果JAVA 将照片转视频且有动画效果感觉这应该是前端页面的功能吧,不是后端做的事情。是让照片以幻灯片的方式呈现,这是纯页面效果,后台只负责推送数据,怎么展现是前端的活了吧。java 如何将多张JPG图片合成视频文件,比如:avi格式 或 mpg格式.之前有做过图

  • avatar
    访客 2022-07-17 下午 02:26:39

    geDir 图片地址* @param rate 这个可以理解成视频每秒播放图片的数量*/public static boolean jpgToMp4(String mp4

  • avatar
    访客 2022-07-17 上午 06:09:43

    Sort(imageDir);int [] widthArray = new int[files.length];int [] heightArray = new int[files.length];/*** 获取合成视频图片的最大宽高,避免图片比例不一致最终合成效果差*/fo

  • avatar
    访客 2022-07-17 上午 06:10:31

    rror("合成失败");} finally {try {if (recorder != null){recorder.stop();recorder.release();}} catch (FrameRecorder.Exception e) {e.printStackTr

  • avatar
    访客 2022-07-17 上午 11:18:01

    必须要被32整除* 图片高:必须要被2整除*/int [] maxWH = getImgMaxWH(widthArray,heightArray);recorder = new FFmpegFrameRecorder(mp4SavePath,maxWH[0],ma

发表评论