注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天朝布衣田中码农参上

苦逼码农的点点滴滴,请多多指教!

 
 
 

日志

 
 
 
 

Java利用JAVE来做音视频转换  

2017-10-14 07:56:19|  分类: JAVA |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
JAVE(Java Audio Video Encoder),是一款将音频和视频在不同格式间进行转化的开源工具,是基于ffmpeg项目的Java封装,需要J2SE 1.4+,Windows 或 Linux 操作系统均可运行【但请注意:在linux下请先安装ffmpeg, 这样才不会造成在linux下转的MP3等格式时都是0字节】。其官网是:http://www.sauronsoftware.it/projects/jave/index.php,此项目最新版本是v1.0.2。
jar下载地址:官方 下载点1 下载点2
使用非常简便,将包jave-1.0.jar导入工程路径即可。然后可以利用如下代码察看支持的解压码格式:

Encoder encoder = new Encoder();
//列出所有支持解码的格式
String[] filetype;
try {
filetype = encoder.getSupportedDecodingFormats();
for(int i=0;i<filetype.length;i++){
if(i==0)System.out.println("支持的解码格式:");
System.out.println(filetype[i]);
}
} catch (EncoderException e) {
e.printStackTrace();
}
//列出所有支持编码的格式
try {
filetype = encoder.getSupportedEncodingFormats();
for(int i=0;i<filetype.length;i++){
if(i==0)System.out.println("支持的编码格式:");
System.out.println(filetype[i]);
}
} catch (EncoderException e) {
e.printStackTrace();
}

可以说支持的格式还是蛮多的,下面再来看看相关音视频转换代码:

Encoder encoder = new Encoder(); 

//音频文件AAC转MP3示范例子
File source = new File("F:\\593668.com.aac");
File target = new File("F:\\593668.com.mp3");
AudioAttributes audio = new AudioAttributes();
audio.setCodec("libmp3lame");
audio.setBitRate(128000); //压缩码率
audio.setChannels(2); //设置通道
audio.setSamplingRate(44100); //设置采样率
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mp3");
attrs.setAudioAttributes(audio);
try {
encoder.encode(source, target, attrs);
} catch (IllegalArgumentException | EncoderException e) {
//编码,参数异常
e.printStackTrace();
}
//视频文件AVI转FLV示范例子
source = new File("F:\\593668.com.avi");
target = new File("F:\\593668.com.flv");
audio.setCodec("libmp3lame"); //设置编码器
audio.setBitRate(64000); //设置压缩码率
audio.setChannels(1); //设置通道
audio.setSamplingRate(22050); //设置采样率
VideoAttributes video = new VideoAttributes();
video.setCodec("flv"); //设置格式
video.setBitRate(160000);
video.setFrameRate(15); //设置
video.setSize(new VideoSize(400, 300)); //设置视频大小
attrs.setFormat("flv");
attrs.setAudioAttributes(audio);
attrs.setVideoAttributes(video);
try {
encoder.encode(source, target, attrs);
} catch (IllegalArgumentException | EncoderException e) {
//编码,参数异常
e.printStackTrace();
}

细心看以上代码,不难找到其中可以设置压缩码率、分辨率、音频解码率等参数,可说是非常简便又好用。当然如果还需要更多的详细说明,请参数官方文档:http://www.sauronsoftware.it/projects/jave/manual.php
最后再给大家一段代码来判断媒体文件格式及长度:

Encoder encoder = new Encoder(); //判断音视频文件格式,长度
try {
MultimediaInfo mif=encoder.getInfo(new File("F:\\593668.com.aac"));
//打印音视频文件格式
System.out.println(mif.getFormat());
//打印音视频文件长度
System.out.println(mif.getDuration());

} catch (EncoderException e1) {
e1.printStackTrace();
}

希望以上对音视频处理的办法能够对大家有用。对JAVE总体感觉,功能蛮强大,不过包jave-1.0.2.jar有点大,对于一些小巧的项目估计不太适用就是了。
  评论这张
 
阅读(0)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017