使用ffmpeg或者java录制音频总结

使用ffmpeg或者java录制音频总结系统环境Ubuntu,MacOS几种方式使用FFMPEG使用JDK使用JavaCV下面详细介绍几种方式,再不同操作系统下的用法FFMPEG前提已经安装了ffmpeg参见官方文档,或者自行“必应”,使用说明网上很多,不多介绍,只介绍录制音频的用法工具准备用于查看系统中,可用的录音设备信息Ubuntu需要安装alsa-uti...
摘要由CSDN通过智能技术生成

使用ffmpeg或者java录制音频总结

系统环境

Ubuntu,MacOS

几种方式

  • 使用FFMPEG
  • 使用JDK
  • 使用JavaCV

下面详细介绍几种方式,再不同操作系统下的用法

FFMPEG

前提已经安装了ffmpeg
参见官方文档,或者自行“必应”,使用说明网上很多,不多介绍,只介绍录制音频的用法

  • 工具准备
    用于查看系统中,可用的录音设备信息

    • Ubuntu
      需要安装alsa-utils工具包, linux下需要使用alsa工具进行音频录制
    apt-get install alsa-utils
    
    • MacOS上不需要安装工具,直接使用ffmpeg查看设备
  • 使用方法

    • Ubuntu
    1. 列出所有音频设备
      root@guest-TianYi510Pro-18ICB:~# arecord -l
      **** CAPTURE 硬體裝置清單 ****
      xcb_connection_has_error() 返回真
      card 0: PCH [HDA Intel PCH], device 0: ALC233 Analog [ALC233 Analog]
        子设备: 1/1
        子设备 #0: subdevice #0
      card 0: PCH [HDA Intel PCH], device 1: ALC233 Analog
        子设备: 1/1
        子设备 #0: subdevice #0      
      card 2: Device [USB Audio Device], device 0: USB Audio [USB Audio]
        子设备: 1/1
        子设备 #0: subdevice #0
    
    1. 列出设备后,使用card 2进行录音,命令如下:
    ffmpeg -f alsa -i hw:2 -y test.wav
    

    如果想使用card 0 device 1,命令如下:

    ffmpeg -f alsa -i hw:0,1 -y test.wav
    
    • MacOS
      Mac下命令与Linux下不同
    1. 列出所有音频设备
    Mac-mini:myan$ ffmpeg -f avfoundation -list_devices true -i ""
    ......
    [AVFoundation input device @ 0x7fbabf106bc0] AVFoundation video devices:
    [AVFoundation input device @ 0x7fbabf106bc0] AVFoundation audio devices:
    [AVFoundation input device @ 0x7fbabf106bc0] [0] (LCS) USB Audio Device
    ......
    
    1. 列出设备后,使用video_device_index为[0]的设备录音,命令如下:
    ffmpeg -f avfoundation -i :0 -y test.mp3
    
    注意:在mac mini上测试时,远程通过ssh登陆到此机器执行录音命令会报错,得到Abort trap: 6错误,在本机执行没问题

具体内容可以参考官方文档
https://trac.ffmpeg.org/wiki/Capture/ALSA
https://trac.ffmpeg.org/wiki/Capture/Webcam

使用JDK

  • 步骤如下:

    • 初始化TargetDataLine
    • 从DataLine中读取数据
  • 实现方法:

此方法循环录制音频文件,仅仅使用于测试功能

    @Test
    public void testAduio() throws LineUnavailableException, IOException {
   
        TargetDataLine line;
        //定义声音格式,具体需要根据录音设备支持程度来定义
        //我使用的设备
        AudioFormat audioFormat = new AudioFormat(16000, 16, 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值