📚 开源资源分享——颜佐光的个人书架
✉️ 联系站长
书架 / Java / 视频

java实现视频压缩转码

2020-05-29 11:25 · 约 2,899 字 · 浏览 2,659 次视频

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();

        }
    }
}
← 返回《Java》目录书架 →