1. 程式人生 > >FFmpeg引數中文詳細解釋和FFmpeg常用基本命令

FFmpeg引數中文詳細解釋和FFmpeg常用基本命令

FFmpeg引數中文詳細解釋

a) 通用選項


-L license
-h 幫助
-fromats 顯示可用的格式,編解碼的,協議的...
-f fmt 強迫採用格式fmt
-I filename 輸入檔案
-y 覆蓋輸出檔案
-t duration 設定紀錄時間 hh:mm:ss[.xxx]格式的記錄時間也支援
-ss position 搜尋到指定的時間 [-]hh:mm:ss[.xxx]的格式也支援
-title string 設定標題
-author string 設定作者
-copyright string 設定版權
-comment string 設定評論
-target type 設定目標檔案型別(vcd,svcd,dvd) 所有的格式選項(位元率,編解碼以及緩衝區大小)自動設定,只需要輸入如下的就可以了:ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
-hq 啟用高質量設定
-itsoffset offset 設定以秒為基準的時間偏移,該選項影響所有後面的輸入檔案。該偏移被加到輸入檔案的時戳,定義一個正偏移意味著相應的流被延遲了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支援

b) 視訊選項


-b bitrate 設定位元率,預設200kb/s
-r fps 設定幀頻 預設25
-s size 設定幀大小 格式為WXH 預設160X128.下面的簡寫也可以直接使用:
Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576
-aspect aspect 設定橫縱比 4:3 16:9 或 1.3333 1.7777
-croptop size 設定頂部切除帶大小 畫素單位
-cropbottom size –cropleft size –cropright size
-padtop size 設定頂部補齊的大小 畫素單位
-padbottom size –padleft size –padright size –padcolor color 設定補齊條顏色(hex,6個16進位制的數,紅:綠:蘭排列,比如 000000代表黑色)
-vn 不做視訊記錄
-bt tolerance 設定視訊位元速率容忍度kbit/s
-maxrate bitrate設定最大視訊位元速率容忍度
-minrate bitreate 設定最小視訊位元速率容忍度
-bufsize size 設定位元速率控制緩衝區大小
-vcodec codec 強制使用codec編解碼方式。如果用copy表示原始編解碼資料必須被拷貝。
-sameq 使用同樣視訊質量作為源(VBR)
-pass n 選擇處理遍數(1或者2)。兩遍編碼非常有用。第一遍生成統計資訊,第二遍生成精確的請求的位元速率
-passlogfile file 選擇兩遍的紀錄檔名為file

c)高階視訊選項


-g gop_size 設定影象組大小
-intra 僅適用幀內編碼
-qscale q 使用固定的視訊量化標度(VBR)
-qmin q 最小視訊量化標度(VBR)
-qmax q 最大視訊量化標度(VBR)
-qdiff q 量化標度間最大偏差 (VBR)
-qblur blur 視訊量化標度柔化(VBR)
-qcomp compression 視訊量化標度壓縮(VBR)
-rc_init_cplx complexity 一遍編碼的初始複雜度
-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 設定位元速率控制方程 預設tex^qComp
-rc_override override 特定間隔下的速率控制過載
-me method 設定運動估計的方法 可用方法有 zero phods log x1 epzs(預設) full
-dct_algo algo 設定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 設定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 設定錯誤殘留為n 1 FF_ER_CAREFULL 預設 2 FF_ER_COMPLIANT 3 FF_ER_AGGRESSIVE 4 FF_ER_VERY_AGGRESSIVE
-ec bit_mask 設定錯誤掩蔽為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個運動向量 僅用於mpeg4
-part 使用資料劃分 僅用於mpeg4
-bug param 繞過沒有被自動監測到編碼器的問題
-strict strictness 跟標準的嚴格性
-aic 使能高階幀內編碼 h263+
-umv 使能無限運動向量 h263+
-deinterlace 不採用交織方法
-interlace 強迫交織法編碼僅對mpeg2和mpeg4有效。當你的輸入是交織的並且你想要保持交織以最小影象損失的時候採用該選項。可選的方法是不交織,但是損失更大
-psnr 計算壓縮幀的psnr
-vstats 輸出視訊編碼統計到vstats_hhmmss.log
-vhook module 插入視訊處理模組 module 包括了模組名和引數,用空格分開

D)音訊選項


-ab bitrate 設定音訊位元速率
-ar freq 設定音訊取樣率
-ac channels 設定通道 預設為1
-an 不使用音訊紀錄
-acodec codec 使用codec編解碼

E)音訊/視訊捕獲選項

-vd device 設定視訊捕獲裝置。比如/dev/video0
-vc channel 設定視訊捕獲通道 DV1394專用
-tvstd standard 設定電視標準 NTSC PAL(SECAM)
-dv1394 設定DV1394捕獲
-av device 設定音訊裝置 比如/dev/dsp

F)高階選項

-map file:stream 設定輸入流對映
-debug 列印特定除錯資訊
-benchmark 為基準測試加入時間
-hex 傾倒每一個輸入包
-bitexact 僅使用位精確演算法 用於編解碼測試
-ps size 設定包大小,以bits為單位
-re 以本地幀頻讀資料,主要用於模擬捕獲裝置

-loop 迴圈輸入流(只工作於影象流,用於ffserver測試)

FFmpeg常用基本命令

1.分離視訊音訊流

ffmpeg -i input_file -vcodec copy -an output_file_video  //分離視訊流
ffmpeg -i input_file -acodec copy -vn output_file_audio  //分離音訊流

2.視訊解複用

ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264
ffmpeg –i test.avi –vcodec copy –an –f m4v test.264

3.視訊轉碼

ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264              //轉碼為碼流原始檔案
ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264  //轉碼為碼流原始檔案
ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi            //轉碼為封裝檔案
//-bf B幀數目控制,-g 關鍵幀間隔控制,-s 解析度控制

4.視訊封裝

ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file

5.視訊剪下

ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg        //提取圖片
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi    //剪下視訊
//-r 提取影象的頻率,-ss 開始時間,-t 持續時間

6.視訊錄製

ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi

7.YUV序列播放

ffplay -f rawvideo -video_size 1920x1080 input.yuv

8.YUV序列轉AVI

ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi

常用引數說明:

主要引數:
-i 設定輸入流
-f 設定輸出格式
-ss 開始時間
視訊引數:
-b 設定視訊流量,預設為200Kbit/s
-r 設定幀速率,預設為25
-s 設定畫面的寬與高
-aspect 設定畫面的比例
-vn 不處理視訊
-vcodec 設定視訊編解碼器,未設定時則使用與輸入流相同的編解碼器
音訊引數:
-ar 設定取樣率
-ac 設定聲音的Channel數
-acodec 設定聲音編解碼器,未設定時則使用與輸入流相同的編解碼器
-an 不處理音訊

使用ffmpeg轉換視訊格式參考:http://blog.chinaunix.net/uid-8566031-id-2018946.html