Android多媒體平臺下基于FFMPEG的音視頻處理方案研究
發(fā)布時間:2017-09-25 12:04
本文關(guān)鍵詞:Android多媒體平臺下基于FFMPEG的音視頻處理方案研究
更多相關(guān)文章: 多媒體 Android 音頻 視頻 FFmpeg
【摘要】:移動互聯(lián)網(wǎng)技術(shù)飛速發(fā)展的今天,手機(jī)儼然成為生活中不可或缺的一部分,人們對手機(jī)也產(chǎn)生了其他的功能要求,尤其是在多媒體方面。然而,在Android版本頻繁迭代更新和人們對娛樂多媒體的日漸依賴下,作為需求比較多的模塊,Android的多媒體功能比較欠缺,尤其是音視頻處理方面,主要體現(xiàn)在:一、Android系統(tǒng)源碼中對于音視頻的支持上,無論從支持的視頻種類上,還是編解碼效率上,都不能滿足日益增長的需求;二、音頻錄制過程中,每次觸碰暫停都會生成一個音頻段,該音頻段不支持直接拼接;三、視頻錄制結(jié)束之后,需要進(jìn)行截取封面。所以,對Android應(yīng)用音視頻全面研究具有重要理論意義和實(shí)際應(yīng)用價值,也引起來了越來越多研究人員的注意。為了解決如上問題,本文提出了解決辦法以及關(guān)鍵技術(shù)的實(shí)現(xiàn),實(shí)現(xiàn)一個較為通用且完善的音視頻處理方案,能夠支持基本的音視頻錄制、播放以及過程中的控制。本次方案著重研究了開源多媒體庫FFmpeg技術(shù),并通過JNI技術(shù)將其移植到Android系統(tǒng),主要開展并完成了以下工作:其一,論述了目前Android平臺下多媒體功能的主要欠缺以及Android和FFmpeg的研究現(xiàn)狀,并且詳細(xì)說明了設(shè)計(jì)音視頻處理方案的意義。接下來,對Android系統(tǒng)的框架等進(jìn)行闡述,緊接著深入研究其多媒體框架OpenCore,掌握其特點(diǎn)以及提供的多媒體類型接口,為后期使用做準(zhǔn)備。其二,在深入剖析FFmpeg編解碼和截圖機(jī)制的基礎(chǔ)上,為了提高編解碼效率以及解決音頻段合并和視頻截圖兩大技術(shù)難點(diǎn),將FFmpeg移植到Android的底層。同時針對FFmpeg操作相對復(fù)雜且參數(shù)不便于理解和應(yīng)用的問題,提出了按照邏輯和類的方法將FFmpeg封裝的方案設(shè)計(jì)。其三,對方案各個模塊進(jìn)行了詳細(xì)的需求分析,設(shè)計(jì)了一套切實(shí)可行的音視頻處理方案,提供從音視頻錄制到播放的服務(wù)。整個方案采用了外觀模式進(jìn)行設(shè)計(jì),有效的避免模塊間的耦合,提高開發(fā)效率。使用Android自身的MediaRecord類來實(shí)現(xiàn)音視頻的錄制,MediaPlayer類實(shí)現(xiàn)音視頻的播放,底層封裝的FFmpeg接口實(shí)現(xiàn)音視頻轉(zhuǎn)碼、視頻截圖以及多段音頻合并。最后,通過性能測試,對錯誤進(jìn)行了修正,最終提出的設(shè)計(jì)方案能夠按照預(yù)計(jì)結(jié)果去實(shí)現(xiàn)相應(yīng)功能。綜上所述,本文實(shí)現(xiàn)了Android平臺下基于FFmpeg的音視頻處理方案,可以較為有效的提高Android自身的音視頻功能,優(yōu)化處理流程;同時,還能減輕多媒體開發(fā)的工作負(fù)擔(dān),提高開發(fā)效率。
【關(guān)鍵詞】:多媒體 Android 音頻 視頻 FFmpeg
【學(xué)位授予單位】:暨南大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】: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 本文結(jié)構(gòu)編排16-18
- 第二章 相關(guān)技術(shù)和知識介紹18-36
- 2.1 ANDROID18-20
- 2.1.1 Android系統(tǒng)框架18-19
- 2.1.2 Android應(yīng)用程序構(gòu)成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構(gòu)成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轉(zhuǎn)碼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 本章小結(jié)35-36
- 第三章 音視頻解決方案需求分析與設(shè)計(jì)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 響應(yīng)時長39-40
- 3.4 FFMPEG封裝設(shè)計(jì)40-42
- 3.4.1 轉(zhuǎn)碼以及多段音頻合并設(shè)計(jì)40-41
- 3.4.2 截取視頻圖像設(shè)計(jì)41-42
- 3.5 音頻模塊設(shè)計(jì)42-44
- 3.5.1 音頻功能模塊設(shè)計(jì)42-43
- 3.5.2 音頻控制模塊設(shè)計(jì)43-44
- 3.6 視頻模塊設(shè)計(jì)44-47
- 3.6.1 播放功能模塊設(shè)計(jì)44-45
- 3.6.2 視頻控制模塊設(shè)計(jì)45-47
- 3.7 設(shè)計(jì)模式47-48
- 3.7.1 開發(fā)過程中的問題47
- 3.7.2 外觀模式47-48
- 3.8 本章小結(jié)48-50
- 第四章 音視頻處理方案的實(shí)現(xiàn)50-69
- 4.1 硬件使用權(quán)限設(shè)置50-51
- 4.2 底層封裝的實(shí)現(xiàn)51-53
- 4.2.1 FFmpeg具類的封裝51-52
- 4.2.2 視頻截圖52
- 4.2.3 多段音頻合并52-53
- 4.3 音頻錄制功能的實(shí)現(xiàn)53-58
- 4.3.1 音頻錄制流程53-57
- 4.3.2 返回按鍵事件的監(jiān)聽與處理57-58
- 4.3.3 音頻轉(zhuǎn)碼的實(shí)現(xiàn)58
- 4.4 視頻錄制功能的實(shí)現(xiàn)58-62
- 4.4.1 視頻錄制流程58-61
- 4.4.2 視頻轉(zhuǎn)碼的實(shí)現(xiàn)61-62
- 4.5 音頻播放功能的實(shí)現(xiàn)62-65
- 4.5.1 音頻播放流程62-64
- 4.5.2 語音播放/暫?丶䦟(shí)現(xiàn)64-65
- 4.6 視頻播放功能的實(shí)現(xiàn)65-67
- 4.6.1 視頻播放流程65-66
- 4.6.2 SurfaceHolder.Callback接口實(shí)現(xiàn)66-67
- 4.7 播放過程中異常情況處理67-68
- 4.7.1 注冊O(shè)nErrorListener67-68
- 4.7.2 try catch結(jié)構(gòu)68
- 4.8 本章小結(jié)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 本章小結(jié)76-77
- 第六章 總結(jié)與展望77-80
- 6.1 總結(jié)77-79
- 6.2 展望79-80
- 參考文獻(xiàn)80-83
- 致謝83
本文編號:917230
本文鏈接:http://sikaile.net/kejilunwen/xinxigongchenglunwen/917230.html
最近更新
教材專著