??首先,我們打開FFmpeg的官網(wǎng),然后點(diǎn)擊“Download”按鈕,進(jìn)入下載頁面,下載對(duì)應(yīng)的版本即可。然后在電腦上安裝。Windows還需要將安裝目錄添加到環(huán)境變量。
??查看FFmpeg的幫助界面,讓我們?cè)诳刂婆_(tái)輸入以下命令:
??ffmpeg -h
??然后ffmpeg就會(huì)輸出它的幫助信息。由于信息是英文的,因此需要一點(diǎn)耐心去閱讀它。 ??
??這是關(guān)于編碼器和解碼器的信息,然后我們可以輸入以下代碼,分別查看編碼器和解碼器的可選項(xiàng):
ffmpeg -decoders ffmpeg -encoders ffmpeg -codecs
??我們會(huì)發(fā)現(xiàn)輸出了一堆信息,讓我們眼花繚亂。是的,F(xiàn)Fmpeg就是這么強(qiáng)大,支持很多的編解碼器.
ffmpeg -i video.ts -c copy video.mp4
??copy為原視頻格式
??有一點(diǎn)要注意,ffmpeg使用時(shí)候文件名稱不能包含空格,否則會(huì)跳過,如果有空格需要加上引號(hào),例如 "v i d eo.ts"
ffmpeg -i "vid eo.ts" -c copy "v ideo.mp4"
??轉(zhuǎn)為H264格式,速度略慢,取決于電腦速度
ffmpeg -i video.mp4 -vcodec h264 video.mp4
??在電腦上,新建一個(gè).bat文本,在ts視頻目錄執(zhí)行即可,下面del %%a,為轉(zhuǎn)為mp4之后,刪除原文件,不需要可刪除那段
代碼如下:
for %%a in (*.ts) do ( ffmpeg -i "%%a" -c copy "%%~na.mp4" del "%%a" )
??轉(zhuǎn)換多種格式
set Ext=*.ts,*.avi,*.wmv,*.flv,*.mkv,*.rmvb,*.rm,*.mov for %%a in (%Ext%) do ( ffmpeg -i "%%a" -c copy "%%~na.mp4" del "%%a" )
ffmpeg -i demo.mp4 -c:v libx265 -x265-params crf=18 output/demo_1.mp4
??然后,經(jīng)過一段時(shí)間的等待,我們就可以看到結(jié)果了!
??在這里,我們講解一下上面的參數(shù)設(shè)置的含義。crf是Constant Rate Factor的縮寫,它的值越小,畫質(zhì)越高,占用的空間越大。它的可選項(xiàng)為0~51,默認(rèn)為28.當(dāng)crf在20以下的時(shí)候,就能實(shí)現(xiàn)視覺上的無損。
??此外,F(xiàn)Fmpeg還為我們提供了一些預(yù)設(shè)選項(xiàng),我們可以通過preset選項(xiàng),快速設(shè)置x265編碼的時(shí)候使用到的參數(shù)。
??preset的可選項(xiàng)按照編碼速度從快到慢,排列如下:
ultrafast superfast veryfast faster fast medium slow slower veryslow placebo
??編碼速度越慢,則壓縮效果及畫質(zhì)越好。preset選項(xiàng)的默認(rèn)參數(shù)為medium。
??輸出最高壓縮效果的視覺無損視頻
ffmpeg -i 輸入文件名 -c:v libx265 -x265-params crf=18:preset=placebo output/輸出文件名.mp4
對(duì)于上面的視頻,我們可以用下面這個(gè)壓縮命令:
ffmpeg -i demo.mp4 -c:v libx265 -x265-params crf=18:preset=placebo output/demo_2.mp4
??雖然這次的體積只減少了13.1%,但是肉眼看視頻的時(shí)候,很明顯感覺視頻畫質(zhì)和原視頻沒啥區(qū)別。 這樣算下來,1GB的視頻,使用最高畫質(zhì)的無損壓縮,可以節(jié)省下131MB的空間呢!還是很可觀的!
??;視頻壓縮用到的參數(shù)主要為以下幾個(gè):
文件路徑:-i 輸入文件的路徑 碼率:-b:v 輸出文件的碼率 分辨率:-s 輸出文件的分辨率; 幀率:-r 輸出文件的幀率值 碼率 碼率,即波特率。值越小,轉(zhuǎn)換后的視頻越小
碼率??就是數(shù)據(jù)傳輸時(shí)單位時(shí)間傳送的數(shù)據(jù)位數(shù),一般我們用的單位是kbps即千位每秒。
??碼率與體積成正比:碼率越大,體積越大;碼率越小,體積越小。由于文件體積與取樣率是成正比的,所以幾乎所有的編碼格式都想用最低的碼率達(dá)到最少的失真,“碼率”就是失真度,碼率越高越清晰,反之則畫面粗糙而且馬賽克多。
??建議碼率不要小于500。一般500k左右,人眼看不到明顯的閃爍。
?? 案例:ffmpeg.exe -i test.MP4 -b 600k output.mp4
分辨率??指的是視頻的分辨率,常見的分辨率有40962304,19201080,720*576等。具體的值,可以根據(jù)源視頻的分辨率做個(gè)等比的縮小。
?? 案例:ffmpeg.exe -i test.MP4 -s 1920*1080 output.mp4
幀率??即視頻更新率,就是每秒編碼進(jìn)視頻文件的幀數(shù)目,是用于測(cè)量顯示幀數(shù)的量度。測(cè)量單位為“每秒顯示幀數(shù)”(Frame Per Second,F(xiàn)PS,幀率)或“赫茲”,單位用FPS用來描述視頻每秒播放多少幀,而單位用赫茲用來描述顯示器的畫面每秒更新多少次。
??常見的帖率有25、30,高清電視有50、60幀。一般幀率越高,視頻畫面越流暢。但是人類的眼睛需要每秒至少15幀才能將圖像連貫在一起~
?? 案例:ffmpeg.exe -i test.MP4 -r 25 output.mp4
將視頻壓縮指定大小
ffmpeg -i Desktop/input.mp4 -fs 10MB Desktop/output.mp4
??-fs 10 : 表示文件大小最大值為10MB
設(shè)置視頻的幀率為20fps
ffmpeg -i Desktop/input.mp4 -r 20 Desktop/output.mp4
??-r 20:表示幀率設(shè)置為 20fps
設(shè)置視頻的碼率
ffmpeg -i Desktop/input.mp4 -b:v 1M Desktop/output.mp4
??-b:v :指定視頻的碼率 ??-b:a : 指定音頻的碼率 ??1M:碼率的值 1M 表示 1Mb/s
設(shè)置視頻的分辨率
ffmpeg -i Desktop/input.mp4 -s 1920x1080 Desktop/output.mp4
??-s 1920x1080表示分辨率為1920x1080
可以結(jié)合上面的命令一起來使用
ffmpeg -i Desktop/input.mp4 -s 1920x1080 -b:v 1M -r 20 Desktop/output.mp4
??ffmpeg提供簡(jiǎn)單的命令參數(shù):
ffmpeg -ss START -t DURATION -i INPUT -vcodec copy -acodec copy OUTPUT ffmpeg -ss 00:00:01 -t 00:14:10 -i 11.15output.mp4 -vcodec copy -acodec copy 11.15output2.mp4
??對(duì)上面的命令稍做個(gè)解釋。
-ss 開始時(shí)間,如: 00:00:20,表示從20秒開始; -t 時(shí)長(zhǎng),如: 00:00:10,表示截取10秒長(zhǎng)的視頻; -i 輸入,后面是空格,緊跟著就是輸入視頻文件; -vcodec copy 和 -acodec copy表示所要使用的視頻和音頻的編碼格式,這里指定為copy表示原樣拷貝; INPUT,輸入視頻文件; OUTPUT,輸出視頻文件;
聯(lián)系客服