跨平臺(tái)的音視頻庫 FFmpeg基礎(chǔ)使用

FFmpeg 是一個(gè)開源的荐类、免費(fèi)的怖现、跨平臺(tái)的音視頻軟件,提供了錄制玉罐、轉(zhuǎn)換以及流化音視頻的完整解決方案屈嗤。

??FFmpeg (fast forward moving picture experts group)

? 2000年,法國天才程序員(Fabrice Bellard)開發(fā)出初版吊输。

? 2004年饶号,F(xiàn)abrcie 找到Micheal Meidermayer 接?。

? ijkplayer季蚂、VLC茫船、MPlayer、 HandBrake扭屁、Blender算谈、Google

Chrome。

參數(shù)介紹:

a) 通用選項(xiàng)

-L license

-h 幫助

-fromats 顯示可用的格式料滥,編解碼的然眼,協(xié)議的...

-f fmt 強(qiáng)迫采用格式fmt

-I filename 輸入文件

-y 覆蓋輸出文件

-t duration 設(shè)置紀(jì)錄時(shí)間 hh:mm:ss[.xxx]格式的記錄時(shí)間也支持

-ss position 搜索到指定的時(shí)間 [-]hh:mm:ss[.xxx]的格式也支持

-title string 設(shè)置標(biāo)題

-author string 設(shè)置作者

-copyright string 設(shè)置版權(quán)

-comment string 設(shè)置評(píng)論

-target type 設(shè)置目標(biāo)文件類型(vcd,svcd,dvd) 所有的格式選項(xiàng)(比特率,編解碼以及緩沖區(qū)大锌埂)自動(dòng)設(shè)置高每,只需要輸入如下的就可以了:ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg

-hq 激活高質(zhì)量設(shè)置

-itsoffset offset 設(shè)置以秒為基準(zhǔn)的時(shí)間偏移,該選項(xiàng)影響所有后面的輸入文件践宴。該偏移被加到輸入文件的時(shí)戳鲸匿,定義一個(gè)正偏移意味著相應(yīng)的流被延遲了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持

b) 視頻選項(xiàng)

-b bitrate 設(shè)置比特率阻肩,缺省200kb/s

-r fps 設(shè)置幀頻 缺省25

-s size 設(shè)置幀大小 格式為WXH 缺省160X128.下面的簡寫也可以直接使用:

Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576

-aspect aspect 設(shè)置橫縱比 4:3 16:9 或 1.3333 1.7777

-croptop size 設(shè)置頂部切除帶大小 像素單位

-cropbottom size –cropleft size –cropright size

-padtop size 設(shè)置頂部補(bǔ)齊的大小 像素單位

-padbottom size –padleft size –padright size –padcolor color 設(shè)置補(bǔ)齊條顏色(hex,6個(gè)16進(jìn)制的數(shù)带欢,紅:綠:蘭排列,比如 000000代表黑色)

-vn 不做視頻記錄

-bt tolerance 設(shè)置視頻碼率容忍度kbit/s

-maxrate bitrate設(shè)置最大視頻碼率容忍度

-minrate bitreate 設(shè)置最小視頻碼率容忍度

-bufsize size 設(shè)置碼率控制緩沖區(qū)大小

-vcodec codec 強(qiáng)制使用codec編解碼方式。如果用copy表示原始編解碼數(shù)據(jù)必須被拷貝洪囤。

-sameq 使用同樣視頻質(zhì)量作為源(VBR)

-pass n 選擇處理遍數(shù)(1或者2)。兩遍編碼非常有用谍憔。第一遍生成統(tǒng)計(jì)信息汽抚,第二遍生成精確的請(qǐng)求的碼率

-passlogfile file 選擇兩遍的紀(jì)錄文件名為file

c)高級(jí)視頻選項(xiàng)

-g gop_size 設(shè)置圖像組大小

-intra 僅適用幀內(nèi)編碼

-qscale q 使用固定的視頻量化標(biāo)度(VBR)

-qmin q 最小視頻量化標(biāo)度(VBR)

-qmax q 最大視頻量化標(biāo)度(VBR)

-qdiff q 量化標(biāo)度間最大偏差 (VBR)

-qblur blur 視頻量化標(biāo)度柔化(VBR)

-qcomp compression 視頻量化標(biāo)度壓縮(VBR)

-rc_init_cplx complexity 一遍編碼的初始復(fù)雜度

-b_qfactor factor 在p和b幀間的qp因子

-i_qfactor factor 在p和i幀間的qp因子

-b_qoffset offset 在p和b幀間的qp偏差

-i_qoffset offset 在p和i幀間的qp偏差

-rc_eq equation 設(shè)置碼率控制方程 默認(rèn)tex^qComp

-rc_override override 特定間隔下的速率控制重載

-me method 設(shè)置運(yùn)動(dòng)估計(jì)的方法 可用方法有 zero phods log x1 epzs(缺省) full

-dct_algo algo 設(shè)置dct的算法 可用的有 0 FF_DCT_AUTO 缺省的DCT 1 FF_DCT_FASTINT 2 FF_DCT_INT 3 FF_DCT_MMX 4 FF_DCT_MLIB 5 FF_DCT_ALTIVEC

-idct_algo algo 設(shè)置idct算法伺糠。可用的有 0 FF_IDCT_AUTO 缺省的IDCT 1 FF_IDCT_INT 2 FF_IDCT_SIMPLE 3 FF_IDCT_SIMPLEMMX 4 FF_IDCT_LIBMPEG2MMX 5 FF_IDCT_PS2 6 FF_IDCT_MLIB 7 FF_IDCT_ARM 8 FF_IDCT_ALTIVEC 9 FF_IDCT_SH4 10 FF_IDCT_SIMPLEARM

-er n 設(shè)置錯(cuò)誤殘留為n 1 FF_ER_CAREFULL 缺省 2 FF_ER_COMPLIANT 3 FF_ER_AGGRESSIVE 4 FF_ER_VERY_AGGRESSIVE

-ec bit_mask 設(shè)置錯(cuò)誤掩蔽為bit_mask,該值為如下值的位掩碼 1 FF_EC_GUESS_MVS (default=enabled) 2 FF_EC_DEBLOCK (default=enabled)

-bf frames 使用frames B 幀剥啤,支持mpeg1,mpeg2,mpeg4

-mbd mode 宏塊決策 0 FF_MB_DECISION_SIMPLE 使用mb_cmp 1 FF_MB_DECISION_BITS 2 FF_MB_DECISION_RD

-4mv 使用4個(gè)運(yùn)動(dòng)矢量 僅用于mpeg4

-part 使用數(shù)據(jù)劃分 僅用于mpeg4

-bug param 繞過沒有被自動(dòng)監(jiān)測(cè)到編碼器的問題

-strict strictness 跟標(biāo)準(zhǔn)的嚴(yán)格性

-aic 使能高級(jí)幀內(nèi)編碼 h263+

-umv 使能無限運(yùn)動(dòng)矢量 h263+

-deinterlace 不采用交織方法

-interlace 強(qiáng)迫交織法編碼僅對(duì)mpeg2和mpeg4有效。當(dāng)你的輸入是交織的并且你想要保持交織以最小圖像損失的時(shí)候采用該選項(xiàng)不脯「樱可選的方法是不交織,但是損失更大

-psnr 計(jì)算壓縮幀的psnr

-vstats 輸出視頻編碼統(tǒng)計(jì)到vstats_hhmmss.log

-vhook module 插入視頻處理模塊 module 包括了模塊名和參數(shù)防楷,用空格分開

D)音頻選項(xiàng)

-ab bitrate 設(shè)置音頻碼率

-ar freq 設(shè)置音頻采樣率

-ac channels 設(shè)置通道 缺省為1

-an 不使能音頻紀(jì)錄

-acodec codec 使用codec編解碼

E)音頻/視頻捕獲選項(xiàng)

-vd device 設(shè)置視頻捕獲設(shè)備牺丙。比如/dev/video0

-vc channel 設(shè)置視頻捕獲通道 DV1394專用

-tvstd standard 設(shè)置電視標(biāo)準(zhǔn) NTSC PAL(SECAM)

-dv1394 設(shè)置DV1394捕獲

-av device 設(shè)置音頻設(shè)備 比如/dev/dsp

F)高級(jí)選項(xiàng)

-map file:stream 設(shè)置輸入流映射

-debug 打印特定調(diào)試信息

-benchmark 為基準(zhǔn)測(cè)試加入時(shí)間

-hex 傾倒每一個(gè)輸入包

-bitexact 僅使用位精確算法 用于編解碼測(cè)試

-ps size 設(shè)置包大小,以bits為單位

-re 以本地幀頻讀數(shù)據(jù)复局,主要用于模擬捕獲設(shè)備

-loop 循環(huán)輸入流(只工作于圖像流冲簿,用于ffserver測(cè)試)

上面是FFmpeg比較全的一些使用參數(shù),可以選擇性的學(xué)習(xí)一下亿昏,我也是只用到其中部分

下面是一些比較常用到的實(shí)例

1. 基礎(chǔ)視頻輸出格式:

ffffmpeg(命令名)? ?-i(選項(xiàng))? input.mp4(原視頻) output.avi(輸出視頻)

2.?視頻裁剪

ffffmpeg -i input.mp4 -ss(開始時(shí)間) 00:00:00 -t 00:00:10(結(jié)束時(shí)間) output1.mp4

ffffmpeg -i input.mp4 -ss(開始時(shí)間) 00:00:00 -t 10(裁剪幾秒) output1.mp4

3.?提取音頻

ffffmpeg -i input.mp4(音視頻) -vn output2.mp3(純音頻)

4.?提取視頻

ffffmpeg -i input.mp4(音視頻) -an output2.mp4(純視頻)

5.?視頻轉(zhuǎn)gif

ffffmpeg -ss 0(開始時(shí)間) -t 10(結(jié)束時(shí)間) -i input.mp4(視頻) -s 320x240(尺寸) -f gif(格式) -r 10 (幀數(shù))output.gif(輸出gif圖片)

6.?添加字幕

ffffmpeg -i output1.mp4 -vf "subtitles=subtitle.srt"(提取字幕文件) output_with_subtitle.mkv(輸出視頻)

7.?音視頻合成

ffffmpeg -i input.mp4 -i cat.mp3 -c:v libx264 -threads 0 -preset veryfast -s 1280*720 -pix_fmt yuv420p -shortest -b:v

2500K -c:a aac -b:a 128k -r 50 -map 0:v:0 -map 1:a:0 -y output_merge.mp4

8.?加文字水印

ffffmpeg -i output.mp4 -vf "drawtext=fontsize=100:fontfifile=FreeSerif.ttf:text='水印文字':x=10:y=30" output_drawtext.mp4

9.?倍速處理

ffffmpeg -i output2.mp3 -fifilter_complex "atempo=tempo=2"(倍速調(diào)整) output_2x.mp3

10.?視頻合并

vim test.txt

加入

? ? file 1.mp4

? ? file 2.mp4

這兩行視頻名(有幾個(gè)視頻加幾行)

ffmpeg -f concat -i test.txt -c copy?test.mp4

還有其他方式峦剔,但以上這個(gè)方式是無損合成和兼容性最好的一種

這些就是FFmpeg的一些基礎(chǔ)使用,F(xiàn)Fmpeg還有很多好用的功能角钩,有不同需求的小伙伴可以自行查閱一些相關(guān)資料


FFmpeg參數(shù)部分取自于

https://www.cnblogs.com/xpylovely/p/11001771.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吝沫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子递礼,更是在濱河造成了極大的恐慌惨险,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脊髓,死亡現(xiàn)場(chǎng)離奇詭異平道,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)供炼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門一屋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人袋哼,你說我怎么就攤上這事冀墨。” “怎么了涛贯?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵诽嘉,是天一觀的道長。 經(jīng)常有香客問我,道長虫腋,這世上最難降的妖魔是什么骄酗? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮悦冀,結(jié)果婚禮上趋翻,老公的妹妹穿的比我還像新娘。我一直安慰自己盒蟆,他們只是感情好踏烙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著历等,像睡著了一般讨惩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上寒屯,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天荐捻,我揣著相機(jī)與錄音,去河邊找鬼寡夹。 笑死靴患,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的要出。 我是一名探鬼主播鸳君,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼患蹂!你這毒婦竟也來了或颊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤传于,失蹤者是張志新(化名)和其女友劉穎囱挑,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沼溜,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡平挑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了系草。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片通熄。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖找都,靈堂內(nèi)的尸體忽然破棺而出唇辨,到底是詐尸還是另有隱情,我是刑警寧澤能耻,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布赏枚,位于F島的核電站亡驰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏饿幅。R本人自食惡果不足惜凡辱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望栗恩。 院中可真熱鬧透乾,春花似錦、人聲如沸摄凡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亲澡。三九已至,卻和暖如春纫版,著一層夾襖步出監(jiān)牢的瞬間床绪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工其弊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留癞己,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓梭伐,卻偏偏與公主長得像痹雅,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子糊识,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容