1. 程式人生 > >ffmpeg 捕獲螢幕和採集音效卡、攝像頭、麥克風聲音

ffmpeg 捕獲螢幕和採集音效卡、攝像頭、麥克風聲音

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