1.視頻編碼 > 2.音頻編碼 > 3.多媒體播放組件 > 4.幀率 > " />
<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          音視頻開發(fā)必備基礎(chǔ)知識點整理

          共 6334字,需瀏覽 13分鐘

           ·

          2022-02-09 17:35

          日常工作中都會接觸到音視頻的開發(fā),比如目前工作中都會涉及到 TSPlayer、IjkPlayer、MediaPlayer 提供播放能力,不管是什么 Player,其上層調(diào)用都是大同小異,但是具體實現(xiàn)以及能夠支持的能力各不相同,要想繼續(xù)深入就必須深入音視頻的學(xué)習(xí),Android 開發(fā)的幾個主要方向分別是應(yīng)用、Framework、音視頻、NDK等,如果繼續(xù)在 Android 領(lǐng)域,這些坑還是是必須要填的,主要內(nèi)容如下:

          1.視頻編碼
          2.音頻編碼
          3.多媒體播放組件
          4.幀率
          5.分辨率
          6.編碼格式
          7.封裝格式
          8.碼率
          9.顏色空間
          10.采樣率
          11.量化精度
          12.聲道
          第一次看我文章的朋友可以點波關(guān)注哦:Android小瓜方便后面干貨分享可以提醒到大家

          視頻編碼
          視頻編碼指的是通過特定的壓縮技術(shù),將某個視頻文件格式轉(zhuǎn)換為另一種視頻格式文件的方式,視頻傳輸中主要編解碼標(biāo)準(zhǔn)如下:

          • 運動靜止圖像專家組的 M-JPEG
            • M-JPEG 是一種圖像壓縮編碼標(biāo)準(zhǔn),是 Motion-JPEG 的簡稱,JPEG 標(biāo)準(zhǔn)主要是用來處理靜止圖像,而 M-JPEG 把運動的視頻序列作為連續(xù)的靜止圖像來處理,這種壓縮方式單獨完整地壓縮每一幀,在編輯過程中可隨機(jī)存儲每一幀,可進(jìn)行精確到幀的編輯,M-JPEG 只對幀內(nèi)的空間冗余進(jìn)行壓縮,不對幀間的時間冗余進(jìn)行壓縮,故壓縮效率不高。
          • 國際標(biāo)準(zhǔn)化組織(ISO)運動圖像專家組的 MPEG 系列標(biāo)準(zhǔn)
            • MPEG 標(biāo)準(zhǔn)主要有五個:MPEG-1、MPEG-2、MPEG-4、MPEG-7 及 MPEG-21 等,MPEG 標(biāo)準(zhǔn)的視頻壓縮編碼技術(shù)主要利用了具有運動補償?shù)膸g壓縮編碼技術(shù)以減小時間冗余度,利用 DCT 技術(shù)以減小圖像的空間冗余度,利用熵編碼則在信息表示方面減小了統(tǒng)計冗余度。這幾種技術(shù)的綜合運用,大大增強(qiáng)了壓縮性能。
          • 國際電聯(lián)(ITU-T)的 H.261、H.263、H.264等
            • H.261:第一個實用的數(shù)字視頻解碼標(biāo)準(zhǔn),采用的壓縮算法是運動補償幀間預(yù)測與分塊 DCT 相結(jié)合的混合編碼,其運動補償使用用全像素精度和環(huán)路濾波,支持 CIF 和 QCIF 兩種分辨率。
            • H.263:H.263 與 H.261 編碼算法一樣,但是做了一點改善,使得 H.263 標(biāo)準(zhǔn)在低碼率下能夠提供比 H.261 更好的圖像效果,其運動補償使用半像素精度,支持 CIF、QCIF 、SQCIF、4CIF和16CIF 五種分辨率。
            • H.264:H.264則是由兩個組織 ISO 和 ITU-T 聯(lián)合組建的聯(lián)合視頻組(JVT)共同制定的新數(shù)字視頻編碼標(biāo)準(zhǔn),所以它既是 ITU-T 的H.264,又是 ISO/IEC 的 MPEG-4 高級視頻編碼(Advanced Video Coding,AVC)的第 10 部分,因此,不論是MPEG-4 AVC、MPEG-4 Part 10,還是 ISO/IEC 14496-10,都是指 H.264,H.264 是基于傳統(tǒng)框架的混合編碼系統(tǒng),做了局部優(yōu)化,注重編碼效率和可靠性。H.264 在具有高壓縮比的同時還擁有高質(zhì)量流暢的圖像,經(jīng)過 H.264 壓縮的視頻數(shù)據(jù),在網(wǎng)絡(luò)傳輸過程中所需要的帶寬更少,是壓縮率最高的視頻壓縮標(biāo)準(zhǔn)。

          音頻編碼

          常見的音頻編解碼標(biāo)準(zhǔn)如下:

          • ITU:G.711、G.729 等
          • MPEG:MP3、AAC 等
          • 3GPP:AMR、AMR-WB、AMR-WB+等
          • 還有企業(yè)制定的標(biāo)準(zhǔn),如 Dolby AC-3、DTS 、WMA 等

          常見的介紹如下:

          • MP3(MPEG-1 audio layer 3):一種音頻壓縮技術(shù),它被設(shè)計用來大幅度地降低音頻數(shù)據(jù)量,利用 MPEG Audio Layer 3 的技術(shù),將音樂以 1:10 甚至 1:12 的壓縮率,壓縮成容量較小的文件,而對于大多數(shù)用戶來說重放的音質(zhì)與最初的不壓縮音頻相比沒有明顯的下降,它是利用人耳對高頻聲音信號不敏感的特性,將時域波形信號轉(zhuǎn)換成頻域信號,并劃分成多個頻段,對不同的頻段使用不同的壓縮率,對高頻加大壓縮比(甚至忽略信號),對低頻信號使用小壓縮比,保證信號不失真,這樣就相當(dāng)于拋棄人耳基本聽不到的高頻聲音,只保留能聽到的低頻部分,從而對音頻進(jìn)行一定壓縮,此外 MP3 屬于有損壓縮的文件格式。
          • AAC:Advanced Audio Coding 的縮寫,最初是基于 MPEG-2 的音頻編碼技術(shù),MPEG-4 出現(xiàn)后,AAC 重新集成了其特性,且加入了SBR 技術(shù)和 PS 技術(shù),為了區(qū)別于傳統(tǒng)的 MPEG-2 AAC 又稱為MPEG-4 AAC,AAC 是一種專為聲音數(shù)據(jù)設(shè)計的文件壓縮格式,相較 MP3,AAC 格式的音質(zhì)更佳,文件更小,但是 AAC 是一種有損壓縮格式,隨著大容量設(shè)備的出現(xiàn),其優(yōu)勢將越來越小。
          • WMA:Windows Media Audio 的縮寫,是微軟公司開發(fā)的一系列音頻編解碼器,也指相應(yīng)的數(shù)字音頻編碼格式,WMA 包括四種不同的編解碼器:WMA,原始的WMA編解碼器,作為 MP3 和 RealAudio 編解碼器的競爭者;WMA Pro,支持更多聲道和更高質(zhì)量的音頻[;WMA Lossless,無損編解碼器;WMA Voice,用于儲存語音,使用的是低碼率壓縮。一些使用 Windows Media Audio 編碼格式編碼其所有內(nèi)容的純音頻 ASF 文件也使用 WMA 作為擴(kuò)展名,其特點是支持加密,非法拷貝到本地是無法播放的,WMA 也屬于有損壓縮的文件格式。

          更多音視頻編解碼標(biāo)準(zhǔn)可以參考:音頻編解碼標(biāo)準(zhǔn)

          多媒體播放組件

          Android 多媒體播放組件包含 MediaPlayer、MediaCodec、OMX 、StageFright、AudioTrack 等,具體如下:

          • MediaPlayer:為應(yīng)用層提供的播放控制接口
          • MediaCodec:提供訪問底層媒體編解碼器的接口
          • OpenMAX :Open Media Acceleration,又縮寫為 OMX,開放多媒體加速層,是一個多媒體應(yīng)用程序標(biāo)準(zhǔn),Android 主要的多媒體引擎StageFright 是透過 IBinder 使用 OpenMax,用于編解碼處理。
          • StageFright:Android 2.2 開始引入用來替換預(yù)設(shè)的媒體播放引擎 OpenCORE,Stagefright 是位于 Native 層的媒體播放引擎,內(nèi)置了基于軟件的編解碼器,且適用于熱門媒體格式,其編解碼功能是利用OpenMAX 框架,引入的是 OpenCORE 的 omx-component 部分,在 Android 中是以共享庫的形式存在,對應(yīng) libstagefright.so。
          • AudioTrack:管理和播放單個音頻資源,僅支持 PCM 流,如大多數(shù)的 WAV 格式的音頻文件就是就是 PCM 流,這類音頻文件支持 AudioTrack 直接進(jìn)行播放。

          常見的多媒體框架及解決方案

          常見的多媒體框架及解決方案有 VLC 、 FFmpeg 、 GStream 等,具體如下:

          • VLC : 即 Video LAN Client,是一款自由、開源的跨平臺多媒體播放器及框架 。
          • FFmpeg:多媒體解決方案,不是多媒體框架,廣泛用于音視頻開發(fā)中。
          • GStreamer : 一套構(gòu)建流媒體應(yīng)用的開源多媒體框架 。

          幀率

          幀率是用于測量顯示幀數(shù)的量度。單位為「每秒顯示幀數(shù)」(Frame per Second,F(xiàn)PS)或「赫茲,Hz」,表示每秒的幀數(shù)(FPS)或者說幀率表示圖形處理器處理場時每秒鐘能夠更新的次數(shù),高的幀率可以得到更流暢、更逼真的動畫,一般來說 30fps 就是可以接受的,但是將性能提升至 60fps 則可以明顯提升交互感和逼真感,但是一般來說超過 75fps 一般就不容易察覺到有明顯的流暢度提升了,如果幀率超過屏幕刷新率只會浪費圖形處理的能力,因為監(jiān)視器不能以這么快的速度更新,這樣超過刷新率的幀率就浪費掉了。

          分辨率

          視頻分辨率是指視頻成像產(chǎn)品所形成的圖像大小或尺寸,常見的 1080P、4K 等有代表什么呢,P 本身的含義是逐行掃描,表示視頻像素的總行數(shù),1080P 表示總共有 1080 行的像素數(shù),而 K 表示視頻像素的總列數(shù),4K 表示有 4000 列的像素數(shù),通常來說,1080P 就是指 1080 x 1920 的分辨率,4 k 指 3840 x 2160 的分辨率。
          刷新率
          刷新率就是屏幕每秒畫面被刷新的次數(shù),刷新率分為垂直刷新率和水平刷新率,一般提到的刷新率通常指垂直刷新率,垂直刷新率表示屏幕的圖象每秒鐘重繪多少次,也就是每秒鐘屏幕刷新的次數(shù),以 Hz(赫茲)為單位,刷新率越高越好,圖象就越穩(wěn)定,圖像顯示就越自然清晰,對眼睛的影響也越小,刷新頻率越低,圖像閃爍和抖動的就越厲害,眼睛疲勞得就越快,一般來說,如能達(dá)到 80Hz 以上的刷新頻率就可完全消除圖像閃爍和抖動感,眼睛也不會太容易疲勞。

          編碼格式

          針對音視頻來說,編碼格式對應(yīng)的就是音頻編碼和視頻編碼,對照前面的音頻編碼標(biāo)準(zhǔn)和視頻編碼標(biāo)準(zhǔn),每種編碼標(biāo)準(zhǔn)都對應(yīng)的編碼算法,其目的是通過一定編碼算法實現(xiàn)數(shù)據(jù)的壓縮、減少數(shù)據(jù)的冗余。

          封裝格式

          直接看下百度百科的關(guān)于封裝格式的介紹,封裝格式(也叫容器),就是將已經(jīng)編碼壓縮好的視頻軌和音頻軌按照一定的格式放到一個文件中,也就是說僅僅是一個外殼,或者大家把它當(dāng)成一個放視頻軌和音頻軌的文件夾也可以,說得通俗點,視頻軌相當(dāng)于飯,而音頻軌相當(dāng)于菜,封裝格式就是一個碗,或者一個鍋,用來盛放飯菜的容器。

          碼率

          碼率,也就是比特率(Bit rate),指單位時間內(nèi)傳輸或處理的比特的數(shù)量,單位為 bps(bit per second)也可表示為 b/s,比特率越高,單位時間傳送的數(shù)據(jù)量(位數(shù))越大,多媒體行業(yè)在指音頻或視頻在單位時間內(nèi)的數(shù)據(jù)傳輸率時通常使用碼率,單位是 kbps,一般來說,如果是 1M 的寬帶,在網(wǎng)上只能看碼流不超過 125kbps 的視頻,超過 125kbps 的視頻只能等視頻緩沖才能順利觀看。
          碼率一般分為固定碼率和可變碼率:

          • 固定碼率會保證碼流的碼率恒定,但是會犧牲視頻質(zhì)量,比如為了保證碼率恒定,某些圖像豐富的內(nèi)容就是失去某些圖像細(xì)節(jié)而變得模糊。
          • 可變碼率指的是輸出碼流的碼率是可變的,因為視頻信源本身的高峰信息量是變化的,從確保視頻傳輸質(zhì)量和充分利用信息的角度來說,可變碼率視頻編碼才是最合理的。

          碼率的高低與視頻質(zhì)量和文件提交成正比,但當(dāng)碼率超過一定數(shù)值后,對視頻質(zhì)量沒有影響。

          顏色空間

          • YUV:一種顏色編碼方法,一般使用在在影像處理組件中,YUV 在對照片或視頻編碼時,考慮到人類的感知能力,允許降低色度的帶寬,其中 Y 表示明亮度、U 表示色度、V 表示濃度,Y′UV、YUV、YCbCr、YPbPr 所指涉的范圍,常有混淆或重疊的情況。從歷史的演變來說,其中 YUV 和 Y'UV 通常用來編碼電視的模擬信號,而 YCbCr 則是用來描述數(shù)字的影像信號,適合視頻與圖片壓縮以及傳輸,例如 MPEG、JPEG,現(xiàn)在 YUV 通常已經(jīng)在電腦系統(tǒng)上廣泛使用。
          • RGB:原色光模式,又稱 RGB 顏色模型或紅綠藍(lán)顏色模型,是一種加色模型,將紅(Red)、綠(Green)、[藍(lán)(Blue)三原色的色光以不同的比例相加,以合成產(chǎn)生各種色彩光,目前的大多數(shù)顯示器都采用 RGB 這種顏色標(biāo)準(zhǔn)。

          YUV 主要用于優(yōu)化彩色視頻信號的傳輸,使其向后相容老式黑白電視,與 RGB 視頻信號傳輸相比,它最大的優(yōu)點在于只需占用極少的帶寬。

          采樣率

          采樣率,表示每秒從連續(xù)信號中提取并組成離散信號的采樣個數(shù),用赫茲(Hz)來表示,采樣率是指將模擬信號轉(zhuǎn)換成數(shù)字信號時的采樣頻率,人耳能聽到的聲音一般在 20Hz~20KHz 之間,根據(jù)采樣定理,采樣頻率大于信號中最高頻率的 2 倍時,采樣之后的數(shù)字信號便能完整的反應(yīng)真實信號,常見的采樣率如下:

          • 8000 Hz:電話所用采樣率, 對于人的說話已經(jīng)足夠
          • 11025 Hz:AM調(diào)幅廣播所用采樣率
          • 22050 Hz 和 24,000 Hz:FM調(diào)頻廣播所用采樣率
          • 44100Hz:音頻CD,常用于 MPEG-1 音頻(VCD,SVCD,MP3)所用采樣率
          • 47,250 Hz:商用 PCM 錄音機(jī)所用采樣率
          • 48,000 Hz:miniDV、數(shù)字電視、DVD、DAT、電影和專業(yè)音頻所用的數(shù)字聲音所用采樣率

          CD 音樂的標(biāo)準(zhǔn)采樣頻率為 44.1KHz,這也是目前聲卡與計算機(jī)作業(yè)間最常用的采樣頻率,目前比較盛行的藍(lán)光的采樣率就相當(dāng)?shù)母撸_(dá)到了 192kHz。而目前的聲卡,絕大多數(shù)都可以支持 44.1kHz、48kHz、96kHz,高端產(chǎn)品可支持 192kHz 甚至更高,總之,采樣率越高,獲得的聲音文件質(zhì)量越好,占用存儲空間也就越大。

          量化精度

          聲波在轉(zhuǎn)換為數(shù)字信號的過程中不只有采樣率影響原始聲音的完整性,還有一個重要影響因素是量化精度,采樣頻率針對的是每秒鐘所采樣的數(shù)量,而量化精度則是對于聲波的振幅進(jìn)行切割,切割的數(shù)量是以最大振幅切成 2 的 n 次方計算,n 就是 bit 數(shù),而 bit 數(shù)就是音頻分辨率。

          另外,bit 的數(shù)目還決定了聲波振幅的范圍(即動態(tài)范圍,最大音量與最小音量的差距),如果這個位數(shù)越大,則能夠表示的數(shù)值越大,描述波形更精確,每一個 Bit 的數(shù)據(jù)可以記錄約等于 6dB 動態(tài)的信號,一般來說,16Bit 可以提供最大 96dB 的動態(tài)范圍(加高頻顫動后 只有 92dB),據(jù)此可以推斷出 20Bit 可以達(dá)到 120dB 的動態(tài)范圍,動態(tài)范圍大了,會有什么好處呢?動態(tài)范圍是指系統(tǒng)的輸出噪音功率和最大不失真音量功率的比值,這個值越大,則系統(tǒng)可以承受很高的動態(tài)。

          聲道

          聲道指聲音在錄制或播放時在不同空間位置采集或回放的相互獨立的音頻信號,所以聲道數(shù)也就是聲音錄制時的音源數(shù)量或回放時相應(yīng)的揚聲器數(shù)量,常見聲道有單聲道、立體聲道、4 聲道、5.1 聲道、7.1 聲道等 ,具體如下:

          • 單聲道:設(shè)置一個揚聲器。
          • 立體聲道:把單聲道一個揚聲器擴(kuò)展為左右對稱的兩個揚聲器,聲音在錄制過程中被分配到兩個獨立的聲道,從而達(dá)到了很好的聲音定位效果,這種技術(shù)在音樂欣賞中顯得尤為有用,昕眾可以清晰地分辨出各種樂器來自何方,從而使音樂更富想象力,更加接近臨場感受。立體聲技術(shù)廣泛應(yīng)用于自 Sound Blaster Pro 以后的大量聲卡,成為了 影響深遠(yuǎn)的音頻標(biāo)準(zhǔn)。
          • 4 聲道:4 聲道環(huán)繞規(guī)定了 4 個發(fā)音點,分別是前左、前右、后左、后右,昕眾則被包圍在中間,同時還建議增加一個低音音箱,以加強(qiáng)對低頻信號的回放處理,這也就是如今 4.1 聲道音箱系統(tǒng)廣泛流行的原因,就整體效果而言,4 聲道系統(tǒng)可以為聽眾帶來來自多個不 同方向的聲音環(huán)繞,可以獲得身 臨各種不同環(huán)境的昕覺感受,給用戶以全新的體驗。
          • 5.1 聲道:其實 5.1 聲道系統(tǒng)來源于 4.1 聲道系統(tǒng),將環(huán)繞聲道一分為二,分為左環(huán)繞和右環(huán)繞,中央位置增加重低音效果。
          • 7.1 聲道:7.1 聲道系統(tǒng)在 5.1 聲道系統(tǒng)的基礎(chǔ)上又增加了中左和中右兩個發(fā)音點,簡單來說就是在聽者的周圍建立起一套前后相對平衡的聲場,增加了 后中聲場聲道。

          最后

          大家如果還想了解更多Android 開發(fā)、音視頻開發(fā)相關(guān)的更多知識點,可以點進(jìn)我的GitHub項目中:https://github.com/733gh/Android-T3查閱,里面記錄了許多的Android 知識點。最后還請大家點點贊支持下!!!

          GitHub地址:

          瀏覽 21
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日韩国产免费电影 | 一级免费视频网站 | 日韩狠狠| 成人毛片18女人毛片免费看百度 | 天天日天天干天天干 |