Android多媒體平臺下基于FFMPEG的音視頻處理方案研究
發(fā)布時間:2017-09-25 12:04
本文關鍵詞:Android多媒體平臺下基于FFMPEG的音視頻處理方案研究
更多相關文章: 多媒體 Android 音頻 視頻 FFmpeg
【摘要】:移動互聯(lián)網(wǎng)技術飛速發(fā)展的今天,手機儼然成為生活中不可或缺的一部分,人們對手機也產(chǎn)生了其他的功能要求,尤其是在多媒體方面。然而,在Android版本頻繁迭代更新和人們對娛樂多媒體的日漸依賴下,作為需求比較多的模塊,Android的多媒體功能比較欠缺,尤其是音視頻處理方面,主要體現(xiàn)在:一、Android系統(tǒng)源碼中對于音視頻的支持上,無論從支持的視頻種類上,還是編解碼效率上,都不能滿足日益增長的需求;二、音頻錄制過程中,每次觸碰暫停都會生成一個音頻段,該音頻段不支持直接拼接;三、視頻錄制結束之后,需要進行截取封面。所以,對Android應用音視頻全面研究具有重要理論意義和實際應用價值,也引起來了越來越多研究人員的注意。為了解決如上問題,本文提出了解決辦法以及關鍵技術的實現(xiàn),實現(xiàn)一個較為通用且完善的音視頻處理方案,能夠支持基本的音視頻錄制、播放以及過程中的控制。本次方案著重研究了開源多媒體庫FFmpeg技術,并通過JNI技術將其移植到Android系統(tǒng),主要開展并完成了以下工作:其一,論述了目前Android平臺下多媒體功能的主要欠缺以及Android和FFmpeg的研究現(xiàn)狀,并且詳細說明了設計音視頻處理方案的意義。接下來,對Android系統(tǒng)的框架等進行闡述,緊接著深入研究其多媒體框架OpenCore,掌握其特點以及提供的多媒體類型接口,為后期使用做準備。其二,在深入剖析FFmpeg編解碼和截圖機制的基礎上,為了提高編解碼效率以及解決音頻段合并和視頻截圖兩大技術難點,將FFmpeg移植到Android的底層。同時針對FFmpeg操作相對復雜且參數(shù)不便于理解和應用的問題,提出了按照邏輯和類的方法將FFmpeg封裝的方案設計。其三,對方案各個模塊進行了詳細的需求分析,設計了一套切實可行的音視頻處理方案,提供從音視頻錄制到播放的服務。整個方案采用了外觀模式進行設計,有效的避免模塊間的耦合,提高開發(fā)效率。使用Android自身的MediaRecord類來實現(xiàn)音視頻的錄制,MediaPlayer類實現(xiàn)音視頻的播放,底層封裝的FFmpeg接口實現(xiàn)音視頻轉碼、視頻截圖以及多段音頻合并。最后,通過性能測試,對錯誤進行了修正,最終提出的設計方案能夠按照預計結果去實現(xiàn)相應功能。綜上所述,本文實現(xiàn)了Android平臺下基于FFmpeg的音視頻處理方案,可以較為有效的提高Android自身的音視頻功能,優(yōu)化處理流程;同時,還能減輕多媒體開發(fā)的工作負擔,提高開發(fā)效率。
【關鍵詞】:多媒體 Android 音頻 視頻 FFmpeg
【學位授予單位】:暨南大學
【學位級別】:碩士
【學位授予年份】:2016
【分類號】:TN919.8
【目錄】:
- 英文縮寫說明3-4
- 摘要4-6
- ABSTRACT6-12
- 第一章 緒論12-18
- 1.1 研究背景和意義12-15
- 1.2 研究現(xiàn)狀15-16
- 1.2.1 Android多媒體研究現(xiàn)狀15-16
- 1.2.2 FFmpeg研究現(xiàn)狀16
- 1.3 本文結構編排16-18
- 第二章 相關技術和知識介紹18-36
- 2.1 ANDROID18-20
- 2.1.1 Android系統(tǒng)框架18-19
- 2.1.2 Android應用程序構成19-20
- 2.2 ANDROID多媒體20-24
- 2.2.1 多媒體系統(tǒng)介紹20-21
- 2.2.2 多媒體框架OpenCore21-22
- 2.2.3 OpenCore的多媒體類型及接口22-23
- 2.2.4 OpenCore的集成接口23-24
- 2.3 FFMPEG24-27
- 2.3.1 FFmpeg構成24-25
- 2.3.2 FFmpeg搭建25-27
- 2.4 FFMPEG開發(fā)27-32
- 2.4.1 FFmpeg參數(shù)解析27-28
- 2.4.2 FFmpeg處理流程28-29
- 2.4.3 FFmpeg轉碼29-32
- 2.5 ANDROID STUDIO以及開發(fā)平臺建立32-35
- 2.5.1 Android Studio簡介32
- 2.5.2 Android Studio優(yōu)勢32-33
- 2.5.3 開發(fā)平臺的建立33-35
- 2.6 本章小結35-36
- 第三章 音視頻解決方案需求分析與設計36-50
- 3.1 可行性分析36
- 3.2 功能需求分析36-39
- 3.2.1 底層封裝37-38
- 3.2.2 音視頻錄制模塊功能需求38-39
- 3.2.3 音視頻播放模塊功能需求39
- 3.3 性能需求分析39-40
- 3.3.1 友好的UI界面39
- 3.3.2 響應時長39-40
- 3.4 FFMPEG封裝設計40-42
- 3.4.1 轉碼以及多段音頻合并設計40-41
- 3.4.2 截取視頻圖像設計41-42
- 3.5 音頻模塊設計42-44
- 3.5.1 音頻功能模塊設計42-43
- 3.5.2 音頻控制模塊設計43-44
- 3.6 視頻模塊設計44-47
- 3.6.1 播放功能模塊設計44-45
- 3.6.2 視頻控制模塊設計45-47
- 3.7 設計模式47-48
- 3.7.1 開發(fā)過程中的問題47
- 3.7.2 外觀模式47-48
- 3.8 本章小結48-50
- 第四章 音視頻處理方案的實現(xiàn)50-69
- 4.1 硬件使用權限設置50-51
- 4.2 底層封裝的實現(xiàn)51-53
- 4.2.1 FFmpeg具類的封裝51-52
- 4.2.2 視頻截圖52
- 4.2.3 多段音頻合并52-53
- 4.3 音頻錄制功能的實現(xiàn)53-58
- 4.3.1 音頻錄制流程53-57
- 4.3.2 返回按鍵事件的監(jiān)聽與處理57-58
- 4.3.3 音頻轉碼的實現(xiàn)58
- 4.4 視頻錄制功能的實現(xiàn)58-62
- 4.4.1 視頻錄制流程58-61
- 4.4.2 視頻轉碼的實現(xiàn)61-62
- 4.5 音頻播放功能的實現(xiàn)62-65
- 4.5.1 音頻播放流程62-64
- 4.5.2 語音播放/暫?丶䦟崿F(xiàn)64-65
- 4.6 視頻播放功能的實現(xiàn)65-67
- 4.6.1 視頻播放流程65-66
- 4.6.2 SurfaceHolder.Callback接口實現(xiàn)66-67
- 4.7 播放過程中異常情況處理67-68
- 4.7.1 注冊OnErrorListener67-68
- 4.7.2 try catch結構68
- 4.8 本章小結68-69
- 第五章 音視頻方案測試69-77
- 5.1 配置測試環(huán)境69
- 5.2 視頻功能模塊測試69-72
- 5.2.1 視頻錄制測試70-71
- 5.2.2 視頻播放測試71-72
- 5.3 音頻功能模塊測試72-74
- 5.3.1 音頻錄制測試72-73
- 5.3.2 音頻播放功能測試73-74
- 5.4 性能測試74-76
- 5.5 數(shù)據(jù)移除安全測試76
- 5.6 本章小結76-77
- 第六章 總結與展望77-80
- 6.1 總結77-79
- 6.2 展望79-80
- 參考文獻80-83
- 致謝83
本文編號:917230
本文鏈接:http://sikaile.net/kejilunwen/xinxigongchenglunwen/917230.html
最近更新
教材專著