java实现视频压缩转码

/ Java / 没有评论 / 1933浏览

java实现视频压缩转码

其实很简单,直接上代码. snippet.java

import java.io.File;
import it.sauronsoftware.jave.AudioAttributes;
import it.sauronsoftware.jave.Encoder;
import it.sauronsoftware.jave.EncodingAttributes;
import it.sauronsoftware.jave.VideoAttributes;

public class Snippet {
    public static void main(String[] args) {
        File source = new File("D:/Tool/workspace/dae9d4ccf222e3fd8.mp4");
        File target = new File("D:/Tool/workspace/1.mp4");		
        try {
            System.out.println("begin");
            
            AudioAttributes audio= new AudioAttributes();
            audio.setCodec("libmp3lame");
            audio.setBitRate(new Integer(56000));
            audio.setChannels(new Integer(1));
            audio.setSamplingRate(new Integer(22050));
            
            VideoAttributes video=new VideoAttributes();
            video.setCodec("mpeg4");
            video.setBitRate(new Integer(800000));
            video.setFrameRate(new Integer(15));
            
            EncodingAttributes attr=new EncodingAttributes();
            attr.setFormat("mp4");
            attr.setAudioAttributes(audio);
            attr.setVideoAttributes(video);
            
            Encoder encoder=new Encoder();
            encoder.encode(source, target, attr);
            System.out.println("end");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

不过有一个缺点感觉,就是压缩的速度有点慢,150M的视频压缩后15M左右,但是耗时差不多60s。不知道怎么优化

测试代码

import java.io.File;

import it.sauronsoftware.jave.AudioAttributes;
import it.sauronsoftware.jave.Encoder;
import it.sauronsoftware.jave.EncoderException;
import it.sauronsoftware.jave.EncodingAttributes;
import it.sauronsoftware.jave.VideoAttributes;
import it.sauronsoftware.jave.VideoSize;

public class FileZipTest {

	public static void main(String[] args) {
		File source = new File("E:\\gaolt.mp4");
		File target = new File("E:\\gaolt201.flv");
		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("flv");
			video.setBitRate(new Integer(160000));
			video.setFrameRate(new Integer(15));
			video.setSize(new VideoSize(400, 300));
	
			// 视频转码编码设置
			EncodingAttributes attrs = new EncodingAttributes();
			attrs.setFormat("flv");
			attrs.setAudioAttributes(audio);
			attrs.setVideoAttributes(video);
	
			// 编码器
			Encoder encoder = new Encoder();
			encoder.encode(source, target, attrs);
	
			System.out.println("压缩完成...");
		} catch (EncoderException e) {
			e.printStackTrace();
	
		}
	}
}