FFmpeg 是一个非常强大的开源工具,它可以用来处理音频和视频。
要使用 FFmpeg 进行录屏和录音,需要首先确保你的系统已经安装了 FFmpeg。在大多数 Linux 发行版中,可以通过包管理器(如 apt 或 yum)来安装。在 Windows 或 Mac 上,需要从 FFmpeg 的官方网站下载并安装。
1. 录屏
使用 FFmpeg 进行录屏,你可以使用 ffmpeg
命令配合 -f x11grab
(在 Linux 下)或 -f gdigrab
(在 Windows 下)选项。
在 Windows 下录屏:
打开命令行工具,输入以下命令,开始录屏:
ffmpeg -f gdigrab -framerate 30 -i desktop output.mp4
其中:
-f gdigrab
指定输入设备为屏幕-framerate 30
指定帧率为 30 fps-i desktop
指定输入设备为屏幕output.mp4
指定输出文件名
要停止录屏,可以按下 Ctrl+C 键。
在 Linux 下录屏:
ffmpeg -f x11grab -s 1920x1080 -r 30 -i :0.0 -c:v libx264 -preset veryfast output.mp4
这个命令会从屏幕的左上角(:0.0)开始,以 1920x1080 的分辨率,30 帧每秒的速度进行录屏,并使用 H.264 编码(libx264)保存为 output.mp4。
2. 录音
要使用 FFmpeg 进行录音,你可以使用 ffmpeg
命令配合 -f alsa
(在 Linux 下)或 -f dshow
(在 Windows 下)选项。
在 Windows 下录音:
打开命令行工具,输入以下命令,开始录音:
ffmpeg -f dshow -i audio="Stereo Mix" output.wav
其中:
-f dshow
指定输入设备为 DirectShow 音频设备-i audio="Stereo Mix"
指定输入设备为 Stereo Mix 音频设备(可能需要根据实际情况修改)output.wav
指定输出文件名
在 Linux 下录音:
ffmpeg -f alsa -i hw:0 output.wav
这个命令会从默认的音频设备(hw:0)开始录音,并保存为 WAV 格式的 output.wav 文件。
3. 同时录屏和录音
要同时录屏和录音,你可以使用 FFmpeg的映射(mapping)功能。
在 Windows 下录屏录音:
ffmpeg -f gdigrab -framerate 30 -i desktop -f dshow -i audio="Stereo Mix" output.mp4
在 Linux 下录屏录音:
ffmpeg -f x11grab -s 1920x1080 -r 30 -i :0.0 -f alsa -i hw:0 -c:v libx264 -preset veryfast -c:a aac -strict experimental output.mp4
这个命令会同时从屏幕的左上角(:0.0)和默认的音频设备(hw:0)开始,以 1920x1080 的分辨率,30 帧每秒的速度进行录屏和录音,并使用 H.264 编码(libx264)和 AAC 编码(aac)保存为output.mp4。
4. FFmpeg 加文字水印
使用 FFmpeg 添加文字水印是一个常见的需求。
ffmpeg -i output001.MP4 -vf "drawtext=fontfile=msyh.ttc:text='老徐AI':fontsize=17:fontcolor=white:x=50:y=360" output002.mp4
5. FFmpeg 剪辑:截取合并
使用 FFmpeg 可以对视频音频进行截取合并等基本的剪辑工作。
录制屏幕的部分区域:
"D:\Screen Capturer Recorder\configuration_setup_utility\vendor\ffmpeg\bin\ffmpeg" -f dshow -i audio="virtual-audio-capturer":video="screen-capture-recorder" -vf crop=720:408:312:415 -crf 16 -y output.mp4
从 2s 开始截取 29s 的长度:
ffmpeg -i output.mp4 -ss 00:00:2 -t 00:00:29 output1.mp4
合并两个文件:
ffmpeg -i output1.mp4 -i output2.mp4 -c:v copy -c:a aac -strict experimental output.mp4
老徐,2024/4/23