1、工程项目中添加依赖
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv-platform</artifactId>
<version>1.5</version>
</dependency>
2、准备需要提取音频的视频文件
public static void main(String[] args) {
System.out.println("提取音频文件");
String sourceFilePath="/Users/dongxr/Desktop/test.mp4";
File file=new File(sourceFilePath);
//抓取资源
FFmpegFrameGrabber frameGrabber1 = new FFmpegFrameGrabber(sourceFilePath);
Frame frame = null;
FFmpegFrameRecorder recorder = null;
String fileName = null;
try{
frameGrabber1.start();
//
//随机数
Random random=new Random();
fileName = file.getAbsolutePath() + random.nextInt(100)+".mp3";
System.out.println("--文件名-->>"+fileName);
recorder = new FFmpegFrameRecorder(fileName,frameGrabber1.getAudioChannels());
recorder.setFormat("mp3");
recorder.setSampleRate(frameGrabber1.getSampleRate());
recorder.setTimestamp(frameGrabber1.getTimestamp());
recorder.setAudioQuality(0);
recorder.start();
int index=0;
while (true){
frame=frameGrabber1.grab();
if(frame==null){
System.out.println("视频处理完成");
break;
}
if(frame.samples!=null){
recorder.recordSamples(frame.sampleRate,frame.audioChannels,frame.samples);
}
System.out.println("帧值="+index);
index ++;
}
recorder.stop();
recorder.release();
frameGrabber1.stop();
}catch (Exception e){
e.printStackTrace();
}
}
3、引入文件参考
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.FFmpegFrameRecorder;
import org.bytedeco.javacv.Frame;
备注:代码仅供参考,希望各位看官不喜勿喷。