zoukankan      html  css  js  c++  java
  • 音视频之命令行录制音频(五)

    命令行录制音频

    说明

    因为我电脑是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)
  • 相关阅读:
    代理模式
    适配器模式
    原型模式
    创建者模式
    装饰模式
    web总结
    4.14
    4.14
    POJ2385
    POJ2229
  • 原文地址:https://www.cnblogs.com/muzichenyu/p/15477683.html
Copyright © 2011-2022 走看看