前言:
今天姐妹们对“ffmpeg录制屏幕”可能比较重视,咱们都需要分析一些“ffmpeg录制屏幕”的相关资讯。那么小编同时在网上网罗了一些有关“ffmpeg录制屏幕””的相关资讯,希望兄弟们能喜欢,看官们一起来了解一下吧!有些时候我们需要对屏幕进行录制,比如制作视频教程,录制直播等。然而这方面的软件多是收费的,即使是免费试用版的还有水印,特别烦人。下面分别介绍Windows、MacOS、Linux平台使用FFmpeg进行屏幕录制的方法。
Windows
先安装dshow软件 Screen Capturer Recorder,。然后查看可用设备的名字:
ffmpeg -list_devices true -f dshow -i dummy
会显示
DirectShow video devices (some may be both video and audio devices)“screen-capture-recorder” //视频设备DirectShow audio devices“virtual-audio-capturer” //音频设备
就能看到咱刚安装的Screen Capturer Recorder,如果你有其他的设备,比如摄像头,麦克风等,也会显示。
录制视频(默认参数)
ffmpeg -f dshow -i video="screen-capture-recorder" v-out.mp4录制声音(默认参数)
ffmpeg -f dshow -i audio="virtual-audio-capturer" a-out.aac同时录制声音和视频(默认参数)
ffmpeg -f dshow -i video="screen-capture-recorder":audio="virtual-audio-capturer" av-out.mp4
查看视频录制的可选参数
ffmpeg -f dshow -list_options true -i video="screen-capture-recorder"
我的设备有如下显示
DirectShow video device options (from video devices)Pin “Capture” (alternative pin name “1”)pixel_format=bgr0 min s=1×1 fps=0.02 max s=1680×1050 fps=30pixel_format=bgr0 min s=1×1 fps=0.02 max s=1680×1050 fps=30pixel_format=bgr24 min s=1×1 fps=0.02 max s=1680×1050 fps=30pixel_format=rgb555le min s=1×1 fps=0.02 max s=1680×1050 fps=30pixel_format=rgb555le min s=1×1 fps=0.02 max s=1680×1050 fps=30pixel_format=rgb8 min s=1×1 fps=0.02 max s=1680×1050 fps=30pixel_format=yuv420p min s=1×1 fps=0.02 max s=1680×1050 fps=30
示例视频录制(依次设置:分辨率 帧率 像素格式)
ffmpeg -f dshow -video_size 1680x1050 -framerate 30 -pixel_format yuv420p -i video="screen-capture-recorder" v-out.mp4
查看音频设备可选参数
ffmpeg -f dshow -list_options true -i audio=virtual-audio-capturer指定参数录制音视频
ffmpeg -f dshow -video_size 1680x1050 -framerate 30 -pixel_format yuv420p -i video="screen-capture-recorder":audio="virtual-audio-capturer" av-out.mp4
Linux
使用x11grab ,相信Linux用户动手能力的比较强,自行查看安装方法吧 。
安装完之后,就可以录制了
ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 v-out.mp4
上面的参数,指的是从屏幕的左上角(x=100, y=200)的位置,录制分辨率为1024×768的视频。
可以使用ALSA 同时录制声音
ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 -f alsa -ac 2 -i hw:0 av-out.mkv
也可以使用Pulse 声音输入设备
ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 -f pulse -ac 2 -i default av-out.mkvMacOS
使用avfoundation , 然后查看可用设备
ffmpeg -f avfoundation -list_devices true -i ""
我的电脑显示如下
[AVFoundation input device @ 0x7f83e150fd00] AVFoundation video devices:[AVFoundation input device @ 0x7f83e150fd00] [0] FaceTime HD Camera[AVFoundation input device @ 0x7f83e150fd00] [1] Capture screen 0[AVFoundation input device @ 0x7f83e150fd00] [2] Capture screen 1[AVFoundation input device @ 0x7f83e150fd00] AVFoundation audio devices:[AVFoundation input device @ 0x7f83e150fd00] [0] Built-in Microphone
选用可用的相应的音视频设备,进行屏幕录制
ffmpeg -f avfoundation -i "<video device index>:<audio device index>" av-out.mov
-i参数后指定设备序列号,比如使用“[1] Capture screen 0”和“[0] Built-in Microphone”
ffmpeg -f avfoundation -i "1:0" Screen.mkv # 注意啊 1:0 外面有个双引号
这里使用的默认参数进行录制的,我电脑生成的是AVC和Vorbis编码的mkv文件。
提示
如果电脑配置比较低,可能不能很好地录制屏幕的同时进行音视频编码。这种情况下,可以先录制未压缩的音视频,最后再进行音视频编码压缩。
Linux:
ffmpeg -framerate 25 -video_size 1024x768 -f x11grab -i :0.0+100,200 -f alsa -ac 2 -i pulse \ -vcodec libx264 -crf 0 -preset ultrafast \ -acodec pcm_s16le output.mkvffmpeg -i output.mkv -acodec ... -vcodec ... final.mkv
Windows:
ffmpeg -f dshow -i video="screen-capture-recorder":audio="Microphone" -vcodec libx264 -crf 0 -preset ultrafast -acodec pcm_s16le output.mkvffmpeg -i output.mkv -acodec ... -vcodec ... final.mkv
无损格式录制
如果想要完美的屏幕录制效果,可以使用x264进行无损编码
ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 -c:v libx264 -qp 0 -preset ultrafast capture.mkv
“-qp 0″是x264无损编码模式,“-preset ultrafast”表示最快的速度编码。
标签: #ffmpeg录制屏幕