使用FFmpeg命令實現音視頻轉碼的備忘錄

FFmpeg是比較經典,也是比較流行的多媒體工具庫(demux,mux, decode,encode等等),支持格式也比較豐富,也比較實用。


做多媒體開發的經常都需要使用到各種格式的音視頻對自己的開發成果進行測試。 要收集齊這些音視頻測試文件可不容易,尤其是要精確到profile,比如h264的BP/MP/HP, mpeg4的SP/ASP等等。

這裏就到了轉碼工具出場的時間了, 網上也可以找到不少免費的工具,如、格式工廠,魔影工廠等等。但這些工具基本上都是能進行轉碼,但很難精確到profile level級別。


這時就可以使用咱的FFMpeg,多媒體的轉碼小能手。FFmpeg的功能太多了,這裏就不一一介紹,只說其中一條命令,沒錯,只有一條(怎麼安裝FFmpeg,就不是本小篇的範疇了,客觀問問度娘就知道了)。

ffmpeg -i in.xxx -c:v xxx -profile:v xxx -c:a xxx -profile:a xxx out.xxx


就是這麼簡潔的一條命令,其意義如下所示:

-i in.xxx : 輸入文件

-c:v xxx  : 設置輸出文件的視頻格式
-profile:v xxx : 設置輸出視頻格式的profile(數值 參考 avcodec.h 中 FF_PROFILE_XXX 這樣的宏定義)

-c:a xxx : 設置輸出文件的音頻格式
-profile:a xxx : 設置輸出音頻的profile(數值 參考 avcodec.h 中 FF_PROFILE_XXX 這樣的宏定義)

out.xxx : 輸出文件(由後綴名決定輸出文件的格式(即容器格式) )


還有一些音視頻的可選參數:

Video options:
-vframes number     設置輸出多少幀視頻
-r rate             設置輸出視頻的幀率(Hz value(即fps))
-s size             設置輸出視頻的分辨率 (WxH (寬和高中間是字母'x'))
-aspect aspect     設置寬高比 (4:3, 16:9 or 1.3333, 1.7777)
-bits_per_raw_sample number  設置位深度
-vn                 禁止輸出視頻(即輸出文件中不包含視頻)
-vcodec codec       設置輸出視頻的格式(等同於 -c:v  )
-timecode hh:mm:ss[:;.]ff  設置輸出視頻的起始時間戳
-pass n             select the pass number (1 to 3)(沒太明白)
-vf filter_graph    set video filters(設置濾波器)
-ab bitrate         設置輸出音頻的比特率(推薦使用: -b:a xxx)
-b bitrate          設置輸出視頻的比特率(推薦使用: -b:v xxx)

-dn                 disable data(禁止數據,我猜測和 -vn的區別是,這個命令只禁止數據,

                        但是在文件的header中仍然有視頻流的信息)



Audio options:
-aframes number     設置輸出多少個音頻幀
-aq quality         設置輸出音頻的質量 (codec-specific)
-ar rate            設置輸出音頻的採樣率(sampling rate) (in Hz)
-ac channels        設置輸出音頻的聲道數目
-an                  禁止音頻(即輸出文件中無音頻)
-acodec codec       設置輸出音頻的格式(等同於 -c:a  )
-vol volume         設置輸出音頻的音量 (256=normal)
-af filter_graph    設置音頻濾波器


Subtitle options:
-s size             設置字幕所在的畫面的分辨率(WxH, 其中寬和高中間是字母'x')
-sn                 禁止字幕(即輸出文件中無字幕)
-scodec codec       設置輸出字幕的格式(等同於 -c:s  )
-stag fourcc/tag    設置字幕的tag/fourcc
-fix_sub_duration   修正字幕的時長
-canvas_size size   設置字幕畫布的分辨率 (WxH or abbreviation)
-spre preset        set the subtitle options to the indicated preset(不太明白)







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