FFMPEG使用參數詳解

FFMPEG使用參數詳解

目前又開始測MPEG1和MPEG2的解碼,在準備編碼好的測試序列過程中,需要通過編碼器來進行原始視頻序列的編碼操作,以生成我們需要的測試數據。由于IPP example提供的Encoder不支持MPEG1,經過查詢,決定MPEG1的編碼使用FFMPEG。FFMEPG是個啥子東西呢,這里簡單說一下:FFmpeg是用于錄制、轉換和流化音頻和視頻的完整解決方案,一套領先的音/視頻編解碼類庫。

FFmpeg的官方網址是 http://ffmpeg.mplayerhq.hu/ 。

中文Wiki是 http://www.ffmpeg.com.cn/ ?,資料很多。

??? 由于其免費開源性,遂決定就用它來進行視頻格式的壓縮轉換啦。首先再來啰嗦一點兒基本的FFmpeg主主要組成部分:

??? 1). libavcodec: 一個包含了所有FFmpeg音視頻編解碼器的庫。

??? 2). libavformat: 一個包含了所有的普通音視格式的解析器和產生器的庫。

三個實例程序(這三個實例基本可以作為API使用手冊):

ffmpeg:命令行的視頻格式轉換程序。

ffplay:視頻播放程序。(需要SDL支持)

ffserver:多媒體服務器

了解了它的大體組織結構,就明確了ffmpeg當然是我在尋找視頻格式壓縮轉換的第一選擇!

??? 由于FFmpeg 在Linux上開發的開源項目,把它放在windows下進行編譯實在是比較復雜啊,這個過程往往弄得新手很是頭大!!!,比如鄙人。好了,今天的重點不在于ffmpeg的編譯,因而就不在此一一記錄了,網上去找,關于ffmpeg編譯的方法何其之多,這里給大家幾個不錯的參考鏈接:

?? 對于Linux上的用戶,可以參考

http://www.ffmpeg.com.cn/index.php/Ffmpeg%E7%BC%96%E8%AF%91%E8%AF%A6%E8%A7%A3

?? 對于Windows用戶,可參考

http://bbs.chinavideo.org/viewthread.php?tid=1897&extra=page%3D1? 或

http://blog.sina.com.cn/s/blog_4673bfa501008xie.html??

?? 總之編譯是個很復雜的過程,我們還是加快速度,來領略ffmpeg的風采。

?? 在命令行下,鍵入ffmepg.exe -h ,以看其幫助,好家伙,其參數之多,還真是覺得無從下手啊,這么多參數,又該如何正確的設置呢?

?? 于是連Google帶使用摸索,將ffmpeg的參數在這里做一簡要整理和記錄,以備日后使用時查看方便。

?? 基本使用方式:ffmpeg [[options][`-i' input_file]] {[options] output_file}

??a) 通用選項

????? -L license

???? ?-h 幫助

????? -fromats 顯示可用的格式,編解碼的,協議的。。。

????? -f fmt 強迫采用格式fmt

????? -i filename 輸入文件

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

????? -t duration 設置紀錄時間 hh:mm:ss[.xxx]格式的記錄時間也支持

????? -ss position 搜索到指定的時間 [-]hh:mm:ss[.xxx]的格式也支持。使用-ss參數的作用,可以從指定時間點開始轉換任務,-ss后的時間單位為秒

????? -title string 設置標題(比如PSP中顯示影片的標題)

????? -author string 設置作者

????? -copyright string 設置版權

????? -comment string 設置評論

????? -target type 設置目標文件類型(vcd,svcd,dvd) 所有的格式選項(比特率,編解碼以及緩沖區大小)自動設置 ,只需要輸入如下的就可以了:ffmpeg -i myfile.avi -target vcd vcd.mpg

????? -hq 激活高質量設置

????? -itsoffset offset 設置以秒為基準的時間偏移,該選項影響所有后面的輸入文件。該偏移被加到輸入文件的時戳,定義一個正偏移意味著相應的流被延遲了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持。

????? b) 視頻選項

????? -b bitrate 設置比特率,缺省200kb/s

????? -vb bitrate?? set bitrate (in bits/s)

????? -vframes number? 設置要編碼多少幀?

????? -r fps 設置幀頻 缺省25

????? -s size 設置幀大小 格式為W*H 缺省160X128.也可以直接使用簡寫,也認:Sqcif? qcif? cif 4cif 等

????? -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編解碼方式,如-vcodec xvid 使用xvid壓縮 如果用copy表示原始編解碼數據必須被拷貝。

????? -sameq 使用同樣視頻質量作為源(VBR)

????? -pass n 選擇處理遍數(1或者2)。兩遍編碼非常有用。第一遍生成統計信息,第二遍生成精確的請求的碼率

????? -passlogfile file 選擇兩遍的紀錄文件名為file

c)高級視頻選項

-g gop_size 設置圖像組大小 這里設置GOP大小,也表示兩個I幀之間的間隔

-intra 僅適用幀內編碼

-qscale q? 使用固定的視頻量化標度(VBR)? 以<q>質量為基礎的VBR,取值0.01-255,約小質量越好,即qscale 4和-qscale 6,4的質量比6高 。此參數使用次數較多,實際使用時發現,qscale是種固定量化因子,設置qscale之后,前面設置的-b好像就無效了,而是自動調整了比特率。

-qmin q 最小視頻量化標度(VBR) 設定最小質量,與-qmax(設定最大質量)共用

-qmax q 最大視頻量化標度(VBR) 使用了該參數,就可以不使用qscale參數

-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(即如果-bf 2的話,在兩個非b幀中間隔的b幀數目為2,即IBBPBBPBBP結構)

-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 包括了模塊名和參數,用空格分開

-bitexact 使用標準比特率

-max_qdiff? 視頻中所有楨(包括i/b/P)的最大Q值差距

-b_qfactor 表示i/p與B的Q值比例因子,值越大B楨劣化越嚴重

-b_qoffset 表示1/p與B的Q值比例的偏移量,值越大B楨劣化越嚴重.如果大于0,那么下一個B的Q=前一個P的Q乘以b_quant_factor再加上offset,如果小于0,則B的Q=負的normal_Q乘以factor加上offset.

-i_qfactor?? p和i的Q值比例因子,越接近1則P越優化.

-i_qoffset?? p和i的Q的偏移量

?

D)音頻選項

?? -ab bitrate 設置音頻碼率

?? -ar freq 設置音頻采樣率

?? -ac channels 設置通道 缺省為1,即單通道

?? -an 不使能音頻紀錄

? ?-acodec codec 使用codec編解碼 如:-acodec AAC 使用AAC音頻編碼

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255001.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255001.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255001.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

模擬支付寶、淘寶登錄1

1、進入支付寶首頁 GET https://auth.alipay.com/login/index.htm HTTP/1.1Accept: */*Accept-Language: zh-CNAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/8.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; …

CSS層疊樣式表

HTML主要控制內容 CSS主要控制格式。 樣式表是用來指定樣式信息的句法機制。 之所以將CSS稱為層疊樣式表&#xff0c;是因為它可以在3個層次上進行定義。 內聯樣式表 內聯樣式表位于開始標簽中&#xff0c;其設置只對該元素起作用 文檔樣式表 文檔樣式表位于文檔的頭部區域&…

對X264/FFMPEG架構探討---感覺不錯

3. FFMPEG架構分析FFMPEG是目前被應用最廣泛的編解碼軟件庫&#xff0c;支持多種流行的編解碼器&#xff0c;它是C語言實現的&#xff0c;不僅被集成到各種PC軟件&#xff0c;也經常被移植到多種嵌入式設備中。使用面向對象的辦法來設想這樣一個編解碼庫&#xff0c;首先讓人想…

如何快糙好猛的使用Shiqi.Yu老師的公開人臉檢測庫(附源碼)

前言 本次編寫所用的庫為于仕祺老師免費提供的人臉檢測庫。真心好用&#xff0c;識別率和識別速度完全不是Opencv自帶的程序能夠比擬的。將其配合Opencv的EigenFace算法&#xff0c;基本上可以形成一個小型的畢業設計。&#xff08;我是學機械的啊喂&#xff01;&#xff01;&a…

SQL語句增加字段、修改字段、修改類型、修改默認值

--一、修改字段默認值alter table 表名 drop constraint 約束名字 ------說明&#xff1a;刪除表的字段的原有約束alter table 表名 add constraint 約束名字 DEFAULT 默認值 for 字段名稱 -------說明&#xff1a;添加一個表的字段的約束并指定默認值--二、修改字段名&#…

node+koa2+mysql搭建博客后臺

本文將詳細講解使用nodekoa2mysql搭建博客后臺的全過程。 開發環境 node 8.3.0及以上npm 5.3.0及以上mysql 5.7.21具體的環境配置可查看我的上一篇文章 準備工作 npm下載pm2(進程守護)&#xff0c;并設置全局變量創建博客需要的數據庫與表 開啟mysql并創建數據庫test: create d…

ffmpeg使用x264編碼的配置+ ffmpeg與 x264編碼器參數完整對照表

ffmpeg使用x264編碼的配置 ffmpeg與 x264編碼器參數完整對照表 分類&#xff1a; 多媒體 2010-07-13 11:31 1072人閱讀 評論(0) 收藏 舉報 轉載自&#xff1a;扶凱[http://www.php-oa.com] 本文鏈接: http://www.php-oa.com/2009/03/09/ffmpeg_x264.html 轉帖:http://rhinghear…

javascript之變量

定義變量方式有var&#xff0c;let&#xff0c;const&#xff0c;變量的類型是根據變量的值來確定&#xff0c;變量的名稱跟大多數語言一樣&#xff0c;包含數字字母_$,不能以數字開頭且區分大小寫。 var 最早的定義變量的方式&#xff0c;可重復定義,但請避免這樣做。 var a …

Maven理解

2019獨角獸企業重金招聘Python工程師標準>>> Maven概念 參考maven入門 冰河winner Maven作為一個構建工具&#xff0c;不僅能幫我們自動化構建&#xff0c;還能夠抽象構建過程&#xff0c;提供構建任務實現;它跨平臺&#xff0c;對外提供了一致的操作接口&#xff0…

HALCON示例程序measure_circles.hdev測量圓的半徑

HALCON示例程序measure_circles.hdev測量圓的半徑 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_off () read_image (Image, ‘circle_plate’) get_image_size (Image, Width, Height) dev_close_window () dev_open_window (0, 0, Width / 2…

OpenTLD 未完成 - 虎頭

TLD是一種算法的簡稱&#xff0c;原作者把它叫做Tracking-Learning-Detection。搞視覺的人看到這個名字都會嚇一跳&#xff0c;很ambitious的計劃。是09年的工作&#xff0c;不算太久&#xff0c;不過也不太新。網上關于這個的資源其實很多&#xff0c;很大程度和作者開放源代碼…

C# FileSystemWatcher 在監控文件夾和文件時的用法

********************************************************************************** 第一個文章: ********************************************************************************** 概述 最近學習FileSystemWatcher的用法,它主要是監控一個文件夾,當文件夾內的文件要…

比微軟kinect更強的視頻跟蹤算法--TLD跟蹤算法介紹

TLD (Tracking-Learning-Detection)是英國薩里大學的一個捷克籍博士生在其攻讀博士學位期間提出的一種新的單目標長時間&#xff08; long term tracking &#xff09;跟蹤算法。該算法與傳統跟蹤算法的顯著區別在于將傳統的跟蹤算法和傳統的檢測算法相結合來解決被跟蹤目標在被…

HALCON示例程序measure_circuit_width_lines_gauss.hdev電路板線寬檢測

HALCON示例程序measure_circuit_width_lines_gauss.hdev電路板線寬檢測 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_off () dev_close_window () read_image (Image, ‘pcb_color’) get_image_size (Image, Width, Height) dev_open_window…

一張圖看懂混合云數據同步一站式解決方案

摘要&#xff1a; 針對不同數據庫間數據實時同步難的問題&#xff0c;日前&#xff0c;阿里云宣布推出混合云數據同步一站式解決方案&#xff0c;便于廣大云產品用戶實現實時數據同步的混合云支持&#xff0c;更為方便的是&#xff0c;該功能讓本地Oracle也能實現與云上數據庫的…

分布式性能測試

Jmeter分布式測試 在使用Jmeter進行性能測試時&#xff0c;如果并發數比較大(比如最近項目需要支持1000并發)&#xff0c;單臺電腦的配置(CPU和內存)可能無法支持&#xff0c;這時可以使用Jmeter提供的分布式測試的功能。 一、Jmeter分布式執行原理&#xff1a; 1、Jmeter分布式…

互斥鎖pthread_mutex_t的使用

1. 互斥鎖創建 有兩種方法創建互斥鎖&#xff0c;靜態方式和動態方式。POSIX定義了一個宏PTHREAD_MUTEX_INITIALIZER來靜態初始化互斥鎖&#xff0c;方法如下&#xff1a; pthread_mutex_t mutexPTHREAD_MUTEX_INITIALIZER; 在LinuxThreads實現中&#xff0c;pthread_…

無效設備解決辦法

touch /etc/ini.d/FirstLoadkill 殺死槍彈柜程序 或重啟reboot轉載于:https://www.cnblogs.com/yygsj/p/5634384.html

HALCON示例程序measure_grid.hdev使用XLD分割鍵盤輪廓

HALCON示例程序measure_grid.hdev使用XLD分割鍵盤輪廓 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_off () read_image (Image, ‘keypad’) get_image_pointer1 (Image, Pointer, Type, Width, Height) dev_close_window () dev_open_window…

[BZOJ3992]序列統計

DP一下&#xff0c;設$f_{i,j}$表示生成$i$個數且乘積$\%Mj$的方案數&#xff0c;則$f_{i1,l}\sum\limits_{jk\%Ml}[k\in S]f_{i,j}$ 我們很不希望DP式中下標的位置出現乘法&#xff0c;因為這樣不好轉移&#xff0c;考慮把乘法換成加法 因為模數$M$是質數&#xff0c;所以它有…