有些时候我们需要对屏幕进行录制,比如制作视频教程,录制直播等。然而这方面的软件多是收费的,即使是免费试用版的还有水印,特别烦人。下面介绍使用FFmpeg进行屏幕录制的方法。

Windows

先安装dshow软件 Screen Capturer Recorder, 项目地址:https://sourceforge.net/projects/screencapturer/files/ 。然后查看可用设备名字:

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=30
pixel_format=bgr0 min s=1×1 fps=0.02 max s=1680×1050 fps=30
pixel_format=bgr24 min s=1×1 fps=0.02 max s=1680×1050 fps=30
pixel_format=rgb555le min s=1×1 fps=0.02 max s=1680×1050 fps=30
pixel_format=rgb555le min s=1×1 fps=0.02 max s=1680×1050 fps=30
pixel_format=rgb8 min s=1×1 fps=0.02 max s=1680×1050 fps=30
pixel_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.mkv

MacOS

使用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.mkv ffmpeg -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.mkv
ffmpeg -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”表示最快的速度编码。

参考:http://trac.ffmpeg.org/wiki/Capture/Desktop

本文最初于2016年发表于个人网站CucerZone,那个网站已经停用了,把有用的东西挪过来。如果文章描述有使用错误,欢迎交流。

使用FFmpeg进行屏幕录像和录音相关推荐

  1. FFmpeg —— 屏幕录像和录音并推流(命令行的方式)

    Windows Windows采集设备的主要方式是dshow.vfwcap.gdigrab. 其中dshow可以用来抓取摄像头.采集卡.麦克风等,vfwcap主要用来采集摄像头类设备,gdigrab则 ...

  2. 屏幕录像专家怎么使录制出来的视频比较清晰【已解决】

    <屏幕录像专家>是一款专业的屏幕录像制作工具,这款软件界面是中文版本,里面的内容并不怎么复杂,录制视频和简单按设置的快捷键.点击录制键.或者点击三角按钮,就可以录制了. 但是在使用过程中, ...

  3. ffmpeg采集android屏幕,ffmpeg 屏幕录像、抓屏 gdigrab

    linux Linux下使用FFmpeg进行屏幕录制相对比较方便,可以使用x11grab,使用如下的命令:ffmpeg -f x11grab -s 1600x900 -r 50 -vcodec lib ...

  4. 重置linux桌面,Ubuntu 18.04小贴士:重置Gnome桌面与使用隐藏的屏幕录像工具

    原标题:Ubuntu 18.04小贴士:重置Gnome桌面与使用隐藏的屏幕录像工具 1.如何在Ubuntu 18.04中重置Gnome桌面 本快速教程将向您展示如何在Ubuntu 18.04 LTS中 ...

  5. linux隐藏软件程序,如何使用GNOME Shell隐藏的屏幕录像工具

    你可能想录制自己的桌面与其他人分享,在gnome-shell里面你找不到品目录像软件,也许你会想到安装一个,其实gnome-shell有一个内置的隐藏的屏幕录像软件,它作为GNOME Shell桌面的 ...

  6. 如何在Linux上制作一个屏幕录像视频教程

    一图胜千言,一个精心设计的指导视频更是能给你带来良好体验.Linux上有你需要的制作有用且高质量教学视频的所有工具.我们将用强大的kdenlive视频编辑器和Audacity音频录制器和编辑器制作一个 ...

  7. Ubuntu下ffmpeg 捕获屏幕和采集声卡、摄像头、麦克风声音

    转载自:https://blog.csdn.net/encoder1234/article/details/51984779 ffmpeg在Linux下用X11grab进行屏幕录像,在Windows下 ...

  8. linux 如何关闭屏幕录像,如何使用GNOME Shell隐藏的屏幕录像工具

    如何使用GNOME Shell隐藏的屏幕录像工具 Mark Do 2018年6月10日 暂无评论 阅读 2,738 次 你可能想录制自己的桌面与其他人分享,在gnome-shell里面你找不到品目录像 ...

  9. 如何使用Screenflick在Mac上创建延时屏幕录像?

    如何使用Screenflick在Mac上创建延时屏幕录像?Screenflick使用相对少量的磁盘空间和性能,可以使长时间录制的录音非常高效,同时还消耗了笔记本电脑的电量.这种效率为实际记录的应用留下 ...

最新文章

  1. Python 正则表达式各种特殊符号 重点
  2. non-local神经网络:通过非局部操作解决深度神经网络核心问题
  3. Nature封面:脑机接口重大突破!意念手写字速度破纪录!
  4. c++ vector pop_back() 与pop_back()
  5. 在浏览器输入一个网址,按回车之后发生了什么?
  6. [Translation]《击鼓》
  7. EASYUI- EASYUI左移右移 GRID中值
  8. MTK:GPIO模式与设置
  9. pycharm中的常用快捷键与常用设置
  10. arcgis server10.2.2发布地图基础服务的具体步骤
  11. jquery学习笔记之选择器
  12. unity有用资源的导出未package便于在其他工程用的问题解决
  13. 程序员们平时常逛的论坛
  14. svn之回滚到指定版本
  15. RadASM的主题更换!
  16. Retrofit,RecyclerViewMVP模式
  17. 模型的学习方式-迁移学习、多任务学习、小样本学习、元学习
  18. [Transformer] PVT系列:PVT CPVT Twins
  19. 云计算计算机二级,全国计算机等级考试二级MS+Office高级应用真题题库2+2020年3月-20210613095444.pdf-原创力文档...
  20. 专访梁杰:Swift或将取代Objective-C

热门文章

  1. 亚洲众包网站悄然崛起:中国成最大“雇主”
  2. 灰色系统预测模型GM(1,1),GM(1,n)及Matlab实现
  3. 2021-08-29
  4. 如意验证对接TV 神,马搭建 源码,搭建简单,仅供学习交流
  5. STM32串口自动识别波特率
  6. banner自适应屏幕代码
  7. 2022年煤矿探放水考题及模拟考试
  8. 8.19! 今天我有18生日,点击阅读或顶部 尾随幸运的一天!生日知识!↓——【Badboy】...
  9. 2020业余时间自我提升计划
  10. redis的雪崩和穿透