寫在前面
如果您對音視頻技術感興趣悦屏,可以訂閱我的專題:音視頻專輯
也可以關注我的簡書賬戶: 張芳濤,我后期會發(fā)布更多的音視頻以及圖像處理方面的文章键思。
正文
為了簡化在某些編解碼器中使用的大量選項础爬,我們可以使用預設置文件,其中的選項更好地格式化并保存以便將來使用吼鳞。
關于預設文件的介紹
預置文件是用于各種選項的文本文件看蚜,包括特定的編解碼器。它們包含鍵=值對赔桌,每個選項和注釋都包含在以#符號開始的行中供炎。
指定預設置文件的選項
選項 | 編碼類型 | 描述 |
---|---|---|
-apre | audio | 對于音頻渴逻,在Windows上最好使用-fpre選項 |
-spre | subtitle | 對于字幕,在Windows上最好使用-fpre選項 |
-vpre | video | 對于視頻音诫,在Windows上最好使用-fpre選項 |
-fpre | any codec | 對于任何編解碼器類型惨奕,該值都是包含選項的文件名 |
一個簡單的預設置文件mpeg2。ffpreset只能包含1個選項竭钝,例如:
vcodec=mpeg2video
要用mpeg2video編解碼器編碼一些輸入梨撞,我們可以使用以下命令:
ffmpeg -i input -fpre mpeg2.ffpreset -q 1 MPEG2_video.mpg
下一個命令用flv (Flash視頻)編解碼器編碼在網(wǎng)絡上的使用:
ffmpeg -i input.avi -vcodec flv -f flv -r 29.97 -vf scale=320:240 ^ -aspect 4:3 -b:v 300k -g 160 -cmp dct -subcmp dct -mbd 2 -flags ^ +aic+mv0+mv4 -trellis 1 -ac 1 -ar 22050 -b:a 56k output.flv
該命令很長,并且在命令行上對各種更改進行編輯并不容易香罐,因此我們將其修改為名為flv的預設置文件卧波。ffpreset將包含與flv編解碼器相關的選項(括號中的注釋不是文件的一部分):
vcodec=flv | (視頻編解碼器) |
---|---|
b:v=300k | (視頻比特率) |
g=160 | (圖片組大小) |
mbd=2 | (macroblock決策算法) |
flags=+aic+mv0+mv4 | (aic - h263高級內(nèi)部編碼;總是嘗試使用mv=<0,0>;mv4 -使用macroblock的4運動矢量) |
trellis=1 | (rate失真優(yōu)化量化) |
ac=1 | (聲道數(shù)) |
ar=22050 | (音頻采樣率) |
b:a=56k | (音頻比特率) |
現(xiàn)在,具有相同結果的命令將是:
ffmpeg -i input.avi -f flv -r 29.97 -vf scale=320:240 -aspect 4:3 ^ -cmp dct -subcmp dct -fpre flv.ffpreset output.flv
預置文件的例子
FFmpeg文檔提供了幾種常見的預置庇茫,并將其描述如下:
libx264-ipod320.ffpreset | libx264-ipod640.ffpreset |
---|---|
vcodec=libx264 vprofile=baseline level=13 maxrate=768000 bufsize=3000000 |
vcodec=libx264 vprofile=baseline level=30 maxrate=10000000 bufsize=10000000 |
libvpx - 1080 p.ffpreset預置文件
vcodec=libvpx
g=120
lag-in-frames=16
deadline=good
cpu-used=0
vprofile=1
qmax=51
qmin=11
slices=4
b=2M
#ignored unless using -pass 2
maxrate=24M
minrate=100k
auto-alt-ref=1
arnr-maxframes=7
arnr-strength=5
arnr-type=centered
libvpx - 1080 p50_60.ffpreset預置文件
vcodec=libvpx
g=120
lag-in-frames=25
deadline=good
cpu-used=0
vprofile=1
qmax=51
qmin=11
slices=4
b=2M
#ignored unless using -pass 2
maxrate=24M
minrate=100k
auto-alt-ref=1
arnr-maxframes=7
arnr-strength=5
arnr-type=centered
libvpx - 360 p.ffpreset預置文件
vcodec=libvpx
g=120
lag-in-frames=16
deadline=good
cpu-used=0
vprofile=0
qmax=63
qmin=0
b=768k
#ignored unless using -pass 2
maxrate=1.5M
minrate=40k
auto-alt-ref=1
arnr-maxframes=7
arnr-strength=5
arnr-type=centered
libvpx - 720 p.ffpreset預置文件
vcodec=libvpx
g=120
lag-in-frames=16
deadline=good
cpu-used=0
vprofile=0
qmax=51
qmin=11
slices=4
b=2M
#ignored unless using -pass 2
maxrate=24M
minrate=100k
auto-alt-ref=1
arnr-maxframes=7
arnr-strength=5
arnr-type=centered
libvpx - 720 p50_60.ffpreset預置文件
vcodec=libvpx
g=120
lag-in-frames=25
deadline=good
cpu-used=0
vprofile=0
qmax=51
qmin=11
slices=4
b=2M
#ignored unless using -pass 2
maxrate=24M
minrate=100k
auto-alt-ref=1
arnr-maxframes=7
arnr-strength=5
arnr-type=centered