自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (2)
  • 收藏
  • 关注

原创 CPU和 GPU的区别

简析CPU和GPU是嵌入式和电子系统的基本设备,但它们都可以用于不同的目的。CPU是用于根据操作(例如算术,逻辑,控制和输入 - 输出)执行程序给出的指令的微处理器。相反,GPU最初被设计为在计算机游戏中渲染图像。CPU强调低延迟,而在GPU中,重要性是高吞吐量。CPU的定义CPU(中央处理器)是一种主要充当每个嵌入式系统的大脑的设备。它由用于临时存储数据和执行计算的ALU(算术逻辑单元)和执行指令排序和分支的CU(控制单元)组成。它还与计算机的其他单元(例如存储器,输入和输出)交互,用于执行来自

2020-06-21 17:05:35 712

原创 电磁波详解及用途

简介电磁波是由相同且互相垂直的电场与磁场在空间中衍生发射的震荡粒子波,是以波动的形式传播的电磁场,具有波粒二象性。频率是电磁波的重要特性。按照频率的顺序把这些电磁波排列起来,就是电磁波谱。电磁辐射由低频率到高频率主要分为:无线电波、微波、红外线、可见光、紫外线、X射线和γ射线。人眼可接收到的电磁波,称为可见光(波长380~780nm)。除了原子电子之外,剩下的几乎全是电磁波,红外线、紫外线、太阳光、电灯光、wifi信号、手机信号、电脑辐射、核辐射,等等。只要是波,就逃不过三个参数:波速、波长、振幅。电

2020-05-31 22:03:34 6685 3

原创 OpenGL之帧缓冲详解

简介OpenGlES中的物体绘制并不是直接在屏幕上进行的,而是预先在帧缓冲区内进行绘制的,每绘制完一帧再将绘制的结果交换到屏幕上,所以每次绘制新的一帧时,都要清除缓冲区中的相关数据,否则可能产生不正确的绘制。包括三种类型的屏幕缓冲颜色缓冲用于存储每个片元的颜色值,每个颜色包括RGBA4个色彩通道,应用程序看到的内容就是颜色缓冲区中的内容用于写入深度信息的深度缓冲用于存储每个片元的深度值,是指从片元处到观察点(相机)的距离。在启用深度测试的情况下,新片元想进入帧缓冲时需要将自己的深度值与帧缓冲.

2020-05-17 18:44:25 2437

原创 Android中EGL的使用步骤

EGLOpenGL ES是一个跨平台的图形库,在它能够工作之前,需要与一个实际的窗口系统关联起来,这与OpenGL是一样的。但不一样的是,这部份工作有标准,这个标 准就是EGL。而OpenGL时代在不同平台上有不同的机制以关联窗口系统,在Windows上是wgl,在X-Window上是xgl,在Apple OS上是agl等。由上可以理解为,OpenGLES的使用,离不开EGL。而我们在使用...

2020-05-04 16:36:13 2711

原创 GLSurfaceview 详细工作流程

GLSurfaceview 详细工作流程编写GLSurfaceView.Renderer的实例,调setRenderer()将之设成GLSurfaceView的Renderer。GLSurfaceView中的GLThread启动,创建EGL环境后回调Renderer中onSurfaceCreated()通过GLES创建GL的外部纹理。外部纹理说明它的真正内容是放在ion分配...

2020-05-04 16:05:06 1034

原创 SurfaceView、GLSurfaceView、SurfaceTexture、TextureView 详解

SurfaceView它继承自类View,因此它本质上是一个View。但与普通View不同的是,它有自己的Surface(用来保存像素数据的保留内存区域)。优点它与宿主窗口是分离的。这样的好处是对这个Surface的渲染可以放到单独线程去做,渲染时可以有自己的GLContext,它不会影响主线程对事件的响应。缺点因为这个Surface不在View hierachy中,它的显示也不受...

2020-05-04 15:43:36 3879

原创 Android 音视频之FFmpeg

FFmpeg介绍FFmpeg是一套可以用来记录、处理数字音频、视频,并将其转换为流的开源框架,采用LPL或GPL许可证,提供了录制、转换以及流化音视频的完整解决方案。它的可移植性或者说跨平台特性非常强大。默认的编译会生成4个可执行文件和8个静态库。可执行文件包括用于转码、推流、Dump媒体文件的ffmpeg、用于播放媒体文件的ffplay、用于获取媒体文件信息的ffprobe,以及作为简...

2020-05-03 17:31:38 747

原创 交叉编译的原理

本机编译使用本机器的编译器,将源代码编译链接成为一个可以在本机器上运行的程序。这就是正常的编译过程.交叉编辑就是在一个平台(如PC)上生成另外一个平台(Android、iOS或者其他嵌入式设备)的可执行程序,相较于正常编译,下面来看一下交叉编译的相应角色。首先,最终程序运行的设备就是Android或者iOS设备,源代码就是从第三方开源网站上下载的源代码,编译机器就是我们的PC,而编译...

2020-05-03 11:04:29 2442

原创 Android 音视频开发之MediaMuxer

简介在Android中,可以使用MediaMuxer来封装编码后的视频流和音频流到mp4容器中,MediaMuxer最多仅支持一个视频track和一个音频track,所以如果有多个音频track可以先把它们混合成为一个音频track然后再使用MediaMuxer封装到mp4容器中。通常视频编码使用H.264(AVC)编码,音频编码使用AAC编码,在MediaFormat中我们可以看到各种编码格...

2020-05-02 23:37:35 1756 1

原创 Android音视频开发之MediaExtractor

简介Android提供了一个MediaExtractor类,可以用来分离容器中的视频track和音频track。使用步骤通过setDataSource()设置数据源,数据源可以是本地文件地址,也可以是网络地址:MediaExtractor mVideoExtractor = new MediaExtractor();mVideoExtractor.setDataSource(mV...

2020-05-02 23:23:52 564

原创 Android 音视频之MediaCodec

简介Android中可以使用MediaCodec来访问底层的媒体编解码器,可以对媒体进行编/解码。MediaCodec可以处理的数据有以下三种类型:压缩数据、原始音频数据、原始视频数据。这三种类型的数据均可以利用ByteBuffers进行处理,但是对于原始视频数据应提供一个Surface以提高编解码器的性能。Surface直接使用native视频数据缓存,而没有映射或复制它们到ByteBu...

2020-05-02 19:26:06 1519

原创 视频的编码方式

视频编码相较于音频数据,视频数据有极强的相关性,也就是说有大量的冗余信息,包括空间上的冗余信息和时间上的冗余信息。IPB帧视频压缩中,每帧都代表着一幅静止的图像。而在进行实际压缩时,会采取各种算法以减少数据的容量,其中IPB帧就是最常见的一种。I帧:帧内编码帧(intra picture),I帧通常是每个GOP(MPEG所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,作为随...

2020-05-02 18:29:55 2143

原创 视频的基础概念

<div style='display: none'>哈哈我是注释,不会在浏览器中显示。我也是注释。</div>作者:CandyBullet链接:https://www.imooc.com/article/23400来源:慕课网

2020-05-02 16:22:20 499

原创 音频渲染

音频渲染Android的SDK(指的是Java层提供的API,对应的NDK是Native层提供的API,即C或者C++层可以调用的API)提供了3套音频播放的API,分别是:MediaPlayer、SoundPool和 AudioTrack。这三个API的使用场景各不相同,简单来说具体如下。MediaPlayer:适合在后台长时间播放本地音乐文件或者在线的流式媒体文件,它的封装层次比较高,使...

2020-05-01 16:58:24 1845

原创 音频基础概念

音频的基础知识声音是波声音是由物体振动而产生的,声音是一种压力波,当演奏乐器、拍打一扇门或者敲击桌面时,它们的振动都会引起空气有节奏的振动,使周围的空气产生疏密变化,形成疏密相间的纵波声波的三要素声波的三要素是频率、振幅和波形,频率代表音阶的高低,振幅代表响度,波形代表音色。频率越高,波长就越短。低频声响的波长则较长,所以其可以更容易地绕过障碍物,因此能量衰减就小,...

2020-04-19 18:43:12 1335 1

原创 java 杂记(三)

1.什么是包?    是存放程序的单元,可以将相关的java程序存放到同一个包中,便于程序的维护和管理。为了避免类名重复的冲突,java引入了包机制,在不同的包中允许使用相同的类名。2.什么是抽象类?    有abstract关键字修饰,允许包含未实现的方法叫做抽象类。有些情况,可能有些方法需要具体实现,有些类方法不能确定具体实现的 方式,这个时候可以将这个类定义为抽象类,无法具体实现的方法定义为...

2018-06-03 16:57:46 219

原创 Java杂记(二)

1.this关键字和super关键字的含义?    this关键字(代表当前类的实例)    (1)、返回调用当前方法对象的引用。    (2)、在构造方法中调用当前类的其他构造方法。    (3)、当方法的参数名和成员变量的名字相同时,用于区分参数名和成员变量名    super关键字(代表父类的实例)    (1)、调用父类的构造方法。    (2)、调用父类的 成员变量和方法。2、stati...

2018-05-26 18:41:55 167

原创 java杂记(一)

1.编译型语言和解释型语言的优缺点?  (1)编译型语言,在程序第一次执行时将其全部编译成与当前系统平台相对应的机器指令,在后续执行时,直接运行第一次编译的结果,这样减少了编译的次数,提高了程序运行的效率,但是程序在第一次编译时与平台相对应,因此移植性就比较差了。  (2)解释型语言,在程序每次运行时都要将源程序解释成当前系统平台相对应的机器指令,因此每一次运行都需要解释并执行,运行效率较低,但是...

2018-05-18 23:25:34 219

MP4Reader_v0.9.0.6(MP4文件分析工具)

MP4Reader利用ffmpeg读取mp4容器文件里面的视频track的内容,是ffmpeg在windows下面的一个挺好的示范。

2020-05-05

MediaInfo_GUI_20.03_Windows(多媒体文件分析图形化工具)

使用MediaInfo可以分析多媒体的信息如下: 内容信息:标题,作者,专辑名,音轨号,日期,总时间…… 视频:编码器,长宽比,帧频率,比特率…… 音频:编码器,采样率,声道数,语言,比特率……

2020-05-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除