【Android音视频开发】从AVFrame到MediaFrame数组(一)

最近在学习Android中的音视频开发,《从AVFrame到MediaFrame数组》是一个学习的记录
它共分为4个部分:
(一): 是对《从AVFrame到MediaFrame数组》所实现的功能以及涉及到知识点的介绍
(二): 从AVFrame到Java层的Bitmap
(三): 从AVFrame到Java层自定义的实体类MediaFrame
(四): 从AVFrame到Java层自定义的实体类MediaFrame的数组

简介

目的

输入:一个视频素材
输出:Android屏幕上的画面

分析

用户将一个视频文件传递到底层,我们在底层通过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数组

实现

基于上述三种回调,分别用三篇文章去记录,一步一步实现:

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

链接到下一文:《从AVFrame到MediaFrame数组(二)》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值