命令行录制音频
说明
因为我电脑是Mac的,在这里我只介绍Mac端音频录制相关
查看可用设备
ffmpeg -devices
ffmpeg -devices Mac中的输出结果如下所示:
- 列表中有个avfoundation,是Mac平台的多媒体系统库
- 我们可以使用avfoundation去操作输入设备(比如录音设备)
通过avfoundation查看支持的设备
在Mac平台,使用的是avfoundation,在window使用的dshow。
使用命令:
ffmpeg -f avfoundation -list_devices true -i ''
输出结果如下:
在Mac上,FFmpeg还给每一个视频和音频设备进行编号,编号0的Built-in Microphone是苹果的内置录音设备、编号1是我的蓝牙耳机
指定设备进行录音
在Mac上通过编号指定设备,命令如下:
ffmpeg -f avfoundation -i :0 out.wav # :0表示使用0号音频设备 # 0:0表示使用0号视频设备和0号音频设备
- 可以使用快捷前 Ctrl + C 终止录音
-
mac端的测试结果显示,音频参数是:
- 通过fprobe test.wav打印录音文件的音频参数: 48000Hz采样率、16位深度、2声道、1536Kbps比特率
-
Input #0, wav, from 'test.wav': Metadata: encoder : Lavf58.76.100 Duration: 00:00:08.13, bitrate: 1411 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
设置avfoundation参数
先通过命令查看一下avfoundation可以使用的参数,详情可以查看官方文档avfoundation参数
ffmpeg -h demuxer=avfoundation
打印如下:
Demuxer avfoundation [AVFoundation input device]: AVFoundation indev AVOptions: -list_devices <boolean> .D......... list available devices (default false) -video_device_index <int> .D......... select video device by index for devices with same name (starts at 0) (from -1 to INT_MAX) (default -1) -audio_device_index <int> .D......... select audio device by index for devices with same name (starts at 0) (from -1 to INT_MAX) (default -1) -pixel_format <pix_fmt> .D......... set pixel format (default yuv420p) -framerate <video_rate> .D......... set frame rate (default "ntsc") -video_size <image_size> .D......... set video size -capture_cursor <boolean> .D......... capture the screen cursor (default false) -capture_mouse_clicks <boolean> .D......... capture the screen mouse clicks (default false) -capture_raw_data <boolean> .D......... capture the raw data from device connection (default false) -drop_late_frames <boolean> .D......... drop frames that are available later than expected (default true)