首先要使用一个工具包
FFmpeg 是一款非常好用处理音视频的工具包,可以转各种文件,可以安装在win,linux上使用,我们也可以使用java代码来在项目中调用电脑中的安装的FFmpeg,不过这不够自由,如果代码迁移平台就要适配其他平台的FFmpeg。所以如果能有人把这个FFmpeg做出jar包依赖那操作起来就很方便了,于是jave就有了
这是官网
1.首先要引入第三方的国外大神包,jar里面内置了FFmpeg win,linux的安装预编译版本 ,可以通过提供的Java运行工作 2.然后是代码展示ws.schild jave-core2.4.6 ws.schild jave-native-win642.4.6
package com.sino.test;
import ws.schild.jave.*;
import java.io.File;
public class ChangeVideo {
public static void main(String[] args) throws EncoderException {
File file = new File("/big_buck_bunny_720p_1mb.flv");
if(!check(file)){
return ;
}
File source = new File("/big_buck_bunny_720p_1mb.flv");
//源文件
File target = new File("t/arget.mp4");
//目标文件(需要生成的文件)
AudioAttributes audio = new AudioAttributes();
//音频设置类
audio.setCodec("libmp3lame");
//音频编码格式
// audio.setBitRate(new Integer(56000));
//设置比特率,可以不填有默认值
// audio.setChannels(new Integer(1));
//设置将在重新编码的音频通道的数量(1 = 单声道,2 = 立体声)可以不填有默认值。
// audio.setSamplingRate(new Integer(22050));
//它为新的重新编码的音频流设置采样率 可以不填有默认值。。
VideoAttributes video = new VideoAttributes();
//视频设置类
video.setCodec("h264");
//音频编码--必填 重要 亲测测试得到
//flv 转 mp4 用 h264
//flv 转 avi 用 rawvideo
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mp4");
//设置产出文件的类型
attrs.setAudioAttributes(audio);
//audio 属性
attrs.setVideoAttributes(video);
//video 属性
Encoder encoder = new Encoder();
//创建编译器
MultimediaObject mediaObject=new MultimediaObject(source);
EncoderProgressListener encoderProgressListener = new EncoderProgressListener() {
//编译器过程监听器
public void sourceInfo(MultimediaInfo multimediaInfo) {
System.out.println("信息"+multimediaInfo);
}
public void progress(int i) {
System.out.println(i+"%");
}
public void message(String s) {
System.out.println(s);
}
};
encoder.encode(mediaObject, target, attrs,encoderProgressListener) ;
//编译器启动
}
public static boolean check(File file){
if(!file.exists()){
System.out.println("文件不存在");
return false;
}
return true;
}
}
总结:这个jar还是很方便的,jar里面还有很多属性支持很多类型,可以去官网翻阅文档试一试,当然官方文档不提供中文。



