国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android 音視頻開發(fā)實(shí)踐系列-06-初步了解H.264視頻編解碼技術(shù)標(biāo)準(zhǔn)

這篇具有很好參考價(jià)值的文章主要介紹了Android 音視頻開發(fā)實(shí)踐系列-06-初步了解H.264視頻編解碼技術(shù)標(biāo)準(zhǔn)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本文來自筆者本人的語雀博客,由于語雀升級后不再滿足筆者的需求,因此之后筆者會陸續(xù)將一些之前已經(jīng)發(fā)布但尚有價(jià)值的文章搬家到CSDN。

1. 前言

作為音視頻行業(yè)從業(yè)者,怎么能不理解H.264視頻編解碼技術(shù)標(biāo)準(zhǔn)?本篇文章主要記錄筆者學(xué)習(xí)過程中對眾多優(yōu)秀博客內(nèi)容的摘抄整理,方便廣大讀者通過一篇文章即可入門了解H.264。文章可能有理解不當(dāng)或書寫錯(cuò)誤的地方,歡迎指正錯(cuò)誤和討論學(xué)習(xí),感謝閱讀本文。

2. 什么是H.264

H.264是國際標(biāo)準(zhǔn)化組織(ISO)和國際電信聯(lián)盟(ITU)共同提出的繼MPEG4之后的新一代數(shù)字視頻壓縮格式。H.264是ITU-T以H.26x系列為名稱命名的視頻編解碼技術(shù)標(biāo)準(zhǔn)之一。H.264是ITU-T的VCEG(視頻編碼專家組)和ISO/IEC的MPEG(活動圖像編碼專家組)的聯(lián)合視頻組(JVT:joint video team)開發(fā)的一個(gè)數(shù)字視頻編碼標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)最早來自于ITU-T的稱之為H.26L的項(xiàng)目的開發(fā)。H.26L這個(gè)名稱雖然不太常見,但是一直被使用著。H.264是ITU-T以H.26x系列為名稱命名的標(biāo)準(zhǔn)之一,AVC是ISO/IEC MPEG一方的稱呼。

國際上制定視頻編解碼技術(shù)的組織有兩個(gè),一個(gè)是“國際電聯(lián)(ITU-T)”,它制定的標(biāo)準(zhǔn)有H.261、H.263、H.263+等,另一個(gè)是“國際標(biāo)準(zhǔn)化組織(ISO)”它制定的標(biāo)準(zhǔn)有MPEG-1、MPEG-2、MPEG-4等。而H.264則是由兩個(gè)組織聯(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。

以上內(nèi)容來自與百度百科:H.264

T-REC-H.264-200503-S!!PDF-E中文翻譯版本.pdf

T-REC-H.264-200503-S!!PDF-E的中文翻譯版本,如果需要英文原版,可以到以下官方地址下載:
https://www.itu.int/rec/T-REC-H.264-200503-S/en

3. 什么是視頻

視頻(Video)泛指將一系列靜態(tài)影像以電信號的方式加以捕捉、記錄、處理、儲存、傳送與重現(xiàn)的各種技術(shù)。連續(xù)的圖像變化每秒超過24幀(frame)畫面以上時(shí),根據(jù)視覺暫留原理,人眼無法辨別單幅的靜態(tài)畫面;看上去是平滑連續(xù)的視覺效果,這樣連續(xù)的畫面叫做視頻。視頻技術(shù)最早是為了電視系統(tǒng)而發(fā)展,但現(xiàn)在已經(jīng)發(fā)展為各種不同的格式以利消費(fèi)者將視頻記錄下來。網(wǎng)絡(luò)技術(shù)的發(fā)達(dá)也促使視頻的紀(jì)錄片段以串流媒體的形式存在于因特網(wǎng)之上并可被電腦接收與播放。視頻與電影屬于不同的技術(shù),后者是利用照相術(shù)將動態(tài)的影像捕捉為一系列的靜態(tài)照片。

以上內(nèi)容摘抄自百度百科:視頻

ani.gif
(圖3 逐幀動畫演示)

git來自:手繪圖秒變動畫片,比小豬佩奇還好看!咋做的?

3.1 視頻文件封裝格式

封裝格式(也叫容器),就是將已經(jīng)編碼壓縮好的視頻軌和音頻軌按照一定的格式放到一個(gè)文件中,也就是說僅僅是一個(gè)外殼,或者把它當(dāng)成一個(gè)放視頻軌和音頻軌的文件夾也可以。說得通俗點(diǎn),視頻軌相當(dāng)于飯,而音頻軌相當(dāng)于菜,封裝格式就是一個(gè)碗,或者一個(gè)鍋,用來盛放飯菜的容器。 下面是幾種常用的視頻文件后綴類型與其相對應(yīng)的封裝格式。

視頻文件格式 視頻封裝格式
.avi AVI(Audio Video Interleaved)
.wmv、.asf WMV(Windows Media Video)
.mpg、.mpeg、.vob、.dat、.3gp、.mp4 MPEG(Moving Picture Experts Group)
.mkv Matroska
.rm、.rmvb Real Video
.mov QuickTime File Format
.flv Flash Video

3.2 視頻編碼方式

視頻編碼的作用: 將視頻像素?cái)?shù)據(jù)(RGB,YUV 等)壓縮成視頻碼流,從而降低視頻的數(shù)據(jù)量。常用的頻編碼方式有以下幾種:

名稱 推出機(jī)構(gòu) 推出時(shí)間 目前使用領(lǐng)域
HEVC(H.265) MPEG/ITU-T 2013 研發(fā)中
H.264 MPEG/ITU-T 2003 各個(gè)領(lǐng)域
MPEG4 MPEG 2001 不溫不火
MPEG2 MPEG 1994 數(shù)字電視
VP9 Google 2013 研發(fā)中
VP8 Google 2008 不普及
VC-1 Microsoft Inc. 2006 微軟平臺

4. 什么是視頻編解碼技術(shù)

從信息論的觀點(diǎn)來看,描述信源的數(shù)據(jù)是信息和數(shù)據(jù)冗余之和,即:數(shù)據(jù)=信息+數(shù)據(jù)冗余。數(shù)據(jù)冗余有許多種,如空間冗余、時(shí)間冗余、視覺冗余、統(tǒng)計(jì)冗余等。將圖像作為一個(gè)信源,視頻壓縮編碼的實(shí)質(zhì)是減少圖像中的冗余。

視頻壓縮編碼技術(shù)可以分為兩大類:無損壓縮有損壓縮。

無損壓縮也稱為可逆編碼,指使用壓縮后的數(shù)據(jù)進(jìn)行重構(gòu)(即:解壓縮)時(shí),重構(gòu)后的數(shù)據(jù)與原來的數(shù)據(jù)完全相同。也就是說,解碼圖像和原始圖像嚴(yán)格相同,壓縮是完全可恢復(fù)的或無偏差的,沒有失真。無損壓縮用于要求重構(gòu)的信號與原始信號完全一致的場合,例如磁盤文件的壓縮。

有損壓縮也稱為不可逆編碼,指使用壓縮后的數(shù)據(jù)進(jìn)行重構(gòu)(即:解壓縮)時(shí),重構(gòu)后的數(shù)據(jù)與原來的數(shù)據(jù)有差異,但不影響人們對原始資料所表達(dá)的信息造成誤解。也就是說,解碼圖像和原始圖像是有差別的,允許有一定的失真,但視覺效果一般是可以接受的。有損壓縮的應(yīng)用范圍廣泛,例如視頻會議、可視電話、視頻廣播、視頻監(jiān)控等。

視頻編解碼技術(shù)的主要作用,是在可用的計(jì)算資源內(nèi),追求盡可能高的視頻重建質(zhì)量和盡可能高的壓縮比,以達(dá)到帶寬和存儲容量的要求。為何突出“重建質(zhì)量”?因?yàn)橐曨l編碼是個(gè)有損的過程,用戶只能從收到的視頻流中解析出“重建”畫面,它與原始的畫面已經(jīng)不同,例如觀看低質(zhì)量視頻時(shí)經(jīng)常會碰到的“塊”效應(yīng)。如何在一定的帶寬占用下,盡可能地保持視頻的質(zhì)量,或者在保持質(zhì)量情況下,盡可能地減少帶寬利用率,是視頻編碼的基本目標(biāo)。用專業(yè)術(shù)語來說,即視頻編解碼標(biāo)準(zhǔn)的**“率失真”性能**?!奥省笔侵复a率或者帶寬占用;“失真”是用來描述重建視頻的質(zhì)量。與編碼相對應(yīng)的是解碼或者解壓縮過程,是將接收到的或者已經(jīng)存儲在介質(zhì)上的壓縮碼流重建成視頻信號,然后在各種設(shè)備上進(jìn)行顯示。

視頻編解碼標(biāo)準(zhǔn),通常只定義上述的解碼過程。例如 H.264 / AVC 標(biāo)準(zhǔn),它定義了什么是符合標(biāo)準(zhǔn)的視頻流,對每一個(gè)比特的順序和意義都進(jìn)行了嚴(yán)格地定義,對如何使用每個(gè)比特或者幾個(gè)比特表達(dá)的信息也有精確的定義。正是這樣的嚴(yán)格和精確,保證了不同廠商的視頻相關(guān)服務(wù),可以很方便地兼容在一起,例如用 iPhone、Android Phone 或者 windows PC 都可以觀看同一在線視頻網(wǎng)站的同一視頻。世界上有多個(gè)組織進(jìn)行視頻編碼標(biāo)準(zhǔn)的制定工作,國際標(biāo)準(zhǔn)組織 ISO 的 MPEG 小組、國際電信聯(lián)盟 ITU-T 的 VCEG 小組、中國的 AVS 工作組、Google 及各大廠商組成的開放媒體聯(lián)盟等。
image.png
(圖1 視頻編碼標(biāo)準(zhǔn)及發(fā)展歷史)

自 VCEG 制定 H.120標(biāo)準(zhǔn)開始,視頻編碼技術(shù)不斷發(fā)展,先后成功地制定了一系列滿足不同應(yīng)用場景的視頻編碼標(biāo)準(zhǔn),如圖1所示。VCEG 組織先后制定了H.120、H.261、H.262(MPEG-2 Part 2)、H.263、H.263+、H.263++。MPEG也先后制定了MPEG-1、MPEG-2、MPEG-4 Part 2。以及兩個(gè)國際組織合作制定的H.264/AVC、H.265/HEVC、H.266/VVC;中國自主知識產(chǎn)權(quán)的 AVS、AVS2、AVS3 視頻編碼標(biāo)準(zhǔn);Google 制定的 VP8、VP9;Google、思科、微軟、蘋果等公司組成的開放媒體聯(lián)盟(AOM)制定的 AV1。

H.264/AVC雖有近20年歷史,但它優(yōu)秀的壓縮性能、適當(dāng)?shù)倪\(yùn)算復(fù)雜度、優(yōu)秀的開源社區(qū)支持、友好的專利政策、強(qiáng)大的生態(tài)圈等多個(gè)方面的因素,依舊讓它保持著強(qiáng)大的生命力,特別是在實(shí)時(shí)通信領(lǐng)域。像 ZOOM、思科 Webex 等視頻會議產(chǎn)品和基于 WebRTC SDK 的視頻服務(wù),大多數(shù)主流場景都采用 H.264/AVC。

5. H.264視頻編解碼技術(shù)的意義

H.264或稱為MPEG-4第十部分(高級視頻編碼部分)是由ITU-T和ISO/IEC再次聯(lián)手開發(fā)的最新一代視頻編碼標(biāo)準(zhǔn)。由于它比以前的標(biāo)準(zhǔn)在設(shè)計(jì)結(jié)構(gòu)、實(shí)現(xiàn)功能上作了進(jìn)一步改進(jìn),使得在同等視頻質(zhì)量條件下,能夠節(jié)省50%的碼率,且提高了視頻傳輸質(zhì)量的可控性,并具有較強(qiáng)的差錯(cuò)處理能力,適用范圍更廣。在低碼率情況下,32kbps的H.264圖像質(zhì)量相當(dāng)于128kbps的MPEG-4圖像質(zhì)量。H.264可應(yīng)用于網(wǎng)絡(luò)電視、廣播電視、數(shù)字影院、遠(yuǎn)程教育、會議電視等多個(gè)行業(yè)。

H.264最大的優(yōu)勢是具有很高的數(shù)據(jù)壓縮比率,在同等圖像質(zhì)量的條件下,H.264的壓縮比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。舉個(gè)例子,原始文件的大小如果為88GB,采用MPEG-2壓縮標(biāo)準(zhǔn)壓縮后變成3.5GB,壓縮比為25∶1,而采用H.264壓縮標(biāo)準(zhǔn)壓縮后變?yōu)?79MB,從88GB到879MB,H.264的壓縮比達(dá)到驚人的102∶1。低碼率(Low Bit Rate)對H.264的高的壓縮比起到了重要的作用,和MPEG-2和MPEG-4 ASP等壓縮技術(shù)相比,H.264壓縮技術(shù)將大大節(jié)省用戶的下載時(shí)間和數(shù)據(jù)流量收費(fèi)。尤其值得一提的是,H.264在具有高壓縮比的同時(shí)還擁有高質(zhì)量流暢的圖像,正因?yàn)槿绱耍?jīng)過H.264壓縮的視頻數(shù)據(jù),在網(wǎng)絡(luò)傳輸過程中所需要的帶寬更少,也更加經(jīng)濟(jì)。

因此,H.264的出現(xiàn)就是為了創(chuàng)建比以前的視頻壓縮標(biāo)準(zhǔn)更高效的壓縮標(biāo)準(zhǔn),使用更好高效的視頻壓縮算法來壓縮視頻的占用空間,提高存儲和傳輸?shù)男?,在獲得有效的壓縮效果的同時(shí),使得壓縮過程引起的失真最小。

image.png
(圖2 H264視頻編碼發(fā)展歷程)

圖來自音視頻系列–H264編解碼總結(jié)

6. 視頻編解碼技術(shù)在音視頻處理流程中的應(yīng)用

視頻編解碼在音視頻處理流程中的應(yīng)用如下圖4和圖5所示:

image.png
(圖4 音視頻錄制)
image.png(圖5 音視頻播放)

圖4和圖5來自:音視頻基礎(chǔ)

音視頻處理的一般流程為:數(shù)據(jù)采集→數(shù)據(jù)編碼→數(shù)據(jù)傳輸(流媒體服務(wù)器) →解碼數(shù)據(jù)→播放顯示

  • 數(shù)據(jù)采集:攝像機(jī)及拾音器收集視頻及音頻數(shù)據(jù),此時(shí)得到的為原始數(shù)據(jù)涉及技術(shù)或協(xié)議:攝像機(jī):CCD、CMOS拾音器:聲電轉(zhuǎn)換裝置(咪頭)、音頻放大電路。
  • 數(shù)據(jù)編碼:使用相關(guān)硬件或軟件對音視頻原始數(shù)據(jù)進(jìn)行編碼處理(數(shù)字化)及加工(如音視頻混合、打包封裝等),得到可用的音視頻數(shù)據(jù)涉及技術(shù)或協(xié)議:編碼方式:CBR、VBR編碼格式視頻:H.265、H.264、MPEG-4等,封裝容器有TS、MKV、AVI、MP4等音頻:G.711μ、AAC、Opus等,封裝有MP3、OGG、AAC等。
  • 數(shù)據(jù)傳輸:將編碼完成后的音視頻數(shù)據(jù)進(jìn)行傳輸,早期的音視頻通過同軸電纜之類的線纜進(jìn)行傳輸,IP網(wǎng)絡(luò)發(fā)展后,使用IP網(wǎng)絡(luò)傳輸涉及技術(shù)或協(xié)議:傳輸協(xié)議:RTP與RTCP、RTSP、RTMP、HTTP、HLS(HTTPLive
    Streaming)等,控制信令:SIP和SDP、SNMP等
  • 解碼數(shù)據(jù):使用相關(guān)硬件或軟件對接收到的編碼后的音視頻數(shù)據(jù)進(jìn)行解碼,得到可以直接顯示的圖像/聲音涉及技術(shù)或協(xié)議:一般對應(yīng)的編碼器都會帶有相應(yīng)的解碼器,也有一些第三方解碼插件等。
  • 播放顯示:在顯示器(電視、監(jiān)視屏等)或揚(yáng)聲器(耳機(jī)、喇叭等)里,顯示相應(yīng)的圖像畫面或聲音涉及技術(shù)或協(xié)議:顯示器、揚(yáng)聲器、3D眼鏡等。

7. H.264基本流結(jié)構(gòu)

H.264 的基本流(elementary stream,ES)的結(jié)構(gòu)分為兩層:
視頻編碼層(VCL)網(wǎng)絡(luò)適配層(NAL)。
視頻編碼層負(fù)責(zé)高效的視頻內(nèi)容表示,而網(wǎng)絡(luò)適配層負(fù)責(zé)以網(wǎng)絡(luò)所要求的恰當(dāng)?shù)姆绞綄?shù)據(jù)進(jìn)行打包和傳送。

引入NAL并使之與VCL分離帶來的好處包括兩方面:
1、使信號處理和網(wǎng)絡(luò)傳輸分離,VCL 和NAL 可以在不同的處理平臺上實(shí)現(xiàn);
2、VCL 和NAL 分離設(shè)計(jì),使得在不同的網(wǎng)絡(luò)環(huán)境內(nèi),網(wǎng)關(guān)不需要因?yàn)榫W(wǎng)絡(luò)環(huán)境不同而對VCL比特流進(jìn)行重構(gòu)和重編碼。

VCL(Video Coding Layer):VCL是對核心算法引擎,塊,宏塊及片的語法級別的定義,他最終輸出編碼完的數(shù)據(jù) SODB。

NAL(Net Abstraction Layer):NAL將SODB打包成RBSP然后加上NAL頭,組成一個(gè)NALU(NAL單元)。

SODB(String Of Data Bits):原始數(shù)據(jù)比特流, 長度不一定是8的倍數(shù),故需要補(bǔ)齊。

RBSP(Raw Byte Sequence Payload):原始數(shù)據(jù)字節(jié)流,SODB+RBSP trailing bits=RBSP,添加加trailing bits是為了使一個(gè)RBSP為整字節(jié)數(shù)。

H.264 的基本流由一系列NALU (Network Abstraction Layer Unit )組成,不同的NALU數(shù)據(jù)量各不相同。H.264 草案指出,當(dāng)數(shù)據(jù)流是儲存在介質(zhì)上時(shí),在每個(gè)NALU 前添加起始碼:0x000001或0x00000001,用來指示一個(gè)NALU 的起始和終止位置。在這樣的機(jī)制下,在碼流中檢測起始碼,作為一個(gè)NALU得起始標(biāo)識,當(dāng)檢測到下一個(gè)起始碼時(shí),當(dāng)前NALU結(jié)束。

H.264 碼流中每個(gè)幀的開頭的3~4個(gè)字節(jié)是H.264 的start_code(起始碼),0x00000001或0x000001。3字節(jié)的0x000001只有一種場合下使用,就是一個(gè)完整的幀被編為多個(gè)slice(片)的時(shí)候,從第二個(gè)slice開始,包含這些slice的NALU 使用3字節(jié)起始碼。也就是說,如果NALU對應(yīng)的slice為一幀的開始就用0x00000001,否則就用0x000001。

本段摘抄自草上爬的H.264格式分析

7.1 VCL層中的結(jié)構(gòu)

常見的I、B、P幀組成圖像序列sequence,這里I幀和IDR幀的區(qū)別參考:H.264—(I、P、B幀)(I幀和IDR幀)(DTS和PTS、time_base),一幀圖片中可以有一個(gè)多個(gè)Slice,一個(gè)Slice有多個(gè)宏塊(Macro BLock) ,一個(gè)宏塊包含一個(gè)亮度塊和兩個(gè)色度塊。

Android 音視頻開發(fā)實(shí)踐系列-06-初步了解H.264視頻編解碼技術(shù)標(biāo)準(zhǔn)
SODB :數(shù)據(jù)比特串 ---->最原始的編碼數(shù)據(jù),即VCL數(shù)據(jù).

7.2 NAL層中的結(jié)構(gòu)

一個(gè)典型的NALU如下圖所示
Android 音視頻開發(fā)實(shí)踐系列-06-初步了解H.264視頻編解碼技術(shù)標(biāo)準(zhǔn)
3.1 NAL頭介紹
占一個(gè)字節(jié),由三部分組成forbidden_bit(1bit),nal_reference_bit(2bits)(優(yōu)先級),nal_unit_type(5bits)(類型)。
forbidden_bit:
禁止位,默認(rèn)為0,1為語法有錯(cuò)誤。
nal_reference_bit:
用于在重構(gòu)過程中標(biāo)記一個(gè)NAL單元的重要性,值越大,越重要。值為0表示這個(gè)NAL單元沒有用于預(yù)測,因此可被解碼器拋棄而不會有錯(cuò)誤擴(kuò)散;值高于0表示此NAL單元要用于無漂移重構(gòu),且值越高,對此NAL單元丟失的影響越大。
nal_unit_type :NAL類型。參見下表:image.png

3.2 RBSP、EBSP
SODB 數(shù)據(jù)比特串:最原始的編碼數(shù)據(jù)。
RBSP 原始字節(jié)序列載荷:在SODB的后面添加了結(jié)尾比特(RBSP trailing bits 一個(gè)bit“1”)若干比特“0”,以便字節(jié)對齊。
EBSP 擴(kuò)展字節(jié)序列載荷:在RBSP基礎(chǔ)上填加了仿校驗(yàn)字節(jié)(0X03)它的原因是: 在NALU加到Annexb上時(shí),需要填加每組NALU之前的開始碼 StartCodePrefix,如果該NALU對應(yīng)的slice為一幀的開始則用4位字節(jié)表示,ox00000001,否則用3位字節(jié)表示 ox000001。為了使NALU主體中不包括與開始碼相沖突的,在編碼時(shí),每遇到兩個(gè)字節(jié)連續(xù)為0,就插入一個(gè)字節(jié)的0x03。解碼時(shí)將0x03去掉。

附:碼流分析工具

1.CodecVisa(跨平臺:H264/H265…) http://www.codecian.com/downloads.html
2.H264BSAnalyzer(H264/H265) https://github.com/latelee/H264BSAnalyzer
3.GitlHEVCAnalyzer(H264) https://github.com/lheric/GitlHEVCAnalyzer
4.Elecard HEVC/AVC Analyzer(收費(fèi)) https://www.elecard.com/products/video-analysis/streameye-studio 5.VideoEye(H264/RTMP…) https://github.com/leixiaohua1020/VideoEye

參考資料

深入淺出理解視頻編解碼技術(shù)
音視頻系列–H264編解碼總結(jié)
直播系統(tǒng)搭建:音視頻處理的一般流程與推流端的四個(gè)環(huán)節(jié)
H.264—碼流格式分析文章來源地址http://www.zghlxwxcb.cn/news/detail-406277.html

到了這里,關(guān)于Android 音視頻開發(fā)實(shí)踐系列-06-初步了解H.264視頻編解碼技術(shù)標(biāo)準(zhǔn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android-音視頻學(xué)習(xí)系列-(九)Android-端實(shí)現(xiàn)-rtmp-推流(2)

    Android-音視頻學(xué)習(xí)系列-(九)Android-端實(shí)現(xiàn)-rtmp-推流(2)

    配置好之后,檢查一下 AudioRecord 當(dāng)前的狀態(tài)是否可以進(jìn)行錄制,可以通過 AudioRecord##getState 來獲取當(dāng)前的狀態(tài): STATE_UNINITIALIZED 還沒有初始化,或者初始化失敗了 STATE_INITIALIZED 已經(jīng)初始化成功了。 2. 開啟采集 創(chuàng)建好 AudioRecord 之后,就可以開啟音頻數(shù)據(jù)的采集了,可以通過調(diào)

    2024年04月12日
    瀏覽(21)
  • Android 音視頻開發(fā) - VideoView

    本篇文章主要介紹下Android 中的VideoView. VideoView是一個(gè)用于播放視頻的視圖組件,可以方便地在應(yīng)用程序中播放本地或網(wǎng)絡(luò)上的視頻文件。 VideoView可以直接在布局文件中使用,也可以在代碼中動態(tài)創(chuàng)建。 它封裝了MediaPlayer和SurfaceView,提供了簡單的接口來控制視頻的播放和顯示

    2024年04月08日
    瀏覽(28)
  • 音視頻開發(fā)-ffmpeg介紹-系列一

    音視頻開發(fā)-ffmpeg介紹-系列一

    目錄 一.簡介 FFmpeg框架的基本組成包含: 二.?FFmpeg框架梳理音視頻的流程?編輯 基本概念: 三.ffmpeg、ffplay、ffprobe區(qū)別 ? ? ?4.1 ffmpeg是用于轉(zhuǎn)碼的應(yīng)用程序? 4.2?fffplay是用于播放的應(yīng)用程序? ? ? ?4.3?ffprobe是用于查看文件格式的應(yīng)用程序 ? ? ?4.4?ffmpeg是用于轉(zhuǎn)碼的應(yīng)用程

    2024年02月16日
    瀏覽(30)
  • Android音視頻開發(fā) - MediaMetadataRetriever 相關(guān)

    MediaMetadataRetriever 是android中用于從媒體文件中提取元數(shù)據(jù)新的類. 可以獲取音頻,視頻和圖像文件的各種信息,如時(shí)長,標(biāo)題,封面等. 需要申請 讀寫權(quán)限 . 這里我使用的是本地路徑, 需要注意的是如果路徑文件不存在,會拋出 IllegalArgumentException,具體的源碼如下: 根據(jù)keyCode返回keyC

    2024年04月08日
    瀏覽(31)
  • Android修行手冊-基礎(chǔ)優(yōu)化系列圖片篇,ios音視頻面試內(nèi)容

    Android修行手冊-基礎(chǔ)優(yōu)化系列圖片篇,ios音視頻面試內(nèi)容

    圖片款=(480/480)*400=400 占用內(nèi)存為300*400*4=480000 那么它占用內(nèi)存為什么是變化的? Android會先解析圖片文件本身的數(shù)據(jù)格式,然后還原成Bitmap對象,Bitmap的大小就跟上面的計(jì)算方式相關(guān)聯(lián)。 再舉例1080*452的png圖片,圖片占用存儲空間大小為56kb,內(nèi)存如圖: 上圖一目了然,不

    2024年04月27日
    瀏覽(45)
  • Android音視頻開發(fā)實(shí)戰(zhàn)02-Jni

    Android音視頻開發(fā)實(shí)戰(zhàn)02-Jni

    JNI是Java Native Interface的縮寫,是Java提供的一種機(jī)制,用于在Java代碼中調(diào)用本地(C/C++)代碼。它允許Java代碼與本地代碼進(jìn)行交互,通過JNI,Java應(yīng)用程序可以調(diào)用一些原生庫或者操作系統(tǒng)API,以獲取更好的性能和更強(qiáng)的功能支持。 使用JNI需要編寫一些Native方法,并將其實(shí)現(xiàn)在

    2024年02月11日
    瀏覽(30)
  • Android音視頻開發(fā)實(shí)戰(zhàn)01-環(huán)境搭建

    Android音視頻開發(fā)實(shí)戰(zhàn)01-環(huán)境搭建

    FFmpeg 是一款流行的開源多媒體處理工具,它可以用于轉(zhuǎn)換、編輯、錄制和流式傳輸音視頻文件。FFmpeg 具有廣泛的應(yīng)用場景,包括視頻編解碼、格式轉(zhuǎn)換、裁剪、合并、濾鏡等等。官網(wǎng):https://ffmpeg.org/ FFmpeg 支持各種常見的音視頻格式,例如 MP4、AVI、FLV、MOV、AAC、MP3、M4A 等等

    2024年02月10日
    瀏覽(22)
  • Android 音視頻開發(fā)—MediaPlayer音頻與視頻的播放介紹

    Android 音視頻開發(fā)—MediaPlayer音頻與視頻的播放介紹

    Android多媒體中的——MediaPlayer,我們可以通過這個(gè)API來播放音頻和視頻該類是Androd多媒體框架中的一個(gè)重要組件,通過該類,我們可以以最小的步驟來獲取,解碼和播放音視頻。 它支持三種不同的媒體來源: 本地資源 內(nèi)部的URI,比如你可以通過ContentResolver來獲取 外部URL(流

    2024年02月10日
    瀏覽(27)
  • Android-音視頻學(xué)習(xí)系列-(二)-交叉編譯動態(tài)庫、靜態(tài)庫的入門學(xué)習(xí)

    Android-音視頻學(xué)習(xí)系列-(二)-交叉編譯動態(tài)庫、靜態(tài)庫的入門學(xué)習(xí)

    gcc -S test.i -o test.s//-S 的作用是編譯結(jié)束生成匯編文件。 匯編階段 匯編階段把 .S 文件翻譯成二進(jìn)制機(jī)器指令文件 .o ,這個(gè)階段接收.c ,.i ,.s 的文件都沒有問題。 下面我們通過以下命令生成二進(jìn)制機(jī)器指令文件 .o 文件: gcc -c test.s -o test.o 鏈接階段 鏈接階段,鏈接的是函數(shù)庫。

    2024年04月09日
    瀏覽(26)
  • 音視頻開發(fā)系列(10):基于qt的音頻推流

    音視頻開發(fā)系列(10):基于qt的音頻推流

    今天分享一下利用qt錄制音頻,然后再利用ffmpeg推流到nginx服務(wù)器,最后再利用vlc進(jìn)行拉流的demo。 首先介紹一下如何利用qt來進(jìn)行音頻的錄制,qt的音頻錄制主要利用qt的QAudioFormat先進(jìn)行音頻信息的配置。主要需要配置以下的信息: 然后使用QAudioDeviceInfo來獲取是否支持改設(shè)置

    2024年02月02日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包