【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )

本文主要讲解关于【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )相关内容,让我们来一起学习下吧!

文章目录

  • 一、查询系统中 ffmpeg 可录制的音视频输入设备
  • 二、使用 ffmpeg 命令录制音视频数据
    • 1、录制视频数据命令
    • 2、录制音频数据命令
    • 3、同时录制音频和视频数据命令

一、查询系统中 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

【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )

上述命令输出结果中 ,

  • 视频设备 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 , 大小 等参数 ;【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )

执行结果如下 , 输出的 output.mp4 文件属性如下 :

【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )

2、录制音频数据命令

执行

ffmpeg -f dshow -i audio="立体声混音 (Realtek(R) Audio)" -c:a aac output.aac

命令 , 执行过程中 会停在一行中 , 实时显示视频录制的信息 ,

【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )

参数解析 :

  • -f dshow : 指定输入设备类型为 dshow , 即 DirectShow 设备 , 在 Linux 中设置 -f x11grab 参数 ;
  • -i audio="立体声混音 (Realtek(R) Audio)" : 设置 音频输入设备为 系统声音 ;
  • -c:a aac : 设置 音频编解码器 为 AAC 格式 ;

按下 Ctrl + C 组合键后 , 就会终止音频录制 ;

【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )

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

命令 获得的 ;

执行过程中 , 在最后一行显示实时录制信息 ;

【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )

按下 Ctrl + C 键 停止录制 , 录制后的视频可以正常播放 ;

【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )

以上就是关于【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )相关的全部内容,希望对你有帮助。欢迎持续关注程序员导航网,学习愉快哦!

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...