无名阁
用ffmpeg录制屏幕
2013-1-15 笑看风云


ffmpeg录制视频的方法很简单,就下面一条命令:






ffmpeg -f alsa -ac 1 -i pulse -acodec aac -f x11grab -s 1024x600 -i :0.0 -sameq  a.mp4

这条命令不但可以录制屏幕,还可以录制声音,其中录制声音的部分是:









-f alsa -ac 1 -i pulse -acodec aac

录制视频的是:









-f x11grab -s 1024x600 -i :0.0 -sameq


大家可以按照自己的需求使用.



ps:ffmpeg升级后sameq参数已经替换成"-qscale 1",大家使用的新版的时候要记得修改。



ps2:我发现上面的指令录屏的比特率比较低,于是在网上找到了一个比特率高的录屏指令,不过这个指令录屏的文件很大:


ffmpeg -f x11grab -s 1440x900 -i :0 -preset ultrafast -crf 10  a.mkv    


preset在我的理解中应该是模式,crf在wiki中是质量,0最好,是无损,51是最差。



其实把preset添加到原来的命令中也可以。









评论:
嗷嗷
2015-07-30 16:30 回复
想問問博主知不知道ffmpeg怎麼錄直播視頻並且是ts格式的呀?
笑看风云
2013-12-26 16:55 回复
@xtricman:这个就爱莫能助了,还是谷歌看看能不能找到解决方法。[汗]
笑看风云
2013-12-26 16:53 回复
@xtricman:这个还真不知道,我也只是知道要这么做,为什么我也不是很清楚。
xtricman
2013-12-26 16:51 回复
@笑看风云:我虽然不完全清楚原理,但是至少视频流我能正常录下来,而音频流我则完全无法正常录制。
笑看风云
2013-12-26 16:48 回复
@xtricman:这个是11个月之前的文章,当初是看了人家在windows下录的视频而兴起的念头,后来看了一下ffmpeg的Wiki和别人的方法总结出来的,解决了之后就忘的差不多了。
xtricman
2013-12-26 16:47 回复
@笑看风云:而且我也很好奇为何录制视频要-s参数修饰输入流而不是输出流,因为显卡输出的是确定的大小的图像,我试过修饰输出流,然后就不对了,没有完全录下来整个屏幕。
xtricman
2013-12-26 16:43 回复
@笑看风云:你自己居然都不记得了?你不会是网上随便抄过来的连 ffmpeg的文档都没看过吧?我想录系统的声音,然后也没有指定音频轨道编号,输入文件是 default,然后拔掉麦克风,系统声音确实录下来了,但是声音很小,而且有重度杂音,我用 libvorbis和 copy做输出编码都一样的效果。
笑看风云
2013-12-26 16:33 回复
@xtricman:不记得了,不过似乎是系统声音,你还是自己试一试的好。
xtricman
2013-12-26 16:31 回复
请问你这录声音是录系统的声音还是麦克风的输入?
笑看风云
2013-12-06 13:05 回复
@ffmpeg愛好者:不清楚。我觉得应该不可以,因为x11grab 似乎是Linux独有的。
ffmpeg愛好者
2013-12-06 06:45 回复
@ffmpeg愛好者:我目前只找到:
[url]https://trac.ffmpeg.org/wiki/How%20to%20grab%20the%20desktop%20(screen)%20with%20FFmpeg[/url]
可是,不知道行不行透過Java來做錄製...
ffmpeg愛好者
2013-12-06 06:41 回复
想請問一下博主,這命令可以在Windows Java or Mac Java環境下work嗎?
无线摄像头
2013-02-02 02:48 回复
文章写的很棒向博主好好学习!!!
针孔摄像头
2013-01-22 02:24 回复
文章很棒很给力支持博主
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容