Java 使用JavaCV实现从视频提取音频文件

Java 使用JavaCV实现从视频提取音频文件dependency groupId org bytedeco groupId artifactId javacv platform artifactId dependency

大家好,欢迎来到IT知识分享网。

<dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.5.9</version> </dependency>
 public static void extractAudio(String inputVideoPath, String outputAudioPath) { // 初始化抓取器,用于读取视频文件 FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(inputVideoPath); // 初始化录制器,用于写入音频文件。参数 outputAudioPath 是输出文件路径,2 表示音频通道数(立体声) FFmpegFrameRecorder recorder = null; try { grabber.start(); // 启动抓取器,开始读取视频流和信息 // 配置录制器参数 recorder = new FFmpegFrameRecorder(outputAudioPath, grabber.getAudioChannels()); recorder.setFormat("mp3"); // 设置输出格式为 MP3 recorder.setSampleRate(grabber.getSampleRate()); // 设置采样率,与源视频的音频采样率一致 recorder.setAudioCodec(AV_CODEC_ID_MP3); // 设置音频编码器为 MP3 // recorder.setAudioBitrate(grabber.getAudioBitrate()); // 可选:设置比特率,与源视频的音频比特率一致 recorder.start(); // 启动录制器,准备写入音频数据 Frame frame; // 循环抓取帧 while ((frame = grabber.grab()) != null) { // 检查帧中是否包含音频采样数据 if (frame.samples != null) { // 将音频采样数据写入录制器 recorder.record(frame); } } System.out.println("音频提取完成."); } catch (Exception e) { e.printStackTrace(); } finally { // 确保在 finally 块中释放资源 try { if (recorder != null) { recorder.stop(); recorder.release(); } grabber.stop(); grabber.release(); } catch (Exception e) { e.printStackTrace(); } } } public static void main(String[] args) { String inputVideo = "path/to/your/input.mp4"; // 替换为你的输入视频文件路径 String outputAudio = "path/to/your/output.mp3"; // 替换为你想要的输出音频文件路径 extractAudio(inputVideo, outputAudio); }

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/188746.html

(0)
上一篇 2025-09-23 08:45
下一篇 2025-09-23 09:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信