FFmpeg Screen Recorder是筆者開發的一款開源小工具,可以在Linux上進行全螢幕或是視窗的錄影,也可以在錄影的同時錄下麥克風或是電腦播放的聲音。除此之外,FFmpeg Screen Recorder還支援了RTMP協定,可以即時地將目前電腦的畫面和聲音透過網路來直播。本篇文章也會提供使用FFmpeg Screen Recorder進行YouTube直播的方法哦!
安裝FFmpeg Screen Recorder
如果系統環境中有安裝「Cargo」的話,可以直接使用以下指令來下載「FFmpeg Screen Recorder」的原始碼專案,並進行編譯安裝。
或是直接到以下頁面取得「FFmpeg Screen Recorder」的執行檔,手動放置到/usr/local/bin
目錄中即可。網址如下:
Linux的額外設定
現階段的FFmpeg Screen Recorder只能支援X11(X Window System),不支援Wayland。如果您正在使用Wayland,請先替換成X11。
另外,FFmpeg Screen Recorder必須要搭配FFmpeg執行檔來使用,這個FFmpeg執行檔也必須要啟用libxcb、libfdk-aac和libx264函式庫,一般來說,Linux發行版所提供的軟體來源中的FFmpeg,已經有啟用libxcb、libfdk-aac和libx264函式庫了,因此可以直接使用官方軟體源中的FFmpeg。
接著,如果您的音效卡或音效卡的軟體並不能直接設定錄音來源的話,可以使用「PulseAudio Volume Control」這款軟體來切換。基於Debian的Linux發行版可以直接使用以下指令來安裝:
RedHat系的Linux發行版可以使用以下指令來安裝:
使用FFmpeg Screen Recorder
FFmpeg Screen Recorder的用法十分簡單,直接在終端機下輸入ffmpeg-screen-recorder
,即可開始進行全螢幕的無聲錄音。
在終端機下按下Ctrl + c即可停止錄製。
錄製的影片檔會使用MP4容器來儲存到目前的工作目錄下,檔名為錄製的時間。影片使用libx264(H.264)進行編碼,FPS為60,CRF為人類視覺上看起來無損的18,錄製出來的檔案不算太肥,可以長時間錄製,而且也保留了能夠後製、剪裁、再重新編碼的畫質。
如果要在錄影的同時也錄製聲音的話,可以加上-a
選項。如下:
影片的聲音會使用libfdk-aac(AAC LC)進行編碼,採用變動位元率V5(約192kbps),取樣頻率為44100Hz。錄製環境音和人聲已經是十分足夠了!
如果想要指定影片檔案的儲存路徑,可以加上-o
選項來設定。如下:
如果不想把整個螢幕都錄下來的話,可以加上-w
選項,在錄影前先用滑鼠選定要錄製的視窗。如下:
另外,如果有特殊需求,想讓影片保留螢幕或視窗畫面的原始尺寸,而不自動加上黑色背景填充成正規H.264 16:9影片的尺寸的話,可以加上-n
選項。如下:
PulseAudio Volume Control的設定方式
PulseAudio Volume Control可以協助您切換錄音訊號的來源。如果想要讓FFmpeg Screen Recorder錄製電腦發出的聲音,可以先讓FFmpeg Screen Recorder開始錄音錄影,然後就可以在PulseAudio Volume Control的「Recording」(錄音)頁籤中,找到Lavf
項目,這個就是FFmpeg Screen Recorder所使用的錄音程式。
預設的錄音來源可能會是Built-in XXX
(內建的XXX),將其改成Monitor of Built-in XXX
即可將來源從麥克風,切換成電腦發出的聲音。
YouTube 直播
前面有提到FFmpeg Screen Recorder支援RTMP協定,只要配合-o
選項,將RTMP協定的網址當作檔案儲存的位置來傳入,即可將影音透過RTMP協定來傳輸。至於YouTube用來直播的RTMP連結,可以在登入YouTube後,於這個頁面取得:
舉例來說,MagicLen頻道的串流金鑰為z1z3-mqp3-7p4g-9mgt
,則其RTMP網址就為:
只要將上面這串網址,帶進FFmpeg Screen Recorder的-o
選項,即可開始直播。
使用RTMP時FFmpeg Screen Recorder會將錄製出來的影片之FPS改為30,CRF改為25,以減少資料量,降低網路頻寬的使用。