【原創】FFMPEG錄屏入門指南

  1. 下載ffmpeg
  • 點擊 ffmpeg官網,選擇windows,然後點擊Windows builds from gyan.dev

  • 也可以直接點擊 //www.gyan.dev/ffmpeg/builds/ ,在點擊ffmpeg-git-full.7z,即可下載:

  • 下載到的文件格式為7z(一種壓縮格式),用電腦安裝的壓縮工具解壓即可。如果沒有安裝支援7z的壓縮工具,可以點擊//www.7-zip.org/,下載:

    下載完,雙擊打開,一路同意下一步直到完成即可。

  • 解壓後剪切至自己習慣放軟體的文件夾下即可:

    我把它放在了D:\opt\ffmpeg\然後記住這個路徑D:\opt\ffmpeg\bin,後面的錄屏命令用的到

  • 選做:將D:\opt\ffmpeg\bin添加到系統環境變數。目的是不用記住上一步的這個路徑D:\opt\ffmpeg\bin,就可以用ffmpeg。具體方法請自行百度。

至此,ffmpeg就安裝完了。

按下Windows+R鍵,輸入cmd,回車,打開命令提示符窗口:

依次輸入以下命令

# 跳轉至ffmpeg程式所在路徑,設置了ffmpeg環境變數的可以略過
d:
cd /opt/ffmpeg/bin/
# 上面的盤符`d:`和路徑`/opt/ffmpeg/bin/` 要根據你ffmpeg的安裝路徑靈活修改!

  1. 查看輸入設備
    輸入:ffmpeg -list_devices true -f dshow -i dummy,查看可用設備的清單(每台電腦的請結果都不太一樣,但是相似,可以根據我下面的結果甄別自己電腦的設備):
  • 我這次錄屏,需要錄製電腦畫面和麥克風的聲音,於是用到了上面結果中的麥克風陣列 (Realtek(R) Audio) 設備,注意是這一部分,不包含引號:

電腦畫面改選哪個呢?有兩種方案:

  • 安裝Screen Capturer Recorder然後選擇上面的設備清單中的screen-capture-recorder(見上圖;安裝好後再執行查看設備的命令才會出現)。
  • 直接使用ffmpeg內置的gdigrab
    第一種我操作失敗了,所以我選用第二種。現在我需要記住的的是音頻輸入設備名稱麥克風陣列 (Realtek(R) Audio)
  1. 查看可用編碼器

輸入ffmpeg -encoders |findstr "hevc 265" ,查看可用的編碼器。我的電腦支援這些:

該選擇哪一個呢?

  • 首先libx265是通用的,選這個最保守,但是它再不做優化的情況下是靠cpu運算。簡單理解,一旦開啟錄屏,你的電腦cpu使用率會飆升,甚至造成電腦卡頓。嘗試一下,如果沒有造成卡頓,就可以計需用這個編碼器了。
  • 如果電腦配置有限,或者有獨立顯示卡的話,咱們可以挑一個獨顯支援的編碼器。我的電腦是NVIDIA的獨顯,所以我選擇與之對應的hevc_nvenc編碼器。
    你該怎麼找到適合的呢?首先知道自己的電腦有沒有獨顯,獨顯是Intel的,還是NVIDIA的,還是AMD的,然後從關鍵詞裡面找對應的就行。拿我的清單舉例:如果是AMD的,就選hevc_amf,如果是Intel的,就選hevc_qsv。 或者乾脆挨個嘗試一下,反正又不多。
    怎麼判斷錄屏是否用到了獨顯呢?咱們再下一步的時候介紹。現在我要記住適合我的編碼器hevc_nvenc
  1. 錄屏

通過上面兩步,我記住了我的音頻輸入設備是麥克風陣列 (Realtek(R) Audio),編碼器是hevc_nvenc。下面在命令提示符窗口輸入我的錄屏命令

ffmpeg -f dshow -i audio="麥克風陣列 (Realtek(R) Audio)"  -f gdigrab -i desktop  -c:v hevc_nvenc -r 8 -b 0.6M -minrate 0.4M -maxrate 2M -bufsize 4M -y D:\Personal\Desktop\錄屏%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.mp4
  • 其中-f dshow -i audio="麥克風陣列 (Realtek(R) Audio)" 是指定採集的音頻設備,你可以將麥克風陣列 (Realtek(R) Audio) 換成你想要採集的音頻輸入設備。

  • 其中-f gdigrab -i desktop 是指定採集的影片設備,含義為採集電腦螢幕畫面。

  • 其中-c:v hevc_nvenc 是指定影片編碼器,你可以將hevc_nvenc 換成適合你的編碼器。如果實在不知道該選哪個,就用libx265,如果用這個電腦錄屏會卡,就用libx264。還卡?就放棄吧。

  • 如果開始錄屏後,cpu飆升,說明使用的cpu進行編碼運算:

  • 如果是GPU生生明顯,cpu上升不明顯,則說明編碼器再用獨顯計算:

  • 其中-r 8是指定影片的幀率。幀率是什麼,可自行百度。簡單說,這個值越高,影片就會越流暢,但是錄屏後的影片文件越大(其他參數不變的情況下);反之,影片就會越跳躍,極端情況下會變成ppt的效果,但是影片文件的體積會越小。對於錄屏來說,建議設置在5–30之間,通過多次嘗試,找到自己滿意的數值

  • 其中-b 0.6M -minrate 0.4M -maxrate 2M -bufsize 4M 是設置影片的比特率,就是每秒會產生多大的體積。0.6M就是每秒會佔600kbp,簡單說就是一秒的影片體積是600➗8也就是不到100K。-b後面跟的是基準比特率,-minrate是最小比特率 -maxrate是最大比特率。比特率不能過低,雖然會降低文件體積,但是過低會導致畫面的清晰度慘不忍睹!過高也沒有意義,因為畫面的效果還收其他參數的影響,比如解析度、幀率等等。推薦的最小值是-b 0.6M -minrate 0.4M -maxrate 2M -bufsize 4M ,最大值是-b 2M -minrate 1M -maxrate 4M -bufsize 8M

  • 其中D:\Personal\Desktop\錄屏%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.mp4 是錄屏文件保存位置和名稱。可根據自己的需要修改。

  1. 調優
  • ffmpeg關於音影片的參數非常多,本文僅僅是入門用,想是解析度,音影片品質,音頻編碼,等等一系列參數並沒有完全列出來。未指定的參數,ffmpeg會使用默認參數,如解析度,會使用螢幕的解析度。
  • 對與幀率-r,碼率-b,解析度等參數,可以在多次嘗試中找到文件體積和錄製效果間的一個權衡。這裡給出一個參考:通常H265編碼下,1080p的影片大小應該在300M到1.5G之間,我按照上手參數錄製的影片在400M左右。
  • 找到適合自己的參數後,可以將其保存為bat批處理文件,以後雙擊該文件,就可以一鍵錄屏了!下面給出我的以作參考:
D:
/opt/ffmpeg/bin/ffmpeg.exe -f dshow -i audio="麥克風陣列 (Realtek(R) Audio)"  -f gdigrab -i desktop  -c:v hevc_nvenc  -r 8 -b 0.6M -minrate 0.4M -maxrate 2M -bufsize 4M -y D:\Personal\Desktop\錄屏%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.mp4

注意:保存後的bat文件編碼得是windows默認的GBK,如果是UTF-8會導致執行失敗!

最後,如有交代不清的,或者錯誤之處,歡迎交流指正!

Tags: