ffmpeg在Linux下用X11grab进行屏幕录像,在Windows下用DirectShow滤镜

 

首先需要安装一个软件,screen capture recorder

编译好的下载地址是:

http://sourceforge.net/projects/screencapturer/files/

源码地址是:

https://github.com/rdp/screen-capture-recorder-to-video-windows-free


安装完了之后,在命令行执行:

ffmpeg -list_devices true -f dshow -i dummy 


系统输出大致如下:

  1. [dshow @ 002db420] DirectShow video devices  
  2. [dshow @ 002db420]  "screen-capture-recorder"  
  3. [dshow @ 002db420] DirectShow audio devices  
  4. [dshow @ 002db420]  "virtual-audio-capturer"  

ffmpeg已经可以捕获到DirectShow视频设备,和音频设备了.

"screen-capture-recorder" 这个就是桌面捕获设备,如果电脑上连有摄像头,也会列出来.

"virtual-audio-capturer" 这个是音频捕获设备


捕获摄像头视频:

ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 mycamera.mkv 

注: Integrated Camera名称视个人电脑设备管理器里边摄像头的名称而定,我的是电脑是 Integrated Webcam.


捕获麦克风声音:

ffmpeg -f dshow -i audio="麦克风(High Definition Audio 设备)" -acodec aac d:\temp.aac


同时捕获桌面和声卡声音并录制成flv文件:

ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" -pix_fmt yuv420p -ar 48000 -vcodec libx264 -crf 23 -preset veryslow -x264opts b-adapt=2:bframes=0:aq-strength=1:psy-rd=0.8,0 -vsync vfr -acodec aac -bsf:a aac_adtstoasc -f flv temp.flv


上面组合命令设置了x264参数和aac添加adst filter,

如果想提高x264编码速度可使用 -preset:v ultrafast -tune:v zerolatency  两个参数,

举个例子:

ffmpeg -f dshow -i video="Integrated Webcam" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency d:\test.mp4



Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐