進(jìn)階必備:音視頻該如何學(xué)習(xí)?
我們先來(lái)看看一個(gè)方向性的學(xué)習(xí)指南:
1. 在 Android 平臺(tái)繪制一張圖片,使用至少 3 種不同的 API,ImageView,SurfaceView,自定義 View
2. 在 Android 平臺(tái)使用 AudioRecord 和 AudioTrack API 完成音頻 PCM 數(shù)據(jù)的采集和播放,并實(shí)現(xiàn)讀寫(xiě)音頻 wav 文件
3. 在 Android 平臺(tái)使用 Camera API 進(jìn)行視頻的采集,分別使用 SurfaceView、TextureView 來(lái)預(yù)覽 Camera 數(shù)據(jù),取到 NV21 的數(shù)據(jù)回調(diào)
4. 學(xué)習(xí) Android 平臺(tái)的 MediaExtractor 和 MediaMuxer API,知道如何解析和封裝 mp4 文件
5. 學(xué)習(xí) Android 平臺(tái) OpenGL ES API,了解 OpenGL 開(kāi)發(fā)的基本流程,使用 OpenGL 繪制一個(gè)三角形
6. 學(xué)習(xí) Android 平臺(tái) OpenGL ES API,學(xué)習(xí)紋理繪制,能夠使用 OpenGL 顯示一張圖片
7. 學(xué)習(xí) MediaCodec API,完成音頻 AAC 硬編、硬解
8. 學(xué)習(xí) MediaCodec API,完成視頻 H.264 的硬編、硬解
9. 串聯(lián)整個(gè)音視頻錄制流程,完成音視頻的采集、編碼、封包成 mp4 輸出
10. 串聯(lián)整個(gè)音視頻播放流程,完成 mp4 的解析、音視頻的解碼、播放和渲染
11. 進(jìn)一步學(xué)習(xí) OpenGL,了解如何實(shí)現(xiàn)視頻的剪裁、旋轉(zhuǎn)、水印、濾鏡,并學(xué)習(xí) OpenGL 高級(jí)特性,如:VBO,VAO,F(xiàn)BO 等等
12. 學(xué)習(xí) Android 圖形圖像架構(gòu),能夠使用 GLSurfaceviw 繪制 Camera 預(yù)覽畫(huà)面
13. 深入研究音視頻相關(guān)的網(wǎng)絡(luò)協(xié)議,如 rtmp,hls,以及封包格式,如:flv,mp4
14. 深入學(xué)習(xí)一些音視頻領(lǐng)域的開(kāi)源項(xiàng)目,如 webrtc,ffmpeg,ijkplayer,librtmp 等等
15. 將 ffmpeg 庫(kù)移植到 Android 平臺(tái),結(jié)合上面積累的經(jīng)驗(yàn),編寫(xiě)一款簡(jiǎn)易的音視頻播放器
16. 將 x264 庫(kù)移植到 Android 平臺(tái),結(jié)合上面積累的經(jīng)驗(yàn),完成視頻數(shù)據(jù) H264 軟編功能
17. 將 librtmp 庫(kù)移植到 Android 平臺(tái),結(jié)合上面積累的經(jīng)驗(yàn),完成 Android RTMP 推流功能
18. 上面積累的經(jīng)驗(yàn),做一款短視頻 APP,完成如:斷點(diǎn)拍攝、添加水印、本地轉(zhuǎn)碼、視頻剪輯、視頻拼接、MV 特效等功能
一,初級(jí)入門(mén)篇:


創(chuàng)建一個(gè)AudioRecord對(duì)象 初始化一個(gè)buffer 開(kāi)始錄音 創(chuàng)建一個(gè)數(shù)據(jù)流,一邊從AudioRecord中讀取聲音數(shù)據(jù)到初始化的buffer,一邊將buffer中數(shù)據(jù)導(dǎo)入數(shù)據(jù)流。 關(guān)閉數(shù)據(jù)流 停止錄音

MODE_STATIC模式 MODE_STREAM模式
音頻流的類(lèi)型 Buffer分配和Frame的概念 AudioTrack構(gòu)造過(guò)程
區(qū)別 聯(lián)系 SoundPool


流控基本概念 Android 硬編碼流控 Android 流控策略選擇

二,中級(jí)進(jìn)階篇:
Android OpenGL ES 開(kāi)發(fā)(一): OpenGL ES 介紹 Android OpenGL ES 開(kāi)發(fā)(二): OpenGL ES 環(huán)境搭建 Android OpenGL ES 開(kāi)發(fā)(三): OpenGL ES 定義形狀 Android OpenGL ES 開(kāi)發(fā)(四): OpenGL ES 繪制形狀 Android OpenGL ES 開(kāi)發(fā)(五): OpenGL ES 使用投影和相機(jī)視圖 Android OpenGL ES 開(kāi)發(fā)(六): OpenGL ES 添加運(yùn)動(dòng)效果 Android OpenGL ES 開(kāi)發(fā)(七): OpenGL ES 響應(yīng)觸摸事件 Android OpenGL ES 開(kāi)發(fā)(八): OpenGL ES 著色器語(yǔ)言GLSL Android OpenGL ES 開(kāi)發(fā)(九): OpenGL ES 紋理貼圖 Android OpenGL ES 開(kāi)發(fā)(十): 通過(guò)GLES20與著色器交互 使用 OpenGL 顯示一張圖片 GLSurfaceviw 繪制 Camera 預(yù)覽畫(huà)面及實(shí)現(xiàn)拍照 使用OpenGL ES 完成視頻的錄制,并實(shí)現(xiàn)視頻水印效果

高級(jí)探究篇:
深入學(xué)習(xí)音視頻編碼,如H.264,AAC,研究使用開(kāi)源編解碼庫(kù),如x.264,JM 等 深入研究音視頻相關(guān)的網(wǎng)絡(luò)協(xié)議,如 rtmp,hls,以及封包格式,如:flv,mp4 深入學(xué)習(xí)一些音視頻領(lǐng)域的開(kāi)源項(xiàng)目,如 webrtc,ffmpeg,ijkplayer,librtmp 等等 將 ffmpeg 庫(kù)移植到 Android 平臺(tái),結(jié)合上面積累的經(jīng)驗(yàn),編寫(xiě)一款簡(jiǎn)易的音視頻播放器 將 x264 庫(kù)移植到 Android 平臺(tái),結(jié)合上面積累的經(jīng)驗(yàn),完成視頻數(shù)據(jù) H264 軟編功能 將 librtmp 庫(kù)移植到 Android 平臺(tái),結(jié)合上面積累的經(jīng)驗(yàn),完成 Android RTMP 推流功能
音視頻編解碼技術(shù)(一):MPEG-4/H.264 AVC 編解碼標(biāo)準(zhǔn) 音視頻編解碼技術(shù)(二):AAC 音頻編碼技術(shù)
流媒體協(xié)議(一):HLS 協(xié)議 流媒體協(xié)議(二):RTMP協(xié)議
多媒體文件格式(一):MP4 格式 多媒體文件格式(二):FLV 格式 多媒體文件格式(三):M3U8 格式 多媒體文件格式(四):TS 格式 多媒體文件格式(五):PCM / WAV 格式


FFmpeg 學(xué)習(xí)記錄
FFmpeg命令行工具學(xué)習(xí)(一):查看媒體文件頭信息工具ffprobe FFmpeg命令行工具學(xué)習(xí)(二):播放媒體文件的工具ffplay FFmpeg命令行工具學(xué)習(xí)(三):媒體文件轉(zhuǎn)換工具ffmpeg FFmpeg命令行工具學(xué)習(xí)(四):FFmpeg 采集設(shè)備 FFmpeg命令行工具學(xué)習(xí)(五):FFmpeg 調(diào)整音視頻播放速度

FFmpeg 學(xué)習(xí)(一):FFmpeg 簡(jiǎn)介
FFmpeg 學(xué)習(xí)(二):Mac下安裝FFmpeg
FFmpeg 學(xué)習(xí)(三):將 FFmpeg 移植到 Android平臺(tái)
FFmpeg 學(xué)習(xí)(四):FFmpeg API 介紹與通用 API 分析
FFmpeg 學(xué)習(xí)(五):FFmpeg 編解碼 API 分析
FFmpeg 學(xué)習(xí)(六):FFmpeg 核心模塊 libavformat 與 libavcodec 分析

FFmpeg 結(jié)構(gòu)體學(xué)習(xí)(一):AVFormatContext 分析 FFmpeg 結(jié)構(gòu)體學(xué)習(xí)(二):AVStream 分析 FFmpeg 結(jié)構(gòu)體學(xué)習(xí)(三):AVPacket 分析 FFmpeg 結(jié)構(gòu)體學(xué)習(xí)(四):AVFrame 分析 FFmpeg 結(jié)構(gòu)體學(xué)習(xí)(五):AVCodec 分析 FFmpeg 結(jié)構(gòu)體學(xué)習(xí)(六):AVCodecContext 分析 FFmpeg 結(jié)構(gòu)體學(xué)習(xí)(七):AVIOContext 分析 FFmpeg 結(jié)構(gòu)體學(xué)習(xí)(八):FFMPEG中重要結(jié)構(gòu)體之間的關(guān)系




如果你正好需要這份完整版Android音視頻開(kāi)發(fā),掃碼下方二維碼即可領(lǐng)取~
