/**
* 视频压缩
* movToMp4("C:/mysoftware/video/test188.avi","C:/mysoftware/video/test188temp.mp4");
* @param sourcePath 视频来源
* @param targetPath 压缩后的视频地址
*/
private static void convertToMp4(String sourcePath, String targetPath) {
File source = new File(sourcePath);
File target = new File(targetPath);
long beginTime = System.currentTimeMillis();
AudioAttributes audio = new AudioAttributes();
audio.setCodec("aac");
//比特率是指每秒传送的比特(bit)数。单位为 bps(Bit Per Second),比特率越高,传送数据速度越快
audio.setBitRate(80000);
audio.setChannels(1);
audio.setSamplingRate(22050);
VideoAttributes video = new VideoAttributes();
video.setCodec("h264");
video.setBitRate(2325 * 1024);
//设置帧率,越大越流畅,越小越卡
video.setFrameRate(60);
EncodingAttributes attrs = new EncodingAttributes();
attrs.setAudioAttributes(audio);
attrs.setVideoAttributes(video);
Encoder encoder = new Encoder();
try {
encoder.encode(new MultimediaObject(source), target, attrs);
System.out.println("压缩完成花费时间是:" + ((System.currentTimeMillis() - beginTime))/1000 + "秒");
} catch (IllegalArgumentException | EncoderException e) {
e.printStackTrace();
}
}
<properties>
<schild.version>3.0.1</schild.version>
</properties>
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-all-deps</artifactId>
<version>${schild.version}</version>
</dependency>
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-core</artifactId>
<version>${schild.version}</version>
</dependency>
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-nativebin-win64</artifactId>
<version>${schild.version}</version>
</dependency>
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-nativebin-linux64</artifactId>
<version>${schild.version}</version>
</dependency>
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-nativebin-osx64</artifactId>
<version>${schild.version}</version>
</dependency>