原创 Android中插件化實現的原理,宿主app運行插件中的類 (一)

https://blog.csdn.net/lin20044140410/article/details/104584877 什麼是插件化? 直白點說,就是去運行沒有安裝的apk,把這些沒有安裝過的apk理解爲插件,把運行這些插件的apk

原创 Android中音頻元數據的採集,及RTMP推流

在用手機做直播推流時,不管是錄屏直播,還是攝像頭直播,都要用到音頻的元數據. 在Android中,可以藉助AudioRecord來採集音頻數據,然後通過faac編碼庫(加入用的音頻編碼器是faac),將編碼後的數據交給RTMP去封包後發送

原创 Camera直播視頻數據的獲取,及RTMP推流(一)

通過攝像頭直播推流的場景中,需要先從攝像頭獲取去視頻元數據,然後交給x264編碼器(加入用的視頻編碼器是x264)編碼,最後經RTMP封包後發送給服務器. 我們使用CameraX來獲取攝像頭數據,對於CameraX的使用,參考官方文檔:

原创 NativeActivity使用流程

NativeActivity.java的使用中,屏幕繪製的操作是用native代碼實現(如C++),顯示UI的窗口跟普通的java層app是一樣的,也是一個Activity.java,就是NativeActivity.java,所以從他的

原创 Camera + opengles錄製視頻,錄製快速,慢速視頻(三)

視頻錄製可以使用android提供的api,如MediaRecorder,對視頻的編碼也有MediaCodec這樣的api可以使用。 MediaCodec的使用,用到兩個緩存隊列,一個輸入緩存隊列,一個是輸出緩存隊列,只需要使用queue

原创 Camera + opengles,有多級filter的處理(四)

Camera + opengl es 使用opengls繪製攝像頭數據(二)  https://blog.csdn.net/lin20044140410/article/details/105018524 首先做個說明,這裏的重點不是討論

原创 視頻相關概念

轉自:http://www.samirchen.com/video-concept/ 視頻相關概念 視頻文件格式 文件格式這個概念應該是我們比較熟悉的,比如我們常見的 Word 文檔的文件格式是 .doc,JPG 圖片的文件格式是 .jp

原创 基於FFmpeg開發視頻播放器,視頻解碼播放(二)

一,從setDataSource開始,設置播放的數據源,可以時本地視頻,也可以是網絡鏈接 EnjoyPlayer.java private String mPath = "/sdcard/mpeg.mp4"; public v

原创 基於FFmpeg開發視頻播放器,音視頻同步(四)

爲什麼需要音視頻同步? 從前面的代碼可以看到,播放的過程有解碼線程不斷的把解碼好的AVFrame數據放入隊列,然後播放線程從隊列中取出解碼後的數據,經過格式轉換,分別送給ANativeWindow去繪製,送給OpenSlES去播放聲音,這

原创 基於FFmpeg開發視頻播放器,音頻解碼播放(三)

音頻的播放,這裏用的時OpenSLES,這是一套跨平臺,針對嵌入式系統做過優化的api,它爲嵌入式移動多媒體設備上 的本地應用程序提供標準化, 高性能,低響應時間的音頻功能實現方法,並實現軟/硬件音頻性能的直接跨平臺 部署,降低執行難度.

原创 FFmpeg 視頻處理入門教程

FFmpeg 視頻處理入門教程 http://www.ruanyifeng.com/blog/2020/01/ffmpeg.html

原创 基於FFmpeg開發視頻播放器, 基本流程(一)

剛開始學習FFmpeg,用幾篇文章記錄下,使用ffmpeg開發一個簡單的視頻播放器,大概的過程.這裏只討論核心代碼,如解封裝,音頻的解碼播放,視頻的解碼播放,音視頻同步,不涉及UI佈局. 基於FFmpeg開發視頻播放器, 基本流程(一) 

原创 IOC技術-編譯時注入(Butterknife,dagger2的實現原理)

不同於運行時注入的思想,編譯時注入主要是藉助APT工具,在編譯時生成輔助類,運行時通過反射加載輔助類,執行其構造方法,來達到解耦,方便編程的目的. 編譯時注入比較流行的框架有Butterknife,Dagger2,針對android平臺有

原创 ubuntu下編譯ffmpeg的過程

後續一段時間準備音視頻相關知識的學習,所以先編譯ffmpeg做練習用. 以最新版本的android api 29, ndk21, ffmpeg4.2,編譯ffmpeg庫文件. 1,環境配置, 1)安裝yasm,如果沒有安裝會報nasm n

原创 MMKV的原理-如何實現跨進程(2)

接上一篇:https://blog.csdn.net/lin20044140410/article/details/104450727 在mmkv的使用中,肯定是有多線程,多進程的同步問題,有同步問題就肯定會用到鎖,所以先從mmkv中鎖的