ffmpeg使用算法
有些選項在每一個流中都必須指定,例如比特率bitrate或編解碼codec。指定流的字符串通常都會有各參數名稱和參數,如編解碼"-codec:a:1 ac3"代表第二個流爲音頻流,使用ac3編碼。有的選項可匹配多個流,如"-b:a 128k"指定音頻比特率bitrate爲128k。空的流選項適用於全部的流,如"-codec copy" 或"-codec: copy"將複製全部流且無需從新編碼。流選項的形式可能爲stream_index,如"-threads:1 4"將設置線程數爲4的流爲第二個流。stream_type[:stream_index],type的選項:'v'表示視頻,'a'表示音頻,'s'表示字幕,'d'表示數據,'t'爲附件。p:program_id[:stream_index] ,若是給出stream_index,而後用ID 爲program_id 的程序匹配流stream_index,不然匹配全部流。ide
從文件生成直播流:ffmpeg -i mv.mp4 -f flv udp://localhost:1234svg
示例:將輸出視頻比特率設爲64kbit/soop
ffmpeg -i input.avi -b 64k output.avi測試
示例:將輸出視頻幀率強制設置爲24fpsui
ffmpeg -i input.avi -r 24 output.avi編碼
ffmpeg 模擬udp流spa
ffmpeg -re -i /var/www/10.flv -vcodec mpeg4 -f mpegts udp://localhost:1234線程
接收流debug
ffmpeg -y -i udp://localhost:1234 v.yuv (-f rawvideo -pix_fmt uyvy422)
參數:
-i --- 輸入,能夠爲文件或流地址
-f ---視頻格式
-version ---版本號-L -h
-formats 顯示全部可用的格式,D爲解碼,E爲編碼
-codecs ---顯示可用的編解碼,V:video,A:audio,S:subtitle codec
-bsfs ---顯示可用的比特流過濾器bitstream filters
-protocols ---顯示支持的協議
-pix_fmts ---顯示可用的像素格式pixel formats
-sample_fmts ---顯示可用的樣本格式
-loglevel | -v loglevel ---設置log級別:quiet、panic、fatal、error、warning、info、verbose、debug,默認爲stderr
-f fmt ---強制轉換格式
-y ---如輸出文件已存在則覆蓋原有文件
-t ---時長,傳輸/捕獲視頻的時長,以秒爲單位,也支持"hh:mm:ss[.xxx]"
-fs ---設置文件大小限制file size
-ss ---位置,查找給定的時間點,以秒爲單位,也支持"hh:mm:ss[.xxx]"
-itsoffset ---偏移量,設置輸入時間的偏移量,以秒爲單位,也支持"hh:mm:ss[.xxx]"
-timestamp time,時間戳,格式:now|([(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH[:MM[:SS[.m...]]])|(HH[MM[SS[.m...]]]))[Z|z]),加z表示使用本地時間。
-metadata key=value,設置屬性,如設置輸出文件的title:ffmpeg -i in.avi -metadata title="my title" out.flv
-v number,設置日誌verbosity級別
-target type,目標文件的type:("vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd", ... ),如:ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg || ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
-dframes number,
-scodec codec,強制對subtitle進行編碼
-newsubtitle ,添加新的subtitle
-slang code,Set the ISO 639 language code (3 letters) of the current subtitle
stream.
視頻選項
-b bitrate 設置比特率,缺省200kb/s
-r fps 設置幀頻缺省25
-s size 設置幀大小格式爲WXH 缺省160X128.下面的簡寫也能夠直接使用:
Sqcif 128X96 qcif 176X144 cif 352X288 4cif 704X576 16cif 1408x1152 qqvga 160x120 qvga 320x240 vag 640x480 svga 800x600 xga 1024x768 uxga 1600x1200 qxga2048x1536
-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 不作視頻記錄disable video recording
-bt tolerance 設置視頻碼率容忍度kbit/s
-maxrate bitrate設置最大視頻碼率容忍度
-minrate bitreate 設置最小視頻碼率容忍度
-bufsize size 設置碼率控制緩衝區大小
-vcodec codec 強制使用codec編解碼方式。若是用copy表示原始編解碼數據必須被拷貝。
-sameq 使用一樣視頻質量做爲源(VBR)same quantizer
-pass n 選擇處理遍數(1或者2)。兩遍編碼很是有用。第一遍生成統計信息,第二遍生成精確的請求的碼率
-passlogfile file 選擇兩遍的紀錄文件名爲file
-newvideo ,添加新的視頻流到當前輸出流
高級視頻選項
-pix_fmt format,使用‘list’查看可用像素格式項
-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 包括了模塊名和參數,用空格分開
音頻選項
-ab bitrate 設置音頻碼率
-ar freq 設置音頻採樣率
-ac channels 設置通道缺省爲1
-an 不使能音頻紀錄
-acodec codec 使用codec編解碼
音頻/視頻捕獲選項
-vd device 設置視頻捕獲設備。好比/dev/video0
-vc channel 設置視頻捕獲通道DV1394專用
-tvstd standard 設置電視標準NTSC PAL(SECAM)
-dv1394 設置DV1394捕獲
-av device 設置音頻設備好比/dev/dsp
高級選項
-map file:stream 設置輸入流映射
-debug 打印特定調試信息
-benchmark 爲基準測試加入時間
-hex 傾倒每個輸入包
-bitexact 僅使用位精確算法用於編解碼測試
-ps size 設置包大小,以bits爲單位
-re 以本地幀頻讀數據,主要用於模擬捕獲設備
-loop 循環輸入流。只工做於圖像流,用於ffserver測試
-title string 設置標題
-author string 設置做者
-copyright string 設置版權
-comment string 設置評論
-hq 激活高質量設置