音视频之命令行录制音频(五)

命令行录制音频

说明

因为我电脑是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)

 

上一篇:qq新闻:网络安全


下一篇:vpn原理