在macOS下使用ffmpeg錄屏

weixin_33872660發表於2018-01-14

Q&A

  • Q: 系統自帶的QuickTime Player不是已經有錄屏功能了嘛,你幹嘛搞這麼麻煩?
  • A: 我樂意

安裝HomeBrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安裝ffmpeg

  • 普通青年
    brew install ffmpeg --with-x264
  • 二逼青年
    brew install ffmpeg --with-chromaprint --with-fdk-aac --with-libass --with-libsoxr --with-libssh --with-tesseract --with-libvidstab --with-opencore-amr --with-openh264 --with-openjpeg --with-openssl --with-rtmpdump --with-rubberband --with-sdl2 --with-snappy --with-tools --with-webp --with-x265 --with-xz --with-zeromq --with-zimg --with-fontconfig --with-freetype --with-frei0r --with-game-music-emu --with-libbluray --with-libbs2b --with-libcaca --with-libgsm --with-libmodplug --with-libvorbis --with-libvpx --with-opus --with-speex --with-theora --with-two-lame --with-wavpack

安裝Soundflower

macOS自己沒辦法採集到系統聲音,需要安裝Soundflower
brew cask install soundflower

配置Soundflower

4579562-223d5833f6b520f3.png
MIDI設定

4579562-203eef98e4dc6b64.png
建立多輸出裝置

4579562-00fa6a0b1719af96.png
選擇你的一個物理輸出,並勾選Soundflower(2ch)

4579562-fc9d3cc93f8ecda9.png
將音訊輸出選為"多輸出裝置"

微小的前置工作

輸入ffmpeg -f avfoundation -list_devices true -i ""
看下方的裝置源, AVFoundation video devices下是視訊裝置源頭,分別是攝像頭和螢幕捕捉。AVFoundation audio devices下是音訊裝置源,第一個是剛剛安裝的Soundflower,第二個是麥克風。這裡我們選螢幕捕捉和Soundflower,記下對應序號1和0

4579562-b00f613fefec3ea0.png
list_devices

正題

ffmpeg -y -f avfoundation -i 1:0 -framerate 60 -c:v libx264 -r 60 -pix_fmt yuv420p -preset 0 -crf 19 -c:a aac -b:a 192k "$HOME/Screen Record $(date "+%Y-%m-%d %H-%M-%S").mp4"
注意-i後面的引數就是剛才需要記下的兩個序號,錄影需要停止的話按q即可

4579562-972aa456862a70dc.png
結果

4579562-56a1c6bb66eff2cc.png
錄影檔案

別名

為了方便可以在你環境變數中新增一個別名,比如 rec_screen,以後用這個就可以了,如果能看懂這寫引數的話也可以自行DIY了
alias rec_screen="ffmpeg -y -f avfoundation -i 1:0 -framerate 60 -c:v libx264 -r 60 -pix_fmt yuv420p -preset 0 -crf 19 -c:a aac -b:a 192k \"$HOME/Screen Record $(date "+%Y-%m-%d %H-%M-%S").mp4\""

4579562-61b815d59bd0aedd.png

相關文章