大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java音視頻解決方案-音視頻基礎(chǔ)知識

Java音視頻解決方案-音視頻基礎(chǔ)知識

更新時(shí)間:2019-09-12 09:31:19 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3416次



  假設(shè)公司現(xiàn)在在做汽車終端的平臺,需要了解交通部808,1078的終端協(xié)議.尤其是1078是關(guān)于音視頻的協(xié)議.故此開始入坑Java的音視頻解決方案.本系列文章涉及一個(gè)完整的音視頻服務(wù)搭建.


  Java音視頻中間庫


  這個(gè)肯定是站在巨人的肩上.我們會(huì)使用JAVACV來處理所有的視頻,音頻信息.


  音視頻基礎(chǔ)知識


  1、圖像像素格式與圖片封裝格式


  圖像像素格式(簡稱像素格式),一般指的是沒有經(jīng)過編碼的按照原始像素排列的數(shù)據(jù)。舉個(gè)栗子,一個(gè)完整圖像的像素排列一般是這樣的(以4*4像素的rgb像素格式為例):


  image.png


  當(dāng)然我們存儲的時(shí)候一般使用一維數(shù)組來存這些數(shù)據(jù),所以排列順序就變成這樣:rgbrgbrgbrgb.......以此類推。


  圖片封裝格式指的我們?nèi)粘R姷降膒ng,jpg,bmp,gif等等圖片格式,其中bmp是無損格式,里面的數(shù)據(jù)格式就是圖片頭信息加上rgb排列的像素?cái)?shù)據(jù),png/jpg這些都是有損壓縮格式,但是壓縮比還是很高的,為什么要壓縮下面會(huì)講到。(壓縮就是編碼cuiyaonan2000@163.com)


  2、圖像與視頻幀


  圖像像素?cái)?shù)據(jù)指的是yuv、rgb,rbga,bgr,gbra等圖像像素格式,經(jīng)過編碼后才是視頻幀。比如我們常見的h264編碼,編碼其實(shí)就是對圖像像素?cái)?shù)據(jù)的壓縮,(以rgb為例,假如當(dāng)前圖像像素尺寸為1920*1080,,每種顏色用一個(gè)字節(jié)表示,也就是說每個(gè)像素點(diǎn)有紅綠藍(lán)三色共3字節(jié),圖像有1920*1080個(gè)像素點(diǎn),也就是說這張圖像大小為1920*1080*3字節(jié),顯然數(shù)據(jù)太大了),可以這樣理解,h264編碼本質(zhì)上就是一種圖像數(shù)據(jù)壓縮算法。(一個(gè)像素為啥占用3個(gè)字節(jié),因?yàn)榧t綠藍(lán)三原色


  視頻幀中常常提到的I幀,B幀和P幀指的是什么?i幀也叫關(guān)鍵幀,實(shí)際上就是一張完整的靜態(tài)圖像,而B幀和P幀只是用來記錄畫面的運(yùn)動(dòng)矢量等非圖像數(shù)據(jù),B/P幀都需要依賴i幀才能夠正確解碼出完整圖像(有損的圖像畫面)。在實(shí)際應(yīng)用中各種視頻源中很少使用B幀,原因是雖然使用大量B幀可以提高壓縮率,但也會(huì)消耗更多的硬件性能,所以大多數(shù)情況下的視頻源都以i幀(關(guān)鍵幀)和大量P幀為主。


  另外在直播應(yīng)用中i幀間隔會(huì)很低,這樣能夠更快的顯示首幀畫面(B/P幀需要i幀才能夠解碼),但是這樣也增加了傳輸?shù)臄?shù)據(jù)量,因?yàn)橐粋€(gè)i幀通常會(huì)很大。


  補(bǔ)充:由于人類眼睛的特殊生理結(jié)構(gòu),如果所看畫面之幀率高于16的時(shí)候,就會(huì)認(rèn)為是連貫的,此現(xiàn)象稱之為視覺停留。這也就是為什么電影膠片是一格一格拍攝出來,然后快速播放的。


  一般來說,現(xiàn)在監(jiān)控的攝像頭是25幀。這個(gè)當(dāng)然是工作需要了。實(shí)際上,用攝像頭錄制播放視頻時(shí),只要幀率達(dá)到15,人眼就感覺是連續(xù)的。這個(gè)有什么用呢?相比25,15幀可以節(jié)省大量的編碼、解碼、刷屏工作。至于10-12,勉強(qiáng)連續(xù),只能說某些特殊場合下的選擇了。


  幀數(shù)簡單地說,幀數(shù)就是在1秒鐘時(shí)間里傳輸?shù)膱D片的幀數(shù),也可以理解為圖形處理器每秒鐘能夠刷新幾次,通常用fps(FramesPerSecond)表示。每一幀都是靜止的圖象,快速連續(xù)地顯示幀便形成了運(yùn)動(dòng)的假象。高的幀率可以得到更流暢、更逼真的動(dòng)畫。每秒鐘幀數(shù)(fps)愈多,所顯示的動(dòng)作就會(huì)愈流暢。一般來說30fps是可以接受的,所以要避免動(dòng)作不流暢的最低fps是30。除了30fps外,有些計(jì)算機(jī)視頻格式,例如AVI,每秒只能提供15幀。我們之所以能夠利用攝像頭來看到連續(xù)不斷的影像,是因?yàn)橛跋駛鞲衅鞑粩鄶z取畫面并傳輸?shù)狡聊簧蟻恚?dāng)傳輸速度達(dá)到一定的水平時(shí),人眼就無法辨別畫面之間的時(shí)間間隙,所以大家可以看到連續(xù)動(dòng)態(tài)的畫面。


  3、編碼與封裝


  編碼上面已經(jīng)講了,是一種壓縮算法;那么封裝格式又是什么呢,封裝格式就是我們?nèi)粘R姷降囊曨l文件了,比如mp4,avi,mkv,flv等等等,按照每種封裝格式的規(guī)范把視頻幀和音頻按照一定順序存起來就成我們?nèi)粘?吹降囊曨l文件了,這些封裝格式一般都會(huì)包含一些頭/尾標(biāo)識和一些視頻描述信息,這樣播放器讀取視頻文件的時(shí)候就知道該怎么播放這些視頻文件了(可以把封裝格式理解成收納箱,上面貼著小紙條說明里面放了哪些東西)。壓縮圖片格式也可以參考視頻編碼格式,原理都一樣,都是對圖像數(shù)據(jù)做有損/無損壓縮。


  4、轉(zhuǎn)封裝與轉(zhuǎn)碼


  什么是轉(zhuǎn)封裝?為什么轉(zhuǎn)封裝比轉(zhuǎn)碼消耗更少?為什么轉(zhuǎn)封裝無法改動(dòng)視頻尺寸?


  先舉個(gè)栗子:假設(shè)視頻格式(mp4,flv,avi等)是盒子,里面的視頻編碼數(shù)據(jù)(h264,hevc)是蘋果,我們把這個(gè)蘋果從盒子里取出來放到另一個(gè)盒子里,盒子是變了,蘋果是沒有變動(dòng)的,因此視頻相關(guān)的尺寸數(shù)據(jù)是沒有改動(dòng)的,這個(gè)就是轉(zhuǎn)封裝的概念。有了上面這個(gè)例子,我們可以把“轉(zhuǎn)碼”理解為:把這個(gè)盒子里的蘋果(hevc)拿出來削皮切塊后再加工成櫻桃(h264)后再裝到另一個(gè)盒子里,多了一步對蘋果(hevc)轉(zhuǎn)換為櫻桃(h264)的操作,自然比直接把蘋果拿到另一個(gè)盒子(轉(zhuǎn)封裝)要消耗更多機(jī)器性能


  5、音/視頻源


  音/視頻源可以是視頻文件、音頻文件,流媒體源,設(shè)備等等。


  比如我們要看電腦或手機(jī)攝像頭視頻,就得采集設(shè)備的圖像數(shù)據(jù)(從源設(shè)備采集到的是像素?cái)?shù)據(jù),一般是bgr或者rgb像素?cái)?shù)據(jù))如果是某些廠商的商用攝像機(jī),可能會(huì)支持rtsp/rtmp協(xié)議,要采集聲音呢,就得采集錄音/話筒設(shè)備里面的數(shù)據(jù)(一般是pcm采樣數(shù)據(jù))。


  6、流媒體協(xié)議


  rtsp協(xié)議棧,rtmp協(xié)議棧,hls,http-flv(理論上講這個(gè)flv不能算是流媒體協(xié)議,它只是個(gè)無限大的flv文件)等等。


  例如rtmp,對編碼后的音視頻幀,要對其進(jìn)行封裝成flv進(jìn)行傳輸。(說到底這些協(xié)議原理上依然是建立在tcp/udp基礎(chǔ)上的應(yīng)用層傳輸協(xié)議。cuiyaonan2000@163.com.)部標(biāo)的1078協(xié)議要求終端設(shè)備的推流協(xié)議是參考的rtp協(xié)議.后面我們寫代碼去處理它.


  7、流媒體服務(wù)


  流媒體服務(wù)就是接受rtsp,rtmp的推流服務(wù)器,并且能接收拉流.后面我們會(huì)搭建一個(gè)rtmp的流服務(wù)器.


  8、音頻聲道


  音響中的幾聲道指的是音響有幾個(gè)輸出線路,常見的有2.0、2.1、及5.1聲道


  1、2.0聲道指的是音響只有左右兩個(gè)聲道輸出聲音。


  2、2.1指的是音響有左右聲道和低音三個(gè)聲道輸出。


  3、5.1則指的是音響有左右聲道加左右環(huán)繞再加一個(gè)中置和一個(gè)低音輸出。


  聲道(SoundChannel)是指聲音在錄制或播放時(shí)在不同空間位置采集或回放的相互獨(dú)立的音頻信號,所以聲道數(shù)也就是聲音錄制時(shí)的音源數(shù)量或回放時(shí)相應(yīng)的揚(yáng)聲器數(shù)量。


  聲卡所支持的聲道數(shù)是衡量聲卡檔次的重要指標(biāo)之一,從單聲道到最新的環(huán)繞立體聲.


  以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編分享的“Java音視頻解決方案-音視頻基礎(chǔ)知識”的內(nèi)容,希望對大家有幫助,更多java最新資訊請繼續(xù)關(guān)注動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會(huì)有精彩內(nèi)容分與你。

提交申請后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 四虎影永久在线高清免费 | 成人久久18网站 | 国产日本亚洲欧美 | 欧美性生交xxxxx丝袜 | 日本欧美一区二区三区乱码 | 天天碰天天摸天天操 | 5060午夜一级毛片免费观看 | 国产精品12p | 久久国产精品免费视频 | 福利入口在线观看 | 又黄又爽又成人免费视频 | 久久精品国产免费看久久精品 | 蜜桃破解版免费看nba | 看全色黄大色黄大片爽一下 | 精品亚洲一区二区三区 | 4huh34四虎最新888 | 国模极品一区二区三区 | 精品1区2区3区 | 免费国产一区二区三区四区 | 乱子伦免费视频中文字幕 | 伊人一本之道 | 97se亚洲国产综合自在线 | 国产自产在线 | 老头老太做爰xxxx视频 | 日韩欧美一二区 | 精品在线一区二区 | 香蕉福利 | 中文字幕亚洲一区二区va在线 | 中文欧美一级强 | 亚洲乱码在线观看 | 在线观看精品国内福利视频 | 国产精品精品视频 | 久热精品免费 | 福利午夜国产网站在线不卡 | 亚洲综合一区二区精品久久 | 在线看一级片 | 中文字幕一区二区日产乱码 | 欧美亚洲国产精品第一页 | 久久香蕉国产精品一区二区三 | 97理论三级九七午夜在线观看 | 久久精品国产2020 |