FFmpeg的录制命令
命令的作用
它可以捕捉桌面窗口,摄像头的视频流和麦克风的音频流。
命令的格式
ffmpeg [输入格式] [输入选项] -i [输入设备索引] [输出选项] 输出文件
其中输入选项 和输出选项是可选的,根据实际需要进行修改。
输入格式:
Windows:
dshow
: DirectShow输入格式,用于录制Windows上的摄像头、麦克风、屏幕、窗口等。gdigrab
:GDI抓取输入格式,用于录制Windows上的屏幕或窗口,可以选择特定的窗口进行录制。vfwcap
: 是一种输入格式,用于在 Windows 上录制视频设备(如摄像头)的输入源。
Linux:
v4l2
:Video for Linux 2输入格式,用于录制Linux上的视频设备,如USB摄像头等。alsa
:Advanced Linux Sound Architecture输入格式,用于录制Linux上的音频设备,如麦克风、扬声器等。x11grab
:X11抓取输入格式,用于录制X Window系统上的屏幕或窗口。
Mac:
avfoundation
:AVFoundation输入格式,用于录制Mac上的摄像头、麦克风、屏幕等。qtkit
:QuickTime Kit输入格式,用于录制Mac上的摄像头、麦克风等。
输入选项:
-f <格式>
:指定输入文件的格式(视频如.mp4 .avi .mkv .flv .mov等等 音频如 .mp3 .wav .aac .flac .wma等等)。-i <输入文件>
:指定输入文件的路径。-s <分辨率>
:指定视频的分辨率。-r <帧率>
:指定视频的帧率。-ac <声道数>
:指定音频的声道数(如:单声道(1) 立体声(2) 5.1环绕声(6) 7.1环绕声(8))。-i <视频设备>
:指定视频设备的路径(用于摄像头录制)。-f alsa -i <音频设备>
:指定音频设备的路径(用于声音录制)。
输入设备索引:
Windows:
dshow
: 使用ffmpeg -list_devices true -f dshow -i dummy
命令列出可用的视频设备及其对应的名称和索引号,然后根据需要选择对应的索引号或设备名称。gdigrab
: 不需要设备索引,直接使用-offset_x
、-offset_y
、-video_size
等参数指定需要录制的屏幕区域或窗口标题即可。vfwcap
: 使用ffmpeg -list_devices true -f vfwcap -i dummy
命令列出可用的视频设备及其对应的名称和索引号,然后根据需要选择对应的设备名称或索引号。
Linux:
v4l2
: 使用v4l2-ctl --list-devices
命令列出可用的视频设备及其对应的名称和索引号,然后根据需要选择对应的设备名称或索引号。alsa
: 不需要设备索引,直接使用-f alsa -i default
参数录制默认音频设备。x11grab
: 不需要设备索引,直接使用-offset_x
、-offset_y
、-video_size
等参数指定需要录制的屏幕区域或窗口标题即可。
Mac:
avfoundation
: 使用ffmpeg -f avfoundation -list_devices true -i ""
命令列出可用的视频设备及其对应的名称和索引号,然后根据需要选择对应的设备名称或索引号。qtkit
: 使用ffmpeg -f qtkit -list_devices true -i ""
命令列出可用的视频设备及其对应的名称和索引号,然后根据需要选择对应的设备名称或索引号。
输出文件:
- 单个输出文件:直接指定输出文件路径和文件名,如
output.mp4
- 多个输出文件:使用通配符指定输出文件路径和文件名的格式,如
output-%03d.mp4
,其中%03d
表示输出文件名中序号的占位符,例如output-001.mp4
、output-002.mp4
等。
例子:
录制窗口,60帧,使用1920x1080分辨率,存放到默认目录。
ffmpeg -f gdigrab -r 60 -i desktop -s 1920x1080 output.mp4
录制麦克风音频,存放到默认目录。
ffmpeg -f dshow -i audio="麦克风阵列 (适用于数字麦克风的英特尔® 智音技术)" output.wav
录制摄像头 30帧,并且存放到d盘中的videos文件夹中(要保证有访问和修改目标文件夹的权限)。
ffmpeg -f vfwcap -r 30 -i 0 D:\videos\output003.mp4
如何播放我录制的视频
找到视频存放的目录,然后双击使用你的电脑上的播放器打开或者使用ffplay进行播放。
一般视频存放的位置以上面的输出文件 为依据。如果只是单个文件名,例如output.mp4 则视频存放在你的ffmpeg的默认安装目录。如果指定了文件目录,如:D:\videos\output003.mp4 则视频存放在D:\videos中。