APP端录制的音频不是mp3,在audio标签无法播放,直接转为mp3就可以咯

package com.video.util;import org.bytedeco.javacpp.avcodec;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.FFmpegFrameRecorder;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.FrameGrabber;
import org.bytedeco.javacv.FrameRecorder;
import org.bytedeco.javacv.FrameRecorder.Exception;/*** 音频参数转换(包含采样率、编码,位数,通道数)* */
public class AudioConvert {/*** 通用音频格式参数转换* * @param inputFile*            -导入音频文件* @param outputFile*            -导出音频文件* @param audioCodec*            -音频编码* @param sampleRate*            -音频采样率* @param audioBitrate*            -音频比特率*/public static void convert(String inputFile, String outputFile, int audioCodec, int sampleRate, int audioBitrate,int audioChannels) {Frame audioSamples = null;// 音频录制(输出地址,音频通道)FFmpegFrameRecorder recorder = null;//抓取器FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(inputFile);// 开启抓取器if (start(grabber)) {recorder = new FFmpegFrameRecorder(outputFile, audioChannels);recorder.setAudioOption("crf", "0");recorder.setAudioCodec(audioCodec);recorder.setAudioBitrate(audioBitrate);recorder.setAudioChannels(audioChannels);recorder.setSampleRate(sampleRate);recorder.setAudioQuality(0);recorder.setAudioOption("aq", "10");// 开启录制器if (start(recorder)) {try {// 抓取音频while ((audioSamples = grabber.grab()) != null) {recorder.setTimestamp(grabber.getTimestamp());recorder.record(audioSamples);}} catch (org.bytedeco.javacv.FrameGrabber.Exception e1) {System.err.println("抓取失败");} catch (Exception e) {System.err.println("录制失败");}stop(grabber);stop(recorder);}}}public static boolean start(FrameGrabber grabber) {try {grabber.start();return true;} catch (org.bytedeco.javacv.FrameGrabber.Exception e2) {try {System.err.println("首次打开抓取器失败,准备重启抓取器...");grabber.restart();return true;} catch (org.bytedeco.javacv.FrameGrabber.Exception e) {try {System.err.println("重启抓取器失败,正在关闭抓取器...");grabber.stop();} catch (org.bytedeco.javacv.FrameGrabber.Exception e1) {System.err.println("停止抓取器失败!");}}}return false;}public static boolean start(FrameRecorder recorder) {try {recorder.start();return true;} catch (Exception e2) {try {System.err.println("首次打开录制器失败!准备重启录制器...");recorder.stop();recorder.start();return true;} catch (Exception e) {try {System.err.println("重启录制器失败!正在停止录制器...");recorder.stop();} catch (Exception e1) {System.err.println("关闭录制器失败!");}}}return false;}public static boolean stop(FrameGrabber grabber) {try {grabber.flush();grabber.stop();return true;} catch (org.bytedeco.javacv.FrameGrabber.Exception e) {return false;} finally {try {grabber.stop();} catch (org.bytedeco.javacv.FrameGrabber.Exception e) {System.err.println("关闭抓取器失败");}}}public static boolean stop(FrameRecorder recorder) {try {recorder.stop();recorder.release();return true;} catch (Exception e) {return false;} finally {try {recorder.stop();} catch (Exception e) {}}}
}

首先得引入依赖了

<dependency><groupId>org.bytedeco</groupId><artifactId>javacv</artifactId><version>1.4.1</version>
</dependency>
<dependency><groupId>org.bytedeco</groupId><artifactId>javacpp</artifactId><version>1.4.1</version>
</dependency>
<dependency><groupId>org.bytedeco.javacpp-presets</groupId><artifactId>opencv-platform</artifactId><version>3.4.1-1.4.1</version>
</dependency>
<dependency><groupId>org.bytedeco.javacpp-presets</groupId><artifactId>ffmpeg-platform</artifactId><version>3.4.2-1.4.1</version>
</dependency>

java音频格式转码相关推荐

  1. java 时间格式转码,处理时间后多个0,

    java 时间格式转码,处理时间后多个0问题 代码方法: /*** 日期格式字符串转换* @param date_str 字符串日期* @return String*/public static St ...

  2. java 音频格式_java – 音频格式的转换

    我在转换WAV文件的音频格式时遇到了麻烦. 我正在录制麦克风的声音,声音按以下格式录制: PCM_SIGNED 44100.0 Hz,16位,单声道,2字节/帧 我想将上面的格式转换为 ULAW 80 ...

  3. java 音频视频转码

    以下程序没有对命令执行结果进行任何解析处理,如要解析,请自行处理 使用的工具为ffmpeg,在windows下非常方便,直接将exe文件放在指定文件夹下即可,linux需要安装 安装命令有一些地方需注 ...

  4. java任意音频格式转换MP3格式

    写在前面 Java音频视频编码器,本文实例将任何音频格式转换为MP3格式 您还可以调整音频频大小,更改其大小和比例等 本文实例实用于任何window,macos,linux操作系统 使用此项目只需要, ...

  5. Java使用ffmpeg进行音频格式转换

    ffmpeg相关文章网址(用于记录一些好的文章地址~) ffmpeg命令详解 https://blog.csdn.net/zzcchunter/article/details/68060989 jav ...

  6. Java转化音频格式 m4a-wav

    Java转化音频格式m4a->wav 安装ffmpeg 案例代码: public static String conversionormat(String fileName) {String w ...

  7. Java实现音频格式转换 WAV---mp3,可使音频压缩

    最近做的一个小项目中,师兄安排的任务,要实现录音然后保存文件,实现网络传输,然后我用初学的java实现了一个录音机的功能(见前面的博客),但是windows录音默认保存的格式是WAVE,后缀是WAV, ...

  8. java 转换音频格式_音频格式转换

    我在转换WAV文件的音频格式时遇到麻烦. 我正在从麦克风录制声音,并且声音以以下格式录制:PCM_SIGNED 44100.0 Hz,16位,单声道,2字节/帧 我想将上述格式转换为ULAW 8000 ...

  9. 融云 AMR(Aduio) 播放 AMR 格式 Base64 码音频

    1.必备资料 github AMR 开源库 :https://github.com/jpemartins/amr.js 用心把这个项目看一遍,对于我下面说的话,可以忽略啦,代码是最好的文章,哈哈~~ ...

最新文章

  1. 64位系统上安装apache
  2. 七、Linux 常用 Shell 命令,控制台的快捷键以及 Shell 编程(上)
  3. 感恩节祝福html,感恩节祝福英文
  4. aspen怎么做灵敏度分析_数据分析终极难题:数据分析怎么做才能驱动业务?
  5. sap模块有哪些_SAP那些事-实战篇-21-关于COPA模块的总结
  6. linux下安装mysql_Linux下安装mysql-8.0.20的教程详解
  7. mySQL和oracle的数据类型区别
  8. C/C++ C# unity经常使用的一些快捷键
  9. linux信号灯超时时间已到,急!!信号灯超时时间已到错误又出来了!!!!
  10. 冯.诺依曼计算机结构要点
  11. JumpServer登录提示连接WebSocket失败
  12. python画结构图_【实战案例】五分钟!用python绘制系统架构图
  13. 安卓开发:使用手机拍照功能
  14. 玩转CSDN:你离写一篇高逼格文章就还差几个工具而已
  15. 双面女间谍第一至五季/全集Alias迅雷下载
  16. Symfony2浅析
  17. 360手机n4s骁龙版 html,360手机N4S骁龙版:低价高配标杆
  18. 生么用C语言函数做万年历菜单,用C语言如何编写“万年历”
  19. 计算机vb知识点,2020年全国计算机二级VB复习知识点:常用内部函数
  20. 如何彻底卸载360安全卫士

热门文章

  1. 舒原林常用工具箱1.0
  2. 体育生考大学能学计算机专业吗,体育生可以报考的大学和专业有哪些
  3. 【附源码】计算机毕业设计SSM献血管理系统
  4. 你认为应该怎么突破可控核聚变的技术难点
  5. 美语音标 [ɪ]在下列情况要发[i]的音
  6. 2022年奢侈品行业研究报告
  7. JAVA花布的特点_什么是蓝印花布 蓝印花布特点
  8. 【SPFA】最长路(洛谷)
  9. CSDN如何查看自己关注的博客专栏
  10. 华硕z97不识别m2固态_安全解决方案:华硕Z97-A主板无法识别Intel M.2 NVME SSD的解决方案...