原文地址: http://blog.51cto.com/ticktick/1956269
最近收到很多網(wǎng)友通過郵件或者留言說想學(xué)習(xí)音視頻開發(fā)垦搬,該如何入門福贞,我今天專門寫篇文章統(tǒng)一回復(fù)下吧。
音視頻這塊昔搂,目前的確沒有比較系統(tǒng)的教程或者書籍违崇,網(wǎng)上的博客文章也都是比較零散的舆蝴,希望我后面能擠出時間整一個專題詳細講一講~~目前的話,我先給出一個大的方向性的學(xué)習(xí)指南幢泼,希望對初學(xué)者有所幫助紧显。
我一直相信帶著 “任務(wù)” 去學(xué)習(xí)和實踐,效率會高很多缕棵,因此我列出了一系列音視頻相關(guān)的 “開發(fā)任務(wù)”孵班,從簡單到困難(當然,不一定非常嚴格和完美招驴,部分任務(wù)先后可調(diào)整)篙程,大家在完成任務(wù)的過程中,遇到任何不懂的地方都要及時去 google忽匈,或者去請教身邊的大牛房午,不放過任何一個疑點,相信大家會很快就能把音視頻周邊相關(guān)知識積累起來丹允。
《Android 音視頻從入門到提高 —— 任務(wù)列表》
- 在 Android 平臺繪制一張圖片郭厌,使用至少 3 種不同的 API,ImageView雕蔽,SurfaceView折柠,自定義 View
- 在 Android 平臺使用 AudioRecord 和 AudioTrack API 完成音頻 PCM 數(shù)據(jù)的采集和播放,并實現(xiàn)讀寫音頻 wav 文件
- 在 Android 平臺使用 Camera API 進行視頻的采集批狐,分別使用 SurfaceView扇售、TextureView 來預(yù)覽 Camera 數(shù)據(jù),取到 NV21 的數(shù)據(jù)回調(diào)
- 學(xué)習(xí) Android 平臺的 MediaExtractor 和 MediaMuxer API嚣艇,知道如何解析和封裝 mp4 文件
- 學(xué)習(xí) Android 平臺 OpenGL ES API承冰,了解 OpenGL 開發(fā)的基本流程,使用 OpenGL 繪制一個三角形
- 學(xué)習(xí) Android 平臺 OpenGL ES API食零,學(xué)習(xí)紋理繪制困乒,能夠使用 OpenGL 顯示一張圖片
- 學(xué)習(xí) MediaCodec API,完成音頻 AAC 硬編贰谣、硬解
- 學(xué)習(xí) MediaCodec API娜搂,完成視頻 H.264 的硬編迁霎、硬解
- 串聯(lián)整個音視頻錄制流程,完成音視頻的采集百宇、編碼考廉、封包成 mp4 輸出
- 串聯(lián)整個音視頻播放流程,完成 mp4 的解析携御、音視頻的解碼昌粤、播放和渲染
- 進一步學(xué)習(xí) OpenGL,了解如何實現(xiàn)視頻的剪裁因痛、旋轉(zhuǎn)婚苹、水印、濾鏡鸵膏,并學(xué)習(xí) OpenGL 高級特性膊升,如:VBO,VAO谭企,F(xiàn)BO 等等
- 學(xué)習(xí) Android 圖形圖像架構(gòu)廓译,能夠使用 GLSurfaceviw 繪制 Camera 預(yù)覽畫面
- 深入研究音視頻相關(guān)的網(wǎng)絡(luò)協(xié)議,如 rtmp债查,hls非区,以及封包格式,如:flv盹廷,mp4
- 深入學(xué)習(xí)一些音視頻領(lǐng)域的開源項目征绸,如 webrtc,ffmpeg俄占,ijkplayer管怠,librtmp 等等
- 將 ffmpeg 庫移植到 Android 平臺,結(jié)合上面積累的經(jīng)驗缸榄,編寫一款簡易的音視頻播放器
- 將 x264 庫移植到 Android 平臺渤弛,結(jié)合上面積累的經(jīng)驗,完成視頻數(shù)據(jù) H264 軟編功能
- 將 librtmp 庫移植到 Android 平臺甚带,結(jié)合上面積累的經(jīng)驗她肯,完成 Android RTMP 推流功能
- 上面積累的經(jīng)驗,做一款短視頻 APP鹰贵,完成如:斷點拍攝晴氨、添加水印、本地轉(zhuǎn)碼碉输、視頻剪輯籽前、視頻拼接、MV 特效等功能
相信我,如果你認真把所有任務(wù)都完成了聚假,你一定會成為音視頻人才招聘市場的香餑餑~~
下面是一些推薦的參考資料:
1. 《雷霄驊的專欄》:http://blog.csdn.net/leixiaohua1020
2. 《Android音頻開發(fā)》:http://ticktick.blog.51cto.com/823160/d-15
3. 《FFMPEG Tips》:http://ticktick.blog.51cto.com/823160/d-17
4. 《Learn OpenGL 中文》:https://learnopengl-cn.readthedocs.io/zh/latest/
5. 《Android Graphic 架構(gòu)》:https://source.android.com/devices/graphics/
關(guān)于音視頻如何入門就介紹道這里了,有任何疑問歡迎來信 lujun.hust@gmail.com 交流闰非,另外膘格,歡迎關(guān)注我的新浪微博 @盧_俊 或者 微信公眾號 @Jhuster 獲取最新的文章和資訊。