1. 程式人生 > >Android音視訊開發入門指南

Android音視訊開發入門指南

《Android 音視訊從入門到提高 —— 任務列表》

1. 在 Android 平臺繪製一張圖片,使用至少 3 種不同的 API,ImageView,SurfaceView,自定義 View

2. 在 Android 平臺使用 AudioRecord 和 AudioTrack API 完成音訊 PCM 資料的採集和播放,並實現讀寫音訊 wav 檔案

3. 在 Android 平臺使用 Camera API 進行視訊的採集,分別使用 SurfaceView、TextureView 來預覽 Camera 資料,取到 NV21 的資料回撥

4. 學習 Android 平臺的 MediaExtractor 和 MediaMuxer API,知道如何解析和封裝 mp4 檔案

5. 學習 Android 平臺 OpenGL ES API,瞭解 OpenGL 開發的基本流程,使用 OpenGL 繪製一個三角形

6. 學習 Android 平臺 OpenGL ES API,學習紋理繪製,能夠使用 OpenGL 顯示一張圖片

7. 學習 MediaCodec API,完成音訊 AAC 硬編、硬解

8. 學習 MediaCodec API,完成視訊 H.264 的硬編、硬解

9. 串聯整個音視訊錄製流程,完成音視訊的採集、編碼、封包成 mp4 輸出

10. 串聯整個音視訊播放流程,完成 mp4 的解析、音視訊的解碼、播放和渲染

11. 進一步學習 OpenGL,瞭解如何實現視訊的剪裁、旋轉、水印、濾鏡,並學習 OpenGL 高階特性,如:VBO,VAO,FBO 等等

12. 學習 Android 圖形影象架構,能夠使用 GLSurfaceviw 繪製 Camera 預覽畫面

13. 深入研究音視訊相關的網路協議,如 rtmp,hls,以及封包格式,如:flv,mp4

14. 深入學習一些音視訊領域的開源專案,如 webrtc,ffmpeg,ijkplayer,librtmp 等等

15. 將 ffmpeg 庫移植到 Android 平臺,結合上面積累的經驗,編寫一款簡易的音視訊播放器

16. 將 x264 庫移植到 Android 平臺,結合上面積累的經驗,完成視訊資料 H264 軟編功能

17. 將 librtmp 庫移植到 Android 平臺,結合上面積累的經驗,完成 Android RTMP 推流功能

18. 上面積累的經驗,做一款短視訊 APP,完成如:斷點拍攝、新增水印、本地轉碼、視訊剪輯、視訊拼接、MV 特效等功能

相信我,如果你認真把所有任務都完成了,你一定會成為音視訊人才招聘市場的香餑餑~~

下面是一些推薦的參考資料:

1. 《雷霄驊的專欄》:http://blog.csdn.net/leixiaohua1020
2. 《Android音訊開發》: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 架構》:https://source.android.com/devices/graphics/

最近感覺自己太頹廢了,工作四五年了,該實現的目標沒實現,技術層面上還有很多的不足,決定選一個方向好好研究一下,放空自我,好好學習!

相關推薦

Android視訊開發入門指南

《Android 音視訊從入門到提高 —— 任務列表》 1. 在 Android 平臺繪製一張圖片,使用至少 3 種不同的 API,ImageView,SurfaceView,自定義 View 2. 在 Android 平臺使用 AudioRecord 和

Android 視訊開發學習之路

  一直欠大家一篇音視訊入門之路的文章,這篇文章是我見過寫的最詳細的一篇了,今天算還了哈。作者從入門、進階、探究分別編寫了一系列文章。   Android 音視訊開發這塊目前的確沒有比較系統的教程或者書籍,網上的部落格文章也都是比較零散的。只能通過一點點的學習和積累把這塊的知識串聯積累起

視訊開發著作《Android視訊開發》終於發售了,先來一波簽名送書福利!

經歷了兩年多,我的著作終於和大家見面了,寫書是一件很磨練人耐力的事情,從打算寫一本書開始後,心裡無時不刻有一塊大石頭壓在頭頂。一來要保證專業性,二來要保證質量,同時還要兼具備怎麼表達,才能讓別人明白所說的意思。所以看起來沒有那麼簡單。近年來,直播,短視訊行業相關

Android 視訊開發(六): MediaCodec API 詳解

在學習了Android 音視訊的基本的相關知識,並整理了相關的API之後,我們應該對基本的音視訊有一定的輪廓了。下面開始接觸一個Android音視訊中相當重要的一個API: MediaCodec。 一、MediaCodec API介紹 MediaCodec可以處理具體的視

Android 視訊開發學習思路

Android 音視訊開發這塊目前的確沒有比較系統的教程或者書籍,網上的部落格文章也都是比較零散的。只能通過一點點的學習和積累把這塊的知識串聯積累起來。 初級入門篇: 初級入門篇主要是接觸Android多媒體展示相關的API,通過單獨的列舉和使用這些API,對Android音視訊處理有一個基本的輪廓

Android視訊開發初探之AudioRecord與AudioTrack完成音訊採集與播放

有陣子沒出文章,接下來爭取每週一更,將沉澱的東西記錄下來,廢話不多說 剛接觸了音視訊方面,趁熱乎記錄一下,歡迎大家指正 接下來會分為一下幾點來介紹: 基礎知識準備 Android MediaRecorder和AudioRecord 與 M

Android 視頻開發入門指南

入門 精通 提高 android 音視頻 最近收到很多網友通過郵件或者留言說想學習音視頻開發,該如何入門,我今天專門寫篇文章統一回復下吧。 音視頻這塊,目前的確沒有比較系統的教程或者書籍,網上的博客文章也都是比較零散的,希望我後面能擠出時間整一個專題詳細講一講~~目前的話,我

android視訊指南-處理音訊輸出的變化

翻譯自Handling changes in audio output 使用者希望能夠控制音量的音訊應用。標準行為包括使用音量控制的能力(裝置上的按鈕或旋鈕或滑塊在UI中),並避免突然大聲播放如果外圍像耳機斷開連線時使用 使用音量控制 當用戶在遊戲或音樂應用程式中按下音量鍵時,音量應該會發生變

android視訊指南-MediaPlayer概述

翻譯自MediaPlayer overview Android多媒體框架支援播放各種常見媒體型別,因此您可以輕鬆地將音訊、視訊和影象整合到應用程式中。您可以使用MediaPlayer api從儲存在應用程式資源(原始資源)中的媒體檔案、檔案系統中的獨立檔案或通過網路連線到達的資料流中播放音訊或視訊

android視訊指南-管理音訊焦點

翻譯自Managing audio focus 兩個或更多的Android應用程式可以同時播放音訊到相同的輸出流。系統把所有東西混合在一起。雖然這在技術上是令人印象深刻的,但對使用者來說卻是非常令人惱火的。為了避免所有音樂應用同時播放,Android引入了音訊聚焦的概念。只有一個應用程式可以一次聚焦音訊。

即時通訊視訊開發(七):音訊基礎及編碼原理入門

前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(五):認識主流視訊編碼技術H.264》 《即時

android視訊指南-使用媒體會話media session

媒體會話與它所管理的播放器共存。您應該在擁有媒體會話及其關聯播放器的活動或服務的onCreate()方法中建立並初始化一個媒體會話。 初始化媒體會話media session 新建立的媒體會話沒有功能。您必須通過執行以下步驟來初始化會話: 設定標誌,以便媒

android視訊指南-支援的媒體格式

本文描述了Android平臺提供的媒體編解碼器、容器和網路協議支援。 作為應用程式開發人員,您可以使用任何可以在任何Android裝置上使用的媒體編解碼器,包括Android平臺提供的媒體編解碼器和特定於裝置的媒體編解碼器。然而,使用與裝置無關的媒體編碼配置檔

Android視訊Android Onvif-IPC開發(一)——在Android端搭建伺服器模擬Onvif-IP-Camera

Android端實現Onvif IPC開發: 本篇內容簡介: 本篇是上一文章移植失敗採取的第二方案,通過在android搭建service,模擬成一個onvif協議對接的IPC端,在這之前,首先需要明白,onvif裝置對接的流程或者說方式,接下來的文章內容

Android視訊Android Onvif-IPC開發(一)——gSoap移植NDK嘗試

Android端實現Onvif IPC開發: 閱讀說明(必讀) 我在進行gSoap移植時暫時失敗了,而是採用方案二,在android端通過java搭建的server去模擬IPC,達到需求(實現Android端可供Onvif檢測的IPC),以下是我移植的步驟

視訊開發指南:圖片的繪製

在 Android 音視訊開發學習思路 裡面,我們寫到了,想要逐步入門音視訊開發,就需要一步步的去學習整理,並積累。本文是音視訊開發指南的第一篇。 對應的要學習的內容是:在 Android 平臺繪製一張圖片,使用3 種不同的 API,ImageView、SurfaceView、自定義 View。 Im

Android WebRTC 視訊開發總結(二)

1 public void setTrace(boolean enable, VideoEngine.TraceLevel traceLevel) { 2 if (enable) { 3 vie.setTraceFile("/sdcard/trace.txt", f

android視訊指南-響應媒體按鈕

媒體按鈕是Android裝置和其他外圍裝置上的硬體按鈕,例如藍芽耳機上的暫停/播放按鈕。當用戶按下媒體按鈕時,Android會生成一個KeyEvent,其中包含一個識別按鈕的金鑰程式碼。media button KeyEvents的關鍵程式碼是以KEYCODE_MEDIA開頭

福利來了【乾貨】融雲視訊開發 iOS CallKit 開發指南

iOS CallKit 開發指南 簡介 CallKit 是融雲音視訊通話功能的 UI 介面 SDK。包含了單人、多人音視訊通話的介面的各種場景和功能。您可以快速的整合 CallKit 來實現豐富的音視訊通話介面,並進行自己的 UI 定製開發。同時我們開源了 Call

以太坊是什麽 - 以太坊開發入門指南

以太坊 以太坊 入門 很多同學已經躍躍欲試投入到區塊鏈開發隊伍當中來,可是又感覺無從下手,本文將基於以太坊平臺,以通俗的方式介紹以太坊開發中涉及的各晦澀的概念,輕松帶大家入門。寫在前面閱讀本文前,你應該大概了解區塊鏈是什麽,如果你還不了解,歡迎訂閱專欄:區塊鏈技術指引你從頭開始學區塊鏈技術。以太坊