[轉貼]FFMPEG功能

FFMPEG功能

1.  視頻音頻格式轉換

Ffmpeg能使用任何支持的格式和協議作爲輸入:



*比如你可以輸入YUV文件:ffmpeg -i /tmp/test%d.Y /tmp/out.mpg

它將要使用如下文件:

       /tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V,等等…



    *你能輸入原始的YUV420P文件:ffmpeg -i /tmp/test.yuv /tmp/out.avi

    原始的YUV420P文件包含原始的YUV極性,每幀以Y平面開始,跟隨U和V平面,它們是Y平面水平垂直的一半分辨率



    *你能輸出原始的YUV420P文件

    ffmpeg -i mydivx.avi -o hugefile.yuv



       *你能設置幾個輸入文件和輸出文件

       ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg

       上面的命令行轉換音頻文件a.wav和原始的YUV 視頻文件 a.yuv到mpeg文件a.mpeg

      

       *你也能同時轉換音頻和視頻

ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2

上面的命令行轉換a.wav的採樣率到22050HZ並編碼爲mpeg音頻



*你也能同時編碼到幾種格式並且在輸入流和輸出流之間建立映射

       ffmpeg -i /tmp/a.wav -ab 64 /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0 -map 0:0

       上面的命令行轉換一個64Kbits 的a.wav到128kbits的a.mp2 ‘-map file:index’在輸出流的順序上定義了那一路輸入流是用於每一個輸出流的,

      

       轉碼解密的VOB:

       ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800 -g 300 -bf 2 -acodec mp3 -ab 128 snatch.avi

       上面的命令行將vob的文件轉化成avi文件,mpeg4的視頻和mp3的音頻。注意命令中使用了B幀,所以mpeg4流是divx5兼容的。GOP大小是300意味着29.97幀頻下每10秒就有INTRA幀。該映射在音頻語言的DVD轉碼時候尤其有用

2.  Ffmpeg使用語法

        ffmpeg [[options][`-i' input_file]]... {[options] output_file}...

      如果沒有輸入文件,那麼視音頻捕捉就會起作用。

      作爲通用的規則,選項一般用於下一個特定的文件。如果你給 –b 64選項,改選會設置下一個視頻速率。對於原始輸入文件,格式選項可能是需要的。

      缺省情況下,ffmpeg試圖儘可能的無損轉換,採用與輸入同樣的音頻視頻參數來輸出。



3.選項

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測試

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