c# ffmpeg常用參數


c#  ffmpeg常用參數

 

轉換文件格式的同時抓縮微圖:

ffmpeg -i "test.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 'test.jpg'

對已有flv抓圖:

ffmpeg -i "test.flv" -y -f image2 -ss 8 -t 0.001 -s 350x240 'test.jpg'

-ss后跟的時間單位為秒 Ffmpeg轉換命令

ffmpeg -y -i test.mpeg -bitexact -vcodec h263 -b 128 -r 15 -s 176x144 -acodec aac -ac 2 -ar 22500 -ab 24 -f 3gp test.3gp

或者

ffmpeg -y -i test.mpeg -ac 1 -acodec amr_nb -ar 8000 -s 176x144 -b 128 -r 15 test.3gp       ffmpeg參數設定解說

-bitexact 使用標准比特率

-vcodec xvid 使用xvid壓縮

-s 320x240 指定分辨率

-r 29.97 楨速率(可以改,確認非標准楨率會導致音畫不同步,所以只能設定為15或者29.97)

畫面部分,選其一

-b <比特率> 指定壓縮比特率,似乎ffmpeg是自動VBR的,指定了就大概是平均比特率,比如768,1500這樣的就是原來默認項目中有的

-qscale <數值> 以<數值>質量為基礎的VBR,取值0.01-255,約小質量越好

-qmin <數值> 設定最小質量,與-qmax(設定最大質量)共用,比如-qmin 10 -qmax 31

-sameq 使用和源同樣的質量 聲音部分

-acodec aac 設定聲音編碼

-ac <數值> 設定聲道數,1就是單聲道,2就是立體聲,轉換單聲道的TVrip可以用1(節省一半容量),高品質的DVDrip就可以用2

-ar <采樣率> 設定聲音采樣率,PSP只認24000

-ab <比特率> 設定聲音比特率,前面-ac設為立體聲時要以一半比特率來設置,比如192kbps的就設成96,轉換君默認比特率都較小,要聽到較高品質聲音的話建議設到160kbps(80)以上

-vol <百分比> 設定音量,某些DVDrip的AC3軌音量極小,轉換時可以用這個提高音量,比如200就是原來的2倍 這樣,要得到一個高畫質音質低容量的MP4的話,首先畫面最好不要用固定比特率,而用VBR參數讓程序自己去判斷,而音質參數可以在原來的基礎上提升一 點,聽起來要舒服很多,也不會太大(看情況調整       例子:ffmpeg -y -i "1.avi" -title "Test" -vcodec xvid -s 368x208 -r 29.97 -b 1500 -acodec aac -ac 2 -ar 24000 -ab 128 -vol 200 -f psp -muxvb 768 "1.***"

解釋:以上命令可以在Dos命令行中輸入,也可以創建到批處理文件中運行。不過,前提是:要在ffmpeg所在的目錄中執行(轉換君所在目錄下面的cores子目錄)。

參數:

-y(覆蓋輸出文件,即如果1.***文件已經存在的話,不經提示就覆蓋掉了)

-i "1.avi"(輸入文件是和ffmpeg在同一目錄下的1.avi文件,可以自己加路徑,改名字)

-title "Test"(在PSP中顯示的影片的標題)

-vcodec xvid(使用XVID編碼壓縮視頻,不能改的)

-s 368x208(輸出的分辨率為368x208,注意片源一定要是16:9的不然會變形)

-r 29.97(幀數,一般就用這個吧)

-b 1500(視頻數據流量,用-b xxxx的指令則使用固定碼率,數字隨便改,1500以上沒效果;還可以用動態碼率如:-qscale 4和-qscale 6,4的質量比6高)

-acodec aac(音頻編碼用AAC)

-ac 2(聲道數1或2)

-ar 24000(聲音的采樣頻率,好像PSP只能支持24000Hz)

-ab 128(音頻數據流量,一般選擇32、64、96、128)

-vol 200(200%的音量,自己改)

-f psp(輸出psp專用格式)

-muxvb 768(好像是給PSP機器識別的碼率,一般選擇384、512和768,我改成1500,PSP就說文件損壞了)

"1.***"(輸出文件名,也可以加路徑改文件名)

開幾個批處理文件,讓它們並行處理。 E:\ffmpeg.exe -i I:\1.wmv -b 360 -r 25 -s 320x240 -hq -deinterlace -ab 56 -ar 22050 -ac 1 D:\2.flv

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

從FLV中截圖以及相關PHP代碼

從FLV中截圖以及相關PHP代碼

使用-ss參數 作用(time_off set the start time offset),可以從指定時間點開始轉換任務。如:

轉換文件格式的同時抓縮微圖:

ffmpeg -i "test.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 'test.jpg" onload="resize(this,466,0)'

對已有flv抓圖:

ffmpeg -i "test.flv" -y -f image2 -ss 8 -t 0.001 -s 350x240 'test.jpg'

-ss后跟的時間單位為秒

$streamPath = "./test.flv";

$newName = "myConvertedPic.jpg";

$imgW = 320;

$imgH = 240;

$imgQuality = 80;

$resultPath = "http://www.meinserver.de/snapit/".$newName.".jpg";

exec ("flv2jpg.exe", $streamPath, $newName, $imgW, $imgH, $imgQuality);

==================================================================================================

/usr/bin/ffmpeg -i /root/239.mpg -ar 22050 -b 1000k /root/239_4.flv

截取一張352x240尺寸大小的,格式為jpg的圖片:

ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg

把視頻的前30幀轉換成一個Animated Gif :

ffmpeg -i test.asf -vframes 30 -y -f gif a.gif

使用-ss參數,可以從指定的時間開始處理轉換任務.如:

ffmpeg -i test2.asf -y -f image2 -ss 08.010 -t 0.001 -s 352x240 b.jpg

ffmpeg 轉 FLV 的參數

ffmpeg -i x:\*.mpg -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 x:\*.flv


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM