FFMPEG - 基础命令

查看 mac 上的设备列表

1
ffmpeg -f avfoundation -list_devices true -i ""

屏幕录像

1
2
3
4
5
6
7
8
# 录屏
ffmpeg -f avfoundation -i 1 -r 30 -pix_fmt yuv420p out.mp4

# 录屏+录音
ffmpeg -f avfoundation -i 1:0 -r 30 -pix_fmt yuv420p -c:v libx264 -crf 0 -c:a aac -b:a 192k out.mp4

# 录屏+录音(指定输出分辨率)
ffmpeg -f avfoundation -i 1:0 -r 30 -s 1024x720 -pix_fmt yuv420p -c:v libx264 -c:a aac -b:a 192k out.mp4

其中, -r 指的是帧率(fps), -crf 0 指的是无损压缩。

-i 1:1 前面的1是指视频设备索引,后面的0是指麦克风设备索引,这个值根据上面查看设备列表指令返回的结果而定。

如果报类似的错 Too many packets buffered for output stream 0:0,则加上参数 -max_muxing_queue_size 2048 如下:

1
ffmpeg -f avfoundation -i 1:0 -max_muxing_queue_size 2048 -r 30 -pix_fmt yuv420p -c:v libx264 -s 1920x1080 -b:a 32k out.mp4

摄像头录制

1
2
3
4
5
# 录视频
ffmpeg -framerate 30 -f avfoundation -i 0 -pix_fmt yuv420p out.mp4

# 视频 + 音频
ffmpeg -framerate 30 -f avfoundation -i 0:0 -pix_fmt yuv420p out.mp4

录音

1
ffmpeg -f avfoundation -i :0 out.wav

录制画中画

1
ffmpeg -f avfoundation -i "1" -framerate 30 -f avfoundation -i "0:0" -r 30 -c:v libx264 -preset ultrafast -s 1024x720 -filter_complex "[1:v]scale=w=300:h=300:force_original_aspect_ratio=decrease[a];[0:v][a]overlay=x=W-w-10:y=H-h-30[out]" -map "[out]" -movflags faststart -map 1:a -pix_fmt yuv420p b.mp4