【FFmpeg】音视频录制 ③ ( 使用 ffmpeg 录制 Screen Capturer Recorder 软件生成的虚拟音视频设备 | 录制桌面 | 录制音频 | 同时录制 音频和视频数据 )






一、Screen Capturer Recorder 生成的虚拟音视频设备




1、Screen Capturer Recorder 生成的虚拟音视频设备


在上一篇博客 【FFmpeg】音视频录制 ② ( 使用 Screen Capturer Recorder 软件生成 ffmpeg 可录制的音视频设备 ) 中 , 安装了 Screen Capturer Recorder 软件 , 在 Windows 系统中生成了

  • screen-capture-recorder : 该设备可用于 录制屏幕 ;
  • virtual-audio-capturer : 该设备可用于 录制音频 ;

两个虚拟 音视频 设备 , ffmpeg 可以通过录制 这两个设备 以达到 录制 桌面 和 系统声音 的目的 ;


2、查看上述虚拟音视频设备


执行

ffmpeg -list_devices true -f dshow -i dummy

命令 , 可以查看当前系统中的音视频设备 ;

  libpostproc    55.  9.100 / 55.  9.100
[dshow @ 0000023e8d3becc0] DirectShow video devices (some may be both video and audio devices)
[dshow @ 0000023e8d3becc0]  "screen-capture-recorder"
[dshow @ 0000023e8d3becc0]     Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{4EA69364-2C8A-4AE6-A561-56E4B5044439}"
[dshow @ 0000023e8d3becc0] DirectShow audio devices
[dshow @ 0000023e8d3becc0]  "virtual-audio-capturer"
[dshow @ 0000023e8d3becc0]     Alternative name "@device_sw_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\{8E146464-DB61-4309-AFA1-3578E927E935}"

在这里插入图片描述

在家里的电脑中 , 只有 Screen Capturer Recorder 软件 , 生成的虚拟音视频设备 ,

没有默认的 立体声混音 设备 , 公司电脑中 曾经安装了 Cubase 等音乐软件 , 可能是这类音乐软件自动生成的 虚拟设备 ;

一般的电脑只会显示上述两个音频设备 ;





二、使用 ffmpeg 录制 Screen Capturer Recorder 软件生成的虚拟音视频设备




1、录制桌面


执行

ffmpeg -f dshow -i video="screen-capture-recorder" output.mp4

命令 , 可以录制 screen-capture-recorder 虚拟设备中的数据 , 这个设备就是 桌面的主屏幕 的视频画面数据 ;

  • -f dshow : 该参数这指定了 ffmpeg 命令 使用的输入格式为 DirectShow , 这是 Windows 系统中用于视频捕获和音频捕获的框架 ;

  • -i video="screen-capture-recorder" : 该参数用于 指定 screen-capture-recorder 设备为 输入设备 , 这是一个虚拟视频设备 , 可能是由特定的屏幕录制软件创建的 ;

录制过程中 , 底部会显示 录制的 帧率 , 帧数 , 大小 , 码率 等参数 ;

在这里插入图片描述

录制时 , 按下回车 , 在按下 Ctrl + C 组合键 , 即可停止录制 ;

在这里插入图片描述

使用 ffplay 命令 , 可正常播放该视频 , 使用 MediaInfo 查看该视频的数据 ;

在这里插入图片描述


2、录制音频


执行

ffmpeg -f dshow -i audio="virtual-audio-capturer" output.aac

命令 , 录制 virtual-audio-capturer 虚拟音频设备的数据 , 这个虚拟音频就是 系统声音 ;

上述参数 与 录制视频 的参数配置相同 , 只有录制设备由 screen-capture-recorder 虚拟视频设备 改为 virtual-audio-capturer 虚拟音频设备 ;

录制的过程中 , 会在 命令行底部 实时显示 录制音频的 大小 , 时间 , 帧率 , 速度 等参数 ;

在这里插入图片描述

先按回车 , 再按 Ctrl + C 组合键 , 就可以停止音频录制 ;

在这里插入图片描述


3、录制多路音频 - 配置 filter_complex 混音参数


在本示例中 , 没有安装麦克风 , 因此也没有麦克风设备 , 假如有 麦克风 设备的话 , 我们 同时录制 系统声音 + 麦克风 声音 , 需要使用如下命令 ;

执行

ffmpeg -f dshow -i audio="麦克风 (Realtek Audio)" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=2 output.aac

命令 , 可以同时录制 麦克风 + 系统音频 声音 ;

  • -f dshow 参数 指定了 在 Windows 中使用 DirectShow 框架管理的 音视频设备 作为输入设备 ;

  • -f dshow -i audio="麦克风 (Realtek Audio)" 参数 设置的是 麦克风 虚拟设备 音频输入 ;

  • -f dshow -i audio="virtual-audio-capturer" 参数 设置的是 系统虚拟音频设备输入 ;

  • -filter_complex 参数用于创建复杂的滤镜链来处理音视频流 ;

  • -filter_complex amix=inputs=2:duration=first:dropout_transition=2 参数 是 混音选项 ,

    • amix 参数 指定该设置是一个滤镜 , 用于混合音频和视频流 ;
    • inputs=2 参数 指定了要混合的输入流的数量 为 2 个 ;
    • duration=first 参数 指定 输入的时长 等于 第一个输入的时长 , 也就是 麦克风设备 的输入时长 ;
    • dropout_transition=2 参数 设置 在混合过程中出现的一个输入流早于另一个结束的情况 , 指定了一个 秒 时间段 , 在这个时间段内 如果一个输入流结束了而另一个还在继续 , 则逐渐降低仍在播放的流的音量 , 直到完全静音 , 目的是使音频过渡更加平滑 ; 这里设置是 2 秒时间内逐渐静音 ;

4、同时录制 系统音频 + 桌面视频


执行

ffmpeg -f dshow -i audio="virtual-audio-capturer" -f dshow -i video="screen-capture-recorder" output.mp4

命令 , 可以同时录制 系统音频 + 桌面视频 , 输出到 output.mp4 输出文件中 ;

  • -f dshow -i audio="virtual-audio-capturer" 参数 设置了 桌面视频画面 为 输入设备 ;

  • -f dshow -i video="screen-capture-recorder" 参数 设置了 系统声音 为 输入设备 ;

录制过程中 , 会实时显示录制的实时参数信息 ;

在这里插入图片描述

先在命令行 输入 回车 , 再按下 Ctrl + C 键 , 可以停止录制 , 查看视频信息如下 , 该视频可正常播放 ;

在这里插入图片描述


5、同时录制 系统音频 + 麦克风音频 + 桌面视频


执行

ffmpeg -f dshow -i audio="麦克风 (Realtek Audio)" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f dshow -i video="screen-capture-recorder" output.mp4

命令 , 可以同时录制 系统音频 + 麦克风音频 + 桌面视频 数据 ;

上述命令分为 2 部分 ,

  • -f dshow -i audio="麦克风 (Realtek Audio)" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=2 部分 设置的事 麦克风 + 音频 录制参数 和 两路音频的混音参数 ;
  • f dshow -i video="screen-capture-recorder" 部分 设置 录制视频画面 参数 ;
  • 47
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值