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;
备注:代码仅供参考,希望各位看官不喜勿喷。

本文介绍了一种使用Java和FFmpegFrameGrabber从视频文件中提取音频并将其转换为MP3格式的方法。通过示例代码展示了如何设置依赖项、初始化抓取器和录音器、配置参数以及循环读取视频帧并记录音频样本。
&spm=1001.2101.3001.5002&articleId=115893569&d=1&t=3&u=cd93842c8b9b453d90a3d26a91cb294b)
6745

被折叠的 条评论
为什么被折叠?



