日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android平台视频相关的多媒体技术理解笔记

發(fā)布時間:2024/3/24 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android平台视频相关的多媒体技术理解笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? 做了幾年的視頻相關(guān)項目,一直沒有系統(tǒng)的對所涉技術(shù)進行整理,趁著最近有點事情,整理歸納一下。多媒體技術(shù)還是一個相當大而全的領(lǐng)域,我是做視頻的,只談一下視頻所涉的一些技術(shù)點的理解,平臺是基于Android的。

? ? 視頻所涉的多媒體技術(shù)也是非常龐大的,從哪入手呢,先來看一下圖吧:

? ? 上圖顯示了一個視頻從產(chǎn)生到展示到用戶面前所涉的各個環(huán)節(jié),封裝格式直接使用了當前主流的mp4,編解碼協(xié)議為H264/AAC。

? ? 按上圖所示的流程,逐步看一下都有那些技術(shù),并談一下自己對該方面技術(shù)的概括性理解。

? ? 一、拍攝

? ? 所有視頻都是拍出來的,即使是已有視頻,也是前人拍出來的,合成視頻,是用別人拍出來的視頻合成的。在Android平臺上,與拍攝有關(guān)的技術(shù)涉及攝像頭及音頻采集(一般是MIC)。Android系統(tǒng)提供了錄制的Api:MediaRecorder,以及攝像頭相關(guān)的Camera,與音頻錄制相關(guān)的api:AudioRecord。在我們的項目中,有兩種方式的錄制:其一是直接使用MediaRecorder直接錄制帶有音頻數(shù)據(jù)的視頻文件,這種做法的好處是實現(xiàn)簡單,在定制化不強的業(yè)務(wù)場景,直接使用該方法即可;其二是分開使用Camera錄制視頻,使用AudioRecorder錄制音頻,后期生成視頻文件時進行音視頻合成,這種實現(xiàn)方法比第一種要復雜很多,但可以獲得到單獨的音頻及視頻數(shù)據(jù),可以二次加工(比如加水印、人臉識別),當前我們項目所采用的錄制方式是第二種。

? ? 與拍攝有關(guān)的技術(shù)還包括:拍攝之前或拍攝中的攝像頭預覽,什么意思呢,沒有預覽,拍攝就是黑盒的,也是說設(shè)備是在錄制,但操作者看不到錄制過程,就像十幾年前的機械相機一樣。Android平臺,預覽可以使用GLSurfaceView來做,網(wǎng)上資料也是比較多的,感興趣的可以參考下。有一個注意點,攝像頭支持的尺寸及比例是有定值的,當前Android屏幕設(shè)備尺寸多種多樣,比如18.5:9的屏幕,其攝像頭不一定有這個比值,因此預覽的界面展示要有取舍,或者裁剪邊緣,或者要留一些黑邊。另外,輸出的視頻格式一般場景也不要太大,比如,用于短視頻的,最大取至720p即可,寬高比太大,意味著生成的視頻在編輯處理時給設(shè)備造成很大的壓力,當前大部分手機設(shè)備的處理性能并沒有想象中那么給力。

? ? 二、A/D轉(zhuǎn)換

? ? 拍攝過程在硬件及系統(tǒng)層面包含了采集、抽樣、量化。采集就是通過硬件設(shè)備獲取外界信息,其輸出為一些模似信號。模擬信號要進行處理前要進行抽樣,以音頻信號為例,一般采用8kHz抽樣即可得到可接受的人的語音信號(電話的抽樣頻率),通俗的說,就是每秒均分成8千次從模擬信號中獲取聲音的當時值。抽到的樣本要經(jīng)過量化,仍以音頻為例,抽樣得到的樣本,要用數(shù)值來表示,PCM算法中,使用8位二進制制表示該值,即有2^8=256個樣本值表述樣本的大小。PCM算法所得到的音頻文件碼率為:8kHz*8bit=64kbit/s,也就是說一秒鐘的該音頻,文件大小為8KB。此處提到一個碼率的概念,稍后會詳細討論一下。抽樣量化編碼合并稱為模數(shù)轉(zhuǎn)換(也叫A/D轉(zhuǎn)換)。視頻的A/D轉(zhuǎn)換轉(zhuǎn)為復雜,不做該方面工作的不需要對其間的算法進行深究,只要了解輸入及輸出即可。經(jīng)過A/D轉(zhuǎn)換后,視頻文件輸出格式為YUV或RGB(二者只是存儲格式有所差異,可相互轉(zhuǎn)換),音頻為PCM格式文件。

? ? 三、音視頻編碼

? ? 為什么要進行編碼呢?一個字概括就是;大。量化后的文件格式非常的大,直接存儲耗費大量的存儲空間,在網(wǎng)絡(luò)中傳輸更是不可想象的。我們可以折算一下,以RGB888格式的720*1080的視頻為例,一幀圖像的大小為:3*8*720*1080=18.7Mb,每秒30幀的話30*18.7Mb=560Mbit=70MB,一個兩小時的視頻70MB*60*120=500G,可以看出,的確是太大了。視頻的編碼格式非常的多,在Android平臺上,目前主流為H264(MPEG公司的),音頻為AAC,相對于視頻文件,音頻文件較小,因此編碼技術(shù)差點也沒關(guān)系,最近幾年基本沒什么新的音頻編碼協(xié)議出現(xiàn)。有關(guān)視頻編碼格式的具體實現(xiàn)是一個非常大的領(lǐng)域,本文不再展開了,感興趣的同學可以看一下相關(guān)文檔,推薦雷神所寫的:https://blog.csdn.net/leixiaohua1020/article/details/28114081,之后為加深理解,我也準備寫一篇學習筆記。

? ? 四、封裝格式

? ? 經(jīng)過編碼之后的視頻及音頻文件大小達到可接受的范圍,下一步要進行格式封裝。以當前最主流的封裝格式為mp4為例說明下。先簡單說一下什么是mp4,有幾種:首先:mp4是一種文件格式,可以是視頻,也可以是音頻,以.mp4為后綴; 其次:mp4往往來替代性的描述MPEG-4,MPEG-4是一種多媒體規(guī)范,可以是音視頻,也可以表示別的,只要滿足該規(guī)范的定義即可;第三:mp4也被用于口頭說視頻編碼算法,即好多人口中所說的mp4編碼算法,這種說法其實相當?shù)牟粶蚀_,mp4只是一個容器,單說mp4不能說明任何的編解碼規(guī)則,里面的視頻(音頻同理)可以采用各種不同的壓縮編碼算法,當前用的最多的是H264(視頻)/AAC(音頻)這個算法。??

? ? mp4文件的格式還是相當復雜的,想要了解內(nèi)部原理的可以看一下官方文檔,希望簡單了解一下的可以看一下這篇文章:https://www.cnblogs.com/ranson7zop/p/7889272.html,其實不作音視頻編解碼的同學可以不用理解這么深入,只需要知道一些基本結(jié)構(gòu):mp4是由多個Box組成的,每個Box含有播放相關(guān)的各種信息,對于視頻來講,最重要的Box是(1)moov--存儲著該視頻的各種信息,包括但不限于:編碼算法信息、寬高、碼率、幀率、時長、各種分塊時長對應(yīng)關(guān)系等。(2)mdat--存儲著視頻幀數(shù)據(jù)和音頻通道數(shù)據(jù)。經(jīng)過格式封裝之后,音視頻合并成了一個文件,可以直接放入本地等待播放。也可以是上傳至云端,供別的用戶在線播放或下載播放。

? ? 五、播放

? ? 簡單來講,播放的過程就是視頻生成過程的一個逆向。

1.云端視頻先要解協(xié)議,去除網(wǎng)絡(luò)協(xié)議層

2.然后是解封裝,拿掉格式,解出mp4頭,得到各幀的數(shù)據(jù)

3.對應(yīng)于編碼格式,執(zhí)行解碼程序,比如視頻通道使用H264解碼,音頻通道使用AAC解碼

4.解碼之后得到了幀數(shù)據(jù)及音頻數(shù)據(jù),視頻幀數(shù)據(jù)的播放在Android上是由OpenGL實現(xiàn)的,音頻的不太了解

5.最終的數(shù)據(jù)被送入顯卡驅(qū)動及聲卡驅(qū)動中,由硬件輸出給用戶

? ? 在Android中,最簡單的播放實現(xiàn)即調(diào)用系統(tǒng)所提供的MediaPlayer,上述五個過程均由系統(tǒng)封裝實現(xiàn)了。

? ? 六、一些特殊處理

? ? 如果有功能需要單獨定制,比如在我們的項目中,要在視頻幀中加入水印,這就需要以下過程:

1.分離音視頻通道,系統(tǒng)的接口為:MediaExtractor

2.視頻解碼,系統(tǒng)接口為MediaCodec,輸出視頻內(nèi)容至GLSurfaceView

3.使用OpenGL繪制水印

4.獲取到GLSurfaceView的數(shù)據(jù)然后進行編碼,系統(tǒng)接口為MediaCodec

5.合并音視頻通道,系統(tǒng)接口為MediaMuxer

? ? 上述的編解碼過程為硬編碼過程,在部分機型上有適配問題,還有一種編碼方式為FFMPEG,使用軟編碼方式,缺點是要編碼效率低,耗時長,但適配性好。

? ? 本文中從大面上總結(jié)一下與視頻相關(guān)的多媒體技術(shù),主要是疏理其脈絡(luò),理清其骨架,對內(nèi)部的技術(shù)實現(xiàn)只是簡單提及,對于上層app開發(fā)者來講,有這些也基本夠了,對于需要定制視頻功能的開發(fā)者來講,要針對具體模塊重點突破。多媒體技術(shù)范圍太大,要做到面面俱到,基本是不可能的,當前技術(shù)的行業(yè)分工精細,每個人基本是負責一塊,要做到自身所做某塊的融匯貫通,比每一塊都會一點更為重要。

總結(jié)

以上是生活随笔為你收集整理的Android平台视频相关的多媒体技术理解笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品一区二区三 | 欧美午夜大片 | 亚洲欧美另类在线视频 | 丰满人妻综合一区二区三区 | 中文激情网 | 亚洲羞羞| 在线欧美日韩国产 | 亚洲无人区码一码二码三码 | 男ji大巴进入女人视频 | 777米奇影视第四色 五月丁香久久婷婷 | 中文在线а√天堂官网 | 狠狠精品干练久久久无码中文字幕 | 91视频免费播放 | 男女深夜福利 | 久久精品视屏 | 精品国产99久久久久久宅男i | 免费国产一区 | 黄色在线观看网站 | 国产精品久久久久一区二区三区 | 午夜电影一区二区 | 在线视频91| 欧美亚洲一二三区 | 91天天看| 中文字幕91在线 | 日本人妻一区二区三区 | a毛片毛片av永久免费 | 韩国三级丰满少妇高潮 | 欧美精品久 | 8x8ⅹ国产精品一区二区二区 | 亚洲国产第一页 | 四虎福利 | 蜜乳av中文字幕 | 蜜臀av免费一区二区三区水牛 | 亚洲在线网站 | 无码人妻丰满熟妇精品 | 欧美性一级 | 国产精品白嫩极品美女视频 | 91av爱爱 | 欧洲色网站 | 亚洲午夜精品久久久久久浪潮 | 色综合天天综合网天天看片 | 欧美日韩一级二级 | 五月婷婷视频在线 | 国产一区二区三区四区在线观看 | 91超碰免费在线 | 波多野结衣理论片 | 91av视频网 | 中文字幕乱伦视频 | 中文天堂av | 国产伦乱视频 | 欧美群妇大交乱 | 亚洲成av人片久久 | 色视频免费在线观看 | 中国a毛片| 91在线网址 | 性色一区二区三区 | 亚洲精品一区在线观看 | 黄色www视频 | 91av久久| 国产爽视频| 日韩午夜激情电影 | 飘花影院伦理片 | 毛片网站在线 | a毛片毛片av永久免费 | 人人草人人爽 | 日韩大片免费观看视频播放 | av在线浏览 | www.久色| 污污的视频在线观看 | 久久精品偷拍视频 | 国产精品成人3p一区二区三区 | 日韩一级片免费在线观看 | 成人理论影院 | 在线观看亚洲大片短视频 | 92久久精品一区二区 | 69久久精品无码一区二区 | 国产欧美综合一区二区三区 | 国产午夜一区二区三区 | 美女久久久久久久久久 | 日韩不卡在线观看 | 国产日本一区二区 | 六月激情网 | 青青草成人在线 | 欧美第二页 | 欧美在线视频观看 | 综合在线视频 | 国产乱国产乱300精品 | 青青在线免费观看 | 九九自拍视频 | 狠狠艹视频 | 四虎精品视频 | 操屁股视频 | 午夜免费视频 | 精品欧美乱码久久久久久 | 香蕉二区 | 日本少妇喷水视频 | 日本视频在线免费 | 粉嫩在线 | 欧美成人h版 |