標籤:
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
c# ffmpeg常用參數