2021年6月25日 星期五

ffmpeg使用引數的中文說明

基本選項:
-formats 輸出所有可用格式
-f fmt 指定格式(音訊或視訊格式)
-i filename 指定輸入檔名,在linux下當然也能指定:0.0(螢幕錄製)或攝像頭
-y 覆蓋已有檔案
-t duration 記錄時長為t
-fs limit_size 設定檔案大小上限
-ss time_off 從指定的時間(s)開始, [-]hh:mm:ss[.xxx]的格式也支援
-itsoffset time_off 設定時間偏移(s),該選項影響所有後面的輸入檔案。該偏移被加到輸入檔案的時戳,定義一個正偏移意味著相應的流被延遲了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支援
-title string 標題
-timestamp time 時間戳
-author string 作者
-copyright string 版權資訊
-comment string 評論
-album string album名
-v verbose 與log相關的
-target type 設定目標檔案型別(“vcd”, “svcd”, “dvd”, “dv”, “dv50”, “pal-vcd”, “ntsc-svcd”, …)
-dframes number 設定要記錄的幀數
視訊選項:
-b 指定位元率(bits/s),似乎ffmpeg是自動VBR的,指定了就大概是平均位元率
-bitexact 使用標準位元率
-vb 指定視訊位元率(bits/s)
-vframes number 設定轉換多少楨(frame)的視訊
-r rate 幀速率(fps) (可以改,確認非標準楨率會導致音畫不同步,所以只能設定為15或者29.97)
-s size 指定解析度 (320×240)
-aspect aspect 設定視訊長寬比(4:3, 16:9 or 1.3333, 1.7777)
-croptop size 設定頂部切除尺寸(in pixels)
-cropbottom size 設定底部切除尺寸(in pixels)
-cropleft size 設定左切除尺寸 (in pixels)
-cropright size 設定右切除尺寸 (in pixels)
-padtop size 設定頂部補齊尺寸(in pixels)
-padbottom size 底補齊(in pixels)
-padleft size 左補齊(in pixels)
-padright size 右補齊(in pixels)
-padcolor color 補齊帶顏色(000000-FFFFFF)
-vn 取消視訊
-vcodec codec 強制使用codec編解碼方式(‘copy’ to copy stream)
-sameq 使用同樣視訊質量作為源(VBR)
-pass n 選擇處理遍數(1或者2)。兩遍編碼非常有用。第一遍生成統計資訊,第二遍生成精確的請求的位元速率
-passlogfile file 選擇兩遍的紀錄檔名為file
-newvideo 在現在的視訊流後面加入新的視訊流

高階視訊選項
-pix_fmt format set pixel format, ‘list’ as argument shows all the pixel formats supported
-intra 僅適用幀內編碼
-qscale q 以<數值>質量為基礎的VBR,取值0.01-255,約小質量越好
-loop_input 設定輸入流的迴圈數(目前只對影象有效)
-loop_output 設定輸出視訊的迴圈數,比如輸出gif時設為0表示無限迴圈
-g int 設定影象組大小
-cutoff int 設定截止頻率
-qmin int 設定最小質量,與-qmax(設定最大質量)共用,比如-qmin 10 -qmax 31
-qmax int 設定最大質量
-qdiff int 量化標度間最大偏差 (VBR)
-bf int 使用frames B 幀,支援mpeg1,mpeg2,mpeg4
音訊選項:
-ab 設定位元率(單位:bit/s,也許老版是kb/s)前面-ac設為立體聲時要以一半位元率來設定,比如192kbps的就設成96,轉換 預設位元率都較小,要聽到較高品質聲音的話建議設到160kbps(80)以上。
-aframes number 設定轉換多少楨(frame)的音訊
-aq quality 設定音訊質量 (指定編碼)
-ar rate 設定音訊取樣率 (單位:Hz),PSP只認24000
-ac channels 設定聲道數,1就是單聲道,2就是立體聲,轉換單聲道的TVrip可以用1(節省一半容量),高品質的DVDrip就可以用2
-an 取消音訊
-acodec codec 指定音訊編碼(‘copy’ to copy stream)
-vol volume 設定錄製音量大小(預設為256) <百分比> ,某些DVDrip的AC3軌音量極小,轉換時可以用這個提高音量,比如200就是原來的2倍
-newaudio 在現在的音訊流後面加入新的音訊流
字幕選項:
-sn 取消字幕
-scodec codec 設定字幕編碼(‘copy’ to copy stream)
-newsubtitle 在當前字幕後新增
-slang code 設定字幕所用的ISO 639編碼(3個字母)
Audio/Video 抓取選項:
-vc channel 設定視訊捕獲通道(只對DV1394)
-tvstd standard 設定電視標準 NTSC PAL(SECAM)

    要得到一個高畫質音質低容量的MP4的話,首先畫面最好不要用固定位元率,而用VBR引數讓程式自己去判斷,而音質引數可以在原來的基礎上提升一點,聽起來要舒服很多,也不會太大(看情況調整 ) 
轉換為flv: 
ffmpeg -i test.mp3 -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 test.flv 
ffmpeg -i test.wmv -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 test.flv 
轉換檔案格式的同時抓縮微圖: 
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' 
轉換為3gp:
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 -y -i "test.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 "test.***" 
# 引數解釋: 
-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就說檔案損壞了)  

"test.***"(輸出檔名,也可以加路徑改檔名 

資料來源: https://codertw.com/%e7%a8%8b%e5%bc%8f%e8%aa%9e%e8%a8%80/641712/

沒有留言: