一、查询系统中 ffmpeg 可录制的音视频输入设备
在 Windows 系统中 , 使用 ffmpeg 命令 录制 音视频 , 需要先获取 系统的 音视频设备 信息 , 录制 音视频 本质上是从 系统音视频设备 中获取数据 ;
执行
ffmpeg -list_devices true -f dshow -i dummy
命令 , 可以获取 系统中 ffmpeg 可用的 DirectShow 音视频输入设备 ;
命令参数解析 :
-
-list_devices true
: 列出所有 ffmpeg 的 指定类型的可用设备 ; -
-f dshow
: 设置 输入设备 类型为 dshow , 这是 DirectShow 的简称 , DirectShow 是 Windows 的 音视频设备管理 框架 ; -
-i dummy
: -i 表示 ffmpeg 输入文件或设备 , dummy 指的是虚拟的输入设备 , 该参数的作用是 指定 ffmpeg 可用的 dshow 虚拟输入设备。
执行结果如下 :
[dshow @ 000001e0034ade00] DirectShow video devices (some may be both video and audio devices)
[dshow @ 000001e0034ade00] Could not enumerate video devices (or none found).
[dshow @ 000001e0034ade00] DirectShow audio devices
[dshow @ 000001e0034ade00] "立体声混音 (Realtek(R) Audio)"
[dshow @ 000001e0034ade00] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{348B8A31-CF2E-42D5-A6B2-862A966A1ED0}"
dummy: Immediate exit requested
上述命令输出结果中 ,
- 视频设备 DirectShow video devices 的查询结果是 " Could not enumerate video devices (or none found). " 没有找到可用的视频设备 ;
- 音频设备 DirectShow audio devices 的查询结果是 “立体声混音 (Realtek® Audio)” 可使用该设备录制音频 ;
二、使用 ffmpeg 命令录制音视频数据
1、录制视频数据命令
执行
ffmpeg -f gdigrab -framerate 30 -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop -c:v libx264 -preset ultrafast output.mp4
命令 , 可以在 Windows 中 , 捕获视频数据 ,
上述命令参数解析 :
-
-f gdigrab
: 设置 录制视频 的 输入格式为 gdigrab , Windows 上使用该方式捕获视频 , Linux 中设置的是-f x11grab
参数 ; -
-framerate 30
: 设置 录制屏幕 的 帧率 为 30 FPS ; -
-offset_x 0 -offset_y 0
: 设置 录制区域的偏移量 , 也就是 视频的左上角 所在的 屏幕中的位置 , 这里设置为屏幕的左上角 , 配合下面的 1920x1080 也就是全屏录制 ; -
-video_size 1920x1080
: 设置 录制视频尺寸为 1920x1080 , 这也是屏幕的分辨率 ; -
-i desktop
: 设置录制视频的 输入设备或文件 为系统桌面 ; -
-c:v libx264
: 设置 视频编码器 为 libx264 ; -
-preset ultrafast
: 设置编码速度为 ultrafast ;
执行过程中 , 最后一行实时动态更新当前的 帧数 , fps , 大小 等参数 ;
执行结果如下 , 输出的 output.mp4 文件属性如下 :
2、录制音频数据命令
执行
ffmpeg -f dshow -i audio="立体声混音 (Realtek(R) Audio)" -c:a aac output.aac
命令 , 执行过程中 会停在一行中 , 实时显示视频录制的信息 ,
参数解析 :
-
-f dshow
: 指定输入设备类型为 dshow , 即 DirectShow 设备 , 在 Linux 中设置-f x11grab
参数 ; -
-i audio="立体声混音 (Realtek(R) Audio)"
: 设置 音频输入设备为 系统声音 ; -
-c:a aac
: 设置 音频编解码器 为 AAC 格式 ;
按下 Ctrl + C 组合键后 , 就会终止音频录制 ;
3、同时录制音频和视频数据命令
执行
ffmpeg -f gdigrab -framerate 30 -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop -f dshow -i audio="立体声混音 (Realtek(R) Audio)" -c:v libx264 -c:a aac -preset ultrafast -strict experimental output.mp4
命令 , 可以同时录制 视频 和 音频 到 输出文件中 , 录制视频的命令 与 上面的命令参数相同 , 只是在上述录制视频的基础上 , 增加了 -f dshow -i audio="立体声混音 (Realtek(R) Audio)"
选项 ,
这个音频的设备 是通过 执行
ffmpeg -list_devices true -f dshow -i dummy
命令 获得的 ;
执行过程中 , 在最后一行显示实时录制信息 ;
按下 Ctrl + C 键 停止录制 , 录制后的视频可以正常播放 ;文章来源:https://www.toymoban.com/news/detail-857928.html
文章来源地址https://www.toymoban.com/news/detail-857928.html
到了这里,关于【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!