Ubuntu下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
系統輸出大致如下:
-
[dshow @ 002db420] DirectShow video devices
- [dshow @ 002db420] ”screen-capture-recorder”
- [dshow @ 002db420] DirectShow audio devices
- [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