JAVE (Java Audio Video Encoder) 类库是一个 ffmpeg 项目的 Java 语言封装。开发人员可以使用JAVE 在不同的格式间转换视频和音频。例如将 AVI 转成 MPEG 动画,等等 ffmpeg 中可以完成的在 JAVE 都有对应的方法。

Examples

From a generic AVI to a youtube-like FLV movie, with an embedded MP3 audio stream:

File source = new File("source.avi");

File target = new File("target.flv");

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

Next lines extracts audio informations from an AVI and store them in a plain WAV file:

File source = new File("source.avi");

File target = new File("target.wav");

AudioAttributes audio = new AudioAttributes();

audio.setCodec("pcm_s16le");

EncodingAttributes attrs = new EncodingAttributes();

attrs.setFormat("wav");

attrs.setAudioAttributes(audio);

Encoder encoder = new Encoder();

encoder.encode(source, target, attrs);

Next example takes an audio WAV file and generates a 128 kbit/s, stereo, 44100 Hz MP3 file:

File source = new File("source.wav");

File target = new File("target.mp3");

AudioAttributes audio = new AudioAttributes();

audio.setCodec("libmp3lame");

audio.setBitRate(new Integer(128000));

audio.setChannels(new Integer(2));

audio.setSamplingRate(new Integer(44100));

EncodingAttributes attrs = new EncodingAttributes();

attrs.setFormat("mp3");

attrs.setAudioAttributes(audio);

Encoder encoder = new Encoder();

encoder.encode(source, target, attrs);

Next one decodes a generic AVI file and creates another one with the same video stream of the source and a re-encoded low quality MP3 audio stream:

File source = new File("source.avi");

File target = new File("target.avi");

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(VideoAttributes.DIRECT_STREAM_COPY);

EncodingAttributes attrs = new EncodingAttributes();

attrs.setFormat("avi");

attrs.setAudioAttributes(audio);

attrs.setVideoAttributes(video);

Encoder encoder = new Encoder();

encoder.encode(source, target, attrs);

Next one generates an AVI with MPEG 4/DivX video and OGG Vorbis audio:

File source = new File("source.avi");

File target = new File("target.avi");

AudioAttributes audio = new AudioAttributes();

audio.setCodec("libvorbis");

VideoAttributes video = new VideoAttributes();

video.setCodec("mpeg4");

video.setTag("DIVX");

video.setBitRate(new Integer(160000));

video.setFrameRate(new Integer(30));

EncodingAttributes attrs = new EncodingAttributes();

attrs.setFormat("mpegvideo");

attrs.setAudioAttributes(audio);

attrs.setVideoAttributes(video);

Encoder encoder = new Encoder();

encoder.encode(source, target, attrs);

A smartphone suitable video:

File source = new File("source.avi");

File target = new File("target.3gp");

AudioAttributes audio = new AudioAttributes();

audio.setCodec("libfaac");

audio.setBitRate(new Integer(128000));

audio.setSamplingRate(new Integer(44100));

audio.setChannels(new Integer(2));

VideoAttributes video = new VideoAttributes();

video.setCodec("mpeg4");

video.setBitRate(new Integer(160000));

video.setFrameRate(new Integer(15));

video.setSize(new VideoSize(176, 144));

EncodingAttributes attrs = new EncodingAttributes();

attrs.setFormat("3gp");

attrs.setAudioAttributes(audio);

attrs.setVideoAttributes(video);

Encoder encoder = new Encoder();

encoder.encode(source, target, attrs);

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐