Java 视频转码

视频转码的应用也是非常广泛,现在小视频这么流行,快手、抖音等都是大规模使用 小视频,系统肯定有视频转码部分

盘古歌技术在这里给大家一个方案,这个方案是支持跨平台的,

  • 支持 windows
  • 支持 mac 系统
  • 支持 linux 系统

第一步引入maven jar

<dependency>
 <groupId>ws.schild</groupId>
 <artifactId>jave-all-deps</artifactId>
 <version>2.7.1</version>
</dependency>

第二步实现代码

public class VideoConvert {

	private static String DEFAULT_FORMAT = "mp4";

	public static void convertMP4(File source, File target)
	{
		try {
			// Audio Attributes
			AudioAttributes audio = new AudioAttributes();
			audio.setCodec(AudioConvert.DEFAULT_CODEC);
			audio.setBitRate(64000);
			audio.setChannels(1);
			audio.setSamplingRate(22050);

			// Audio Attributes
			VideoAttributes video = new VideoAttributes();
			video.setCodec("mpeg4");
			// 设置比特率
			video.setBitRate(160000);
			// 设置帧率, 目前网络视频的帧数一般都是30帧/秒,最低可以降到25帧/秒。高于30帧/秒,视频格式会过大。低于25帧/秒,视频会出现卡屏现象
			video.setFrameRate(15);
			//video.setSize(new VideoSize(176, 144));

			// Encoding attributes
			EncodingAttributes  attrs = new EncodingAttributes();
			attrs.setFormat(DEFAULT_FORMAT);
			attrs.setAudioAttributes(audio);
			attrs.setVideoAttributes(video);

			// Encode
			Encoder encoder = new Encoder();
			encoder.encode(new MultimediaObject(source), target, attrs);
		} catch (Exception e) {
			// TODO: handle exception
		}
	}

}

输入参数是

  • source 视频源文件
  • target 视频转换完成之后文件地址

注意:

target的目标文件格式 mp4 格式