wav音乐格式是无损音乐,其他都是有损音乐格式或者无损音乐的压缩版。
格式 | 解释 |
---|---|
Ogg | 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件 |
MPEG4 | 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件 |
WebM | 带有 VP8 视频编码和 Vorbis 音频编码的 WebM 文件 |
JAVE(Java Audio Video Encoder),是一个包涵ffmpeg项目库。开发这可以运用它去实现音频(Audio)与视频(Video)文件的转码。
官方文档:http://www.sauronsoftware.it/projects/jave/manual.php
// 音频转换格式类
Encoder encoder = new Encoder();
转码函数:
// 转码函数
public void encode(File source,
File target,
EncodingAttributes attributes,
EncoderProgressListener listener);
参数说明:
// 设置转码属性
EncodingAttributes attrs = new EncodingAttributes();
方法列表:
// 设置转码音频,添加音频转码时所需音频属性
public void setAudioAttributes(AudioAttributes audioAttributes)
// 设置转码视频,添加视频转码时所需音频属性
public void setVideoAttributes(VideoAttributes videoAttributes)
//设置转码格式
public void setFormat(String format)
//设置转码偏移位置,自定义转码开始时间
public void setOffset(Float offset)
//设置转码持续时间,自定义转码持续时间
public void setDuration(Float duration)
// 设置音频属性
AudioAttributes audio = new AudioAttributes();
方法列表:
// 设置编码器
public void setCodec(String codec)
// 设置音频比特率
public void setBitRate(Integer bitRate)
// 设置音频节录率
public void setSamplingRate(Integer bitRate)
// 设置声音频道
public void setChannels(Integer channels)
// 设置音频音量
public void setVolume(Integer volume)
// 设置视频属性
VideoAttributes video = new VideoAttributes();
方法列表:
// 设置编码器
public void setCodec(String codec)
// 设置标签(通常用多媒体播放器所选择的视频解码)
public void setTag(String tag)
// 设置视频比特率
public void setBitRate(Integer bitRate)
// 设置视频帧率
public void setFrameRate(Integer bitRate)
// 设置视频大小
public void setSize(VideoSize size)
//创建媒体信息对象
File source = new File("D:/test.mp4");
MultimediaInfo info = encoder.getInfo(file);
方法列表:
// 获得文件格式
public String getFormat();
// 获得时间(ms)
public long getDuration();
// 获得音频对象
public AudioInfo getAudio();
// 获得视频对象
public VideoInfo getVideo();
public interface EncoderProgressListener {
//源文件信息
void sourceInfo(MultimediaInfo var1);
//增长千分率
void progress(int var1);
//转码信息提示
void message(String var1);
}
介绍:把除mp3和wav外的音乐格式转换成wav音乐格式
/**
* 转化音频格式
* @param oldFormatPath : 原音乐路径
* @param newFormatPath : 目标音乐路径
* @return
*/
public static boolean transforMusicFormat(String oldFormatPath, String newFormatPath) {
File source = new File(oldFormatPath);
File target = new File(newFormatPath);
// 音频转换格式类
Encoder encoder = new Encoder();
// 设置音频属性
AudioAttributes audio = new AudioAttributes();
audio.setCodec(null);
// 设置转码属性
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("wav");
attrs.setAudioAttributes(audio);
try {
encoder.encode(source, target, attrs);
System.out.println("传唤已完成...");
deleteFile(oldFormatPath);
return true;
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InputFormatException e) {
e.printStackTrace();
} catch (EncoderException e) {
e.printStackTrace();
}
return false;
}
/**
* 删除原音频文件
* @param filePath : 原文件路径
* @return
*/
public static boolean deleteFile(String filePath){
File file = new File(filePath);
// 路径为文件且不为空则进行删除
if (file.isFile() && file.exists()) {
// 文件删除
file.delete();
return true;
}
return false;
}
/**
* 判断格式是否需要转换
* @param musicName
* @return
*/
public static boolean checkMusicFormat(String musicName){
if (musicName== null || "".equals(musicName)){
return false;
}
String suffix = musicName.substring(musicName.lastIndexOf(".")+1);
if ("mp3".equals(suffix) || "wav".equals(suffix)){
return false;
}
return true;
}
转换音频格式步骤:
视频格式转换类似。