`

java 图片转换成视频

 
阅读更多

 

package com.avi;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Comparator;

import org.jim2mov.core.DefaultMovieInfoProvider;
import org.jim2mov.core.ImageProvider;
import org.jim2mov.core.Jim2Mov;
import org.jim2mov.core.MovieInfoProvider;
import org.jim2mov.core.MovieSaveException;
import org.jim2mov.utils.MovieUtils;

/**
 * 图片与视频转换工具类
 *
 * @author Administrator
 */
public class PicToAviUtil {
	
	/**
	 * 将图片转换成视频
	 * @param jpgDirPath jpg图片文件夹绝对路径
	 * @param aviFileName 生成的avi视频文件名
	 * @param fps 每秒帧数
	 * @param mWidth 视频的宽度
	 * @param mHeight 视频的高度
	 * @throws Exception
	 */
	public static void convertPicToAvi(String jpgDirPath, String aviFileName, int fps, int mWidth, int mHeight) {
		// jpgs目录放置jpg图片,图片文件名为(1.jpg,2.jpg...)
		final File[] jpgs = new File(jpgDirPath).listFiles();
		if(jpgs==null || jpgs.length==0){
			return;
		}

		// 对文件名进行排序(本示例假定文件名中的数字越小,生成视频的帧数越靠前)
		Arrays.sort(jpgs, new Comparator<File>() {
			public int compare(File file1, File file2) {
				String numberName1 = file1.getName().replace(".jpg", "");
				String numberName2 = file2.getName().replace(".jpg", "");
				return new Integer(numberName1) - new Integer(numberName2);
			}
		});

		// 生成视频的名称
		DefaultMovieInfoProvider dmip = new DefaultMovieInfoProvider(aviFileName);
		// 设置每秒帧数
		dmip.setFPS(fps>0?fps:3); // 如果未设置,默认为3
		// 设置总帧数
		dmip.setNumberOfFrames(jpgs.length);
		// 设置视频宽和高(最好与图片宽高保持一直)
		dmip.setMWidth(mWidth>0?mWidth:1440); // 如果未设置,默认为1440
		dmip.setMHeight(mHeight>0?mHeight:860); // 如果未设置,默认为860

		try {
			new Jim2Mov(new ImageProvider() {
				public byte[] getImage(int frame) {
					try {
						// 设置压缩比
						return MovieUtils.convertImageToJPEG((jpgs[frame]), 1.0f);
					} catch (IOException e) {
						System.err.println(e);
					}
					return null;
				}
			}, dmip, null).saveMovie(MovieInfoProvider.TYPE_AVI_MJPEG);
		} catch (MovieSaveException e) {
			System.err.println(e);
		}
		
		System.out.println("create avi success.");
	}

	/**
	 * main
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		String jpgDirPath = "e:/record/"; // jpg文件夹路径
		String aviFileName = "test.avi"; // 生成的avi视频文件名(生成路径为本工程)
		int fps = 3; // 每秒播放的帧数
		int mWidth = 1440; // 视频的宽度
		int mHeight = 860; // 视频的高度
		PicToAviUtil.convertPicToAvi(jpgDirPath, aviFileName, fps, mWidth, mHeight);
	}

}

 需要两个jar支持:

Jim2mov.jar、jmf.jar。

生成的avi文件在工程目录下。

 

分享到:
评论

相关推荐

    java实现图片转换为视频

    在IT行业中,将图片转换为视频是一项常见的任务,特别是在多媒体处理、动画制作或者数据可视化等领域。Java作为一种跨平台的编程语言,提供了丰富的库和API来处理这类任务。本篇文章将详细探讨如何使用Java实现图片...

    Java开发将连续的图片转成视频

    为了实现这个功能,开发者通常需要编写一段Java代码,以下是一个简单的示例,使用JavaCV库将图片转换为视频: ```java import org.bytedeco.javacpp.opencv_core.IplImage; import org.bytedeco.javacv....

    Java将图片合并为视频

    2. **帧序列创建**:将每张图片转换为FFmpeg可识别的帧格式,通常为JPEG或PNG。 3. **视频参数设置**:定义视频的参数,如帧率(fps)、分辨率、编码器等。 4. **调用FFmpeg**:通过Java FFmpeg Bridge或Xuggler,...

    java实现视频生成图片

    java实现可以获取视频中某一帧的图片,并将图片保存至本地,自定义设置截取图片的宽度和高度,获取视频的总帧数,视频总时长。

    Javacv处理视频,提取成帧图片,生成gif

    JavaCV 是一个 Java 平台上的计算机视觉...以上就是关于“Javacv 处理视频,提取成帧图片,生成 gif”这一主题的主要知识点。了解这些概念后,你可以根据具体的项目需求编写相应的代码来实现视频处理和 GIF 生成功能。

    java用ffmpeg截取视频图片

    Java 使用 FFmpeg 截取视频图片是一个常见的任务,它涉及到多媒体处理、命令行操作和跨平台编程。FFmpeg 是一个强大的开源工具集,用于处理音频和视频文件,包括编码、解码、转码、流处理等功能。在 Java 中,我们...

    java实现视频压缩

    Java作为一种广泛使用的编程语言,也提供了实现视频压缩的能力。本篇将详细探讨如何使用Java来实现视频压缩,以及涉及到的相关知识点。 首先,我们要理解视频压缩的基本原理。视频是由一帧一帧的静态图像(图片)...

    android安卓图片序列转视频、录屏原理(javacv实现)

    在Android平台上,将图片序列或录屏转换为视频是一个常见的需求,这通常涉及到多媒体处理和帧率控制等技术。在本项目中,开发者利用了JavaCV库来实现这个功能。JavaCV是一个开源的Java库,它提供了对OpenCV、FFmpeg...

    java视频上传,转码

    - **Java2D或JavaFX**:在Java中,可以读取视频流的某一帧,然后使用Java2D或JavaFX的绘图功能将其保存为图片。 4. **视频播放**: - **JavaFX Media API**:JavaFX提供了一个内置的媒体播放器组件`MediaPlayer`...

    Java视频转换FLV

    转换视频的基本命令格式为:`ffmpeg -i input.mp4 output.flv`。其中,`-i`参数指定输入文件,`output.flv`是输出文件。还可以添加其他参数调整视频质量、分辨率、比特率等。 4. **FFmpeg抓取图片**: 从视频中...

    安卓 图片合成视频(利用javacv)

    本项目的核心目标是通过JavaCV将指定目录下的JPG图片序列合成成一个视频文件。 首先,我们需要了解JavaCV的基本用法。JavaCV提供了一个Java接口,可以直接调用OpenCV和FFmpeg的函数。在Android中,我们通常需要添加...

    用JAVA获取视频文件中的帧图片并等比缩放

    "用JAVA获取视频文件中的帧图片并等比缩放" Java是获取视频文件中的帧图片并等比缩放的重要技术之一。该技术可以应用于视频处理、图像处理、多媒体处理等领域。通过使用Java语言和javacv库,我们可以快速获取视频...

    java封装ffmpeg截取视频图片

    本文将详细介绍如何在Java中使用封装的FFmpeg库进行视频截图、视频剪辑和视频转换,并讨论其支持的编码类型以及在Windows和Linux平台上的应用。 首先,我们要了解Java封装FFmpeg的基本原理。通常,这涉及到使用JNI...

    java ffmpeg实现视屏剪辑、srt字幕嵌入、视频合成、图片转视频

    java ffmpeg实现视屏剪辑、srt字幕嵌入、视频合成、图片转视频 通过test类运行。demo基于jave的源码。对ffmpeg的两种系统下的执行文件进行了替换。所以ffmpeg版本是最新的。可以执行ffmpeg官网上大多数的命令

    java图片转视频

    在Java编程环境中,将图片序列转换为视频是一个常见的任务,特别是在多媒体...以上就是使用Java(特别是JCodec库)将图片转换为视频的基本步骤。通过理解和应用这些知识,你可以根据实际需求定制自己的图片转视频工具。

    java调用ffmpeg 添加水印转换视频

    java调用ffmpeg添加水印并且转换视频,代码中并没有判断哪些格式支持,那些不支持,mpg,mp4,avi,wmv基本都可以(传入格式),转换为flv avi mp4起码都没问题,其它的没事过ffmpeg是开源的支持的挺多的 补充:时间算错了,...

    Java实现字节流与图片的转化

    在Java编程中,字节流(Byte Stream)是处理数据的基本方式,特别是在处理二进制数据,如图片、音频或视频文件时。本教程将详细讲解如何使用Java实现字节流来转换和处理图片。 首先,我们需要理解字节流的概念。在...

    java封装视频图片

    ### Java封装视频图片知识点 #### 一、概述 在Java编程语言中,处理多媒体文件(如视频和图像)是一项常见的需求。例如,在开发媒体播放器、社交媒体应用或任何需要从视频中提取帧作为图片的应用场景时,掌握如何...

    java实现图片转视频附带依赖包

    下面直接初始化Jim2Mov并调用saveMovie方法开始转换视频 new Jim2Mov(new ImageProvider() { public byte[] getImage(int frame) { try { // 设置压缩比 return MovieUtils.convertImageToJPEG((jpgs[frame]),...

    java获取视频信息,帧(封面图片)

    在Java编程环境中,获取视频信息和提取视频帧作为封面图片是一项常见的任务,特别是在处理多媒体内容时。本篇文章将深入探讨如何使用FFmpeg这个强大的跨平台命令行工具,并结合Java进行调用来实现这一功能。FFmpeg是...

Global site tag (gtag.js) - Google Analytics