第一步:先引入Maven依赖
ws.schild
jave-core
2.4.6
ws.schild
jave-native-win64
2.4.6
ws.schild
jave-native-linux64
2.4.6
第二步:在业务层main.java下新建包ws.schild.jave(目的是和jave的jar包路径一致,这样就可以使用jar包中非public类,方便改造。)
第三步:复制jave中的MultimediaObject类在新建的包中重名名为FfmpegFileInfo,需要修改三个地方
1.注释掉88行变量Macher m;
2.注释掉126行的String token;
3.修改getInfo()方法为
public MultimediaInfo getInfo(String url) throwsInputFormatException, EncoderException {
FFMPEGExecutor ffmpeg= this.locator.createExecutor();
ffmpeg.addArgument("-i");
ffmpeg.addArgument(url);try{
ffmpeg.execute();
}catch(IOException var8) {throw newEncoderException(var8);
}
MultimediaInfo var3;try{
RBufferedReader reader= new RBufferedReader(newInputStreamReader(ffmpeg.getErrorStream()));
var3= this.parseMultimediaInfo(this.inputFile, reader);
}finally{
ffmpeg.destroy();
}returnvar3;
}
第四步:使用
/*** 获取URL地址获取视频文件长度
*
*@paramfilePath 文件路径
*@return视频长度(单位:秒)*/
private longgetURLVideoSecond(String filePath) {
File file= newFile(filePath);try{
FfmpegFileInfo ffmpegFileInfo= newFfmpegFileInfo(file);
ws.schild.jave.MultimediaInfo info=ffmpegFileInfo.getInfo(filePath);return info.getDuration() / 1000;
}catch(Exception e) {
log.error("获取URL视频文件时长失败", e);return 0;
}
}