首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
音视频
订阅
相信光的力量
更多收藏集
微信扫码分享
微信
新浪微博
QQ
12篇文章 · 0订阅
【Android 音视频开发打怪升级:FFmpeg音视频编解码篇】二、Android 引入FFmpeg
在过去,通常使用 makefile 的方式在项目中引入 C/C++ 代码支持,随着 Android Studio 的普及,makefile 的方式已经基本被 CMake 替代。 有了 Android 官方的支持,NDK 层代码的开发变得更加容易。以前一谈到 Android ND…
【Android 音视频开发打怪升级:FFmpeg音视频编解码篇】一、FFmpeg so库编译
网上其实已经有很多的关于FFmpeg so库编译的分享,但是大部分都是直接把配置文件的内容贴出来。我想大部分去搜索 「如何编译FFmpeg so库」的人,对交叉编译这个东东都是比较陌生的。 特别对于移动端开发者来说,大部分人大多数时候都是在Java层做开发,很少接触到NDK层的…
【Android 音视频开发打怪升级:OpenGL渲染视频画面篇】六、Android音视频硬编码:生成一个MP4
终于到了本篇章的最后一篇文章,前面的一系列文章中,围绕OpenGL,介绍了如何使用OpenGL来实现视频画面的渲染和显示,以及如何对视频画面进行编辑,有了以上基础以后,我们肯定想把编辑好的视频保存下来,实现整个编辑流程的闭环,本文就把最后一环补上。 在【音视频硬解码流程:封装基…
【Android 音视频开发打怪升级:OpenGL渲染视频画面篇】五、OpenGL FBO数据缓冲区
上一篇文章,讲解了如何使用EGL,并且提到EGL可以建立一个离屏渲染的缓冲区,这种离屏渲染的方式通常用于模拟整个渲染窗口,比如可以用于FFmpeg软编码,将显示在虚拟窗口中的画面编码成H264。 与此同时,OpenGL也提供另外一种离屏渲染方式,即FBO。FBO不仅可以实现离屏…
【Android 音视频开发打怪升级:OpenGL渲染视频画面篇】四、深入了解OpenGL之EGL
都怪Android的GLSurfaceView封装的太好了。哈哈哈~ 并且onDrawerFrame方法是会被不断的调用,我们就是在这里面实现了OpenGL的绘制流程。 答案是:Yes。 如果你去看一下GLSurfaceView的源码,你会找到一个叫GLThread的线程,在线…
【Android 音视频开发打怪升级:OpenGL渲染视频画面篇】三、OpenGL渲染多视频,实现画中画
距离上次更新已经有两个星期,由于这段时间事情比较多,还请各位关注本系列文章的小伙伴见谅,一有时间我会加紧码字,感谢大家的关注和督促。 下面就来看看如何在OpenGL中渲染多视频画面。 在上篇文章中,详细的讲解了如何通过OpenGL渲染视频画面,以及对视频画面进行比例矫正,基于前…
【Android 音视频开发打怪升级:OpenGL渲染视频画面篇】二、使用OpenGL渲染视频画面
在第一篇文章【音视频基础知识】文章中,就介绍过,视频其实就是一张张图片组成的,在上文【初步了解OpenGL ES】中,介绍了如何通过OpenGL渲染一张图片,可以猜想到,视频的渲染和图片的渲染应该是差不多的。话不多说,马上就来看看。 1. 定义视频渲染器 咋一看,和渲染图片一模…
【Android 音视频开发打怪升级:OpenGL渲染视频画面篇】一、初步了解OpenGL ES
提到OpenGL,想必很多人都会说,我知道这个东西,可以用来渲染2D画面和3D模型,同时又会说,OpenGL很难、很高级,不知道怎么用。 为了解决以上问题,让OpenGL“学起来不是很难”,需要把其分解成一些简单的步骤,然后简单的东西串联起来,一切就水到渠成了。 首先,来看看什…
【Android 音视频开发打怪升级:音视频硬解码篇】四、音视频解封和封装:生成一个MP4
在本篇章的第二篇文章【音视频硬解码流程】,已经讲过,Android使用的是MediaExtractor对音视频数据流进行解封。这里,我们简单再过一遍。 Android原生提供了一个封装器MediaMuxer,用于将已经编码好的音视频流数据封装到指定格式的文件中,MediaMux…
【Android 音视频开发打怪升级:音视频硬解码篇】三、音视频播放:音视频同步
在上一篇文章定义的解码流程框架基类中,预留了几个虚函数,留给子类初始化自己的东西,本篇,就来看看如何实现。 上篇文章,多次提到音视频数据分离提取器,在实现音视频解码器子类之前,先把这个实现了。 比较简单,直接把代码贴出来了。 3)最后通过获取的索引,返回对应的音视频多媒体格式信…