【Android音視頻開發】從AVFrame到MediaFrame數組(一)

最近在學習Android中的音視頻開發,《從AVFrame到MediaFrame數組》是一個學習的記錄
它共分爲4個部分:
(一): 是對《從AVFrame到MediaFrame數組》所實現的功能以及涉及到知識點的介紹
(二): 從AVFrame到Java層的Bitmap
(三): 從AVFrame到Java層自定義的實體類MediaFrame
(四): 從AVFrame到Java層自定義的實體類MediaFrame的數組

簡介

目的

輸入:一個視頻素材
輸出:Android屏幕上的畫面segmentfault

分析

用戶將一個視頻文件傳遞到底層,咱們在底層經過FFmpeg解碼視頻,獲得一個個視頻幀(AVFrame),下面列舉三種將AVFrame轉換後,回傳給Java層的狀況:數組

  1. 將AVFrame轉換成Bitmap,回調Java層接口,將Bitmap傳遞給Java層去渲染到Android屏幕上
  2. 實際項目中可能除了Bitmap,咱們還須要Bitmap額外的數據,好比加一個Id,那咱們就須要自定義一個實體類,封住一下這個Bitmap,咱們給這個實體類起一個名字,叫MediaFrame:學習

    public class MediaFrame {
        private String id;
        private Bitmap bitmap;
        
        public void setId(String id) { this.id = id; }
        public String getId() { return id; }
        
        public void setBitmap(Bitmap bmp) { this.bitmap = bmp; }
        public Bitmap getBitmap() { return bitmap; }
    }
  3. 有時候咱們可能不僅要上傳一個圖片,有可能要顯示多個幀,那麼咱們就要返回給Java層一個MediaFrame數組

實現

基於上述三種回調,分別用三篇文章去記錄,一步一步實現:this

  1. AVFrame -> Bitmap
  2. AVFrame -> Bitmap -> MediaFrame
  3. AVFrame -> Bitmap -> MediaFrame -> MediaFrame[]

連接到下一文:《從AVFrame到MediaFrame數組(二)》code

相關文章
相關標籤/搜索