日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]視頻編碼的意義原始視頻數(shù)據(jù)存儲空間大,一個 1080P 的 7 s 視頻需要 817 MB原始視頻數(shù)據(jù)傳輸占用帶寬大,10 Mbps 的帶寬傳輸上述 7 s 視頻需要 11 分鐘而經(jīng)過 H.264 編


視頻編碼的意義

原始視頻數(shù)據(jù)存儲空間大,一個 1080P 的 7 s 視頻需要 817 MB

原始視頻數(shù)據(jù)傳輸占用帶寬大,10 Mbps 的帶寬傳輸上述 7 s 視頻需要 11 分鐘

而經(jīng)過 H.264 編碼壓縮之后,視頻大小只有 708 k ,10 Mbps?的帶寬僅僅需要 500 ms ,可以滿足實時傳輸?shù)男枨?,所以從視頻采集傳感器采集來的原始視頻勢必要經(jīng)過視頻編碼。


基本原理

那為什么巨大的原始視頻可以編碼成很小的視頻呢?這其中的技術(shù)是什么呢?核心思想就是去除冗余信息:


空間冗余:圖像相鄰像素之間有較強(qiáng)的相關(guān)性

時間冗余:視頻序列的相鄰圖像之間內(nèi)容相似

編碼冗余:不同像素值出現(xiàn)的概率不同

視覺冗余:人的視覺系統(tǒng)對某些細(xì)節(jié)不敏感

知識冗余:規(guī)律性的結(jié)構(gòu)可由先驗知識和背景知識得到


視頻本質(zhì)上講是一系列圖片連續(xù)快速的播放,最簡單的壓縮方式就是對每一幀圖片進(jìn)行壓縮,例如比較古老的 MJPEG 編碼就是這種編碼方式,這種編碼方式只有幀內(nèi)編碼,利用空間上的取樣預(yù)測來編碼。形象的比喻就是把每幀都作為一張圖片,采用 JPEG 的編碼格式對圖片進(jìn)行壓縮,這種編碼只考慮了一張圖片內(nèi)的冗余信息壓縮,如圖 1,綠色的部分就是當(dāng)前待編碼的區(qū)域,灰色就是尚未編碼的區(qū)域,綠色區(qū)域可以根據(jù)已經(jīng)編碼的部分進(jìn)行預(yù)測(綠色的左邊,下邊,左下等)。


但是幀和幀之間因為時間的相關(guān)性,后續(xù)開發(fā)出了一些比較高級的編碼器可以采用幀間編碼,簡單點說就是通過搜索算法選定了幀上的某些區(qū)域,然后通過計算當(dāng)前幀和前后參考幀的向量差進(jìn)行編碼的一種形式,通過下面兩個圖 2 連續(xù)幀我們可以看到,滑雪的同學(xué)是向前位移的,但實際上是雪景在向后位移,P 幀通過參考幀(I 或其他 P 幀)就可以進(jìn)行編碼了,編碼之后的大小非常小,壓縮比非常高。



可能有同學(xué)對這兩張圖片怎么來的感興趣,這里用了 FFmpeg 的兩行命令來實現(xiàn),具體 FFmpeg 的更多內(nèi)容請看后續(xù)章節(jié):

第一行生成帶有移動矢量的視頻

第二行把每一幀都輸出成圖片

ffmpeg??-flags2?+export_mvs?-i?tutu.mp4?-vf?codecview=mv=pf+bf+bb?tutudebug2.mp4

ffmpeg?-i?tutudebug2.mp4?'tutunormal-%03d.bmp'

除了空間冗余和時間冗余的壓縮,主要還有編碼壓縮和視覺壓縮,下面是一個編碼器主要的流程圖:


圖 3、圖 4 兩個流程,圖 3 是幀內(nèi)編碼,圖 4 是幀間編碼,從圖上看到的主要區(qū)別就是第一步不相同,其實這兩個流程也是結(jié)合在一起的,我們通常說的 I 幀和 P 幀就是分別采用了幀內(nèi)編碼和幀間編碼。


編碼器的選擇

前面梳理了一下編碼器的原理和基本流程,編碼器經(jīng)歷了數(shù)十年的發(fā)展,已經(jīng)從開始的只支持幀內(nèi)編碼演進(jìn)到現(xiàn)如今的 H.265 和 VP9 為代表的新一代編碼器,就目前一些常見的編碼器進(jìn)行分析,帶大家探索一下編碼器的世界。


1) H.264 簡介


H.264/AVC 項目意圖創(chuàng)建一種視頻標(biāo)準(zhǔn)。與舊標(biāo)準(zhǔn)相比,它能夠在更低帶寬下提供優(yōu)質(zhì)視頻(換言之,只有 MPEG-2,H.263 或 MPEG-4 第 2 部分的一半帶寬或更少),也不增加太多設(shè)計復(fù)雜度使得無法實現(xiàn)或?qū)崿F(xiàn)成本過高。另一目的是提供足夠的靈活性以在各種應(yīng)用、網(wǎng)絡(luò)及系統(tǒng)中使用,包括高、低帶寬,高、低視頻分辨率,廣播,DVD 存儲,RTP/IP 網(wǎng)絡(luò),以及 ITU-T 多媒體電話系統(tǒng)。


H.264/AVC 包含了一系列新的特征,使得它比起以前的編解碼器不但能夠更有效的進(jìn)行編碼,還能在各種網(wǎng)絡(luò)環(huán)境下的應(yīng)用中使用。這樣的技術(shù)基礎(chǔ)讓 H.264 成為包括 YouTube 在內(nèi)的在線視頻公司采用它作為主要的編解碼器,但是使用它并不是一件很輕松的事情,理論上講使用 H.264 需要交納不菲的專利費用。


專利許可


和 MPEG-2 第一部分、第二部分,MPEG-4 第二部分一樣,使用 H.264/AVC 的產(chǎn)品制造商和服務(wù)提供商需要向他們的產(chǎn)品所使用的專利的持有者支付專利許可費用。這些專利許可的主要來源是一家稱為 MPEG-LA LLC 的私有組織,該組織和 MPEG 標(biāo)準(zhǔn)化組織沒有任何關(guān)系,但是該組織也管理著 MPEG-2 第一部分系統(tǒng)、第二部分視頻、MPEG-4 第二部分視頻和其它一些技術(shù)的專利許可。


其他的專利許可則需要向另一家稱為 VIA Licensing 的私有組織申請,這家公司另外也管理偏向音頻壓縮的標(biāo)準(zhǔn)如 MPEG-2 AAC 及 MPEG-4 Audio 的專利許可。


H.264 的開源實現(xiàn):OpenH264、x264


OpenH264 是思科實現(xiàn)的開源 H.264 編碼,雖然 H.264 需要交納不菲的專利費用,但是專利費有一個年度上限,思科把 OpenH264 實現(xiàn)的年度專利費交滿后,OpenH264 事實上就可以免費自由的使用了。

x264 是一個采用 GPL 授權(quán)的視頻編碼自由軟件。x264 的主要功能在于進(jìn)行 H.264/MPEG-4 AVC 的視頻編碼,而不是作為解碼器(decoder)之用。

除去費用問題比較來看:

OpenH264 CPU 的占用相對 x264低很多

OpenH264 只支持 baseline profile,x264 支持更多 profile

2) HEVC/H.265 簡介


高效率視頻編碼(High Efficiency Video Coding,簡稱 HEVC)是一種視頻壓縮標(biāo)準(zhǔn),被視為是 ITU-T H.264/MPEG-4 AVC 標(biāo)準(zhǔn)的繼任者。2004 年開始由 ISO/IEC Moving Picture Experts Group(MPEG)和 ITU-T Video Coding Experts Group(VCEG)作為 ISO/IEC 23008-2 MPEG-H Part 2 或稱作 ITU-T H.265 開始制定。第一版的 HEVC/H.265 視頻壓縮標(biāo)準(zhǔn)在 2013 年 4 月 13 日被接受為國際電信聯(lián)盟(ITU-T)的正式標(biāo)準(zhǔn)。HEVC 被認(rèn)為不僅提升視頻質(zhì)量,同時也能達(dá)到 H.264/MPEG-4 AVC 兩倍之壓縮率(等同于同樣畫面質(zhì)量下比特率減少了 50%),可支持 4K 分辨率甚至到超高清電視(UHDTV),最高分辨率可達(dá)到 8192×4320(8K 分辨率)。


專利許可


HEVC Advance 要求所有包括蘋果、YouTube、Netflix、Facebook、亞馬遜等使用 H.265 技術(shù)的內(nèi)容制造商上繳內(nèi)容收入的 0.5%作為技術(shù)使用費,而整個流媒體市場每年達(dá)到約 1000 億美元的規(guī)模,且不斷增長中,征收 0.5%絕對是一筆龐大的費用。而且他們還沒有放過設(shè)備制造商,其中電視廠商需要支付每臺 1.5 美元、移動設(shè)備廠商每臺 0.8 美元的專利費。他們甚至沒有放過藍(lán)光設(shè)備播放器、游戲機(jī)、錄像機(jī)這樣的廠商,這些廠商必須支付每臺 1.1 美元的費用。最無法令人接受的是,HEVC Advance 的專利使用權(quán)追溯到了廠商的「」”,意思是之前已經(jīng)發(fā)售的產(chǎn)品依然要追繳費用。


H.265 的開源實現(xiàn):libde265、x265


libde265?HEVC 由 struktur 公司以開源許可證 GNU LesserGeneral Public License (LGPL) 提供,觀眾可以較慢的網(wǎng)速下欣賞到最高品質(zhì)的影像。跟以前基于H.264標(biāo)準(zhǔn)的解碼器相比,libde265 HEVC 解碼器可以將您的全高清內(nèi)容帶給多達(dá)兩倍的受眾,或者,減少 50%流媒體播放所需要的帶寬。高清或者 4K/8K 超高清流媒體播放,低延遲/低帶寬視頻會議,以及完整的移動設(shè)備覆蓋。具有「擁塞感知」視頻編碼的穩(wěn)定性,十分適合應(yīng)用在 3/4G 和 LTE 網(wǎng)絡(luò)。


x265?是由 MulticoreWare 開發(fā),并開源。采用 GPL 協(xié)議,但是資助這個項目的幾個公司組成了聯(lián)盟可以在非 GPL 協(xié)議下使用這個軟件。


3) VP8 簡介


VP8 是一個開放的視頻壓縮格式,最早由 On2 Technologies 開發(fā),隨后由 Google 發(fā)布。同時 Google 也發(fā)布了 VP8 編碼的實做庫:libvpx,以 BSD 授權(quán)條款的方式發(fā)行,隨后也附加了專利使用權(quán)。而在經(jīng)過一些爭論之后,最終 VP8 的授權(quán)確認(rèn)為一個開放源代碼授權(quán)。


目前支持 VP8 的網(wǎng)頁瀏覽器有 Opera、Firefox 和 Chrome。


專利許可


2013 年三月,Google 與 MPEG LA 及 11 個專利持有者達(dá)成協(xié)議,讓 Google 獲取 VP8 以及其之前的 VPx 等編碼所可能侵犯的專利授權(quán),同時 Google 也可以無償再次授權(quán)相關(guān)專利給 VP8 的用戶,此協(xié)議同時適用于下一代 VPx 編碼。至此 MPEG LA 放棄成立 VP8 專利集中授權(quán)聯(lián)盟,VP8 的用戶將可確定無償使用此編碼而無須擔(dān)心可能的專利侵權(quán)授權(quán)金的問題。


VP8 的開源實現(xiàn):libvpx


libvpx?是 VP8 的唯一開源實現(xiàn),由 On2 Technologies 開發(fā),Google 收購后將其開放源碼,License 非常寬松可以自由使用。


4) VP9 簡介


VP9 的開發(fā)從 2011 年第三季開始,目標(biāo)是在同畫質(zhì)下,比 VP8 編碼減少 50% 的文件大小,另一個目標(biāo)則是要在編碼效率上超越 HEVC 編碼。


2012 年 12 月 13 日,Chromium 瀏覽器加入了 VP9 編碼的支持。Chrome 瀏覽器則是在 2013 年 2 月 21 日開始支持 VP9 編碼的視頻播放。


Google 宣布會在 2013 年 6 月 17 日完成 VP9 編碼的制定工作,屆時 Chrome 瀏覽器將會把 VP9 編碼默認(rèn)引導(dǎo)。2014 年 3 月 18 日,Mozilla 在 Firefox 瀏覽器中加入了 VP9 的支持。


2015 年 4 月 3 日,谷歌發(fā)布了libvpx1.4.0 增加了對 10 位和 12 位的比特深度支持、4:2:2 和 4:4:4 色度抽樣,并 VP9 多核心編/解碼。


專利許可


VP9 是一個開放格式、無權(quán)利金的視頻編碼格式。


VP9 的開源實現(xiàn):ibvpx


libvpx?是 VP9 的唯一開源實現(xiàn),由 Google 開發(fā)維護(hù),里面有部分代碼是 VP8 和 VP9 公用的,其余分別是 VP8 和 VP9 的編解碼實現(xiàn)。


VP9 和 H.264 和 HEVC 比較



HEVC 和 H.264 在不同分辨率下的比較


跟 H.264/MPEG-4 相比,HEVC 的平均比特率減低值為:



可見碼率下降了 60% 以上。

HEVC (H.265) 對 VP9 和 H.264 在碼率節(jié)省上有較大的優(yōu)勢,在相同 PSNR 下分別節(jié)省了 48.3% 和 75.8%。

H.264 在編碼時間上有巨大優(yōu)勢,對比 VP9 和 HEVC(H.265) ,HEVC 是 VP9 的 6 倍,VP9 是 H.264 的將近 40 倍

5) FFmpeg


談到視頻編碼相關(guān)內(nèi)容就不得不提一個偉大的軟件包 - FFmpeg。


FFmpeg 是一個自由軟件,可以運行音頻和視頻多種格式的錄影、轉(zhuǎn)換、流功能,包含了 libavcodec -這是一個用于多個項目中音頻和視頻的解碼器庫,以及 libavformat -一個音頻與視頻格式轉(zhuǎn)換庫。


FFmpeg 這個單詞中的 FF 指的是 Fast Forward。有些新手寫信給?FFmpeg?的項目負(fù)責(zé)人,詢問 FF 是不是代表 Fast Free 或者 Fast Fourier 等意思,F(xiàn)Fmpeg??的項目負(fù)責(zé)人回信說:「Just for the record, the original meaning of FF in FFmpeg is Fast Forward.」


這個項目最初是由 Fabrice Bellard 發(fā)起的,而現(xiàn)在是由 Michael Niedermayer 在進(jìn)行維護(hù)。許多 FFmpeg 的開發(fā)者同時也是 MPlayer 項目的成員,F(xiàn)Fmpeg 在 MPlayer 項目中是被設(shè)計為服務(wù)器版本進(jìn)行開發(fā)。


FFmpeg 下載地址是 :?https://ffmpeg.org/download.html

可以瀏覽器輸入下載,目前支持 Linux ,Mac OS,Windows 三個主流的平臺,也可以自己編譯到 Android 或者 iOS 平臺。

如果是 Mac OS ,可以通過 brew 安裝

?brew install ffmpeg --with-libvpx --with-libvorbis --with-ffplay

我們可以用 FFmpeg 來做哪些有用有好玩的事情呢?通過一系列小實驗來帶大家領(lǐng)略 FFmpeg 的神奇和強(qiáng)大。


FFmpeg 錄屏


通過一個小例子看一下怎么在 Mac OS 下面使用 FFmpeg 進(jìn)行錄屏:


輸入:

ffmpeg?-f?avfoundation?-list_devices?true?-i?""

輸出:

[AVFoundation?input?device?@?0x7fbec0c10940]?AVFoundation?video?devices:
[AVFoundation?input?device?@?0x7fbec0c10940]?[0]?FaceTime?HD?Camera
[AVFoundation?input?device?@?0x7fbec0c10940]?[1]?Capture?screen?0
[AVFoundation?input?device?@?0x7fbec0c10940]?[2]?Capture?screen?1
[AVFoundation?input?device?@?0x7fbec0c10940]?AVFoundation?audio?devices:
[AVFoundation?input?device?@?0x7fbec0c10940]?[0]?Built-in?Microphone

給出了當(dāng)前設(shè)備支持的所有輸入設(shè)備的列表和編號,我本地有兩塊顯示器,所以 1 和 2 都是我屏幕,可以選擇一塊進(jìn)行錄屏。

查看當(dāng)前的 H.264 編解碼器:

輸入:

ffmpeg?-codecs?|?grep?264

輸出:

?DEV.LS?h264?????????????????H.264?/?AVC?/?MPEG-4?AVC?/?MPEG-4?part?10?(decoders:?h264?h264_vda?)?(encoders:?libx264?libx264rgb?)

查看當(dāng)前的 VP8 編解碼器:

輸入:

ffmpeg?-codecs?|?grep?vp8

輸出:

??DEV.L.?vp8??????????????????On2?VP8?(decoders:?vp8?libvpx?)?(encoders:?libvpx?)

可以選擇用 VP8 或者 H264 做編碼器

ffmpeg?-r?30?-f?avfoundation?-i?1?-vcodec?vp8?-quality?realtime?screen2.webm
#?-quality?realtime?用來優(yōu)化編碼器,如果不加在我的?Air?上幀率只能達(dá)到?2

or

ffmpeg?-r?30?-f?avfoundation?-i?1?-vcodec?h264?screen.mp4

然后用 ffplay 播放就可以了

ffplay?screen.mp4

or

ffplay?screen2.webp


FFmpeg 視頻轉(zhuǎn)換成 gif


有一個特別有用的需求,在網(wǎng)上發(fā)現(xiàn)了一個特別有趣的視頻想把它轉(zhuǎn)換成一個動態(tài)表情,作為一個 IT 從業(yè)者,我第一個想到的不是下載一個轉(zhuǎn)碼器,也不是去找一個在線轉(zhuǎn)換網(wǎng)站,直接利用手邊的工具 FFmpeg,瞬間就完成了轉(zhuǎn)碼:

ffmpeg?-ss?10?-t?10??-i?tutu.mp4??-s?80x60??tutu.gif
##?-ss?指從?10s?開始轉(zhuǎn)碼,-t?指轉(zhuǎn)換?10s?的視頻?-s


FFmpeg 錄制屏幕并直播


可以繼續(xù)擴(kuò)展例子1,直播當(dāng)前屏幕的內(nèi)容,向大家介紹一下怎么通過幾行命令搭建一個測試用的直播服務(wù):

Step 1:首先安裝 docker: 訪問?https://www.docker.com/products/docker?,按操作系統(tǒng)下載安裝。

<p style="clear:both;min-height:1em;color:rgb(62,62,62);font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', 'Microsoft YaHei', Arial, s

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉