ffmpeg基本命令的使用。

1.簡介

ffmpeg的簡介就不多說了,照搬常見介紹:

引用wiki百科的解析.

FFmpeg是一個自由軟件,可以運行音頻和視頻多種格式的錄影、轉換、流功能1,包含了libavcodec ─這是一個用於多個項目中音頻和視頻的解碼器庫,以及libavformat——一個音頻與視頻格式轉換庫。

2.ffmpeg下載

直接到ffmpeg官網下載和自己電腦系統相對應的版本即可。命令行使用時,定位到ffmpeg的目錄或將bin目錄配置在環境變量中。

3.ffmpeg基本命令使用

3.1轉化

 將mp4文件轉化爲flv格式的文件

 轉化前:

使用命令:ffmpeg -i 1.mp4 2.flv

ffmpeg -i 原視頻路徑 轉化名稱.格式

轉化後:記得命令加上輸出路徑

指定尺寸命令:ffmpeg -i input.mp4 -s 640x360 output.mp4

截取特定時間段的視頻:ffmpeg -i input.mp4 -ss 5 -t 10 output.mp4 爲從5秒開始截最多截取10秒 也就是截取5秒到15秒的數據

上述命令也可以爲

ffmpeg -ss 5 -i input.mp4 -t 10 -c:v copy -c:a copy output.mp4

上面的命令把-ss 5放到-i前面,與原來的區別是,這樣會先跳轉到第5秒在開始解碼輸入視頻,而原來的會從開始解碼,只是丟棄掉前5秒的結果。 而-c:v copy -c:a copy標示視頻與音頻的編碼不發生改變,而是直接複製,這樣會大大提升速度,因爲這樣就不需要完全解碼視頻(視頻剪切也不需要完全解碼)。

ffmpeg可以把一組圖片轉換成一個視頻(可以把gif動畫也當成一種視頻格式),反之亦可。命令如下

ffmpeg -i %04d.jpg output.mp4
ffmpeg -i input.mp4 %04d.jpg

第一行命令是把0001.jpg、0002.jpg、0003.jpg等編碼成output.mp4,第二行則是相反把input.mp4變成0001.jpg……。 %04d.jpg表示從1開始用0補全的4位整數爲文件名的jpg文件序列。 如果想要序列文件名爲hello_00001.png等等的話,就是hello_%05d.png

如果編碼視頻的時候還想加入聲音,則如下這般添加一個輸入文件:

ffmpeg -i input.mp3 -i %04d.jpg output.mp4

改變視頻FPS
FFmpeg可以用於降低或提高視頻的幀率,因爲信息丟失不可逆法則,提高幀率只會簡單地讓某些幀的畫面多重複一次或多次,所以提高幀率不會提高畫質。

ffmpeg -i input.mp4 -r 30 output.mp4

上面的命令,不論原始視頻幀率是多少,輸出視頻都會是30幀每秒。這種情況之下視頻的時間軸不會變化,不會有慢動作或快動作的效果。

ffmpeg -r 30 -i input.mp4 output.mp4

上面這種條換順序之後的寫法比較有意思,-r 30放在輸入文件之前表示影響的時輸入文件,而非輸出文件。 這樣的命令表達的是,把輸入文件當做30幀每秒,而忽略它的原始幀率。這樣如果原來的視頻FPS是25,被視作30之後,輸出的視頻會有快進的效果。 這個命令沒有指定輸出視頻的FPS,默認會與輸入文件保持一樣,可以與本節第一個命令和在一起,寫兩個-r參數,第一個指定輸入FPS,第二個指定 輸出FPS即可既控制播放速度,又控制輸出幀率。

H264視頻首尾拼接
如果確定輸入文件都是H264編碼,且尺寸、幀率等都相同,先把源視頻轉換成用於直播的ts格式。 然後直接對多個ts文件進行文件級的拼接,然後在轉換回到目標格式。這個過程中,不會發生格式轉換,所以非常迅速。

ffmpeg -i q.mp4 -c copy -bsf h264_mp4toannexb q.ts
ffmpeg -i r.mp4 -c copy -bsf h264_mp4toannexb r.ts
ffmpeg -i "concat:q.ts|r.ts" -c copy -bsf aac_adtstoasc qr.mp4

音頻篇
以下命令主要用於音頻操作。有許多上面已經給出的視頻操作,比如格式轉換,剪切等也可適用於音頻。大部分視頻也都包含音頻,所以下面的命令 往往可以與視頻命令混合適用。

提取音樂中的封面圖片
有些音樂文件包含專輯封面圖片在裏面,可以用如下命令簡單取出。命令從字面意義來講,就是把MP3格式轉換成JPEG格式了。

ffmpeg -i input.mp3 cover.jpg

音樂有損壓縮
在某些場合下,比如在給網站做背景音樂,或音樂網站提供預覽版音樂時,會選擇以犧牲音頻質量爲代價降低文件大小,讓網絡播放更順暢。 一個典型的壓縮命令如下:

ffmpeg -i input.mp3 -ac 1 -ar 32k -bit_rate:a 128k output.mp3

3.2播放

ffplay test.avi 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章