终于要开始进行FFmpeg实战了,一起来感受一下FFmpeg的强大吧。

命令简介

FFmpeg的bin目录中提供了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

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 ""
  • -f dshow

    • dshow支持的
  • -list_devices true

    • 打印出所有的设备
  • -i dummy-i ‘’-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® 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的bin目录中提供了3个命令(可执行程序),可以直接在命令行上使用. 3个命令 ffmpeg ffmpeg的主要作用:对音视频进行编解码. # 将MP3文件转成WAV文件 ffm ...

  2. ffmpeg / avconv是通用的视频/音频编解码命令行工具

    转载自:http://blog.openlg.net/index.php/archives/767 ffmpeg / avconv是通用的视频/音频编解码命令行工具. 通用是既指他们可以处理各种各样的 ...

  3. Linux下音频格式转换命令行工具

    这里写自定义目录标题 Sox音频转换 使用Mplayer将多种格式的而文件编码至WAV 使用FFmpeg将各种类型文件转换成各种类型文件 使用Lame编码或者已不同的比特率重新编码MP3 以Ogg V ...

  4. ffmpeg / avconv是通用的视频/音频编解码命令行工具【转】

    来自:http://blog.csdn.net/smilefyx/article/details/46793685 通用是既指他们可以处理各种各样的编码的视频和音频,转换成各种需要的格式,又指他们是跨 ...

  5. ffmpeg/avconv 视频音频转码命令行工具

    ffmpeg / avconv是通用的视频/音频编解码命令行工具. 通用是既指他们可以处理各种各样的编码的视频和音频,转换成各种需要的格式,又指他们是跨平台的工具,可以运行在Linux.Windows ...

  6. FFMPEG学习(一)---【命令行】采集视频和音频

    FFMPEG常识 参数 参考:ffmpeg-比特率,帧率和文件大小 下载资源 下载ffmpeg安装包 加入环境变量: e:\ProgramFiles_D\ffmpeg\bin\ 输入设备 dshow ...

  7. linux声卡测试命令,linux添加声卡驱动使用命令行音频播放器的方法

    首先linux系统需要有声卡 哪怕是虚拟声卡,我用的是virtualbox,intel 80x AC97 声卡. 安装声卡驱动,在linux内核的找到声卡对应的驱动 可以集成到内核,或者安装为模块,为 ...

  8. 以命令行的格式读取音频文件信息,并将读取的内容写到输出文件中

    文章目录 c语言实现代码 运行结果 总结: 输入: wavinfo -i xxx.wav -o output.txt 输出:(格式规范)xxx=yyy rate(Hz)=16000 length=32 ...

  9. ffmpeg命令行录制一个具有非IDR性质的I帧的视频

    之前在代码上写过几篇ffmpeg桌面录制的博客,用ffprobe查看里面的帧时,全部都是IDR这种I帧,没有普通的I帧,如下所示: <frame media_type="video&q ...

最新文章

  1. 手机连接服务器数据库文件,手机连接服务器数据库文件夹
  2. delphi获取当前计算机所有盘符
  3. foreach 循环详解
  4. ArcGIS Runtime SDK for Android开发之调用GP服务(异步调用)
  5. Presto数组函数
  6. sphinx 使用
  7. python八大排序算法_Python实现八大排序算法
  8. 一、知识图谱商业应用
  9. AT89C2051烧写器的制做与调试
  10. 解决CRMEB跨域问题
  11. Swing星际争霸 游戏源码实例,仅供开发学习交流
  12. easypoi一对多导入_easypoi导入Excel最佳实践
  13. 华为FreeBuds Pro2+和pro2区别哪个好
  14. 翌加科技:抖音搬运视频会封号吗?
  15. 【心电监测】理论1-相关医学知识
  16. android abd
  17. 大数据为各国信息安全带来挑战 美率先采取措施
  18. 移动端扫描vin码(车架号)识别
  19. 中华上下五千年演变图
  20. STM32F工程移植注意事项

热门文章

  1. P1757 通天之分组背包(动态规划 分组背包)
  2. Pr 入门教程之如何创建新序列?
  3. 推荐几个不错的黑科技网站
  4. 数字人民币在上海试点,首次实现脱离手机的硬钱包支付模式!
  5. HW--DSF服务配置文件
  6. 抢红包: 红包过期失效案例
  7. 9.2 react受控组件和非受控组件
  8. 让制作APP变成搭积木
  9. 51单片机通过DHT11温度传感器读取温度(2)
  10. python键盘控制_python实现键盘控制鼠标移动