ffmepg:使用ffmpeg轉換音視頻格式

使用ffmpeg轉換音視頻格式

轉換音頻格式
ffmpeg -i input.mp3 output.wav //把mp3文件轉換爲wav文件
ffmpeg -i input.wav -acodec libmp3lame -aq 4 -ar 44100 -ab 320k -ac 2 output.mp3 //把wav文件轉換爲mp3文件
ffmpeg -i input.wav -c:a copy -af 'volume=2' output.wav //放大音量(volune=1表示正常音量,=0.5表示變爲一半,=2表示變爲2倍)

涉及到參數的解釋:
-i 】後面跟需要處理的文件
-acodec libmp3lame】 a是audio(音頻)的縮寫,codec是編碼器的意思,所以acodec就是音頻編碼器。這裏寫的libmp3lame是mp3的編碼器,也就是這裏指定了使用mp3的編碼器對該音頻進行編碼。當然如果不寫這個也可以,ffmpeg會根據你的後綴自動匹配編解碼器來進行轉碼
-ar 44100】 ar(audio rate)是指定採樣率的,這裏我們指定爲44100。如果我們自己不指定的話,ffmpeg默認使用的是原音頻的採樣率
-ab 320k 】ab(audio byte)指定音頻的比特率,這裏指定320k。如果不輸入的話ffmpeg默認是128k
-ac 2】 ac(audio channels)指定音頻的聲道,1表示單聲道,2表示雙聲道立體聲,默認使用原音頻的聲道
-aframes 4 】設置音頻的幀數
-aq 4】audio quality設置音頻質量
-an 】禁用音頻(其實就是把音頻流剔除,可以理解爲audio none)
-vol 100】volume設置音量,默認是256,也就是100%音量,這裏設置爲100也就是將聲音調小
-af ‘volume=2’】(audio filter)設置音頻過濾器,這裏將聲音的值設爲原來的二倍
-c:a copy】這個其實也是指定編碼器,-c:a copy是說採用acodec音頻編碼器進行copy操作(同-acodec copy),也就是複製原音頻的編碼

轉換視頻格式
ffmpeg -i input.mp4 output.flv //把mp4文件轉換爲flv文件
ffmpeg -i input.mp4 -vcodec copy -acodec copy output.flv //無損視頻格式轉換
ffmpeg -i input.webm -s 1920x1080 -pix_fmt yuv420p -vcodec libx264 -preset medium -profile:v high -level:v 4.1 -crf 23 -acodec aac -ar 44100 -ac 2 -b:a 128k output.mp4 //把webm文件轉換爲mp4文件

涉及到參數的解釋:
-vcodec libx264】v是video的縮寫,vcodec是用來設置視頻編碼器的,libx264是h264的編碼器,通用穩定,也可以寫-vcodec h264、-vcodec mpeg4,根據你的需求自己指定,可以通過ffmpeg -codecs進行查看編碼器
-vcodec copy】採用視頻編碼器進行copy操作,即複製原視頻的編碼
-s 1920x1080】縮放視頻尺寸的,這裏設置的是1920寬1080高
-pix_fmt yuv420p】pix_fmt是pixel format,用來設置的是視頻的顏色空間,具體的顏色空間很多,可以用ffmpeg -pix_fmts查看
-preset medium】這個perset是編碼器預設(設置編碼器性能),可以設置編碼算法的精度,精度越高編碼速度越慢,CPU佔用率越多。一共有十個參數可選:ultrafast superfast veryfast faster fast medium slow veryslow placebo,如果我們不寫的話那默認就是medium,一般情況下我們在錄製視頻的時候選擇veryfast,這麼一來編碼器不會佔用太多的cpu資源,其他軟件也能正常運行,缺點就是生成的文件會比較大,這是用存儲空間換取電腦性能。在壓制視頻的時候一般採用veryslow,犧牲一點時間,獲取對參數的精準控制。
-profile:v high】-profile:v指定視頻編碼器的配置,這裏設置的參數爲high。這個配置主要是和壓縮比有關,實時通信領域用baseline,流媒體就採用main,超清視頻用high
-level:v 4.1】對視頻編碼器配置的具體規範和限制,這裏參數爲4.1。壓縮比和畫質就像魚和熊掌不可兼得,我們要根據不同的使用場景,在二者間做出權衡,從1到5.2我們應該怎麼選?一般情況下,1080p的視頻就用4.1
-crf 23】crf(constant rate factor恆定速率因子模式)用來設置碼率控制模式的,每一幀的畫面都按照要求的視頻質量去獲取他所需要的比特數,畫質均衡,但是它無法精準的控制碼率,也無法控制最終生成文件的大小,適用於對畫質有要求,文件大小無關緊要的場景。這裏設置的是23,這個23是視頻的質量。總的參數0…18…23…28…51,如果不寫默認值就是23,數值越小質量越高,0就是無損的畫質
-r 30】用於設置視頻幀率的,這裏設置的是每秒30幀
-acodec aac】設置音頻編碼器,這裏設置的是aac視頻編碼器
-ar 44100】設置音頻採樣率,這裏設置的是44100
-ac 2】設置音頻的聲道,2是雙聲道立體聲
-b:a 128k】設置音頻比特率的,同-ab 128k,這裏設置的是128k

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