Java 视频压缩

视频压缩技术

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

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

第一步引入maven jar

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

第二步实现代码

public class FFmpegManager {

	public static void main(String[] args) {

		try {
			File source = new File("C:/Users/Administrator/Desktop/chat/test/test.mp4");
			File target = new File("C:/Users/Administrator/Desktop/chat/test/test_compress.mp4");

			//VideoConvert.convertMP4(source, target);
			zipVideo(source, target);

		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	public static void zipVideo(File source, File target) throws IOException {
        try {
            // 音频编码设置
            AudioAttributes audio = new AudioAttributes();
            audio.setCodec("libmp3lame");
            audio.setBitRate(new Integer(64000));
            audio.setChannels(new Integer(1));
            audio.setSamplingRate(new Integer(22050));

            // 视频编码设置
            VideoAttributes video = new VideoAttributes();
            video.setCodec("mpeg4");
            video.setBitRate(new Integer(160000));
            video.setFrameRate(new Integer(15));
            //            video.setSize(new VideoSize(100, 150));

            // 视频转码编码设置
            EncodingAttributes attrs = new EncodingAttributes();
            attrs.setFormat("mp4");
            attrs.setAudioAttributes(audio);
            attrs.setVideoAttributes(video);

            // 编码器
            Encoder encoder = new Encoder();
            encoder.encode(new MultimediaObject(source), target, attrs);
        } catch (EncoderException e) {
            e.printStackTrace();
        }
    }

}

输入参数是

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