姓名:王一帆
學(xué)號:20011110225
轉(zhuǎn)載自https://blog.csdn.net/qjh5606/article/details/85233971
【嵌牛導(dǎo)讀】介紹ffmpeg的基礎(chǔ)語法語流程
【嵌牛正文】
ffmpeg [gl-opt] {[input-file-opt] -i input-url} ... {[output-file-opt] output-url} ...
其中, -i 表示輸入?yún)?shù).
主要參數(shù)
1.以 <> 包裹的表示由用戶具體指定;以 [] 包裹的表示是可選參數(shù),可以指定也可以省略。
2.括號內(nèi)的 i 表示該參數(shù)用于輸入流,o 表示用于輸出流,i/o 表示均可,global 表示全局參數(shù)。
3.關(guān)鍵字 duration, position 或 offset 滿足:[-][HH:]MM:SS[.m...] 這種時間戳格式?;蛘咭悦霝閱挝坏?SS[.m...] 格式。
常用的如下:
-b[:stream_specifier] (o):輸出比特率。
-f <fmt> (i/o):指定 fmt 作為輸入或輸出的視頻格式。一般會根據(jù)文件擴(kuò)展名自動選擇,但有時需要手動指定。
-i <filename> (i):指定 filename 作為源文件。
-y (global):文件存在時直接覆蓋。
-n (global):文件存在時不覆蓋并立即退出。
-bsf[:stream_specifier] <bitstream_filters> (o):設(shè)置比特流濾鏡。bitstream_filters 是一個逗號分隔的濾鏡列表。
-stream_loop <num> (i):指定輸入流的循環(huán)次數(shù)。0 表示不循環(huán),-1 表示無限循環(huán)。
-c[:stream_specifier] <codec> (i/o):-c可寫為-codec。選擇一個 codec ,即編碼器(輸出時)或一個解碼器(輸入時),參與到 stream_specifier 指定的一個或多個流的編碼/解碼中。在輸出時,<codec> 可以被指定為 copy,表示復(fù)制數(shù)據(jù)流。
-t <duration> (i/o):(在參數(shù) -i 之前指定)工作持續(xù) duration 時長。一般用于指定剪輯數(shù)據(jù)流的范圍。 它與 -to 參數(shù)相互沖突,但本參數(shù)優(yōu)先。
-to <position> (o):到 position 位置后,終止輸出。與 -t 參數(shù)沖突,本參數(shù)優(yōu)先級低。
-fs <limit_size> (o):輸出文件大小達(dá)到 limit_size 后停止輸出,單位是 byte.
-ss <position> (i/o):(在參數(shù) -i 之前指定)從 position 指定的位置開始工作。注意:大多數(shù)情形下,工作起始位置是不精確的。ffmpeg會找到其前部的一個點作為真正的起始,并在結(jié)束工作后將該點與用戶指定點之間的內(nèi)容拋棄。然而,如果你使用了 copy 參數(shù),這部分內(nèi)容卻會被保留。
-sseof <position> (i/o):類似 -ss 參數(shù),只不過是從數(shù)據(jù)流末端向前尋找 position。此時 0 表示數(shù)據(jù)流末。
-itsoffset <offset> (i):指定輸入流以原時間戳加上 offset 作為其輸入時間戳。
-metadata[:metadata_specifier] key=value (o):以鍵值對的形式設(shè)置元數(shù)據(jù)。
-frames[:stream_specifier] <num> (o):在輸出 num 幀后停止寫入。
-qscale[:stream_specifier] q (o):使用固定質(zhì)量(VBR)。
stats (global):輸出編碼過程,是系統(tǒng)默認(rèn)值??梢允褂?-nostats 關(guān)閉。
-attach <filename> (o):將 filename 文件附加到輸出文件。附件流作為文件的最后一個流,只有很少的文件類型被支持(例如字體)。
視頻參數(shù)
-vframes <num>:文件的總幀數(shù)。-frames:v 的別名。
-r[:steam_specifier] <fps> (i/o):文件的幀率。
-s[:steam_specifier] <size> (i/o):幀尺寸。參數(shù) size 需要滿足格式 <width>x<height>,例如320x240。 -aspect[:steam_specifier] <asp> (o):寬高比,例如 4:3。如果使用了 -vcodec copy,那么指定容器的寬高比而不是視頻的。
-vn (o):禁止輸出視頻。
-vcodec <codec> (o):設(shè)置視頻編碼器。-codec:v 的別名。
音頻參數(shù)
-aframes <num> (o):文件的總幀數(shù)。-frames:a 的別名。
-ar[:stream_specifier] <freq> (i/o):采樣率。默認(rèn)輸出等于輸入。僅當(dāng)輸入文件為真實設(shè)備或者 raw 數(shù)據(jù)時,該參數(shù)才能用于輸入過程。
-aq <q> (o):音頻品質(zhì)(VBR)。 -q:a 的別名。
-ac[:stream_specifier] <channel> (i/o):設(shè)置音頻通道數(shù)。默認(rèn)輸出等于輸入。僅當(dāng)輸入文件為真實設(shè)備或者 raw 數(shù)據(jù)時,該參數(shù)才能用于輸入過程。
-an (o):禁止輸出音頻。
-acode <codec> (i/o):設(shè)置音頻的解碼器或編碼器。-codec:a 的別名。
其他參數(shù)
以下直接在 ffmpeg 后使用,例如:ffmpeg -version
-bsfs:可用的比特流濾鏡。
-h [arg]:幫助。arg 的內(nèi)容可以是:
decoders:可用的解碼器。或特指:decoder=。
encoders:可用的編碼器?;蛱刂福篹ncoder=。
filters:所有濾鏡?;蛱刂福篺ilter=。
formats:可用的分流器與混流器?;蛱刂阜至髌鳎篸emuxer=,或特指混流器:muxer=。
-protocols:支持的協(xié)議。
-version:版本信息。