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

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

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

相關文章

線程02

2019獨角獸企業重金招聘Python工程師標準>>> 線程中有幾個方法需要我們區分 1 sleep方法是表示線程執行到這的時候只是暫時處于“睡眠”狀態,在這種狀態下線程是不會釋放CPU資源的,當到達休眠時間后,線程繼續“起來”干活。當線程…

@postconstruct注解方法沒有執行_把對象的創建交給spring來管理(注解IOC)

自動按照類型注入/** * 賬戶的業務層實現類 * * 曾經XML的配置&#xff1a; * <bean id"accountService" class"com.itheima.service.impl.AccountServiceImpl" * scope"" init-method"" destroy-method""> * <pro…

解決-ubuntu 安裝redis無法啟動

解決-ubuntu 安裝redis無法啟動 環境 Ubuntu 16.04 Port 6379 Redis version 5:4.0.9-1 1-安裝 apt install redis2-安裝完成-自啟時提示啟動服務失敗 Errors were encountered while processing:redis-serverredis E: Sub-process /usr/bin/dpkg returned an error code (1…

JavaScript中的數據類型轉換

js數據類型轉換 使用&#xff1a;Number&#xff08;&#xff09;、parseInt() 和parseFloat&#xff08;&#xff09; 做類型轉換 Number()強轉一個數值(包含整數和浮點數)。*parseInt()強轉整數&#xff0c;*parseFloat&#xff08;&#xff09;強轉浮點數函數isNaN()檢測參…

web.xml(8)_jsp-config

13.jsp-config jsp-config元素主要用來設定JSP的相關配置,<jsp:config>包含<taglib>和<jsp-property-group>兩個子元素.當中<taglib>元素 在JSP 1.2時就已經存在了;而<jsp-property-group>是JSP 2.0新增的元素. taglib :對標記庫描寫敘述符文件&…

CABAC之手把手教你編碼

首先要說明的是CABAC的生命期是SLICE,因此本篇所講的也是一個SLICE里CABAC的流程,其次對于我們來說場模式幾乎用不到,所以本文的編碼流程只使用幀模式,因此實際上用到的表只有277個, 當然如果我寫成399, 不是說里面所有表都用到的. 這里只是聲明一下這個問題, 如果大家實際操作…

python網絡攻擊代碼_Python-python網絡編程寫arp攻擊代碼

from scapy.all import ARP,send,arping import sys,re,random,time stdoutsys.stdout ip IPADDR"192.168.1.102" 網關 gateway_ip"192.168.1.1" tmp[] 偽造網關mac地址 for i in range(0,6): tmp.append(str("%02x"%random.randint(0x01,0xfe))…

Kubernetes初步學習

今天分享如題&#xff1a; Kubernetes 本篇內容源于工作項目需要自學 但K8s確實現在十分的主流so推薦給大家 最近更新緩慢由于工作太忙惹&#xff0c;忙里偷閑整理愿分享能與君共勉&#x1f4aa; 大家新年快樂&#x1f389; &#x1f508;言歸正題&#xff0c;相信很多朋友…

手機界面常見的的九宮格

手機界面常見的的九宮格 手機界面常見的的九宮格 首先布局的話需要用到一個mainactivity和一個item的布局目前用得最多也最熟悉的還是LinearLayout布局所以&#xff0c;一下也是&#xff0c;按套路就不過多贅述了。 <GridView android:layout_width"wrap_content"…

JavaScript中的運算符

js運算符 算 字 賦 比 邏 位 它算術運算符 - * / --字符串連接 賦值運算 - %比較運算符 < > > < ! !邏輯運算符 && || !位運算 ^ & | << >>其它運算符 ? : 三元運算符 delete&#xff1…

CABAC編碼

H&#xff0e;264&#xff0f;AVC標準采用了很多新技術和新方法&#xff0c;大大提高了視頻編碼效率&#xff0c;其中CABAC便是H&#xff0e;264&#xff0f;AVC采用的新型熵編碼方法之一。CABAC采用了高效的算術編碼思想&#xff0c;同時充分考慮了視頻流相關統計特性&#xf…

【教程分享】Jmeter入門教程

好&#xff01;回歸學長每周的教程分享&#xff01; PART2 >今天又來分享Jmter 因為最近好像有相關工作內容 提前準備資修一下 分享僅供參考- JMeter的作用對軟件做壓力測試 1.能夠對HTTP和FTP服務器進行壓力和性能測試&#xff0c; 也可以對任何數據庫進行同樣的測試&…

linux 特殊shell變量

特殊變量 環境變量&#xff1a; 系統本身運行需要由linux系統提前創建好的一類變量 主要用于用戶的工作環境&#xff0c;包括&#xff08;用戶的宿主目錄&#xff0c;命令的查找路徑&#xff0c;用戶的當前目錄&#xff0c;登錄的終端等&#xff09;環境變量的值由操作系統本身…

JavaScript中的循環

js循環 程序中進行有規律的重復性操作&#xff0c;需要用到循環語句。 break 和 continue 語句對循環中的代碼執行提供了更嚴格的控制。 for循環 for(var i0;i<len;i){...... }while循環 var i0;while(i<8){......i;}for-in 語句 for-in 語句是嚴格的迭代語句&…

快速傅里葉變換python_FFT快速傅里葉變換的python實現過程解析

FFT是DFT的高效算法&#xff0c;能夠將時域信號轉化到頻域上&#xff0c;下面記錄下一段用python實現的FFT代碼。 # encodingutf-8 import numpy as np import pylab as pl # 導入和matplotlib同時安裝的作圖庫pylab sampling_rate 8000 # 采樣頻率8000Hz fft_size 512 # 采樣…

rabbitmq的安裝全過程

2019獨角獸企業重金招聘Python工程師標準>>> 1 首先下載安裝依賴elang 添加yum支持 cd /usr/local/src/ mkdir rabbitmq cd rabbitmq wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm rpm -Uvh erlang-solutions-1.0-1.noarch.rpm rp…

【框架學習分享】HttpRunner

今天文章分為兩部分 :) PART1 HttpRunner內容分享/ PART2 關于后廠村兒 10 Minutes HttpRunner: PART 1 首先感謝作者開源&#x1f44d; 因為最近工作需要用到HttpRunner&#xff0c; 于是便趁著周末學了下這個測試框架&#xff0c;感覺還可以~ 所以分享一下今天的學習記…

x264 移植到 ARM的方法

1。Linux下編譯X264&#xff1a; 其實在windows下使用vc已經編譯過了&#xff0c;不過聽到有人說在linux下編好了&#xff0c;我也就嘗試做一下&#xff0c;況且x264源代碼的makefile已經做好了&#xff0c;我只需要做的就是把文件copy一下&#xff0c;然后make 一下就可以了。…

JavaScript中的元素獲取與操作

js元素獲取與操作 可以使用內置對象document上的getElementById方法來獲取頁面上設置了id屬性的元素&#xff0c;獲取到的是一個html對象&#xff0c;然后將它賦值給一個變量&#xff0c;比如&#xff1a; <script type"text/javascript">var oDiv document…

VUE2第五天學習---自定義指令

閱讀目錄 1.理解VUE中的自定義指令回到頂部1.理解VUE中的自定義指令 默認核心指令有 (v-model 和 v-show), 但是有時候我們需要用到自定義指令&#xff0c;在vue中&#xff0c;代碼復用主要形式和抽象是組件&#xff0c;但是在有的情況下&#xff0c;我們仍然需要對DOM元素進行…