`

JAVE

    博客分类:
  • Java
阅读更多

转自 http://ajava.org/opens/dmtzj/10094.html

 

 

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

 

下面例子将 AVI 动画转成 FLV 格式:

 

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

 

 

项目主页: http://www.sauronsoftware.it/projects/jave/

文档地址: http://www.sauronsoftware.it/projects/jave/manual.php

下载地址: http://www.sauronsoftware.it/projects/jave/download.php

 

 

 

 

实例:

import it.sauronsoftware.jave.AudioAttributes;
import it.sauronsoftware.jave.Encoder;
import it.sauronsoftware.jave.EncoderProgressListener;
import it.sauronsoftware.jave.EncodingAttributes;
import it.sauronsoftware.jave.MultimediaInfo;

import java.io.File;

public class JAVE {

	public static void main(String args[]) {
		wav2mp3("source.wav", "target.mp3", 320000);
		mp32mp3("target.mp3", "target1.mp3", 192000);
		mp32wav("target1.mp3", "source1.wav");
	}

	public static void wav2mp3(String src, String dst, int bitrate) {
		try {
			File source = new File(src);
			File target = new File(dst);
			AudioAttributes audio = new AudioAttributes();
			audio.setCodec("libmp3lame");
			audio.setBitRate(bitrate);
			// audio.setChannels(1);
			// audio.setSamplingRate(48000);
			EncodingAttributes attrs = new EncodingAttributes();
			attrs.setFormat("mp3");
			attrs.setAudioAttributes(audio);
			Encoder encoder = new Encoder();
			encoder.encode(source, target, attrs, new MyProgressListener());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void mp32wav(String src, String dst) {
		try {
			File source = new File(src);
			File target = new File(dst);
			AudioAttributes audio = new AudioAttributes();
			// audio.setChannels(1);
			// audio.setSamplingRate(48000);
			EncodingAttributes attrs = new EncodingAttributes();
			attrs.setFormat("wav");
			attrs.setAudioAttributes(audio);
			Encoder encoder = new Encoder();
			encoder.encode(source, target, attrs, new MyProgressListener());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void mp32mp3(String src, String dst, int bitrate) {
		try {
			File source = new File(src);
			File target = new File(dst);
			AudioAttributes audio = new AudioAttributes();
			audio.setCodec("libmp3lame");
			audio.setBitRate(bitrate);
			// audio.setChannels(1);
			// audio.setSamplingRate(48000);
			EncodingAttributes attrs = new EncodingAttributes();
			attrs.setFormat("mp3");
			attrs.setAudioAttributes(audio);
			Encoder encoder = new Encoder();
			encoder.encode(source, target, attrs, new MyProgressListener());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

class MyProgressListener implements EncoderProgressListener {

	/**
	 * This method is called before the encoding process starts, reporting
	 * information about the source stream that will be decoded and re-encoded.
	 * 
	 * @param info
	 *            Informations about the source multimedia stream.
	 */
	public void sourceInfo(MultimediaInfo info) {
		System.out.println(info);
	}

	/**
	 * This method is called to notify a progress in the encoding process.
	 * 
	 * @param permil
	 *            A permil value representing the encoding process progress.
	 */
	public void progress(int permil) {
		System.out.printf("\r%d%%", permil / 10);
	}

	/**
	 * This method is called every time the encoder need to send a message
	 * (usually, a warning).
	 * 
	 * @param message
	 *            The message sent by the encoder.
	 */
	public void message(String message) {
		System.out.println("\n\n" + message);
	}
}
 

 

 

分享到:
评论
1 楼 zhaoleiJE 2012-11-30  
public static String toMPTree(String sourcePath,String targetPath) throws IllegalArgumentException, InputFormatException, EncoderException{
		File source = new File(sourcePath);  
		File target = new File(targetPath);
		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);
		return targetPath;
	}

linux转的mp3都是0字节

相关推荐

    jave.jar(包含jave-1.0.2.jar和jave-2.0.jar)

    Java开发工具包(Jave.jar)是一个集合,包含了两个不同版本的Jave库:jave-1.0.2.jar和jave-2.0.jar。这个压缩包旨在为Java开发者提供不同版本的Jave库,以便在各种项目中根据需求选择合适版本。Jave库可能是一个...

    jave-1.0.2.zip

    Java JAVE(Java Audio Video Encoder)是一个用于音频和视频处理的Java库,它为开发者提供了在Java应用程序中编码和转换多媒体文件的能力。JAVE的核心功能是利用FFmpeg库的跨平台能力,允许开发者轻松地对音频和...

    jave2.0jar包下载

    Java 2.0 JAR包下载介绍的是一个用于音视频处理的强大工具——JAVE,它基于知名的开源项目FFmpeg。JAVE(Java Audio Video Encoder)是开发者为了方便Java应用程序进行音视频转码而设计的库,它使得在Java环境中进行...

    jave1.0.2源码和jar包

    Java 1.0.2 源码与 JAR 包是 Java 开发中的重要资源,主要用于学习、理解和使用 Jave 这个库。Jave 是一个基于 Java 的开源库,它集成了 FFmpeg,使得开发者能够利用 Java 语言进行视频处理和转换任务。FFmpeg 是一...

    jar包it.sauronsoftware.jave

    《深入解析it.sauronsoftware.jave:Java音频与视频编码库》 在Java开发中,处理音频和视频文件的任务时常出现,而it.sauronsoftware.jave正是一个专为Java设计的强大的多媒体处理库。这个包提供了丰富的功能,允许...

    jar包jave-1.0.2.jar

    《深入理解Jave-1.0.2.jar:计算视频时长的利器》 在数字化时代,处理多媒体数据,尤其是视频文件,已经成为日常工作中不可或缺的一部分。对于开发者来说,能够便捷地获取视频时长是一项基本需求。Jave-1.0.2.jar...

    jave-1.0.2.jar

    标题中的"jave-1.0.2.jar"是一个Java的可执行文件,通常被称为Java Archive(JAR)文件。这种文件格式用于打包Java类、资源文件和元数据,以便在Java平台上运行或分发。它类似于其他编程语言中的库或模块,允许...

    视频解析工具:jave-1.0.2.jar.zip

    "视频解析工具:jave-1.0.2.jar.zip" 是一款专门针对音视频处理的软件资源,它能帮助用户解决一系列与音视频格式转换、参数解析、时间长度计算以及文件大小管理相关的问题。 Jave是一款Java编写的开源音视频处理库...

    jave-1.0.2(jar包).zip

    `jave-1.0.2(jar包).zip` 提供的是一个名为 `jave` 的特定库的版本1.0.2,专门用于音视频处理。这个库可能包含了处理音频和视频数据的类、接口和方法,以帮助开发者在Java应用程序中实现媒体处理功能。 首先,让...

    jave-1.0.2.jar(多个版本jar包)

    描述中提到了三个不同版本的jar包:jave-1.0、jave-1.0.1和jave-1.0.2。这表示了软件的版本控制,遵循了典型的版本号命名规则,其中主版本号(1)、次版本号(0)和修订号(2)分别代表主要更新、次要更新和修正。...

    最新修复版Jave转换mp3、wav等语音,测试完美运行64位linux和windows

    jave-1.0.3.jar解决已知如下问题: 1、it.sauronsoftware.jave.EncoderException: Metadata 2、it.sauronsoftware.jave.EncoderException: video:0kB audio:1301kB subtitle:0kB other streams:0kB global headers:0...

    视频计算时长jar包jave-1.0.2.jar

    "jave-1.0.2.jar" 是一个专注于计算视频时长的Java库,它为开发者提供了一种高效、便捷的方式来获取视频文件的播放长度。本篇文章将详细介绍这个库的核心功能、使用方法以及背后的原理。 1. **JAVE库介绍** JAVE,...

    解决Jave在linux下转为MP3时为0字节或其他异常或转码后只有1分钟时长

    jave-1.0.2.3.jar完全解决如下问题: 1、报错:it.sauronsoftware.jave.EncoderException: Metadata: 2、可以转换,可以播放,但是有个异常:it.sauronsoftware.jave.EncoderException: video:0kB audio:1301kB ...

    完美解决Jave在linux下转为MP3时为0字节或其他异常

    jave-1.0.2.2.jar完全解决如下问题: 1、报错:it.sauronsoftware.jave.EncoderException: Metadata: 2、可以转换,可以播放,但是有个异常:it.sauronsoftware.jave.EncoderException: video:0kB audio:1301kB ...

    jave-1.0.2.rar

    在这个"jave-1.0.2.rar"压缩包中,包含的是一个名为"jave-1.0.2.jar"的文件,这实际上是一个Java Archive(JAR)文件。JAR文件是Java平台特有的归档格式,它允许将多个Java类文件、资源文件以及元数据打包到一起,...

    JAVE图解实用教程

    **JAVE图解实用教程** Java Advanced Video Encoder (JAVE) 是一款强大的视频编码工具,专为Java开发者设计,能够方便地将各种视频格式转换为流媒体格式,适合在网络上传输。这个教程针对的是对Java编程有一定基础...

    jave资源.zip

    Java音频视频编码器(JAVE2)是一个强大的工具,它为Java开发者提供了访问FFmpeg项目的接口,使得在Java环境中处理音频和视频转码变得轻松易行。FFmpeg是一款开源的跨平台多媒体处理框架,用于处理各种音频和视频...

Global site tag (gtag.js) - Google Analytics