使用FFmpeg进行屏幕录像和录音
有些时候我们需要对屏幕进行录制,比如制作视频教程,录制直播等。然而这方面的软件多是收费的,即使是免费试用版的还有水印,特别烦人。下面介绍使用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进行屏幕录像和录音相关推荐
- FFmpeg —— 屏幕录像和录音并推流(命令行的方式)
Windows Windows采集设备的主要方式是dshow.vfwcap.gdigrab. 其中dshow可以用来抓取摄像头.采集卡.麦克风等,vfwcap主要用来采集摄像头类设备,gdigrab则 ...
- 屏幕录像专家怎么使录制出来的视频比较清晰【已解决】
<屏幕录像专家>是一款专业的屏幕录像制作工具,这款软件界面是中文版本,里面的内容并不怎么复杂,录制视频和简单按设置的快捷键.点击录制键.或者点击三角按钮,就可以录制了. 但是在使用过程中, ...
- ffmpeg采集android屏幕,ffmpeg 屏幕录像、抓屏 gdigrab
linux Linux下使用FFmpeg进行屏幕录制相对比较方便,可以使用x11grab,使用如下的命令:ffmpeg -f x11grab -s 1600x900 -r 50 -vcodec lib ...
- 重置linux桌面,Ubuntu 18.04小贴士:重置Gnome桌面与使用隐藏的屏幕录像工具
原标题:Ubuntu 18.04小贴士:重置Gnome桌面与使用隐藏的屏幕录像工具 1.如何在Ubuntu 18.04中重置Gnome桌面 本快速教程将向您展示如何在Ubuntu 18.04 LTS中 ...
- linux隐藏软件程序,如何使用GNOME Shell隐藏的屏幕录像工具
你可能想录制自己的桌面与其他人分享,在gnome-shell里面你找不到品目录像软件,也许你会想到安装一个,其实gnome-shell有一个内置的隐藏的屏幕录像软件,它作为GNOME Shell桌面的 ...
- 如何在Linux上制作一个屏幕录像视频教程
一图胜千言,一个精心设计的指导视频更是能给你带来良好体验.Linux上有你需要的制作有用且高质量教学视频的所有工具.我们将用强大的kdenlive视频编辑器和Audacity音频录制器和编辑器制作一个 ...
- Ubuntu下ffmpeg 捕获屏幕和采集声卡、摄像头、麦克风声音
转载自:https://blog.csdn.net/encoder1234/article/details/51984779 ffmpeg在Linux下用X11grab进行屏幕录像,在Windows下 ...
- linux 如何关闭屏幕录像,如何使用GNOME Shell隐藏的屏幕录像工具
如何使用GNOME Shell隐藏的屏幕录像工具 Mark Do 2018年6月10日 暂无评论 阅读 2,738 次 你可能想录制自己的桌面与其他人分享,在gnome-shell里面你找不到品目录像 ...
- 如何使用Screenflick在Mac上创建延时屏幕录像?
如何使用Screenflick在Mac上创建延时屏幕录像?Screenflick使用相对少量的磁盘空间和性能,可以使长时间录制的录音非常高效,同时还消耗了笔记本电脑的电量.这种效率为实际记录的应用留下 ...
最新文章
- Python 正则表达式各种特殊符号 重点
- non-local神经网络:通过非局部操作解决深度神经网络核心问题
- Nature封面:脑机接口重大突破!意念手写字速度破纪录!
- c++ vector pop_back() 与pop_back()
- 在浏览器输入一个网址,按回车之后发生了什么?
- [Translation]《击鼓》
- EASYUI- EASYUI左移右移 GRID中值
- MTK:GPIO模式与设置
- pycharm中的常用快捷键与常用设置
- arcgis server10.2.2发布地图基础服务的具体步骤
- jquery学习笔记之选择器
- unity有用资源的导出未package便于在其他工程用的问题解决
- 程序员们平时常逛的论坛
- svn之回滚到指定版本
- RadASM的主题更换!
- Retrofit,RecyclerViewMVP模式
- 模型的学习方式-迁移学习、多任务学习、小样本学习、元学习
- [Transformer] PVT系列:PVT CPVT Twins
- 云计算计算机二级,全国计算机等级考试二级MS+Office高级应用真题题库2+2020年3月-20210613095444.pdf-原创力文档...
- 专访梁杰:Swift或将取代Objective-C
热门文章
- 亚洲众包网站悄然崛起:中国成最大“雇主”
- 灰色系统预测模型GM(1,1),GM(1,n)及Matlab实现
- 2021-08-29
- 如意验证对接TV 神,马搭建 源码,搭建简单,仅供学习交流
- STM32串口自动识别波特率
- banner自适应屏幕代码
- 2022年煤矿探放水考题及模拟考试
- 8.19! 今天我有18生日,点击阅读或顶部 尾随幸运的一天!生日知识!↓——【Badboy】...
- 2020业余时间自我提升计划
- redis的雪崩和穿透