前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【FFmpeg】音视频录制 ③ ( 使用 ffmpeg 录制 Screen Capturer Recorder 软件生成的虚拟音视频设备 | 录制桌面 | 录制音频 | 同时录制 音频和视频数据 )

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

作者头像
韩曙亮
发布2024-05-04 08:32:23
660
发布2024-05-04 08:32:23
举报

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

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

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

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

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

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

执行

代码语言:javascript
复制
ffmpeg -list_devices true -f dshow -i dummy

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

代码语言:javascript
复制
  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、录制桌面

执行

代码语言:javascript
复制
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、录制音频

执行

代码语言:javascript
复制
ffmpeg -f dshow -i audio="virtual-audio-capturer" output.aac

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

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

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

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

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

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

执行

代码语言:javascript
复制
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、同时录制 系统音频 + 桌面视频

执行

代码语言:javascript
复制
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、同时录制 系统音频 + 麦克风音频 + 桌面视频

执行

代码语言:javascript
复制
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" 部分 设置 录制视频画面 参数 ;
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Screen Capturer Recorder 生成的虚拟音视频设备
    • 1、Screen Capturer Recorder 生成的虚拟音视频设备
      • 2、查看上述虚拟音视频设备
      • 二、使用 ffmpeg 录制 Screen Capturer Recorder 软件生成的虚拟音视频设备
        • 1、录制桌面
          • 2、录制音频
            • 3、录制多路音频 - 配置 filter_complex 混音参数
              • 4、同时录制 系统音频 + 桌面视频
                • 5、同时录制 系统音频 + 麦克风音频 + 桌面视频
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                http://www.vxiaotou.com