【原創】FFMPEG錄屏入門指南
- 下載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的安裝路徑靈活修改!
- 查看輸入設備
輸入:ffmpeg -list_devices true -f dshow -i dummy
,查看可用設備的清單(每台電腦的請結果都不太一樣,但是相似,可以根據我下面的結果甄別自己電腦的設備):
- 我這次錄屏,需要錄製電腦畫面和麥克風的聲音,於是用到了上面結果中的
麥克風陣列 (Realtek(R) Audio)
設備,注意是這一部分,不包含引號:
電腦畫面改選哪個呢?有兩種方案:
- 安裝
Screen Capturer Recorder
然後選擇上面的設備清單中的screen-capture-recorder
(見上圖;安裝好後再執行查看設備的命令才會出現)。 - 直接使用ffmpeg內置的
gdigrab
。
第一種我操作失敗了,所以我選用第二種。現在我需要記住的的是音頻輸入設備名稱麥克風陣列 (Realtek(R) Audio)
。
- 查看可用編碼器
輸入ffmpeg -encoders |findstr "hevc 265"
,查看可用的編碼器。我的電腦支援這些:
該選擇哪一個呢?
- 首先
libx265
是通用的,選這個最保守,但是它再不做優化的情況下是靠cpu運算。簡單理解,一旦開啟錄屏,你的電腦cpu使用率會飆升,甚至造成電腦卡頓。嘗試一下,如果沒有造成卡頓,就可以計需用這個編碼器了。 - 如果電腦配置有限,或者有獨立顯示卡的話,咱們可以挑一個獨顯支援的編碼器。我的電腦是NVIDIA的獨顯,所以我選擇與之對應的
hevc_nvenc
編碼器。
你該怎麼找到適合的呢?首先知道自己的電腦有沒有獨顯,獨顯是Intel的,還是NVIDIA的,還是AMD的,然後從關鍵詞裡面找對應的就行。拿我的清單舉例:如果是AMD的,就選hevc_amf
,如果是Intel的,就選hevc_qsv
。 或者乾脆挨個嘗試一下,反正又不多。
怎麼判斷錄屏是否用到了獨顯呢?咱們再下一步的時候介紹。現在我要記住適合我的編碼器hevc_nvenc
。
- 錄屏
通過上面兩步,我記住了我的音頻輸入設備是麥克風陣列 (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
是錄屏文件保存位置和名稱。可根據自己的需要修改。
- 調優
- 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會導致執行失敗!
最後,如有交代不清的,或者錯誤之處,歡迎交流指正!