最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

(10)手把手教會(huì)用ffmpeg錄屏,免費(fèi)無水印

2020-03-05 14:35 作者:思思陸思思  | 我要投稿

開始up是看這篇了解的:

個(gè)人感覺很實(shí)用方便,一條命令行復(fù)制粘貼回車即開始錄制,隨時(shí)可停止并保存當(dāng)前錄好的文件。(注意是停止不是暫停)

本文基于Windows 10系統(tǒng),非Windows系統(tǒng)不適用。

非代碼情況下,up不建議平時(shí)用ffmpeg錄制。本文只是入門能錄,并不能保證錄制沒問題。(如掉幀、音畫不同步等)個(gè)人推薦用obs軟件錄制。

ffmpeg的介紹、下載安裝及如何運(yùn)行看下面這篇。本文就默認(rèn)都至少有第一篇的基礎(chǔ)了(最好有到第三篇第五篇的基礎(chǔ),up這里不講太細(xì),因?yàn)槎际俏覍戇^的東西看了就一路手把手過來的x



一、只錄畫面,無聲音??!

很簡單,安裝好ffmpeg,能正常運(yùn)行的話,打開cmd輸入以下命令行:(注意有空格?。。?/strong>

ffmpeg -f gdigrab -i desktop?-pix_fmt yuv420p .\out.mp4

按回車就開始錄了,像這樣最后的out.mp4在桌面??梢宰孕性O(shè)定保存目錄。這樣錄制默認(rèn)分辨率是你系統(tǒng)當(dāng)前使用的分辨率,默認(rèn)幀率29.97,目前版本下默認(rèn)視頻編碼格式是h264。

如下圖即是開始錄制成功。

按“Q”鍵或“ctrl+c”鍵停止并保存,如下圖:


這里的“dup”,duplicate指重復(fù)幀的數(shù)量,“drop”,drop指掉幀丟棄幀數(shù)量。太多會(huì)有警告。

專欄有修改,這張懶得換了

我們可以加上一些參數(shù)來對(duì)錄制進(jìn)行一些設(shè)定。例如“-c:v h264”表示視頻編碼格式是h264,“-b:v 2000k”表示視頻比特率設(shè)為2000k,“-videosize 1920*1080”表示分辨率設(shè)為1080p,“-framerate?25”是幀率為25。這里留意-videosize放在-i前作為對(duì)input的參數(shù)設(shè)置,而常用的-s是對(duì)output的參數(shù)設(shè)置。因此如果在input前后的分辨率寬高比不同的話會(huì)被拉伸。(至于更多參數(shù)及相關(guān)可以翻我的ffmpeg系列教程專欄食用)

強(qiáng)調(diào)的是,“-pix_fmt yuv420p”非常重要,一定加上!詳情參考https://blog.csdn.net/chqaz123/article/details/101016853(雖然不加這個(gè)參數(shù)也能錄,不影響錄制過程,但會(huì)產(chǎn)生上面參考里的問題和本地傳輸文件比如發(fā)到手機(jī)上看只有灰屏的問題)(專欄有修改過,所以不必要的圖片沒加上這個(gè)參數(shù)的up就懶得換了且也不影響圖片本身展示的結(jié)果)

命令行像下面這樣:(注意空格?。。?/strong>(-framerate一定要在-i前面,這里不展開講,加上其與“-r”的異同都參考http://www.imooc.com/article/254520)

ffmpeg -f gdigrab -framerate 25?-videosize?1920*1080?-i desktop -pix_fmt yuv420p?-c:v h264 -b:v 2000k?.\out.mp4

回車開始,都同上一樣。


這里介紹一下,gdigrab是ffmpeg內(nèi)置的用于獲取Windows桌面作為輸入流的設(shè)備。在ffmpeg中,設(shè)備可以被視為是一種“格式”,所以可用“-f gdigrab”來調(diào)用相關(guān)設(shè)備。



二、錄畫面+聲音,無麥克風(fēng)?。?strong>

要加上錄制聲音,我們需要給ffmpeg“裝點(diǎn)東西”~

在下面這個(gè)網(wǎng)址下載一個(gè)screen capture recorder:

https://sourceforge.net/projects/screencapturer/files

點(diǎn)擊紅圈內(nèi)文件,稍等即開始下載。

或者在下面這個(gè)網(wǎng)址也行:

https://github.com/rdp/screen-capture-recorder-to-video-windows-free/releases

也是點(diǎn)擊紅圈內(nèi)的文件就開始下載。

它的安裝就英文界面沒啥特殊的,走完就行


安裝完成后我們打開cmd,輸入以下命令行看dshow是否能顯示相關(guān)設(shè)備:

ffmpeg -list_devices true -f dshow -i dummy

如果像下圖這樣顯示則安裝成功。


現(xiàn)在我們就可以開始錄了。和開頭一樣輸入“保底”的命令行如下:

ffmpeg -f gdigrab -i desktop -f dshow -rtbufsize 60M -i audio="virtual-audio-capturer" -pix_fmt yuv420p?.\out.avi

ffmpeg -f dshow?-i?video="screen-capture-recorder":audio="virtual-audio-capturer"?-pix_fmt yuv420p?.\out.mp4

也是一樣回車。dshow默認(rèn)幀率30,其它默認(rèn)值和上面第一節(jié)提的一樣。音視頻相關(guān)參數(shù)依實(shí)際需求及電腦配置相關(guān)環(huán)境設(shè)置。同樣地,我們安裝的dshow對(duì)ffmpeg也是一個(gè)設(shè)備。dshow也可以錄制畫面,當(dāng)然我們也可以gdigrab錄畫面+dshow錄聲音。

在錄制中,ffmpeg要實(shí)時(shí)采集音視頻流并編碼封裝輸出成視頻。若編碼封裝速度不夠,原來默認(rèn)的緩存區(qū)容易堆滿,就會(huì)出現(xiàn)“堆積”警告,容易導(dǎo)致“掉幀卡頓”。像up的i5 7200U,8g內(nèi)存出現(xiàn)了下圖這種情況:(貌似只有dshow會(huì)紅字警告,雖然gdigrab不會(huì)警告但是不代表不會(huì)“卡頓”)

這樣我們要用一個(gè)“-rtbufsize”參數(shù)自行設(shè)置緩存區(qū)大小,具體值要看電腦配置和錄制需求。例如up大概舉個(gè)例子:(像錄視頻的話建議設(shè)置更大,比如-rtbufsize 1G)

ffmpeg -f dshow -rtbufsize 160M -framerate 30?-videosize?1920*1080?-i?video="screen-capture-recorder":audio="virtual-audio-capturer"?-pix_fmt yuv420p?-c:v h264 -c:a copy -b:v 3000k -preset veryfast .\out.avi

專欄有修改,這張懶得換了

像下圖就算是開始錄制成功。

注意,用dhsow錄屏的話-framerate設(shè)置似乎不能大于30。up也不建議用“-r”來設(shè)置幀率,個(gè)人覺得因?yàn)?frame是對(duì)輸入設(shè)置的參數(shù),-r是輸出設(shè)置,所以可能受到輸入輸出之間因幀率不同而多產(chǎn)生出轉(zhuǎn)換幀率這步的影響。并據(jù)群友OL提供的經(jīng)驗(yàn),用-r會(huì)有實(shí)際錄制時(shí)長和錄制視頻的時(shí)長不對(duì)等的情況,視頻像是被加速了,可能因?yàn)?r沒有時(shí)間戳的限制,根據(jù)速率生成新的時(shí)間戳導(dǎo)致。

這里up也十分感謝群友OL提供的關(guān)于“-pix_fmt”和“-framerate”的經(jīng)驗(yàn)情況。正因此,up才得以進(jìn)一步完善本文

專欄有修改,這張懶得換了

如圖是“-rtbufsize 160M”,即設(shè)置緩存區(qū)大小為160M。(保留觀點(diǎn):緩存區(qū)也不是越大越好。太大的話因?yàn)椤岸逊e”多點(diǎn)也沒事,ffmpeg就會(huì)把“重頭戲”放在保證編碼質(zhì)量上,最后輸出的音視頻就容易“錯(cuò)位對(duì)不上軌”。

現(xiàn)在我們有兩種做法。一是調(diào)用顯卡硬件來加速編碼,二是復(fù)制編碼或利用預(yù)設(shè)條件加快編碼。up這里是第二種做法,使用“-c:a copy”直接復(fù)制音頻的編碼就是pcm_s16le,包括和用-c:a aac的區(qū)別在最后補(bǔ)充事項(xiàng)里再說)還有“-preset veryfast”。“-preset”參數(shù)有“ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo”這些檔位。感覺一般看情況用“ultrafast、superfast、veryfast”這三個(gè)。

當(dāng)然這兩個(gè)做法都會(huì)損失一定質(zhì)量,個(gè)人感覺顯卡不是很強(qiáng)的話會(huì)更損質(zhì)量。調(diào)用顯卡的參數(shù)例如intel集成顯卡是“-c:v h264_qsv”,n卡“-c:v h264_nvenc”,a卡“-c:v h264_amf”。更多相關(guān)可以看下面這篇:



三、錄畫面+聲音+麥克風(fēng)?。?/h1>

首先看第二節(jié)一開始的顯示測(cè)試圖,找到我們的麥克風(fēng)設(shè)備名:(因人而異,自己查看?。?/strong>

這個(gè)便是up的麥克風(fēng)設(shè)備名。但是中文名字亂碼了…不過alternative name(另一個(gè)名字)一般都能用就行。

up的命令行如下:(這個(gè)相關(guān)參數(shù)設(shè)置也是看各人,“麥克風(fēng)”改成你的麥克風(fēng)設(shè)備名)

ffmpeg -f dshow -rtbufsize 40M -i audio="virtual-audio-capturer" -f dshow -rtbufsize 40M -i audio="麥克風(fēng)" -filter_complex amix=inputs=2?-f dshow -rtbufsize 160M -framerate 25?-videosize?1920*1080?-i video="screen-capture-recorder" -pix_fmt yuv420p -c:v h264 -c:a pcm_s16le -b:v 3000k?-preset superfast .\out.avi

專欄有修改,這張懶得換了

向懂ffmpeg基礎(chǔ)的朋友說明一下。這里的音頻編碼是直接用原來采集的未壓縮編碼格式,可以自行設(shè)置編碼,但不能像之前那樣直接copy,因?yàn)橛昧薬mix濾鏡將兩個(gè)音頻輸入流混成一個(gè)音頻流輸出。另外這里沒有設(shè)置amix的輸入輸出流,默認(rèn)就是緊接濾鏡之前的輸入流,因此不要變動(dòng)現(xiàn)在輸入流的順序。

像下圖就算是開始錄制成功。

專欄有修改,這張懶得換了

這樣最后聲音可能會(huì)比視頻畫面略有“延遲”,大概零點(diǎn)幾秒,up覺得一般還行(也許是我電腦太菜了qaq)

還可以使用多個(gè)麥克風(fēng)。命令行如下:

ffmpeg -f dshow -rtbufsize 40M -i audio="virtual-audio-capturer" -f dshow -rtbufsize 40M -i audio="麥克風(fēng)1" -f dshow -rtbufsize 40M -i audio="麥克風(fēng)2"?-filter_complex amix=inputs=3:duration=first:dropout_transition=3?-f dshow -rtbufsize 160M -framerate 25 -videosize?1920*1080?-i video="screen-capture-recorder" -pix_fmt yuv420p -c:v h264 -c:a pcm_s16le -b:v 3000k -preset superfast .\out.avi

“麥克風(fēng)”改名同理。而且記得把“-filter_complex amix=inputs=3:duration=first:dropout_transition=3”數(shù)值作相應(yīng)改動(dòng)。比如現(xiàn)在的“3”就是兩個(gè)麥克風(fēng)加電腦自身揚(yáng)聲器的意思。



四、制作bat文件直接開錄!!

可以做個(gè)bat文件方便各種需求的錄制。首先把相應(yīng)命令行粘貼到新建的記事本:

保存,后綴txt改為bat,可以起個(gè)描述錄制需求的名字比如“只錄屏無聲”“錄屏無麥”“一般錄制”“游戲錄制”……最后如下圖:

雙擊運(yùn)行就直接開始錄制了。



五、補(bǔ)充事項(xiàng),注意?。?/h1>

還能用一些參數(shù)設(shè)置錄屏的時(shí)長,區(qū)域等。例如“-video_size 960*540 -offset_x 200 -offset_y 80?-t 15”表示以屏幕最左上角為原點(diǎn)(0,0),以點(diǎn)(200,80)為起點(diǎn)框選錄制的區(qū)域大小及設(shè)置分辨率為960*540,錄制時(shí)長為15秒。當(dāng)然“-video_size”也可用crop或scale濾鏡來代替操作。

開始錄制后幾秒不要太急著操作??!


另外,可以用“ffmpeg -devices”查看ffmpeg支持哪些設(shè)備(up的例子)

(保留觀點(diǎn):gdigrab的抓屏效果比dshow差,可能容易出現(xiàn)“掉幀”。另外可能有時(shí)錄好的視頻里開頭幾秒會(huì)存在沒有鼠標(biāo)光標(biāo)的顯示。不過這些一般都還好,沒啥影響。up不建議用gdigrab錄屏,能用的話還是用dshow


up覺得錄制聲音還是用“-c:a pcm_s16le”最佳,這樣最后聲音可能會(huì)比視頻畫面略有延后,大概零點(diǎn)幾秒。過來是“-c:a copy”。至于“-c:a aac”,錄出來的畫面比聲音延后較多。錄制之后再用“-map”選定音軌壓制一下就好。


最后,up傳了幾個(gè)錄屏參考的模板bat文件在云盤,供大家學(xué)習(xí)研究啦:https://lusisi.lanzouv.com/b015i2qzi?密碼:84r3

更多錄屏相關(guān)可前往ffmpeg官方wiki查看:https://trac.ffmpeg.org/wiki/Capture/Capture/Desktop%E4%B8%AD%E6%96%87%E7%89%88%E6%9C%AC



感謝你觀看到這里。

(10)手把手教會(huì)用ffmpeg錄屏,免費(fèi)無水印的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
静乐县| 虎林市| 伊宁市| 灵璧县| 朝阳县| 罗山县| 汤阴县| 铜山县| 盐边县| 和顺县| 耒阳市| 兴安盟| 苗栗市| 木兰县| 太康县| 资中县| 洪洞县| 武强县| 集安市| 栾城县| 聊城市| 柏乡县| 铜鼓县| 华容县| 军事| 萍乡市| 东宁县| 鸡东县| 黄大仙区| 武城县| 和平县| 隆子县| 汉阴县| 永兴县| 西昌市| 云浮市| 新疆| 兰溪市| 安塞县| 晴隆县| 德阳市|