服務(wù)器
在開(kāi)始本文的正文之前,首先得安裝好ffmpeg程序(Linux下還得安裝x264編碼)。Mac下直接用brew安裝:
成都創(chuàng)新互聯(lián)長(zhǎng)期為上千余家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為淄博企業(yè)提供專(zhuān)業(yè)的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì),淄博網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。brew install ffmpeg --with-faac --with-fdk-aac --with-ffplay --with-fontconfig --with-freetype --with-libass --with-libbluray --with-libcaca --with-libsoxr --with-libquvi --with-frei0r --with-libvidstab --with-libvorbis --with-libvpx --with-opencore-amr --with-openjpeg --with-openssl --with-opus --with-rtmpdump --with-schroedinger --with-speex --with-theroa --with-tools --with-x265
裝好后就可以用ffmpeg這個(gè)命令壓制MP4文件了:
ffmpeg -i MVI_7274.MOV -vcodec libx264 -preset fast -crf 20 -y -vf scale=1920:-1 -acodec libmp3lame -ab 128k a.mp4
參數(shù)解釋如下(從這里參考而來(lái),有修改:https://vistb.net/2012/02/x264-video-compress-intro/):
-preset:指定編碼的配置。x264編碼算法有很多可供配置的參數(shù),不同的參數(shù)值會(huì)導(dǎo)致編碼的速度大相徑庭,甚至可能影響質(zhì)量。為了免去用戶(hù)了解算法,然后手工配置參數(shù)的麻煩。x264提供了一些預(yù)設(shè)值,而這些預(yù)設(shè)值可以通過(guò)preset指定。這些預(yù)設(shè)值有包括:ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow和placebo。ultrafast編碼速度最快,但壓縮率低,生成的文件更大,placebo則正好相反。x264所取的默認(rèn)值為medium。需要說(shuō)明的是,preset主要是影響編碼的速度,并不會(huì)很大的影響編碼出來(lái)的結(jié)果的質(zhì)量。壓縮高清電影時(shí),我一般用slow或者slower,當(dāng)你的機(jī)器性能很好時(shí)也可以使用veryslow,不過(guò)一般并不會(huì)帶來(lái)很大的好處。
-crf:這是最重要的一個(gè)選項(xiàng),用于指定輸出視頻的質(zhì)量,取值范圍是0-51,默認(rèn)值為23,數(shù)字越小輸出視頻的質(zhì)量越高。這個(gè)選項(xiàng)會(huì)直接影響到輸出視頻的碼率。一般來(lái)說(shuō),壓制480p我會(huì)用20左右,壓制720p我會(huì)用16-18,1080p我沒(méi)嘗試過(guò)。個(gè)人覺(jué)得,一般情況下沒(méi)有必要低于16。最好的辦法是大家可以多嘗試幾個(gè)值,每個(gè)都?jí)簬追昼?,看看最后的輸出質(zhì)量和文件大小,自己再按需選擇。
其實(shí)還有-b 1024k這樣的參數(shù),但是我發(fā)現(xiàn)-crf設(shè)置上后-b就不管用了。根據(jù)我自己的簡(jiǎn)單嘗試,壓制5D2拍攝的一段18秒1920x1080的視頻(下午自然光、圖像簡(jiǎn)單、大面積白墻、只有一扇黑門(mén))crf和壓出來(lái)的文件大小關(guān)系如下:
crf
文件大小
16
54M
18
39M
20
25M
22
17M
24
11M
26
7.3M
28
5.0M
30
3.6M
32
2.7M
默認(rèn)
14M(crf為23)
又比較了一下crf在20、28、32時(shí)的視頻質(zhì)量,發(fā)現(xiàn)32還是能看出質(zhì)量下降的,20的確非常精細(xì),但28跟20之間的差別并不是那么大,crf值設(shè)置在26-28之間比較好。如果對(duì)尺寸有要求,什么都不設(shè),用默認(rèn)的也行(可能是31)。
另外,關(guān)于preset,slow和fast只跟運(yùn)行時(shí)間有關(guān),slow跑的時(shí)間比f(wàn)ast長(zhǎng)不少,slow出來(lái)的mp4文件會(huì)小一些(12M),fast出來(lái)的文件會(huì)大一些(14M),但視頻質(zhì)量的差距并不明顯。
如果把原視頻尺寸從1920x1080縮小到960x540,則視頻尺寸變?yōu)榱耍?/p>
crf
文件大小
16
11M
18
6.7M
20
4.4M
22
3.0M
24
2.1M
26
1.6M
28
1.3M
30
1.1M
32
893K
默認(rèn)
2.5M(crf為23)
綜上,對(duì)質(zhì)量要求較高時(shí),選22以下;對(duì)尺寸要求非常高時(shí),選26(但質(zhì)量確實(shí)是會(huì)稍差一些),否則選24的性?xún)r(jià)比比較高(或者默認(rèn)的23也行),如果對(duì)尺寸實(shí)在要求非常非常高,那就28以上吧。
后記補(bǔ)充(來(lái)自@gghyoo)
可以用-threads n
來(lái)實(shí)施多線(xiàn)程的運(yùn)算,充分利用多核cpu
例子如下:
ffmpeg -threads 2 -crf 20 -y -i ML-02.avi -strict experimental ML-02.mp4
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。
網(wǎng)站標(biāo)題:利用ffmpeg命令行轉(zhuǎn)壓視頻示例代碼
轉(zhuǎn)載源于:http://jinyejixie.com/article38/cjdesp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、企業(yè)建站、網(wǎng)頁(yè)設(shè)計(jì)公司、小程序開(kāi)發(fā)、自適應(yīng)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)