寫在前面如果您對(duì)音視頻技術(shù)感興趣,,可以訂閱我的專題:音視頻專輯 正文4cc 或者 fourccfourcc(也是FourCC - 四字符碼)是媒體文件中使用的視頻編解碼器,壓縮格式,顏色或像素格式的標(biāo)識(shí)符,。 一個(gè)字符表示一個(gè)1字節(jié)(8位)的值,所以4cc在文件中總是有32位(4字節(jié))。 fourcc中的4個(gè)字符通常限制在ASCII表格中的人類可讀字符內(nèi),因此很容易傳達(dá)和傳達(dá)媒體文件中的四個(gè)字符。 AVI文件是最普遍的,,或者是第一種被廣泛使用的媒體文件格式,,它使用4cc標(biāo)識(shí)符來編碼用于壓縮文件內(nèi)各種視頻/音頻流的編解碼器,。 一些更為人熟知的fourccs包括DIVX,,XVID,H264,,DX50等,。在FFmpeg中使用fourcc的示例:
長(zhǎng)寬比長(zhǎng)寬比是圖像或視頻幀的寬度和高度之間的比率。 長(zhǎng)寬比的種類
DAR,,SAR和PAR之間的關(guān)系可以用等式表示,。 DAR = PAR x SAR 在ffmpeg中有一個(gè)-aspect選項(xiàng)可用于指定輸出視頻: -aspect[:stream_specifier] 托馬斯·阿爾瓦·愛迪生和威廉·迪克森于1892年創(chuàng)建了一種35mm寬的薄膜通用標(biāo)準(zhǔn),其中穿孔確定了24.89x18.67毫米的框架尺寸,,大約為4:3或1.33:1的比例,。 從那時(shí)起,許多寬高比被創(chuàng)建,,其中一些將在下一個(gè)表中描述,。
CIE國(guó)際照明委員會(huì)(法國(guó)國(guó)際照明委員會(huì) - 國(guó)際照明委員會(huì))是關(guān)于照明,,照明,,色彩空間等的機(jī)構(gòu)和權(quán)威機(jī)構(gòu),更多地參見色彩校正章節(jié)。 顏色深度,位深度,每像素位數(shù)顏色深度,,位深度和每像素位數(shù)是描述使用多少位來指定圖像中每個(gè)像素組件的顏色屬性的術(shù)語,。 表中使用最多的顏色深度:
顏色模型和顏色空間顏色空間是從顏色模型派生而來的。 色彩模型描述了可用于模擬人類視覺的方法,。 當(dāng)這種描述如何用顏色表示數(shù)字的數(shù)學(xué)模型輔以用于解釋這些數(shù)字的精確定義時(shí),,這樣的一組顏色被認(rèn)為是一種顏色空間。 數(shù)字顏色表示通常使用3或4個(gè)組件來描述每種顏色,。 更精確的規(guī)格要求更大的數(shù)字,,詳情請(qǐng)參見上一節(jié)。 5種顏色模型被認(rèn)為是主要的:CIE,,CMYK,,HSL / HSV,RGB和YUV以及視頻技術(shù)通常使用RGB和YUV,。 計(jì)算機(jī)顯示器使用像素來顯示信息,,顏色空間以像素格式實(shí)現(xiàn),他們的列表在第二章中介紹,。 色彩視覺盡管人耳對(duì)從16到20,000赫茲頻率的振動(dòng)敏感,,但人眼能夠感知頻率從大約405 THz(740納米)到789 THz(380納米)的電磁波,。 沒有顏色的暗光被稱為圓錐體的特殊眼睛細(xì)胞感知,并且三色視覺由棒狀細(xì)胞提供,。 3種不同類型的棒狀細(xì)胞對(duì)3種基本顏色敏感:紅色,,綠色和藍(lán)色:
DCT - 離散余弦變換離散余弦變換用于利用有損編解碼器對(duì)音頻和視頻數(shù)據(jù)進(jìn)行壓縮,,從而減少多次存儲(chǔ)的數(shù)據(jù)量,。 它使用一個(gè)以不同頻率振蕩的余弦函數(shù)和來將復(fù)信號(hào)轉(zhuǎn)換為復(fù)信號(hào)。 DCT是離散傅立葉變換(DFT)的一種特殊類型,,其中輸入和輸出采樣是實(shí)數(shù)(DFT與復(fù)數(shù)相匹配),。 使用ffmpeg的DCT示例:
解碼器在轉(zhuǎn)碼過程中,,解碼器處理來自分路器的編碼數(shù)據(jù)包,并為下一個(gè)處理生成未壓縮幀,。 從FFmpeg文檔定義: ffmpeg -decoders 分路器(demux)在轉(zhuǎn)碼過程中,,解復(fù)用器(也是解復(fù)用器和解復(fù)用器)讀取輸入文件并生成編碼數(shù)據(jù)包,發(fā)送到解碼器進(jìn)行解碼,。 ffmpeg -h demuxer=demuxer_name 編碼器在轉(zhuǎn)碼期間,,編碼器處理未壓縮的幀,,并根據(jù)選定的編解碼器將它們編碼為發(fā)送到解復(fù)用器的數(shù)據(jù)包,通常采用某種壓縮,,有損或無損壓縮。 ffmpeg -encoders 要顯示關(guān)于特定編碼器的詳細(xì)信息,,我們可以使用以下命令: ffmpeg -h encoder=encoder_name FFmpeg配置原生FFmpeg源代碼的可能性通過包含來自其他開源項(xiàng)目的附加軟件庫代碼得到了改進(jìn),。 在使用名為configure的配置文件的--enable-library選項(xiàng)進(jìn)行編譯之前,會(huì)包含這些庫,。 在每個(gè)控制臺(tái)使用ffmpeg的情況下,,ffplay和ffprobe工具都會(huì)顯示實(shí)際的FFmpeg配置并啟用其他庫,如下一個(gè)控制臺(tái)輸出中所示: 顯示的還有FFmpeg本地庫的版本:libavutil,,libavcodec等 JPEGJPEG通常有2種含義:
由于JPEG格式的有損壓縮不適合多次編輯和某些技術(shù)任務(wù)。 創(chuàng)建JPEG圖像的段以各種標(biāo)記(SOI,,SOF0,,SOF2,DHT等)分隔,。 在編碼過程中,,內(nèi)容被轉(zhuǎn)換為YCbCr(FFmpeg像素格式的YUV)色彩空間,其中Y表示亮度通道,,Cb和Cr兩個(gè)色度通道,。 色度通道可選擇降采樣,每個(gè)通道被分成8×8塊,,通過類型II的歸一化2維離散余弦變換(DCT)轉(zhuǎn)換為頻域,。
Macroblock圖像或視頻幀到宏塊的劃分是使用離散余弦變換(DCT)進(jìn)行編碼的一部分。 在FFmpeg中,,各種AVC編解碼器上下文選項(xiàng),,H.263編碼器選項(xiàng),ProRes編碼器選項(xiàng),,libx264選項(xiàng),,libxavs選項(xiàng)等都使用宏塊。 運(yùn)動(dòng)矢量運(yùn)動(dòng)矢量根據(jù)另一圖片(參考圖片)中宏塊的位置來表示圖片中的宏塊,。 運(yùn)動(dòng)矢量是視頻壓縮過程中運(yùn)動(dòng)估計(jì)的主要元素,。 H.264標(biāo)準(zhǔn)的官方定義是:
MPEGMPEG(發(fā)音“em-peg”)代表Moving Pictures Experts Group,,它是由ISO / IEC于1988年建立的多媒體專家團(tuán)隊(duì),,負(fù)責(zé)制定音頻和視頻壓縮和傳輸標(biāo)準(zhǔn)。 MPEG標(biāo)準(zhǔn)包括:
MPEG-1該標(biāo)準(zhǔn)的官方定義是:“以高達(dá)約1.5 Mbps的速度為數(shù)字存儲(chǔ)媒體編碼運(yùn)動(dòng)圖像和相關(guān)音頻?!?它在1993年進(jìn)行了標(biāo)準(zhǔn)化,,主要目標(biāo)是編碼視頻和聲音以存儲(chǔ)在光盤上。 MPEG-1用于音頻CD,,VCD和可選的SVCD和低質(zhì)量DVD,。 在MPEG-2之前,它也被用于數(shù)字衛(wèi)星和有線電視網(wǎng)絡(luò),。 該標(biāo)準(zhǔn)的一部分是流行的音頻格式MP3,,MP3是MPEG-1 Audio Layer III的縮寫。 在ffmpeg中,,您可以使用-f mpeg1video選項(xiàng)來選擇此格式,,例如: ffmpeg -i input.avi -f mpeg1video output.mpg MPEG-2MPEG-2標(biāo)準(zhǔn)的官方定義是:運(yùn)動(dòng)圖像和相關(guān)音頻信息的通用編碼(ISO / IEC 13818)。 這個(gè)廣泛的標(biāo)準(zhǔn)于1995年發(fā)布,,包含廣播電視的傳輸,,視頻和音頻規(guī)范。 其壓縮方案用于:
在ffmpeg中,,您可以使用-f mpeg2video選項(xiàng)來選擇此格式,,例如: ffmpeg -i input.avi -f mpeg2video output.mpg MPEG-4ISO / IEC對(duì)標(biāo)準(zhǔn)的正式定義是:“視聽對(duì)象的編碼”。 它在1998年得到了標(biāo)準(zhǔn)化,,其主要特點(diǎn)是:
對(duì)于帶有MP4擴(kuò)展名的輸出文件,,ffmpeg會(huì)自動(dòng)選擇h264編碼器和yuv420p像素格式,。 復(fù)用器(mux)在轉(zhuǎn)碼過程中,復(fù)用器(也是多路復(fù)用器或多路復(fù)用器)處理編碼的數(shù)據(jù)包,,并生成指定格式的文件,。 FFmpeg文檔中復(fù)用器的定義: ffmpeg -h muxer=muxer_name 像素像素或像素來源于圖像元素,,并表示數(shù)字圖像或視頻幀的最小可控元素。 像素的形狀通常是正方形,,但一些幀分辨率使用矩形像素,。 像素寬度和高度之間的比例是像素寬高比,通??s寫為PAR,。 ffmpeg包含包含1個(gè),3個(gè)或4個(gè)組件的像素格式,,并使用以下命令顯示: ffmpeg -pix_fmts 協(xié)議計(jì)算機(jī)術(shù)語中的術(shù)語協(xié)議通常意味著一組用于數(shù)據(jù)接收和傳輸?shù)耐ㄐ乓?guī)則,。 FFmpeg文檔中協(xié)議的定義: ffmpeg -protocols 協(xié)議的例子是http(超文本傳輸協(xié)議),,rtmp(實(shí)時(shí)消息傳輸協(xié)議),,tcp(傳輸控制協(xié)議),udp(用戶數(shù)據(jù)報(bào)協(xié)議)等,。 量化數(shù)字信號(hào)的量化涉及將一系列值減小到代表性的單個(gè)值,。 媒體處理包括音頻和視頻量化,,音頻中量化的聲音幅度和視頻編碼涉及顏色和頻率量化。 音頻和視頻量化都可以利用DCT變換,。 與量化相關(guān)的ffmpeg選項(xiàng)的例子:
采樣和采樣率采樣連續(xù)(模擬)信號(hào)意味著將其降低到離散信號(hào),,例如聲波(圖中所示)被轉(zhuǎn)換為一系列采樣。 這些樣本的數(shù)值以數(shù)字表示,,這種數(shù)字形式可以保存到計(jì)算機(jī)文件中,。 采樣率(或頻率)決定了每秒采樣的數(shù)量,典型的音頻采樣率是8000 Hz和11025 Hz的倍數(shù),。 人耳靈敏度范圍從16 Hz到20 kHz,,由于采樣定理,至少需要40 kHz頻率才能表示所有可聽聲音,,選擇44,100 Hz作為CD音頻的標(biāo)準(zhǔn),。 視頻術(shù)語視頻是在電視被發(fā)明時(shí)創(chuàng)建的,并且表示一種以電子形式處理運(yùn)動(dòng)圖像的技術(shù)(與電影 - 光化學(xué)形式相比),,可以包括:
主要的視頻功能是:
視頻表示以幀速率指定的快速序列投影以產(chǎn)生連續(xù)運(yùn)動(dòng)的假象的靜止圖像,當(dāng)人眼看到連續(xù)場(chǎng)景時(shí)的最小幀速率大約為每秒15幀圖像(幀),。 視頻來源于電影,,這是一種處理運(yùn)動(dòng)圖片的機(jī)械技術(shù),最初是為電影和電視開發(fā)的,,它使用隔行掃描來消除閃爍,。 FFmpeg適用于第二章中列出的許多視頻格式。 一些格式能夠存儲(chǔ)多個(gè)不同的運(yùn)動(dòng)圖像序列,,并且這些序列被稱為視頻流; 它們的編號(hào)是從零開始的,,第一個(gè)流編號(hào)為0,第二個(gè)編號(hào)為1,,等等 視頻過濾器FFmpeg中的過濾器是通過libavfilter庫實(shí)現(xiàn)的,。 為獲得最佳性能,它們通常用于過濾鏈(逗號(hào)分隔過濾器的說明)和過濾器圖形(分號(hào)分隔的過濾鏈),。 使用filtergraphs可以使用帶標(biāo)簽的鏈接替換后面的filterchains中的輸入,,默認(rèn)情況下會(huì)創(chuàng)建一個(gè)特殊的[in]鏈接標(biāo)簽,并表示使用-i選項(xiàng)輸入的輸入,。 將過濾器與過濾鏈和過濾器圖組合在一起比重復(fù)處理更加優(yōu)選,,所述重復(fù)處理涉及由壓縮算法引起的輕微變化。 過濾器列表位于第2章中,,由以下內(nèi)容顯示:ffmpeg -filters視頻過濾器可根據(jù)多個(gè)標(biāo)準(zhǔn)進(jìn)行劃分,,總體分類見下表:
注意:一些像隔行掃描一樣的濾鏡被列入2類,,因?yàn)檩斎胍曨l流的修改取決于軟件實(shí)現(xiàn)。 視頻管道視頻流水線描述了從原始視頻輸入到顯示設(shè)備上最終輸出的視頻幀處理過程,,圖中顯示了一個(gè)簡(jiǎn)化的視頻流水線,。 ffmpeg包含2個(gè)特殊輸入設(shè)備dv1394和iec61883,可直接從數(shù)碼攝像機(jī)使用的FireWire端口錄制,。 關(guān)于作者Frantisek Korbel是Zend認(rèn)證工程師,,他的工作包括編程,視頻編輯和網(wǎng)頁設(shè)計(jì),。 2004年,,他創(chuàng)建了一個(gè)使用Macromedia Flash的急救基礎(chǔ)免費(fèi)軟件,從那時(shí)起他經(jīng)常使用動(dòng)畫和視頻,。 他在2009年使用Adobe AIR開發(fā)了化學(xué)元素學(xué)習(xí)周期表。 他的大部分活動(dòng)都專注于志愿工作,,主要用于發(fā)展中國(guó)家的教育和社區(qū)項(xiàng)目(非洲 - nkolfoulou.org,,oyoko.org),印度(kidedu.org)等,。他參加了聯(lián)合國(guó)志愿工作的各種項(xiàng)目,, 由聯(lián)合國(guó)開發(fā)計(jì)劃署協(xié)調(diào)的WaterWiki.net網(wǎng)站設(shè)計(jì)。 為了這本書,,他創(chuàng)建了一個(gè)支持網(wǎng)站,。 |
|