命令简介

FFmpeg的bin目录中提供了3个命令(可执行程序),可以直接在命令行上使用。

3个命令

ffmpeg

ffmpeg的主要作用:对音视频进行编解码。

# 将MP3文件转成WAV文件
ffmpeg -i xx.mp3 yy.wav

当输入命令ffmpeg时,可以看到ffmpeg命令的使用格式是:

ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

简化一下,常用格式是:

ffmpeg arg1 arg2 -i arg3 arg4 arg5
  • arg1:全局参数
  • arg2:输入文件参数
  • arg3:输入文件
  • arg4:输出文件参数
  • arg5:输出文件

更多详细用法,可以参考官方文档:ffmpeg-all.html,或者使用以下命令查看:

# 简易版
ffmpeg -h
# 详细版
ffmpeg -h long
# 完整版
ffmpeg -h full# 或者使用
# ffmpeg -help
# ffmpeg -help long
# ffmpeg -help full

ffprobe

ffprobe的主要作用:查看音视频的参数信息。

# 可以查看MP3文件的采样率、比特率、时长等信息
ffprobe xx.mp3

当输入命令ffprobe时,可以看到ffprobe命令的使用格式是:

ffprobe [OPTIONS] [INPUT_FILE]
# OPTIONS:参数
# INPUT_FILE:输入文件

更多详细用法,可以参考官方文档:ffprobe-all.html,或者使用以下命令查看:

# 简易版
ffprobe -h
# 详细版
ffprobe -h long
# 完整版
ffprobe -h full# 或者使用
# ffprobe -help
# ffprobe -help long
# ffprobe -help full

ffplay

ffplay的主要作用:播放音视频。

# 播放MP3文件
ffplay xx.mp3

当输入命令ffplay时,可以看到ffplay命令的使用格式是:

ffplay [options] input_file
# options:参数
# input_file:输入文件

更多详细用法,可以参考官方文档:ffplay-all.html,或者使用以下命令查看:

# 简易版
ffplay -h
# 详细版
ffplay -h long
# 完整版
ffplay -h full# 或者使用
# ffplay -help
# ffplay -help long
# ffplay -help full

关注+私信1免费分享发放2022最新最全学习提升资料包,资料内容包括《Andoird音视频开发必备手册+音视频最新学习视频+大厂面试真题+2022最新学习路线图+项目实战源码》(C/C++,Linux,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)等等 

hide_banner

增加-hide_bannder参数可以隐藏一些冗余的描述信息,可以去实践比较以下2条命令的区别:

ffprobe xx.mp3ffprobe -hide_banner xx.mp3# ffmpeg、ffprobe、ffplay都适用

通过命令行录音

查看可用设备

使用命令行查看当前平台的可用设备:

ffmpeg -devices

Windows的输出结果如下所示:

  • 列表中有个dshow,全名叫DirectShow,是Windows平台的多媒体系统库
  • 我们可以使用dshow去操作多媒体输入设备(比如录音设备)
  • Devices:D. = Demuxing supported.E = Muxing supported--E caca            caca (color ASCII art) output deviceD  dshow           DirectShow captureD  gdigrab         GDI API Windows frame grabberD  lavfi           Libavfilter virtual input deviceD  libcdioE sdl,sdl2        SDL2 output deviceD  vfwcap          VfW video capture

    Mac的输出结果如下所示:

  • 列表中有个avfoundation,是Mac平台的多媒体系统库
  • 我们可以使用avfoundation去操作多媒体输入设备(比如录音设备)
  • Devices:D. = Demuxing supported.E = Muxing supported--D  avfoundation    AVFoundation input deviceD  lavfi           Libavfilter virtual input deviceE sdl,sdl2        SDL2 output device
    

    查看dshow支持的设备

  • # 查看dshow支持的设备
    ffmpeg -f dshow -list_devices true -i dummy# 或者
    # ffmpeg -list_devices true -f dshow -i ''
    # ffmpeg -list_devices true -f dshow -i ""

因此,命令的执行结果大致如下所示:

DirectShow video devices (some may be both video and audio devices)"Integrated Camera"DirectShow audio devices"线路输入 (3- 魅声T800)""麦克风阵列 (Realtek(R) Audio)"
  • dshow支持的视频设备

    • Integrated Camera:笔记本自带的摄像头
  • dshow支持的音频设备

    • 线路输入 (3- 魅声T800):外接的麦克风
    • 麦克风阵列 (Realtek(R) Audio):笔记本自带的麦克风

查看avfoundation支持的设备

在Mac平台,使用的是avfoundation,而不是dshow。

ffmpeg -f avfoundation -list_devices true -i ''

输出结果如下所示:

AVFoundation video devices:[0] FaceTime高清摄像头(内建)[1] Capture screen 0
AVFoundation audio devices:[0] MS-T800[1] Edu Audio Device[2] MacBook Pro麦克风

列表中的MS-T800是外接的麦克风。在Mac上,FFmpeg还给每一个视频、音频设备进行了编号,比如MS-T800的编号是0、Mac自带麦克风的编号是2。

指定设备进行录音

# 使用外接的麦克风进行录音,最后生成一个wav文件
ffmpeg -f dshow -i audio="麦克风阵列 (Realtek(R) Audio)" out.wav# 在Mac上通过编号指定设备
ffmpeg -f avfoundation -i :2 out.wav
# :0表示使用0号音频设备
# 0:2表示使用0号视频设备和2号音频设备
  • 可以使用快捷键Ctrl + C终止录音
  • 我这边的测试结果显示,音频参数是:
    • Windows:44100Hz采样率、16位深度、2声道、1411Kbps比特率
    • Mac:48000Hz采样率、16位深度、2声道、1536Kbps比特率

设置dshow的参数

先通过命令查看一下dshow可以使用的参数,详情可以查看官方文档:dshow参数。

# 从ffmpeg -devices命令的结果可以看得出来:dshow属于demuxer,而不是muxer
ffmpeg -h demuxer=dshow

部分输出结果如下所示:

# 采样率
-sample_rate         <int> set audio sample rate (from 0 to INT_MAX)
# 采样大小(位深度)
-sample_size         <int> set audio sample size (from 0 to 16)
# 声道数
-channels            <int> set number of audio channels, such as 1 or 2 (from 0 to INT_MAX)
# 列出特定设备支持的参数
-list_options        <boolean> list available options for specified device (default false)

然后再看看你的设备支持哪些参数。

ffmpeg -f dshow -list_options true -i audio="麦克风阵列 (Realtek(R) Audio)"

输出结果如下所示:

DirectShow audio only device options (from audio devices)Pin "Capture" (alternative pin name "Capture")min ch=1 bits=8 rate= 11025 max ch=2 bits=16 rate= 44100# 可以看出来:采样率范围是11025~44100Hz

接下来设置录音时的音频参数。

ffmpeg -f dshow -sample_rate 15000 -sample_size 16 -channels 1 -i audio="麦克风阵列 (Realtek(R) Audio)" out.wav

【秒懂音视频开发】07_音频录制01_命令行相关推荐

  1. 07_音频录制01_命令行

    终于要开始进行FFmpeg实战了,一起来感受一下FFmpeg的强大吧. 命令简介 FFmpeg的bin目录中提供了3个命令(可执行程序),可以直接在命令行上使用. ffmpeg ffmpeg的主要作用 ...

  2. Android音视频开发之音频录制和播放

    Android音视频开发之音频录制和播放 1.封装音频录制工具类: public class RecorderAudioManagerUtils {private static volatile Re ...

  3. moviepy音视频开发:音频剪辑基类AudioClip

    ☞ ░ 前往老猿Python博文目录 ░ 一.背景知识介绍 1.1.声音三要素: 音调:人耳对声音高低的感觉称为音调(也叫音频).音调主要与声波的频率有关.声波的频率高,则音调也高. 音量:也就是响度 ...

  4. 【秒懂音视频开发】07_重识音频

    我们平时在互联网上听到的声音,都是先经过录制后,再传输到互联网上的.比如歌曲.电影.主播等的声音. PCM 录音的原理可以简单理解为:把声源的振动记录下来,需要时再让某个物体按照记录下来的振动规律去振 ...

  5. Android音视频开发:MediaRecorder录制音频

    Android 多媒体框架针对音频录制提供了两种方法:MediaRecorder和AudioRecord. 区别 MediaRecorder:录制的音频文件是经过压缩后的,需要设置编码器,并且录制的音 ...

  6. Android音视频开发:MediaRecorder录制视频

    简介 安卓api提供了Camera类控制相机捕获图像,在api21以后,安卓也提供了Camera2,Camera变得过时了,但为了兼容性,这里还是使用Camera. 对于录制视频,可以使用MediaR ...

  7. 【Android音视频开发】音频编码原理

    文章变更表 文章版本号 变更内容 变更日期 备注 0.0.1 创建 2022/9/29 初版 0.0.2 补充编码原理和音频格式等内容 2022/9/30 1. 前言 在[Android音视频开发] ...

  8. 【秒懂音视频开发】23_H.264编码

    本文主要介绍一种非常流行的视频编码:H.264. 计算一下:10秒钟1080p(1920x1080).30fps的YUV420P原始视频,需要占用多大的存储空间? (10 * 30) * (1920 ...

  9. 【秒懂音视频开发】15_AAC编码实战

    本文将分别通过命令行.编程2种方式进行AAC编码实战,使用的编码库是libfdk_aac. 要求 fdk-aac对输入的PCM数据是有参数要求的,如果参数不对,就会出现以下错误: [libfdk_aa ...

最新文章

  1. 浏览器设置是否显示图片,可随时切换
  2. WPF 分批加载十万个按钮
  3. 【Protocol Buffer】Protocol Buffer入门教程(一):简介和安装
  4. Jetty+json-lib库抛异常的问题解决过程(java.lang.NoClassDefFoundError: net/sf/json/JSONObject)...
  5. 《Linux内核分析》第一周笔记 计算机是如何工作的
  6. 04 组件与Props
  7. r和matlab学哪个,初学者求教‘r*’是什么意思啊
  8. windows守护进程_在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)
  9. Python函数(1)
  10. 使用extundelete恢复测试liunx的删除文件
  11. Redis 安装部署介绍
  12. js正侧表达式 三目运算的保留4位小数的运算
  13. 数据库IO性能知识整理
  14. 怎么把做的html转成链接,网页链接怎么转换成文件
  15. 计算机硬盘合并怎么弄,如何将分区的硬盘合并为一个磁盘?
  16. 如何用无监督模型,防范信用卡欺诈?
  17. CentOS7安装可移植Prometheus+grafana--pushgateway及自定义监控
  18. 将四个整数按照升序排序
  19. CM部署(3):cm网页访问设置
  20. 最讨厌的下属就是他不把领导放在眼里

热门文章

  1. 电脑提示错误代码0xc00000e9,该如何处理
  2. 近期好书推荐(内有新书预告)
  3. 关于mcu启动中内存数据搬运的总结
  4. 动态设置view或布局的宽高
  5. 一百块打八折怎么用计算机算,打折怎么算是乘还是除(举例说明100元打8.8折算法)...
  6. Java中进行日期先后顺序的比较
  7. 托福 103,GRE 158+167+3.5
  8. 使用SQLMonitor监视访问ORACLE的“服务”
  9. 三次样条插值原理及openCV实现三种边界条件(CSDN为数不多的正确版本)
  10. 基于LSTM的股票价格预测模型【附源码】