Android視音頻編碼器(2)——cameraYUV、AudioRecordPCM分別編碼後muxer成mp4
參考下面這篇文章:
http://blog.csdn.net/a992036795/article/details/54286654
一、前言
上一篇文章我講到,我用libx264對視頻進行h264編碼效率非常低下,原因在於libx264采用的是軟編碼。於是我在網上搜索得知使用系統的API可以對視頻進行硬編碼,從而減少cpu的壓力,達到提高效率的作用。我寫了一個demo試了一下,果真效率提高的很明顯。
二、思路
1、核心類
-
MediaCodec
這個類用來進行音/視頻編碼。 -
AudioRecord
這個類用來錄音得到PCM音頻數據。 - MediaMuxer
這個類用來將編碼好的音視頻數據寫入文件。 - Camera
用來采集攝像頭的數據。
2、流程
三、核心實現
1、初始化視頻編碼器
剩余內容請參考原作者
Android視音頻編碼器(2)——cameraYUV、AudioRecordPCM分別編碼後muxer成mp4
相關推薦
Android視音頻編碼器(2)——cameraYUV、AudioRecordPCM分別編碼後muxer成mp4
效率 androi mar 視音頻 pop 采集 con 文章 cpu 參考下面這篇文章: http://blog.csdn.net/a992036795/article/details/54286654 一、前言 上一篇文章我講到,我用libx264對視頻
Android studio 百度地圖開發(2)地圖定位
gcj02 settings tick all adding ext tope wid erro Android studio 百度地圖開發(2)地圖定位 email:[email protected]/* */ 開發環境:win7 64位
python裝飾器(2)
裝飾器 () 方式 cti 調用 st2 rgs 顯示 clas 1.以下代碼,bar作為參數被test2調用。bar的原代碼沒變,但調用方式從bar()變成test2(bar) 不符合裝飾器定義 1 __author__ = "csy" 2 3 def ba
Python叠代器(2) —— 實現for循環
auth style code true next() logs div nbsp while Python的for循環本質上就是通過不斷調用next()函數實現的,例如: 1 #_*_coding:utf-8_*_ 2 #__author__ = "csy" 3
JavaScript編碼規範(2)
命名法 嵌套 tlist 繼承 spider cat mon .proto 時機 變量 [強制] 變量、函數在使用前必須先定義。 // good var name = ‘MyName‘; // bad name = ‘MyName‘; [強制] 每個 var 只能聲明一個
CSS(CSS3)選擇器(2)
for 字符 tutorials pty disable post input purple enabled 該部分主要為CSS3新增的選擇器 接上一篇 CSS(CSS3)選擇器(1) 一.通用兄弟選擇器: 24:E ~
JavaEE-SSM:011 Mybatis對映器(2)
Select配置語句常用配置 常用的配置已經圈出: id:配合Mapper對映介面使用,一般和介面函式名稱一致 parameterType:輸入引數的型別 resultType:輸出引數的型別 ResultMap:輸出對映集 flushCache:清空快取
JVM垃圾收集器(2)
此文已由作者趙計剛薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 1、G1 說明: 從上圖來看,G1與CMS相比,僅在最後的"篩選回收"部分不同(CMS是併發清除),實際上G1回收器的整個堆記憶體的劃分都與其他收集器不同。 CMS需要配合Pa
從零上手變分自編碼器(VAE)
閱讀更多,歡迎關注公眾號:論文收割機(paper_reader) Kingma D P, Welling M. Auto-encoding variational bayes[J]. arXiv preprint arXiv:1312.6114, 2013. Rez
Android鎖屏勒索病毒分析(2)免流伺服器
1.樣本概況 1.1 基本資訊 樣本名稱: 免流伺服器. 所屬家族: 鎖屏勒索病毒(a.rogue.SimpleLocker.a) MD5值: 2efca46f34a565c2ef4052b89b6b364b 包名: zs.ip.proxy 入口: Mai
LTE物理傳輸資源(2)-頻帶、通道頻寬和頻點號EARFCN
1.頻帶(Band) 所謂頻帶,指代的是一個頻率的範圍或者頻譜的寬度,即無線解碼器的最低工作頻率至最高工作頻率之間的範圍,單位是Hz。為了方便起見,在LTE中,使用數字1-43來表示不同的頻帶(36101-V10.21.0版本協議),從而指代不同的頻率範圍。 協議3610
Google guava cache原始碼解析1--構建快取器(2)
此文已由作者趙計剛授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 CacheBuilder-->maximumSize(long size) /** *
FreeRTOS 任務與排程器(2)
在上一篇我們介紹了FreeRTOS任務的一些基本操作和功能,今天我們會介紹一個很好很強大的功能——任務通知 任務通知可以在不同任務之間傳遞資訊,它可以取代二值訊號量、計數訊號量、事件標誌組、深度為1的訊息佇列等功能,因為它更快,佔用RAM更少,是FreeRTOS自8.2以來推出的重大改進功能。 一、任務通
Android原始碼之Gallery專題研究(2)
引言 上一篇文章已經講解了資料載入過程,接下來我們來看一看資料載入後的處理過程。按照正常的思維邏輯,當資料載入之後,接下來就應該考慮資料的顯示邏輯。 MVC顯示邏輯 大家可能對J2EE的MVC架構比較熟悉,Gallery2和MVC有什麼關係呢,簡直是瞎扯???首先,我們先回
Android WebRTC 音視訊開發總結(二)
1 public void setTrace(boolean enable, VideoEngine.TraceLevel traceLevel) { 2 if (enable) { 3 vie.setTraceFile("/sdcard/trace.txt", f
Android 超簡單音樂播放器(十)歌詞的實現
關於歌詞 有下面這些: 歌詞的獲取 歌詞的解析 自定義View 歌詞的獲取 歌詞的獲取分為兩種,一種是從本地一種是通過網路上提供的API獲取。我選擇的是歌詞迷的API http://api.geci.me/en/latest/ 說實話,這
數字語音訊號處理學習筆記——語音訊號的短時頻域分析(2)
4.3 濾波器的解釋 1.短時傅立葉變換的濾波器實現形式一 2.短時傅立葉變換的濾波器實現形式二
深度學習筆記:稀疏自編碼器(1)——神經元與神經網路
筆者在很久以前就已經學習過UFLDL深度學習教程中的稀疏自編碼器,近期需要用到的時候發現有些遺忘,溫習了一遍之後決定在這裡做一下筆記,本文不是對神經元與神經網路的介紹,而是筆者學習之後做的歸納和整理,打算分為幾篇記錄。詳細教程請見UFLDL教程,看完教程之後
Android Studio 設置編輯器(Editor)的字體、字體大小
操作系統 windows setting 系統 tps 修改字體 不用 另存為 set 操作系統:Windows 10 x64 IDE:Android Studio 3.2.1 參考:https://www.cnblogs.com/diyishijian/p/68243
Android 平臺下OpenGL繪製立方體(2)
圖形類 ——本文用所引法繪製 構造方中初始化資料 和渲染器 private void initData() { //獲得 頂點 顏色 和 索引的緩衝資料 //頂點 verBuffer = getFloa