18221533805
視頻和視頻幀:視頻和幀基礎知識整理
上海微信小程序開發制作、APP、網站、小程序定制、小程序外包開發公司

視頻和視頻幀:視頻和幀基礎知識整理

2022-12-28
寫在前面

基于18年12月(yue)的接(jie)手x86平臺邊緣計算設備的流量解碼已經(jing)工作了幾(ji)個月(yue)。作者還(huan)記得(de)對流媒(mei)體、視(shi)頻、幀、圖像等(deng)概念完(wan)全混亂(luan),慢(man)慢(man)跟(gen)隨項目一步一步地學習,受益匪(fei)淺,以(yi)本文鼓舞人心作為繼續學習的里程(cheng)碑(bei)!

本文將介紹:

視頻的基本知識。包括:視頻協議、格式、視頻流。視頻幀的基本知識。YUV幀格式,常見幀名詞(幀率)fps、幀名詞(1080p和1080i)、幀名詞源自視頻編解碼(GOP、IBP幀)。修改記錄

本(ben)文于2019年4月8日首(shou)次(ci)完成(cheng),包括(kuo):

視頻協議、格式、播放原理等基本內容;YUV格式、fps、分辨率、GOP和I/B/P幀等視頻幀的基本知識;提到H2 ** 等視頻壓縮技術。

二次修改于2019年(nian)9月7日進行(xing),修改內容如下:

第一章增加了視頻流介紹,刪除了播放原理介紹;第二章增加了YUV現場、1080p和1080i介紹;刪除YUV的顏色值域(Color Range)介紹;刪除了原第三章的內容,這篇文章將在后續發表。I. 視頻基礎知識

我相信每個人都必須熟悉視頻。通常,他們(men)必須經(jing)常瀏覽主要視頻網(wang)站(如(ru)騰訊視頻和比(bi)利(li)比(bi)利(li)),甚(shen)至偶爾將視頻緩存到本地(di)并保存.mkv,.avi文件等等。前者(zhe)是(shi)我們(men)常說的『網(wang)絡流媒(mei)體』,后者(zhe)是(shi)『本地(di)視頻文件』。兩個問題來(lai)了:

常見的本地視頻文件MP4、MKV、 ** I等等,這些是什么?有什么區別?騰訊視頻和嗶哩嗶哩在線觀看的視頻與當地播放的視頻有什么不同?MP4、MKV、 ** I文件有什么區別?

在介紹第(di)一(yi)個問題(ti)之(zhi)前,必須引入(ru)一(yi)個名詞『視(shi)頻(pin)(pin)包(bao)(bao)裝(zhuang)格(ge)式(shi)』,簡稱(cheng)(cheng)(cheng)『視(shi)頻(pin)(pin)格(ge)式(shi)』,也稱(cheng)(cheng)(cheng)為(wei)『容器』。有(you)的說法還要區分是視(shi)頻(pin)(pin)文件格(ge)式(shi)和(he)視(shi)頻(pin)(pin)包(bao)(bao)裝(zhuang)格(ge)式(shi),本文統一(yi)稱(cheng)(cheng)(cheng)『視(shi)頻(pin)(pin)包(bao)(bao)裝(zhuang)格(ge)式(shi)』。

視頻格式

問題1:常見的(de)本(ben)地視頻(pin)文(wen)件MP4、MKV、 ** I等等,這些是什(shen)么(me)?有什(shen)么(me)區別?

首先,MP4、 ** I、MKV都(dou)是本(ben)地視(shi)(shi)頻(pin)(pin)(pin)文件的(de)(de)后綴,在windows用(yong)(yong)于提示操作系統(tong)應(ying)使用(yong)(yong)哪個應(ying)用(yong)(yong)程(cheng)序打開系統(tong)。在流媒體(ti)領域,這些都(dou)被(bei)稱(cheng)為『視(shi)(shi)頻(pin)(pin)(pin)包裝格式(shi)』,除音視(shi)(shi)頻(pin)(pin)(pin)流外,它們(men)還包含了一些輔助信息和組織(zhi)(zhi)視(shi)(shi)頻(pin)(pin)(pin)音頻(pin)(pin)(pin)的(de)(de)方法。不同格式(shi)的(de)(de)視(shi)(shi)頻(pin)(pin)(pin)在不同的(de)(de)平臺上(shang)有不同的(de)(de)用(yong)(yong)戶體(ti)驗,主要(yao)是因為視(shi)(shi)頻(pin)(pin)(pin)的(de)(de)組織(zhi)(zhi)方式(shi)不同。作者(zhe)認為百(bai)度百(bai)科全書(shu)上(shang)的(de)(de)解釋(shi)很(hen)容(rong)易理解( ** 說(shuo)法不夠直白):

視頻格式是視頻播放軟件為了播放視頻文件而賦予視頻文件的識別符號。

簡而言之,視頻格式規定了與(yu)播放器的通信協議。

其次,作者最近準(zhun)備開始(shi)深入研究(jiu)MP4、 ** I、MKV內部原(yuan)部原(yuan)則主要是組(zu)織視(shi)(shi)(shi)頻(pin)和音頻(pin)的方式。例(li)如,在播(bo)放視(shi)(shi)(shi)頻(pin)時,我們可以選擇各種語言,如普通話(hua)、廣(guang)東話(hua)和英語,這意味著視(shi)(shi)(shi)頻(pin)和音頻(pin)包含多(duo)個音頻(pin)流。給自己留個坑(keng)。

最后,作(zuo)者推薦了一個很棒(bang)的(de)博客:視頻文件(jian)格式知道多少,總結得很完整。

問題1引申:對于想做(zuo)視頻(pin)處理的(de)開發者,接觸MP4、MKV、 ** I在等待各(ge)種格式的(de)視頻(pin)文件時,有(you)什么需要注意的(de)嗎?

視頻和音頻處理(li)(li)可以(yi)多領域(yu),包括解碼、編碼、過濾、增強處理(li)(li)等。作者(zhe)目前只探索解碼領域(yu),答案是(shi):解碼沒有區別。其他領域(yu)還不清楚。

『視(shi)(shi)(shi)頻(pin)包(bao)裝(zhuang)格式』,它是(shi)在編碼視(shi)(shi)(shi)頻(pin)和(he)音頻(pin)的(de)基礎上進(jin)行包(bao)裝(zhuang),添(tian)加與(yu)播放(fang)相關的(de)協(xie)議數據(這是(shi)作者的(de)認知,如果表達(da)不準確,歡迎批評和(he)糾正)。目前(qian),主流(liu)開(kai)源框架在解包(bao)裝(zhuang)工作中(zhong)非常成(cheng)熟FFMpeg,為(wei)打開(kai)視(shi)(shi)(shi)頻(pin)音頻(pin)提供了(le)API,開(kai)發人員可以直(zhi)接取出視(shi)(shi)(shi)頻(pin)流(liu)進(jin)行處理,無需注意具(ju)體的(de)視(shi)(shi)(shi)頻(pin)格式。

接(jie)下來(lai),我將(jiang)介(jie)紹第二個問題(ti),作者將(jiang)引入名詞『視頻協議』,也有說法認為『視頻協議』也屬于『視頻包裝(zhuang)格(ge)式(shi)』。

視頻協議

問題(ti)2:在騰訊(xun)視(shi)頻(pin)、嗶哩嗶哩網(wang)上觀看(kan)的視(shi)頻(pin),以及(ji)當地播放的視(shi)頻(pin)MP4、MKV、 ** I文件有(you)什么區(qu)別?

『視(shi)頻協(xie)(xie)議(yi)』它(ta)是針對網(wang)絡流媒體(ti)的,即只有在有網(wang)絡時才能(neng)通過(guo)瀏覽器或(huo)移(yi)動終端APP目前常見(jian)的協(xie)(xie)議(yi)有視(shi)頻RTSP、RTMP、HLS、HTTP等等。作(zuo)者短(duan)暫接(jie)觸(chu)過(guo)。GStreamer開發,連(lian)接(jie)RSTP在視(shi)頻中,除了視(shi)頻流和音頻流metadata此外(wai),還攜帶(dai)播放信令。

也會有(you)(you)文章『視(shi)(shi)(shi)頻(pin)(pin)協議』歸(gui)入『視(shi)(shi)(shi)頻(pin)(pin)包裝(zhuang)(zhuang)格式(shi)』。在(zai)我看(kan)來,這種分類也有(you)(you)其原因:『視(shi)(shi)(shi)頻(pin)(pin)協議』和『視(shi)(shi)(shi)頻(pin)(pin)包裝(zhuang)(zhuang)格式(shi)』同時(shi)攜帶視(shi)(shi)(shi)頻(pin)(pin)和音頻(pin)(pin)metadata,以及(ji)協議/格式(shi)所需(xu)的其他信息。以FFMpeg例(li)如,視(shi)(shi)(shi)頻(pin)(pin)格式(shi)和視(shi)(shi)(shi)頻(pin)(pin)協議沒(mei)有(you)(you)區別;但是(shi)GStreamer還需(xu)要指定(ding)『視(shi)(shi)(shi)頻(pin)(pin)協議』,但是(shi)不區分『視(shi)(shi)(shi)頻(pin)(pin)包裝(zhuang)(zhuang)格式(shi)』。

剝開『視頻(pin)包(bao)裝格式』和『視頻(pin)協議』外殼,接(jie)下來(lai)了(le)解視頻(pin)流本(ben)身,這(zhe)才(cai)是(shi)流媒體(ti)領域真正的(de)主角。本(ben)文僅(jin)介紹視頻(pin)流。

視頻流

就(jiu)視頻流(liu)(liu)(liu)(liu)而言,我(wo)相信你一定(ding)經常聽到類似(si)的(de)h2 ** 碼流(liu)(liu)(liu)(liu)”、“yuv流(liu)(liu)(liu)(liu)、編(bian)碼流(liu)(liu)(liu)(liu)、解碼流(liu)(liu)(liu)(liu)、原(yuan)始流(liu)(liu)(liu)(liu)、裸流(liu)(liu)(liu)(liu)、壓(ya)縮流(liu)(liu)(liu)(liu)或未(wei)壓(ya)縮流(liu)(liu)(liu)(liu)等。綜(zong)上所(suo)述,提到『視頻流(liu)(liu)(liu)(liu)』一定(ding)只有兩種(zhong)形(xing)式:

壓縮算法壓縮的流數據稱為『編碼流』,由于目前的壓縮/編碼算法H2 ** 因此,它也常被稱為『H2 ** 碼流』。未壓縮流數據是解碼流數據,稱為『原始流』,可以想象,視頻是由時間上連續的圖像組成的,因為視頻中的圖像是『YUV』(后面介紹),所以常被稱為『YUV流』。

總結出現的名稱,h2 ** 編(bian)碼流(liu)(liu)、編(bian)碼流(liu)(liu)、壓(ya)縮(suo)流(liu)(liu)是(shi)壓(ya)縮(suo)/編(bian)碼后的視頻流(liu)(liu);而yuv流(liu)(liu)、解碼流(liu)(liu)、未壓(ya)縮(suo)流(liu)(liu)是(shi)未壓(ya)縮(suo)/編(bian)碼的視頻流(liu)(liu)。裸(luo)流(liu)(liu)是(shi)一個歧義性的詞,可(ke)以是(shi)前者(zhe)或后者(zhe)。

因此(ci),如果你(ni)(ni)將來閱讀(du)任何與流(liu)媒體相(xiang)關(guan)的(de)文章,你(ni)(ni)會看到(dao)它『視頻流(liu)』應該弄清(qing)楚這(zhe)是編(bian)碼(ma)(ma)/壓(ya)(ya)縮(suo)還是不。在生活(huo)中,接觸到(dao)的(de)大(da)部(bu)分視頻文件都是編(bian)碼(ma)(ma)/壓(ya)(ya)縮(suo)的(de);在網絡(luo)傳輸(shu)場景中,大(da)部(bu)分也是編(bian)碼(ma)(ma)/壓(ya)(ya)縮(suo)壓(ya)(ya)縮(suo)后(hou)(hou)的(de)。只有在視頻播放時,觀眾才能看到(dao)一(yi)幀幀『轉碼(ma)(ma)』為『RGB』視頻流(liu)解碼(ma)(ma)后(hou)(hou)。

流(liu)媒體領域的(de)編碼(ma)(ma)/壓(ya)縮是一項非常重要(yao)的(de)技術:從『H2 ** 碼(ma)(ma)流(liu)』到『YUV流(liu)』過(guo)程稱為解(jie)碼(ma)(ma),反(fan)之(zhi)亦然。

II. 幀

流(liu)媒(mei)體(ti)領(ling)域(yu),『流(liu)』很重(zhong)要(yao),『流(liu)』的基本元素(su)『幀(zhen)(zhen)(zhen)』同(tong)樣重(zhong)要(yao)。原因是(shi)(shi):對于視(shi)頻編(bian)碼/壓(ya)(ya)(ya)縮(suo)(suo),其核心是(shi)(shi)在盡可(ke)能小的空(kong)間內存儲一組時間連續幀(zhen)(zhen)(zhen)數據;對于視(shi)頻解碼,將(jiang)編(bian)碼/壓(ya)(ya)(ya)縮(suo)(suo)的幀(zhen)(zhen)(zhen)數據恢(hui)復(fu)到原始狀態。可(ke)100%恢(hui)復(fu)的編(bian)碼/壓(ya)(ya)(ya)縮(suo)(suo)算法稱為(wei)無(wu)損(sun)壓(ya)(ya)(ya)縮(suo)(suo),反(fan)之亦然(ran)(無(wu)損(sun)壓(ya)(ya)(ya)縮(suo)(suo)雖然(ran)是(shi)(shi)最理想(xiang)的,但在很多實(shi)際(ji)場景中,為(wei)了追(zhui)求高壓(ya)(ya)(ya)縮(suo)(suo)率,比如降(jiang)低網絡帶寬壓(ya)(ya)(ya)力,往往要(yao)選擇(ze)有(you)損(sun)壓(ya)(ya)(ya)縮(suo)(suo))。由此可(ke)見,『幀(zhen)(zhen)(zhen)』是(shi)(shi)視(shi)頻流(liu)媒(mei)體(ti)領(ling)域(yu)的核心。接下來,讓我(wo)們知道(dao)什(shen)么是(shi)(shi)『幀(zhen)(zhen)(zhen)』。

『幀』,可(ke)以聯(lian)想(xiang)成我(wo)們平時看到的(de)圖像,但(dan)我(wo)們平時接觸的(de)圖片是『RGB』格式,視頻幀通常是『YUV』格式。既然(ran)提到了『RGB』和『YUV』,然(ran)后了解(jie)下幀的(de)格式『YUV』,第(di)一(yi)個問題:

問題3:為什么幀使用『YUV』格(ge)式?『YUV』是什么?

為(wei)此,筆(bi)者花(hua)了很(hen)長時間了解色彩空間、電視成(cheng)像的(de)發展歷史等,整(zheng)理(li)結(jie)論(lun)如下:

在達到最大壓縮率的情況下,可以保證對人眼感知的失真度最小。『YUV』三通道,其中"Y";表示亮度(Lumina nce或Lu ** ),也就是灰階值;和"U"和"V";表示色度(Chrominance或Chro ** )。許多科學家發現,人眼對面UV敏感度最低,可以大比例壓縮UV兩個通道的值。見視頻編解碼學習一 yuv格式。向前兼容黑白電視。這涉及歷史原因。作者強烈推薦零基礎入門音視頻開發。在歷史上,有人提出使用視頻幀格式RGB是的,最后決定用YUV這是真正的原因(見圖像使用)YUV為什么不使用格式?RGB呢?。

接下(xia)來解(jie)釋『YUV』作者認為是什(shen)么,『YUV』在視頻領域(yu),提到它是一個(ge)廣(guang)義的概念『YUV』通常有以下(xia)含義:

顏色空間

“Y表(biao)(biao)示(shi)亮度(Luminance、Lu ** ),“U”和(he)“V”則是(shi)色(se)(se)度(Chrominance)、濃(nong)度(Chro ** )。這是(shi)色(se)(se)彩(cai)空間(jian)的(de)基(ji)礎,類(lei)(lei)似XYZ坐標(biao)系的(de)色(se)(se)標(biao)表(biao)(biao)示(shi)基(ji)準(zhun),即每種顏(yan)(yan)色(se)(se)都可以通過(guo)三維向量<y^i^,u^i^,v^i^>來表(biao)(biao)示(shi)。還有(you)類(lei)(lei)似的(de)RGB顏(yan)(yan)色(se)(se)空間(jian)、HSV色(se)(se)彩(cai)空間(jian)等(deng)。下圖來自How does the YUV color coding work?

圖1. YUV坐標軸示意圖

隨著通信(xin)行業的(de)(de)(de)發展(zhan),實際(ji)應(ying)用的(de)(de)(de)復雜性導(dao)致(zhi)『YUV』一(yi)個大(da)家(jia)庭衍生出(chu)來。一(yi)定(ding)聽(ting)說過接(jie)觸視頻領域。YCbCr,甚至還(huan)(huan)有(you)YPbPr、YIQ等。有(you)的(de)(de)(de)被(bei)時代淘汰,有(you)的(de)(de)(de)還(huan)(huan)在(zai)用。之所以出(chu)現『YUV』大(da)家(jia)實際(ji)電路(lu)系統實際(ji)電路(lu)系統之間的(de)(de)(de)差異『YUV』轉到『RGB』空間,實際(ji)對應(ying)的(de)(de)(de)轉換系數有(you)一(yi)些(xie)差異,所以各部門開始制定(ding)各種規范,我們現在(zai)看到『YUV』大(da)家(jia)族。

YCbCr它(ta)(ta)誕(dan)生(sheng)于(yu)數字(zi)電路(lu);YPbPr它(ta)(ta)是模(mo)擬電路(lu)。然而(er),現在是數字(zi)時代,它(ta)(ta)誕(dan)生(sheng)于(yu)模(mo)擬電路(lu)YPbPr已(yi)(yi)逐漸被淘汰,但已(yi)(yi)逐漸被淘汰YCbCr一直(zhi)在發揮作(zuo)用。所(suo)以現在,YCbCr有(you)時它(ta)(ta)只是被稱為/認為『YUV』。

2. 采樣率

讀者(zhe)可(ke)能(neng)聽(ting)說過讀者(zhe)可(ke)能(neng)聽(ting)說過YUV444”,“YUV422”,“YUV在這(zhe)里,你可(ke)能(neng)會想:420YUV不是顏色(se)空間嗎(ma)?為什(shen)么(me)后面會跟著一串(chuan)數(shu)(shu)(shu)字(zi)(zi)?” 因為當(dang)你看到的(de)(de)(de)(de)時候(hou)YUV后面跟著一串(chuan)數(shu)(shu)(shu)字(zi)(zi),『YUV』它不再(zai)是色(se)彩空間的(de)(de)(de)(de)基本含(han)義,而(er)是在原始『YUV流(liu)』上(shang)的(de)(de)(de)(de)采(cai)(cai)樣(yang)。以前流(liu)媒體剛(gang)興起的(de)(de)(de)(de)時候(hou),沒(mei)有(you)4G/5G,當(dang)時,為了(le)減輕網絡傳輸帶寬(kuan)的(de)(de)(de)(de)壓(ya)力,我們做出(chu)了(le)各種努力。除編(bian)碼/壓(ya)縮外,YUV采(cai)(cai)樣(yang)率也是一種。444,422和420是三種『YUV』(指數(shu)(shu)(shu)字(zi)(zi)電(dian)路(lu)YCbCr)三位數(shu)(shu)(shu)分別代表采(cai)(cai)樣(yang)YUV(在數(shu)(shu)(shu)字(zi)(zi)電(dian)路(lu)中(zhong)YCbCr,本段后同)通道抽樣(yang)比(bi)。所(suo)以可(ke)以理解(jie),444是全(quan)采(cai)(cai)樣(yang);422是Y的(de)(de)(de)(de)全(quan)采(cai)(cai)樣(yang)UV均(jun)勻采(cai)(cai)樣(yang)1/2。有(you)趣的(de)(de)(de)(de)問題(ti)來了(le),420是否(fou)完(wan)全(quan)丟(diu)棄了(le)V通道/重(zhong)量(liang)(liang)數(shu)(shu)(shu)據?答案是否(fou)定的(de)(de)(de)(de)。首先,我們必須(xu)理解(jie)一個(ge)(ge)(ge)問題(ti)。一幀(zhen)圖(tu)(tu)像(xiang)是由(you)(you)像(xiang)素組(zu)成的(de)(de)(de)(de)矩形(xing),如(ru)(ru)4x圖(tu)(tu)像(xiang)的(de)(de)(de)(de)大(da)小,由(you)(you)16個(ge)(ge)(ge)像(xiang)素點組(zu)成。平時接觸『RGB』在圖(tu)(tu)像(xiang)中(zhong),每(mei)(mei)個(ge)(ge)(ge)像(xiang)素必須(xu)至(zhi)少由(you)(you)RGB這(zhe)三個(ge)(ge)(ge)通道(有(you)些圖(tu)(tu)像(xiang)和alpha重(zhong)量(liang)(liang)),每(mei)(mei)個(ge)(ge)(ge)重(zhong)量(liang)(liang)的(de)(de)(de)(de)值一般是[0,255],即[2^0,2^8]所(suo)以常說像(xiang)素占用3字(zi)(zi)節(如(ru)(ru)果還有(you)其他重(zhong)量(liang)(liang),比(bi)如(ru)(ru)RGBA,另當(dang)別論)。『YUV』同樣(yang),它的(de)(de)(de)(de)每(mei)(mei)個(ge)(ge)(ge)像(xiang)素都是由(you)(you)圖(tu)(tu)像(xiang)組(zu)成的(de)(de)(de)(de)YUV組(zu)成的(de)(de)(de)(de)。其次(ci),從(cong)整個(ge)(ge)(ge)圖(tu)(tu)像(xiang)宏觀上(shang)考慮采(cai)(cai)樣(yang)問題(ti)。還是以4X以4的(de)(de)(de)(de)圖(tu)(tu)像(xiang)為例(li)。444的(de)(de)(de)(de)圖(tu)(tu)像(xiang)如(ru)(ru)下圖(tu)(tu)2-1所(suo)示(shi)。這(zhe)是圖(tu)(tu)像(xiang)的(de)(de)(de)(de)形(xing)象。事(shi)實上(shang),存儲在機器中(zhong)并(bing)非如(ru)(ru)此。詳見博客《圖(tu)(tu)像(xiang)原始格式》。422和420分別如(ru)(ru)下圖(tu)(tu)2-2和2-3所(suo)示(shi)。

圖2-1. YUV444采樣示意圖

圖2-1對應YUV每個像素(su)中都可以看到444采樣,即全(quan)采樣。YUV通(tong)道保留,一般來說YUV444太(tai)大了,很少用。

圖2-2. YUV422采樣示意圖

圖(tu)2-2對應YUV422采樣,采樣方每(mei)(mei)條掃描線或每(mei)(mei)行相(xiang)鄰兩個像(xiang)素,只取(qu)一個像(xiang)素UV重量。另外,可(ke)以計(ji)算出每(mei)(mei)個像(xiang)素占用的(de)大(da)小是原來的(de)2/3,所以YUV422是YUV444的(de)2/3大(da)小。

這個(ge)時候有個(ge)問題,『YUV』轉『RGB』時間,被抽走了UV重量(liang)像(xiang)素該怎么辦?做法很簡單,就(jiu)是公共保留相(xiang)鄰兩(liang)個(ge)像(xiang)素的Y重量(liang)UV分量(liang)。

圖2-2. YUV420采樣示意圖

圖(tu)2-3對應YUV420采(cai)樣方(fang)采(cai)樣方(fang)式為(wei):隔行進行YUV每行422采(cai)樣方(fang)法,即相鄰兩個(ge)像素只取一個(ge)像素UV重(zhong)量(liang);下一行丟棄一切(qie)UV分(fen)量(liang)。另外(wai),可以計算出每個(ge)像素占(zhan)用的大(da)小(xiao)(xiao)是(shi)原來的1/2,所以YUV420是(shi)YUV444的1/2大(da)小(xiao)(xiao)。恢復UV重(zhong)量(liang)的方(fang)法相同(tong)YUV只是(shi)這里有2422X2.矩陣共享保留UV分(fen)量(liang)。

這種(zhong)設計方法真的很(hen)巧妙!上面提(ti)到的"人眼對UV敏感(gan)度最低,可以大(da)比例壓縮(suo)UV兩個通道(dao)的值";對圖像而言,相(xiang)鄰區域像素(su)的顏色和飽和度一般都很(hen)高接近,因此這種(zhong)以2X2矩(ju)陣為基(ji)本(ben)單位,只保留1組UV分量(liang)合(he)情(qing)合(he)理。

3. 編碼/存儲格式

大(da)家肯(ken)定(ding)還(huan)聽說(shuo)過(guo)YV12、YU12、NV12、NV21吧,看到這(zhe)(zhe)里是(shi)不(bu)是(shi)又納(na)悶:“后面(mian)的(de)數(shu)字怎么(me)(me)(me)變成2個(ge)了?而(er)且前面(mian)的(de)英文(wen)字母還(huan)變了?”以(yi)上統(tong)稱(cheng)為『視(shi)(shi)頻的(de)存(cun)(cun)儲(chu)格(ge)(ge)(ge)式(shi)(shi)(shi)』,也(ye)就(jiu)(jiu)是(shi)說(shuo),計算機是(shi)如何存(cun)(cun)儲(chu)一幀視(shi)(shi)頻的(de)。首先,『視(shi)(shi)頻的(de)存(cun)(cun)儲(chu)格(ge)(ge)(ge)式(shi)(shi)(shi)』總分(fen)(fen)為兩(liang)(liang)大(da)類(lei):『打(da)包(bao)格(ge)(ge)(ge)式(shi)(shi)(shi)(packed)』和(he)『平面(mian)格(ge)(ge)(ge)式(shi)(shi)(shi)(planar)』。前者(zhe)又被(bei)稱(cheng)作『緊湊格(ge)(ge)(ge)式(shi)(shi)(shi)(packed)』。其(qi)實除(chu)此之外還(huan)有『半(ban)平面(mian)模式(shi)(shi)(shi)(Semi-Planar)』,估計是(shi)使用的(de)比較少(shao),因(yin)此在很(hen)多(duo)文(wen)章中(zhong)常被(bei)忽略。筆者(zhe)很(hen)感興趣(qu),為什么(me)(me)(me)會出(chu)現『打(da)包(bao)格(ge)(ge)(ge)式(shi)(shi)(shi)』和(he)『平面(mian)格(ge)(ge)(ge)式(shi)(shi)(shi)』兩(liang)(liang)大(da)派系,網上搜了很(hen)多(duo)資料(liao)也(ye)沒(mei)找到原因(yin),博客【音視(shi)(shi)頻基礎】:I420、YV12、NV12、NV21等常見的(de)YUV420存(cun)(cun)儲(chu)格(ge)(ge)(ge)式(shi)(shi)(shi)提(ti)(ti)到了需要約定(ding)存(cun)(cun)儲(chu)格(ge)(ge)(ge)式(shi)(shi)(shi),但也(ye)沒(mei)提(ti)(ti)到為什么(me)(me)(me)會分(fen)(fen)成這(zhe)(zhe)兩(liang)(liang)種。要么(me)(me)(me)就(jiu)(jiu)是(shi)派系之爭,類(lei)似貝葉斯(si)學派和(he)頻率學派;要么(me)(me)(me)就(jiu)(jiu)是(shi)實際應用中(zhong)逐漸衍生出(chu)這(zhe)(zhe)兩(liang)(liang)大(da)格(ge)(ge)(ge)式(shi)(shi)(shi)。時至(zhi)今日,這(zhe)(zhe)兩(liang)(liang)個(ge)格(ge)(ge)(ge)式(shi)(shi)(shi)還(huan)在被(bei)使用,因(yin)此對于多(duo)媒體開(kai)發者(zhe)們都(dou)有必要了解。『打(da)包(bao)格(ge)(ge)(ge)式(shi)(shi)(shi)』是(shi)把YUV分(fen)(fen)量(liang)(liang)交叉(cha)(cha)存(cun)(cun)儲(chu),『平面(mian)格(ge)(ge)(ge)式(shi)(shi)(shi)』則是(shi)把YUV嚴格(ge)(ge)(ge)分(fen)(fen)開(kai)存(cun)(cun)儲(chu),『半(ban)平面(mian)模式(shi)(shi)(shi)』介于兩(liang)(liang)者(zhe)之間(jian),Y分(fen)(fen)量(liang)(liang)分(fen)(fen)開(kai)存(cun)(cun)儲(chu),UV交叉(cha)(cha)存(cun)(cun)儲(chu)。以(yi)下圖為例說(shuo)明『打(da)包(bao)格(ge)(ge)(ge)式(shi)(shi)(shi)』、『平面(mian)格(ge)(ge)(ge)式(shi)(shi)(shi)』和(he)『半(ban)平面(mian)模式(shi)(shi)(shi)』應該(gai)是(shi)非常清楚的(de),圖摘自博客YUV格(ge)(ge)(ge)式(shi)(shi)(shi)初(chu)探:

?圖3-1. YUV420P存儲示意圖?圖3-2. YUV420SP存儲示意圖?圖3-3. YUV420Packet存儲示意圖

但是關于上圖的(de)『打(da)包(bao)(bao)(bao)格式(shi)』,筆者是是有一(yi)點(dian)疑惑的(de),大多(duo)數的(de)說法是”YUV通道(dao)交叉存(cun)儲,相鄰的(de)像素盡量打(da)包(bao)(bao)(bao)在一(yi)起“,圖3-3中(zhong)U1后面(mian)跟著的(de)是U2而不是V1,而且YUV的(de)排列方式(shi)似乎也不完全是交叉?筆者嘗(chang)試(shi)在網(wang)上搜索(suo)『打(da)包(bao)(bao)(bao)格式(shi)』更多(duo)的(de)例(li)子,沒有找到特別好的(de)資(zi)料,【這里(li)給(gei)自己挖一(yi)個坑吧】。

接下來,我們繼(ji)續了解一些(xie)幀相關(guan)的概念。

常見的幀名詞

幀率(FPS)『幀率』,FPS,全稱Frames Per Second。指每秒傳輸的幀數,或者每秒顯示的幀數,一般來說,『幀率』影響畫面流暢度,且成正比:幀率越大,畫面越流暢;幀率越小,畫面越有跳動感。一個較權威的說法:當視頻幀率不低于24fps時,人眼才會覺得視頻時連貫的,稱為“視覺暫留”現象。因此,才有說法:盡管『幀率』越高越流暢,但在很多實際應用場景中24fps就可以了。分辨率(Resolution)『分辨率』,也常被俗稱為『圖像的尺寸』或者『圖像的大小』。指一幀圖像包含的像素的多少,常見有1280x720(720P),1920X1080(1080P)等規格。『分辨率』影響圖像大小,且與之成正比:『分辨率』越高,圖像越大;反之,圖像越小。碼率(BPS)『碼率』,BPS,全稱Bits Per Second。指每秒傳送的數據位數,常見單位KBPS(千位每秒)和MBPS(兆位每秒)。筆者認為這個概念真正要理解起來還是需要好好說明的,網上一說:“『碼率』與體積成正比:碼率越大,體積越大;碼率越小,體積越小”;另一說:“『碼率』越大,說明單位時間內取樣率越大,數據流精度就越高,這樣表現出來的的效果就是:視頻畫面更清晰畫質更高”;還有說法是:”『碼率』就是『失真度』“。但是筆者有一段時間就是不理解,每秒傳輸的數據越大,為什么必然就對應畫面更清晰?還有體積怎么理解呢?且看下文”三者之間的關系“。

『幀(zhen)率(lv)(lv)(lv)(lv)(lv)(lv)』『分(fen)辨(bian)率(lv)(lv)(lv)(lv)(lv)(lv)』和(he)『碼(ma)(ma)率(lv)(lv)(lv)(lv)(lv)(lv)』三者(zhe)之間的(de)(de)關(guan)系最(zui)理想(xiang)的(de)(de)情(qing)(qing)況(kuang)是(shi)畫面(mian)越清晰、越流暢是(shi)最(zui)好的(de)(de)。但在實(shi)際(ji)應用中,還需(xu)要結合(he)硬(ying)件的(de)(de)處(chu)理能力(li)、實(shi)際(ji)帶(dai)寬(kuan)條(tiao)件選擇。高『幀(zhen)率(lv)(lv)(lv)(lv)(lv)(lv)』高『分(fen)辨(bian)率(lv)(lv)(lv)(lv)(lv)(lv)』,也就意味著高『碼(ma)(ma)率(lv)(lv)(lv)(lv)(lv)(lv)』,也意味著需(xu)要高帶(dai)寬(kuan)和(he)強(qiang)大(da)的(de)(de)硬(ying)件能力(li)進行編解碼(ma)(ma)和(he)圖像處(chu)理。所以『幀(zhen)率(lv)(lv)(lv)(lv)(lv)(lv)』和(he)『分(fen)辨(bian)率(lv)(lv)(lv)(lv)(lv)(lv)』應該視情(qing)(qing)況(kuang)而定。要說(shuo)三者(zhe)之間的(de)(de)關(guan)系,其實(shi)就是(shi)對于『碼(ma)(ma)率(lv)(lv)(lv)(lv)(lv)(lv)』的(de)(de)理解。在碼(ma)(ma)率(lv)(lv)(lv)(lv)(lv)(lv)(BPS)概(gai)念中提到了幾段摘自網(wang)上的(de)(de)說(shuo)法,說(shuo)的(de)(de)都太模糊了,筆者(zhe)直到閱讀(du)了文章(zhang)(zhang)Video Bitrate Vs. Frame Rate,才(cai)真的(de)(de)理解了『碼(ma)(ma)率(lv)(lv)(lv)(lv)(lv)(lv)』。首先,這些說(shuo)法都沒(mei)有交代一(yi)個前提:『幀(zhen)率(lv)(lv)(lv)(lv)(lv)(lv)』、『分(fen)辨(bian)率(lv)(lv)(lv)(lv)(lv)(lv)』和(he)『壓縮率(lv)(lv)(lv)(lv)(lv)(lv)』都會影響(xiang)『碼(ma)(ma)率(lv)(lv)(lv)(lv)(lv)(lv)』。Video Bitrate Vs. Frame Rate](// ** .karrylady.cn)文章(zhang)(zhang)在一(yi)開始就明確指出:

Bitrate serves as a more general indicator of quality, with higher resolutions, higher frame rates and lower compression all leading to an increased bitrate.『碼率』是更廣泛的(視頻)質量指標:更高的『分辨率』,更高的『幀率』和更低的『壓縮率』,都會導致『碼率』增加。

文章后面又特(te)別(bie)強調(diao)『分(fen)辨率(lv)(lv)(lv)』和『壓(ya)(ya)縮(suo)率(lv)(lv)(lv)』對『碼率(lv)(lv)(lv)』的(de)影響:高分(fen)辨率(lv)(lv)(lv)意味著圖片(pian)可(ke)以(yi)包(bao)括(kuo)更多的(de)細節,低壓(ya)(ya)縮(suo)率(lv)(lv)(lv)意味著圖片(pian)壓(ya)(ya)縮(suo)損失(shi)(shi)越(yue)(yue)少,即失(shi)(shi)真越(yue)(yue)少,越(yue)(yue)清晰。那為什么不特(te)地(di)討(tao)論(lun)(lun)『幀(zhen)(zhen)率(lv)(lv)(lv)』呢?筆者(zhe)認為原因有二:一(yi)個是『幀(zhen)(zhen)率(lv)(lv)(lv)』的(de)影響非常直觀(guan),每秒幀(zhen)(zhen)數(shu)增加必然導致數(shu)據量增加;另一(yi)個是實際(ji)應用場景(jing)中『幀(zhen)(zhen)率(lv)(lv)(lv)』是相對固定的(de),我(wo)們觀(guan)看的(de)一(yi)般(ban)視頻(pin)都在(zai)25-30fps之間(jian),現在(zai)一(yi)些高幀(zhen)(zhen)視頻(pin)是60fps,可(ke)見視頻(pin)『幀(zhen)(zhen)率(lv)(lv)(lv)』在(zai)實際(ji)場景(jing)中被(bei)討(tao)論(lun)(lun)的(de)很少。

奇怪(guai)的幀名詞(ci):1080p和1080i、場

筆者(zhe)僅僅出于覺得有趣(qu)才放上(shang)來的(de),1080p和1080i、場都是相對比較“老”的(de)概念了,在還是CRT電視的(de)時(shi)代(dai)(dai),顯示(shi)器顯示(shi)畫(hua)面都是靠電子槍一(yi)行一(yi)行掃描畫(hua)面才能產生一(yi)副完整的(de)圖像,這(zhe)就被稱作『場』,后(hou)來這(zhe)個名詞(ci)也(ye)不(bu)(bu)常使(shi)用了,被取代(dai)(dai)它的(de)是『幀』。【科技在進步,過時(shi)的(de)概念、應用都會被新(xin)興的(de)替換,所以真的(de)要不(bu)(bu)斷學習緊跟時(shi)代(dai)(dai)啊!】

1080p和1080i也是『場』同一時(shi)期的概念:

${數字}i的字母”i“表示Interlace,代表隔行掃描,比如奇數『場』只掃描奇數行,后一『場』即偶數『場』只掃描偶數行。這在過去是非常有用的,當時網絡條件差,帶寬受限,隔行掃描可以很大程度上減少傳輸的數據,又不至于影響觀眾觀看體驗。${數字}p的字母”p“表示Progressive,即逐行掃描,也就是一『場』把全部畫面掃描完整。這是后來才提出的概念,這也代表時代進步,帶寬條件上來了。

既然都是老概念(nian)了,那為什(shen)么還要再提(ti)呢?借用文章1080P和1080i是什(shen)么意思?的一(yi)段來說:

進入液晶時代的如今,隔行和逐行其實已經沒有太大的意義了,現在的電視或者是顯示器都屬于固定像素設備,像素點同時發光,并不需要掃描,但是硬要說的話可以認為現在的顯示設備都是逐行掃描的,但也并不是說1080P和1080i等就可以淘汰了,畢竟還涉及到攝像機的格式,不過普通觀眾也不會關心是用什么攝像機拍的,只關心呈現出來的樣貌就好了。

視頻(pin)『幀』和編解(jie)碼密切相關,因此(ci)還有不少『幀』的概念是和視頻(pin)編解(jie)碼相關的。

視頻編解(jie)碼而衍(yan)生(sheng)的幀(zhen)名(ming)詞(ci)

I幀、P幀、B幀和IDR幀但凡接觸過一點視頻編解碼的讀者,一定見過IPB幀,至于IDR可能見的少一些。下面,簡單解釋每種類型:I幀,英文全寫Intra Picture,又稱幀內編碼幀,俗稱關鍵幀。一般來說I幀不需要依賴前后幀信息,可獨立進行解碼。有數據表明,僅I幀的壓縮率,可以達到7,這里其實可以把I幀的壓縮等同于單獨壓縮一幅圖片。至于說I幀的壓縮只壓縮了空間上的冗余信息,放在后續編碼相關的系列文章中會詳述。【這里再挖一個坑,免得自己忘記了】P幀,英文全寫predictive-frame,又稱前向預測編碼幀,也有幀間預測編碼幀。顧名思義,P幀需要依賴前面的I幀或者P幀才能進行編解碼,因為一般來說,P幀存儲的是當前幀畫面與前一幀(前一幀可能是I幀也可能是P幀)的差別,較專業的說法是壓縮了時間冗余信息,或者說提取了運動特性。P幀的壓縮率約在20左右,幾乎所有的H2 ** 編碼流都帶有大量的P幀。B幀,英文全寫bi-directional interpolatedprediction frame,又稱 雙向預測內插編碼幀,簡稱雙向預測編碼幀。B幀非常特殊,它存儲的是本幀與前后幀的差別,因此帶有B幀的視頻在解碼時的邏輯會更復雜些,CPU開銷會更大。因此,不是所有的視頻都帶有B幀,筆者目前還沒有接觸過帶B幀的視頻。【找到帶B幀視頻一定要珍藏起來好好研究!】不過,B幀的壓縮率能夠達到50甚至更高,在壓縮率指標上還是很客觀的。IDR幀,英文全寫Instantaneous Decoding Refresh,翻譯過來是即時解碼刷新。聽上去,這類幀并不是名詞概念,倒像是個動詞?IDR幀是一種特殊的I幀,它是為了服務于編解碼而提出的概念,IDR幀的作用是立刻刷新,使錯誤不致傳播,從IDR幀開始,重新算一個新的序列開始編碼(摘自博客H2 ** 中I幀和IDR幀的區別)。

I/P/B幀(zhen),并不(bu)是依據視頻幀(zhen)數(shu)據內部的(de)(de)元(yuan)素的(de)(de)不(bu)同來(lai)區分的(de)(de),從解(jie)碼后(hou)的(de)(de)幀(zhen)本(ben)身而(er)(er)言,它(ta)們沒(mei)有任何區別。僅(jin)僅(jin)是在編碼時,對幀(zhen)處理的(de)(de)方式不(bu)同而(er)(er)已。

GOP英文全稱Group Of Pictures,一般來說,指的就是兩個I幀之間的間隔,嚴格來說,是兩個IDR幀之間的間隔。筆者對GOP研究的不多,對于網上的說法:“GOP在一定程度上會影響視頻畫面質量 - 在碼率相同的情況下,GOP越大,意味著PB幀越多,也就更容易獲取較好的圖像質量”這個說法存疑。【這里留個坑待填】PTS、DTS筆者是在對視頻文件硬做解碼的時候,發現實際解碼輸出的fps是硬解的能力上限,比如一個24fps的視頻文件,在用硬件解碼時,能夠達到100+,當時接到一個需求是:“需要控制視頻文件的解碼率,讓它和文件的fps保持一致”。后來查閱了大量的資料,進而了解了DTS和PTS的概念:DTS,英文全稱Decoding Time Stamp,即解碼時間戳,這個時間戳的意義在于告訴解碼器該在什么時候解碼這一幀的數據。PTS,英文全稱Presentation Time Stamp,即顯示時間戳,這個時間戳用來告訴播放器該在什么時候顯示這一幀的數據。

這個概念在做視(shi)音(yin)(yin)(yin)頻同(tong)(tong)步的(de)(de)時候特別重要,尤其是(shi)PTS,目前常見的(de)(de)視(shi)音(yin)(yin)(yin)頻同(tong)(tong)步的(de)(de)三種策略“同(tong)(tong)步到音(yin)(yin)(yin)頻的(de)(de)PTS”、“同(tong)(tong)步到視(shi)頻的(de)(de)PTS”和“同(tong)(tong)步到系統(tong)/外部時鐘”,都是(shi)基于PTS完(wan)成(cheng)的(de)(de)。

寫在后面

盡(jin)管每個概(gai)念網上(shang)(shang)都可以搜到(dao)一大(da)堆(dui)的(de)資料(liao),但是筆(bi)者從(cong)一個多媒體(ti)開發小白走過來,覺(jue)得能(neng)有(you)(you)相(xiang)對系統入門的(de)綜合性介紹就(jiu)會更好了!本文(wen)每個地(di)方(fang)(fang),都是基于筆(bi)者自己的(de)理(li)解,而不是簡單地(di)從(cong)網上(shang)(shang)“ ** 粘貼”過來的(de),希望能(neng)夠對大(da)家(jia)有(you)(you)所幫助!當然,文(wen)章中有(you)(you)不嚴(yan)謹的(de)地(di)方(fang)(fang),歡迎(ying)(ying)留言告知;或者有(you)(you)什么有(you)(you)趣的(de)話題探(tan)討,也(ye)歡迎(ying)(ying)私信(xin)留言!

最后,筆者目(mu)前在騰訊優(you)圖的(de)邊(bian)緣(yuan)計(ji)(ji)算(suan)開(kai)發小(xiao)團隊(dui),目(mu)前我們正在計(ji)(ji)劃開(kai)源一款能夠適配(pei)設(she)備(bei)(bei)(以邊(bian)緣(yuan)設(she)備(bei)(bei)為主(zhu))視(shi)覺(jue)AI計(ji)(ji)算(suan)落地應用框(kuang)架(jia)-RapidAIoT,內容(rong)包括視(shi)頻(pin)取流(liu)、AI計(ji)(ji)算(suan)、消(xiao)息(xi)結果上報下發中間件。也歡(huan)迎大家咨詢了(le)解。



上海西陸信息科(ke)技有(you)限公司 承接各(ge)類微信小程序(xu)(xu)開(kai)發(fa)(fa)制作、小程序(xu)(xu)定制、APP 網站 開(kai)發(fa)(fa)制作,聯系電話 18221533805、15900430334

為您推薦

直播運營計劃方案

一場直播活動,看上去就是一個或幾個人對著鏡頭說說話、賣賣貨而已,但其背后都有著非常明確的直播營銷目的...

抖音的營(ying)銷(xiao)模式是(shi)什么?抖音的營(ying)銷(xiao)策(ce)略(lve)分析

近些年,各種小視頻網上平臺如雨后春筍。在這個節奏快的社會發展下,小視頻憑著其與眾不同的魅力和豐富多彩...

【推薦】畫畫視(shi)頻教(jiao)程大(da)全視(shi)頻學(xue)畫畫教(jiao)程視(shi)頻教(jiao)程!

視頻畫畫視頻教程 學習繪畫教程視頻教程!視頻畫畫視頻教程 學習繪畫教程視頻教程!工具準備:16K大小...

如何截取綜(zong)藝視(shi)(shi)頻(pin),制作短(duan)視(shi)(shi)頻(pin)?

主要有兩部分,一是能拿到綜藝節目的視頻,二是編輯制作。如果用視頻軟件下載綜藝視頻,格式是獨一無二的,...

短視(shi)頻APP源碼開發的重點(dian),視(shi)頻錄制和視(shi)頻剪輯

你知道短視頻嗎?說到短視頻,很多人會想到微信小視頻、美容拍攝和秒拍攝。事實上,它們是短視頻的代表。從...

視(shi)頻號聯(lian)盟(meng):揭秘視(shi)頻號與其(qi)他短視(shi)頻平(ping)臺的區(qu)別

視頻號和其他短視頻平臺有什么區別?視頻號和抖音經常被比較。經過幾年的快速發展,抖音積累了數億活躍用戶...

視頻(pin)搬(ban)運(yun)玩(wan)法(fa),短視頻(pin)怎么搬(ban)運(yun)?

在這個互聯網時代,越來越多的人利用碎片化的時間觀看小視頻,小編自己也是。 無論是擠地鐵、等人、坐公交...

對標西瓜視(shi)頻(pin)推(tui)出(chu)下飯(fan)視(shi)頻(pin),騰訊(xun)All in短視(shi)頻(pin)了(le)?

原標題:西瓜視頻推出用餐視頻,騰訊All in短視頻了? 騰訊似乎也想要All in短視頻了。 5月...

【推薦】國畫(hua)(hua)視頻(pin)教(jiao)程大全視頻(pin)|如何自(zi)學(xue)國畫(hua)(hua)教(jiao)學(xue)視頻(pin)

國畫視頻教程|如何自學國畫教學視頻!國畫視頻教程|如何自學國畫教學視頻!荷花蕊的畫法一如果你的基礎太...

說(shuo)說(shuo)視(shi)(shi)頻編碼格式(shi)、視(shi)(shi)頻碼率、視(shi)(shi)頻幀率、分辨率的概念

談談視頻編碼格式、視頻碼率、視頻幀率和分辨率的概念編碼格式:視頻文件本身通常由音頻和視頻組成。例如,...

掃盲丨如何區分3D視頻、360視頻和VR視頻?

文|Ella全息圖像公司8i完成B輪融資,Facebook為三星Gear VR360度視頻應用推出,...

視(shi)(shi)頻切(qie)割怎么弄?視(shi)(shi)頻剪(jian)輯軟件可(ke)以切(qie)割視(shi)(shi)頻嗎?

當許多人提到視頻編輯時,他們首先想到的是各種酷的操作,如添加動畫特效、背景音樂和字幕。然而,在所有操...

視頻后(hou)期怎么制(zhi)作?視頻剪輯軟(ruan)件可以制(zhi)作視頻后(hou)期嗎?

在過去,人們拍攝的視頻比我們的好,這可能是因為設備問題,現在,人們拍攝的視頻比我們的好,這更有可能是...

一(yi)個(ge)視(shi)頻分(fen)割成多個(ge)視(shi)頻,視(shi)頻分(fen)割工具哪個(ge)好(hao)?

有一天,小姚想把一個視頻分成兩個,發給兩個不同的人,但他不會分視頻,也不知道...

視頻營銷時代來臨|無錫視頻拍攝

視頻營銷是以視頻網站為核心的網絡平臺,以內容為核心,以創意為導向,利用精心策劃的視頻內...

剪輯視頻(pin)怎么調整方(fang)向(xiang),旋(xuan)轉視頻(pin)?

當我們拍攝視頻時,由于不注意視頻的角度是錯誤的,那么在編輯視頻時如何調整方向并快速旋轉視頻呢?今天我...

視(shi)頻剪輯必(bi)備(bei)神器,模糊視(shi)頻變清(qing)晰視(shi)頻的實例(li)

下載的視頻有點模糊怎么辦?讓我們看看小編是如何讓視頻變得清晰的。一、需要工具百度搜索視頻剪輯大師軟件...

短視頻劇本 | 短視頻劇本教學 | 短視頻應該怎么定位?

【關注短視頻編劇微信官方賬號,免費領取1000個短視頻劇本! 短視頻劇本 | 短視頻劇本...

視頻(pin)(pin)剪輯(ji)制(zhi)(zhi)(zhi)作(zuo) 視頻(pin)(pin)后(hou)期制(zhi)(zhi)(zhi)作(zuo) 視頻(pin)(pin)制(zhi)(zhi)(zhi)作(zuo) 動(dong)畫視頻(pin)(pin)制(zhi)(zhi)(zhi)作(zuo)價(jia)格表

視頻編輯制作 后期制作視頻 視頻制作 三維動畫制作 二維動畫制作 mg動畫制作 宣傳片 價格表00:...

視頻怎(zen)么優化?用(yong)它(ta),快速優化視頻!

在我們的日常娛樂和工作中,我們經常看到很多視頻。電影、電視劇、抖音快手等,當我們看這些視頻時,我們有...