linux 显卡转码,ffmpeg用GPU转码
8種機(jī)械鍵盤(pán)軸體對(duì)比
本人程序員,要買(mǎi)一個(gè)寫(xiě)代碼的鍵盤(pán),請(qǐng)問(wèn)紅軸和茶軸怎么選?
有些視頻編碼太屌,播放起來(lái)對(duì)CPU消耗巨大,而在電視上或者電視盒子上看視頻,編碼就需要合適,樓主用的FireTV Stick,用起KODI確實(shí)吃力,放些編碼太強(qiáng)的視頻是不行的,所以就想到了先在電腦上轉(zhuǎn)碼,其實(shí)轉(zhuǎn)碼最專(zhuān)業(yè)的莫過(guò)于ffmpeg,但是因?yàn)槭敲钚泄ぞ?#xff0c;一開(kāi)始偷懶不想用,于是試了Handbrake,也是開(kāi)源,不過(guò)也只是把ffmpeg包轉(zhuǎn)一下而已,轉(zhuǎn)一個(gè)105分鐘的視頻為mp4竟然用了一個(gè)多小時(shí),而且樓主的電腦配置還是挺不錯(cuò),i5-6600K 16G DDR4 3200MHZ GTX970 +500G ssd. 這樣依然用了一個(gè)多小時(shí),真是在逗我。主要原因還是CPU利用率太低了,于是想到既然是視頻相關(guān),為什么不能用GPU呢,畢竟論能力GPU還是比CPU強(qiáng)大,于是發(fā)現(xiàn)確實(shí)有這種東西,卻是很新的技術(shù),最后還是逃不過(guò)ffmpeg.
平臺(tái)
GPU轉(zhuǎn)碼,自然要分是誰(shuí)的GPU,包括NVDIA的NVENC,之前叫CUDA.
AMD的VEC
Intel的QSV
不過(guò)ffmpeg貌似只支持NVENC和QSV,AMD的還沒(méi)有支持。博主的是GTX970便NVENC為例。
前提驅(qū)動(dòng)版本要求,Linux: >=367.35,Windows: >=368.69. 還是非常新的。
ffmpeg支持,編譯時(shí)不要--disable-nvenc
編譯ffmpeg
ffmpeg官網(wǎng)是不提供編譯好的windows版的,而是由zeranoe編譯的,博主未試。大家可以試試。也可以用cygwin,不過(guò)樓主還是自己編譯了。
畢竟是開(kāi)源的東西,在windows編譯比較麻煩,就在linux上cross compile,已經(jīng)有人做了一鍵編譯腳本,在github上。直接放在linux運(yùn)行就行了,編譯需要硬盤(pán)空間10G.
轉(zhuǎn)換
編譯完成后拷貝到windows,并放到自己的PATH,可以在CMD或者PowerShell運(yùn)行。具體的參數(shù)嘛,可是有些麻煩,因?yàn)槟阆纫私庖曨l編碼的各種知識(shí),具體看官方的手冊(cè)。
mp4編碼必是主流,也是好用,這是我用的參數(shù),自行調(diào)整1ffmpeg -i input_video -c:v h264_nvenc -profile:v high -level 4.1 -preset fast -b:v 7M -pix_fmt yuv420p output.mp4
上面的參數(shù)適合1080P視頻,效果頗是不錯(cuò),還可以用-r限制fps,比如-r 24。-c:v h264_nvenc是用NVENC進(jìn)行編碼,-pix_fmt yuv420p 對(duì)第十代(GTX10xx)之前都是必須的,和顏色編碼相關(guān),因?yàn)閒fmpeg默認(rèn)使用yuv444p,然而這只在第十代之后支持,所以不限定就會(huì)報(bào)錯(cuò)。
轉(zhuǎn)換105分鐘視頻只用了大概18分鐘,相比之前的一個(gè)多小時(shí)真是太快了。
添加字幕
如果想在轉(zhuǎn)換過(guò)程中添加字幕,若輸出格式為mp4,可以添加-f ass(or srt) -i subtitle_file -c:s mov_text,若輸出格式為mkv,可以添加-i subtitle_file -c:s copy,如果想給一個(gè)視頻只加字幕(mp4),可以使用:1ffmpeg -i input_video -f ass(or srt) -i subtitle_file -c:v copy -c:a copy -c:s mov_text output.mp4
總結(jié)
以上是生活随笔為你收集整理的linux 显卡转码,ffmpeg用GPU转码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 什么啤酒减肥法?
- 下一篇: Linux 服务器拷贝远程文件 SCP