一、安裝1.下載2.安裝??首先,我們打開FFmpeg的官網(wǎng),然后點(diǎn)擊“Download”按鈕,進(jìn)入下載頁面,下載對應(yīng)的版本即可。然后在電腦上安裝。Windows還需要將安裝目錄添加到環(huán)境變量。 ??查看FFmpeg的幫助界面,讓我們在控制臺輸入以下命令: ?? ??然后ffmpeg就會輸出它的幫助信息。由于信息是英文的,因此需要一點(diǎn)耐心去閱讀它。 ?? ??這是關(guān)于編碼器和解碼器的信息,然后我們可以輸入以下代碼,分別查看編碼器和解碼器的可選項(xiàng): ffmpeg -decoders ffmpeg -encoders ffmpeg -codecs ??我們會發(fā)現(xiàn)輸出了一堆信息,讓我們眼花繚亂。是的,F(xiàn)Fmpeg就是這么強(qiáng)大,支持很多的編解碼器. 二、命令1.ts轉(zhuǎn)mp4
??copy為原視頻格式 ??有一點(diǎn)要注意,ffmpeg使用時候文件名稱不能包含空格,否則會跳過,如果有空格需要加上引號,例如 "v i d eo.ts"
??轉(zhuǎn)為H264格式,速度略慢,取決于電腦速度
2.ts批量轉(zhuǎn)為mp4??在電腦上,新建一個.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" ) 3.視頻壓縮??hevc壓縮
??然后,經(jīng)過一段時間的等待,我們就可以看到結(jié)果了! ??進(jìn)行更高級的壓縮??在這里,我們講解一下上面的參數(shù)設(shè)置的含義。crf是Constant Rate Factor的縮寫,它的值越小,畫質(zhì)越高,占用的空間越大。它的可選項(xiàng)為0~51,默認(rèn)為28.當(dāng)crf在20以下的時候,就能實(shí)現(xiàn)視覺上的無損。 ??此外,F(xiàn)Fmpeg還為我們提供了一些預(yù)設(shè)選項(xiàng),我們可以通過preset選項(xiàng),快速設(shè)置x265編碼的時候使用到的參數(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 對于上面的視頻,我們可以用下面這個壓縮命令:
??雖然這次的體積只減少了13.1%,但是肉眼看視頻的時候,很明顯感覺視頻畫質(zhì)和原視頻沒啥區(qū)別。 這樣算下來,1GB的視頻,使用最高畫質(zhì)的無損壓縮,可以節(jié)省下131MB的空間呢!還是很可觀的! ??關(guān)鍵參數(shù)??;視頻壓縮用到的參數(shù)主要為以下幾個: 文件路徑:-i 輸入文件的路徑 碼率:-b:v 輸出文件的碼率 分辨率:-s 輸出文件的分辨率; 幀率:-r 輸出文件的幀率值 碼率 碼率,即波特率。值越小,轉(zhuǎn)換后的視頻越小 碼率??就是數(shù)據(jù)傳輸時單位時間傳送的數(shù)據(jù)位數(shù),一般我們用的單位是kbps即千位每秒。 ??碼率與體積成正比:碼率越大,體積越大;碼率越小,體積越小。由于文件體積與取樣率是成正比的,所以幾乎所有的編碼格式都想用最低的碼率達(dá)到最少的失真,“碼率”就是失真度,碼率越高越清晰,反之則畫面粗糙而且馬賽克多。 ??建議碼率不要小于500。一般500k左右,人眼看不到明顯的閃爍。 ?? 案例: 分辨率??指的是視頻的分辨率,常見的分辨率有40962304,19201080,720*576等。具體的值,可以根據(jù)源視頻的分辨率做個等比的縮小。 ?? 案例: 幀率??即視頻更新率,就是每秒編碼進(jìn)視頻文件的幀數(shù)目,是用于測量顯示幀數(shù)的量度。測量單位為“每秒顯示幀數(shù)”(Frame Per Second,F(xiàn)PS,幀率)或“赫茲”,單位用FPS用來描述視頻每秒播放多少幀,而單位用赫茲用來描述顯示器的畫面每秒更新多少次。 ??常見的帖率有25、30,高清電視有50、60幀。一般幀率越高,視頻畫面越流暢。但是人類的眼睛需要每秒至少15幀才能將圖像連貫在一起~ ?? 案例: 將視頻壓縮指定大小 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 4.視頻裁剪??ffmpeg提供簡單的命令參數(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 ??對上面的命令稍做個解釋。 -ss 開始時間,如: 00:00:20,表示從20秒開始; -t 時長,如: 00:00:10,表示截取10秒長的視頻; -i 輸入,后面是空格,緊跟著就是輸入視頻文件; -vcodec copy 和 -acodec copy表示所要使用的視頻和音頻的編碼格式,這里指定為copy表示原樣拷貝; INPUT,輸入視頻文件; OUTPUT,輸出視頻文件; |
|