Windows电脑FFmpeg安装教程
写在前面
本文以 Windows 64
位操作系统为例演示
一、下载&解压
打开 FFmpeg 官网,选择下载。
选择 Windows
平台,下面有两个链接,都是可以的,选择其一。
本文以点击第一个链接为例,进去以后,选择左边的 release builds
,右边出现如下内容:
你可以选择下载上面红色圈中的 release-full,版本,或者选择下面红色圈中的前一个稳定版本 xxx-full_build。
release-full 版本会比下面的xxx-full_build 版本更新,选择哪一个都可以,看你个人喜好。
至于你是想选择带 shared 的还是不带 shared 的版本,其实都是可以的。因为同一个版本带 shared的和不带 shared 的,功能是完全一样的。
带 shared的里面,多了 include、lib目录。把 FFmpeg 依赖的模块包单独的放在的 lib 目录中。ffmpeg.exe,ffplay.exe,ffprobe.exe 作为可执行文件的入口,文件体积很小,他们在运行的时候,如果需要,会到 lib 中调用相应的功能。
不带 shared的里面,bin 目录中有ffmpeg.exe,ffplay.exe,ffprobe.exe 三个可执行文件,每个 exe 的体积都稍大一点,因为它已经把相关的需要用的模块包编译到exe里面去了。
解压以后的内容,如上图所示;进入 bin
目录,复制 bin
目录路径。
二、配置环境变量
1、配置系统环境变量
windows11的系统,直接打开设置搜索环境变量即可。
1、在电脑桌面上,打开我的电脑
2、在空白处,右键,选择属性
3、选择 高级系统设置 -> 高级 -> 环境变量
4、在系统变量中,选择 Path
,然后编辑:
5、然后在出来的[编辑环境变量]表中,新建一个,将刚才复制的 bin
目录路径粘贴进去,保存即可。
三、验证
重新打开一个命令行窗口,输入: ffmpeg -version
,有版本信息输出,则证明配置成功!!
额外补充
对于 windows
电脑可以将解压文件放到系统的 system32
目录中去,就不用配置环境变量了。
以上指针对于区域录制,使用
gdigrab
即可,这是windows自带的
例如,使用 FFmpeg 录制屏幕的基本命令如下:
ffmpeg -f gdigrab -i desktop output.mkv
这条命令会将整个桌面录制到 output.mkv文件中。FFmpeg 配置正确后,可以在 Windows 后台静默运行,不显示主窗口。
其他命令:
# 只录制屏幕
ffmpeg -f dshow -i video="screen-capture-recorder" -pix_fmt yuv420p out.mp4
ffmpeg -f dshow -i video="screen-capture-recorder" output.mkv
ffmpeg -f gdigrab -framerate 30 -i desktop output.mkv
ffmpeg -f gdigrab -i desktop -f mp4 out.mp4
ffmpeg -f gdigrab -framerate 30 -offset_x 10 -offset_y 20 -video_size 640x480 -show_region 1 -i desktop output.mkv
ffmpeg -f gdigrab -framerate 30 -i title=Calculator output.mkv
ffmpeg -f gdigrab -framerate 30 -i desktop -c:v h264_nvenc -qp 0 output.mkv
ffmpeg -y -f gdigrab -framerate 30 -i desktop -pix_fmt yuv420p -c:v libx264 -f mp4 output.mp4
# 只录制系统声音
ffmpeg -f dshow -i audio="virtual-audio-capturer" out.mp3
# 同时录制屏幕+系统声音
ffmpeg -f dshow -i audio="virtual-audio-capturer":video="screen-capture-recorder" -pix_fmt yuv420p out.mp4
ffmpeg -f gdigrab -t 30 -framerate 15 -i desktop -f dshow -i audio="virtual-audio-capturer" -b:v 3M -pixel_format yuv420p -vcodec libx264 -s 1366x768 -y d:/test.flv
# 同时录制屏幕+系统声音+麦克风
ffmpeg -f dshow -i audio="麦克风 (Realtek High Definition Audio)" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=0 -f dshow -i video="screen-capture-recorder" -pix_fmt yuv420p out.mp4
ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" -pix_fmt yuv420p -vcodec libx264 -acodec libvo_aacenc -s 1280x720 -r 25 -q 10 -ar 44100 -ac 2 -tune zerolatency -preset ultrafast -f mpegts - | ffmpeg -f mpegts -i - -c copy -bsf:a aac_adtstoasc -f flv temp.flv
# 4、ffmpeg 其他命令
# 显示可用的设备
ffmpeg -list_devices true -f dshow -i dummy
# 视频转换
ffmpeg -i d:out.mkv d:out.mp4
ffmpeng -i source.mp4 -c:v libx264 -crf 24 destination.flv
ffmpeg -i test.mp4 -q:v 6 test.wmv
# 视频剪切
ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4
四、录制全屏幕
以下是针对录制屏幕,全屏要用到screen-capture-recoder
这个程序,
下载安装该软件前,还需要安装 java jre,直接在java官网下载安装即可:
1、下载该软件
下载地址:https://github.com/rdp/screen-capture-recorder-to-video-windows-free
详情可以去github看这个软件详细介绍:
2、找到程序的安装地址,下载程序安装包即可
这是程序的下载安装地址:
https://github.com/rdp/screen-capture-recorder-to-video-windows-free/releases
3、下载安装完成后,使用cmd命令行即可进行视频录制
命令如下:
ffmpeg -f dshow -i video="screen-capture-recorder" -pix_fmt yuv420p out.mp4
命令详解:
-f dshow:指定输入格式为 DirectShow。DirectShow 是 Windows 提供的一套API,用于捕获和播放多媒体流。
-i video="screen-capture-recorder":指定输入设备是一个名为 "screen-capture-recorder" 的视频源。这通常是一个虚拟的视频捕获设备,可能由第三方软件提供,用于录制屏幕。
-pix_fmt yuv420p:指定像素格式为 YUV420P,这是一种常见的颜色空间格式,广泛用于视频压缩。YUV420P 格式把色彩和亮度信息分开处理,对人眼视觉特性进行优化。
out.mp4:输出文件名,以及隐含的格式(MP4)。
注意事项:
一般可能会遇到缓冲区溢出问题:
但是并不影响它继续运行
如果想要解决这个问题,可以尝试调整命令:
增加缓冲区大小:通过调整 FFmpeg 命令中的 rtbufsize 参数来增加缓冲区大小,例如:-rtbufsize 100M。
降低捕获分辨率:减少每帧的数据量,从而降低对缓冲区和带宽的需求。
检查系统性能:确保系统有足够的资源(如 CPU 和内存)来处理高质量的视频捕获和编码。关闭不必要的应用程序以释放资源,或尝试在性能更好的机器上运行。
使用更高效的编解码器:虽然 x264 提供了很好的视频质量,但也可以考虑使用更高效的编解码器(如 H.265/HEVC),如果设备支持的话,可能会减少资源消耗(但请注意兼容性和许可证问题)。
命令如下:
ffmpeg -f dshow -rtbufsize 100M -i video="screen-capture-recorder" -pix_fmt yuv420p -preset ultrafast -crf 23 out.mp4
现在程序运行的情况下,cmd是实时的,想要结束录制,ctrl + c 退出程序即可,但是可能会导致录制的视频文件损坏,所以最好使用命令结束程序运行:
直接在cmd运行框中按q即可结束:
五、进阶使用,就是无痕无界面进行屏幕录制:
在cmd命令行中调用powershell命令行,进行屏幕录制,并设置指定时长进行录制即可:
比如此命令我设置的时长为1个小时
powershell -Command "Start-Process -FilePath 'cmd.exe' -ArgumentList '/c ffmpeg -f dshow -rtbufsize 100M -i video=\"screen-capture-recorder\" -pix_fmt yuv420p -preset ultrafast -crf 23 -t 6000 C:\Users\Administrator\Videos\output2.mp4' -WindowStyle Hidden"
然后关闭cmd也不会影响程序运行。
还有就是关于视频存放的位置,首先文件夹要有读写权限,
一般情况下cmd命令行打开都是在C:\User\用户名 这样的目录下
所以输出文件的文件也就是在此目录下。
要么指定绝对路径进行输出即可