
Android 音视频
夏至的稻穗
只要结果是正确的,过程你让我多痛苦都行
展开
-
Android OpenGL ES 学习(十二) - MediaCodec + OpenGL 解析H264视频+滤镜
OpenGL 学习教程前面我们学习了OpenGL是如何渲染 YUV 视频的,这一章,我们让OpenGL 与 MediaCodec 结合,实现解析 H264 文件,并实现抖音效果。效果如下:MediaCodec 为Android 的硬编,在一些快速解码设备,我们都是使用MediaCodec,如果你对 MediaCodec 如何解码不熟悉,可以先阅读。原创 2023-01-03 10:33:53 · 1510 阅读 · 3 评论 -
Android 音视频编解码(三) -- 视频编码和H264格式原理讲解
视频编码标准其实有很多,而大名鼎鼎的就是 H264 了,可以说是最常用,最普遍的视频编码格式。其实除了H264,还有H265,H264和H265都是国际标准化组织(ISO)和国际电信联盟(ITU)开发的编码标准,而VP8、VP9 和 AV1是谷歌开发的编码标准,H264 和 H265 是需要专利费的,所以VP8、VP9 和 AV1(都是免费)也是谷歌为了对抗他们高昂专利费而开发出来的。上面讲到了视频编码的原理,这里我们通过H264来了解视频编码中的码流结构,以及H264 是如何解决4中冗余信息的。原创 2022-12-30 11:39:35 · 1428 阅读 · 0 评论 -
Android 音视频入门/进阶教程
作为安卓开发仔,对音视频这块,一直是比较感兴趣的,所以,本着学习和记录的态度,我也把我所学的知识记录起来,希望对想音视频感兴趣的小伙伴有所帮忙。原创 2022-12-29 11:36:00 · 1375 阅读 · 2 评论 -
Android OpenGL ES 学习(十一) –渲染YUV视频以及视频抖音特效
通过简单的配置,实现抖音特效原创 2022-12-26 14:39:59 · 1963 阅读 · 0 评论 -
Android OpenGL ES 学习(十) – GLSurfaceView 源码解析GL线程以及自定义 EGL
前面说到,GLSurfaceView 帮我们把 egl 的配置都弄好了,优点是使用简单,缺点是当我们想共享同个 EGL context,实现同个场景,不同 surface 的渲染时,GLSurfaceView 就使用了。所以,我们自定义自己的 GLSurfaceView。init {原创 2022-12-22 11:29:49 · 1127 阅读 · 0 评论 -
Android OpenGL ES 学习(九) – 坐标系统和实现3D效果
实现OpenGL 3D效果原创 2022-12-15 14:29:34 · 1791 阅读 · 4 评论 -
Android OpenGL ES 学习(八) –矩阵变换
今天学习OpenGL 的矩阵变换,实现平移,缩放和旋转的效果原创 2022-12-15 12:05:12 · 1128 阅读 · 0 评论 -
Android OpenGL ES 学习(七) – 纹理
上一章中 Android OpenGL ES 学习(六) – 使用 VBO、VAO 和 EBO/IBO 优化程序,我们已经学习了 VBO、VAO 和 EBO/IBO 的知识,这一章,一起来学习 OpenGL 纹理相关的只是。今天要完成的效果,加载一张图片:可能第一印象是一张二维图片,如下图:但在OpenGL的世界里,这里有点不一样,它与光栅化有点像,光栅化过程中,会切成一片片小片段,然后片段着色器中把颜色值赋给图元表面。纹理也相似,它包含一张或多张图片信息(也可以是其他数据)的一个 OpenG原创 2022-12-03 17:58:43 · 1788 阅读 · 0 评论 -
Android OpenGL ES 学习(六) – 使用 VBO、VAO 和 EBO/IBO 优化程序
OpenGL 学习教程上一篇,我们已经完成了 三角形的渐变色处理。这一章,我们学习 GL3.0 特有的 OpenGL 缓存对象,VBO ,VAO 和 EBO。这一章稍微有点吃理解,建议多看多想。原创 2022-12-02 18:23:43 · 2213 阅读 · 0 评论 -
Android OpenGL ES 学习(五) -- 渐变色
OpenGL 学习教程这次要完成的效果:前面的代码中,我们的颜色是写死一种的,如何实现上面的渐变色呢?这里就需要用到光栅化:再复习一下光栅化的概念:它会图元映射成屏幕上相应的像素,生成供片段着色器使用上色的片段。前面说道,顶点数据不止包含位置,还有其他信息,所以,在绘制顶点位置的时候,也传递顶点颜色,由 OpenGL 实现栅格化的效果。这里,你可能会有疑惑,传递了三个颜色,也应该也是三个颜色啊,怎么会有渐变色呢?带着疑问,我们来试试。原创 2022-12-01 16:34:27 · 1967 阅读 · 2 评论 -
Android OpenGL ES 学习(四) -- 正交投影
OpenGL 坐标说明和变形问题原创 2022-11-26 16:17:28 · 1336 阅读 · 0 评论 -
Android OpenGL ES 学习(三) -- 绘制平面图形
上一章中,已经对 OpenGL 的编程语言 GLSL 和渲染模式有了一定的了解,今天,将运用之前的知识,完成一些平面图形的操作。效果如下:如果你对 OpenGL 的基本概念或者渲染流程不清晰,建议先看和这两篇文章。先直接上两张图:可以看到,我们需要先编写着色器的代码,才能把 OpenGL 的数据,传递到渲染管线上。原创 2022-11-26 14:53:02 · 1487 阅读 · 0 评论 -
Android OpenGL ES 学习(二) -- 图形渲染管线和GLSL
上一章,我们学习了 OpenGL 的基本知识,这一章,一起学习OpenGL的渲染模式和渲染语言GLSL。原创 2022-11-26 11:10:49 · 1669 阅读 · 0 评论 -
Android OpenGL ES 学习(一) -- 基本概念
最近在研究 SurfaceView 和 TextureView,发现栅格化这东西,一直没怎么搞明白,一搜都是关于 OpenGL 的,没办法,当初也是要学习这个,现在重试拾起。之前接触 OpenGL ,是主要解决一个渲染模糊问题,使用 OpenGL 就不会,而使用 SurfaceView 则不会,但存在延时问题,一直没扣明白,这个系列,期待重新认识 OpenGL。Android 图形学这东西,真的好多东西啊 - -。原创 2022-11-20 16:23:27 · 2003 阅读 · 0 评论 -
Android WebRTC 入门教程(二) -- 模拟p2p本地视频传输
源码工程: https://github.com/LillteZheng/WebRTCDemo今天要实现的效果:上一章中,我们学习了 PeerConnectionFactory ,VideoCapturer 等知识实现了相机的预览。原创 2022-09-30 15:59:47 · 2345 阅读 · 0 评论 -
Android WebRTC 入门教程(一) -- 使用相机
让你快速实现安卓上 webrtc 的开发原创 2022-09-29 17:20:16 · 2768 阅读 · 0 评论 -
Android 音视频开发(六) -- Android Mediaprojection 截屏和录屏
Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音);AudioTrack播放音频Android 音视频开发(二) – Camera1 实现预览、拍照功能Android 音视频开发(三) – Camera2 实现预览、拍照功能Android 音视频开发(四) – CameraX 实现预览、拍照功能Android 音视频开发(五) – 使用 MediaExtractor 分离音视频,并使用 MediaMuxer合成新视频(音视频同步)音视频工程这章学习Android原创 2021-04-14 15:53:55 · 3169 阅读 · 10 评论 -
Android 蓝牙开发(三) -- 低功耗蓝牙开发
前面已经学习了经典蓝牙开发,学习了蓝牙的配对连接和通信,又通过 配置 A2DP 文件,实现手机和蓝牙音响的连接和播放语音。这篇,我们来学习蓝牙开发的最后一章,低功耗蓝牙 BLE,也就是我们常说的蓝牙 4.0 。今天要完成的效果如下: 中心设备 外围设备 一. 简介与传统蓝牙不同,低功耗蓝主要为了降低设备功耗,支持更低功耗(如心率检测仪,健身设备)等设备进行通信。Android 在 4.3(API 18) 后将低功耗蓝牙内置,并提供对应的原创 2020-09-04 15:10:57 · 3034 阅读 · 10 评论 -
Android 蓝牙开发(二) --手机与蓝牙音箱配对,并播放音频
Android 蓝牙开发(一) – 传统蓝牙聊天室项目工程BluetoothDemo上一章中,我们已经学习了传统蓝牙的开发,这一章,我们来学习如何让手机与蓝牙耳机、音箱等连接配对,并实现音频传输。一、基础知识前面在 Android 蓝牙开发(一) – 传统蓝牙聊天室 的文章中,我们已经对蓝牙知识有个基本认识。而且从 Android 3.0 开始,Bluetooth API 支持蓝牙配置文件,蓝牙配置文件是适用于设备间蓝牙通信的无线接口规范。举个例子:免提配置文件。如果手机要与无线耳机进行连接.原创 2020-08-06 22:12:37 · 4600 阅读 · 2 评论 -
Android 蓝牙开发(一) -- 传统蓝牙聊天室
项目工程BluetoothDemo一、蓝牙概览以下是蓝牙的介绍,来自维基百科:蓝牙(英语:Bluetooth),一种无线通讯技术标准,用来让固定与移动设备,在短距离间交换数据,以形成个人局域网(PAN)。其使用短波特高頻(UHF)无线电波,经由2.4至2.485 GHz的ISM频段来进行通信[1]。1994年由电信商爱立信(Ericsson)发展出这个技术[2]。它最初的设计,是希望创建一个RS-232数据线的无线通信替代版本。它能够链接多个设备,克服同步的问题。简单来讲,就是蓝牙功能支持设备以原创 2020-08-06 17:18:26 · 2447 阅读 · 6 评论 -
Android 音视频编解码(二) -- MediaCodec 解码(同步和异步)
音视频 系列文章Android 音视频开发基础Android 音视频编解码(一) – MediaCodec 初探音视频工程上面的文章中,已经对 MediaCodec 有个感性的认知,这一章,来学习 MediaCodec 的解码功能一、同步解码一般本地视频,我们可以通过同步解码来实现,因为视频播放,除了解码,根据 PTS 去根据视频的帧率来播放视频,不然如果解出来就显示,就那就是快进了。1.1 分析视频从 Android 音视频开发(五) – 使用 MediaExtractor 分离音视频.原创 2020-07-27 22:54:45 · 11268 阅读 · 13 评论 -
Android 音视频编解码(一) -- MediaCodec 初探
音视频 系列文章Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音);AudioTrack播放音频Android 音视频开发(二) – Camera1 实现预览、拍照功能Android 音视频开发(三) – Camera2 实现预览、拍照功能Android 音视频开发(四) – CameraX 实现预览、拍照功能Android 音视频开发(五) – 使用 MediaExtractor 分离音视频,并使用 MediaMuxer合成新视频(音视频同步)前面几章,我.原创 2020-07-24 14:47:21 · 8559 阅读 · 0 评论 -
Android 音视频开发(五) -- 使用 MediaExtractor 分离音视频,并使用 MediaMuxer合成新视频(音视频同步)
音视频学习demo,正在升级打怪,加油鸭~Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音);AudioTrack播放音频Android 音视频开发(二) – Camera1 实现预览、拍照功能Android 音视频开发(三) – Camera2 实现预览、拍照功能Android 音视频开发(四) – CameraX 实现预览、拍照功能工程:音视频demo前几章,我们已经为音视频学习打下了一定的基础。这一章,我们来学习如何使用 MediaExtractor.原创 2020-07-14 17:30:40 · 3943 阅读 · 0 评论 -
Android 音视频开发(四) -- CameraX 实现预览、拍照功能
音视频学习demo,正在升级打怪,加油鸭~Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音);AudioTrack播放音频Android 音视频开发(二) – Camera1 实现预览、拍照功能Android 音视频开发(三) – Camera2 实现预览、拍照功能一. Camerax 简介在前面两章中,我们已经学习了 Camera1 Android 音视频开发(二) – Camera1 实现预览、拍照功能 和 Camera2 Android 音视频开发(三).原创 2020-07-13 20:11:19 · 6080 阅读 · 5 评论 -
Android 音视频开发(三) -- Camera2 实现预览、拍照功能
音视频系列文章:Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音);AudioTrack播放音频Android 音视频开发(二) – Camera1 实现预览、拍照功能工程:VideoDemo上一章,已经我们已经用 Camera1 实现了预览和拍照的功能,但也说到,在API21的时候,Camera1已经被标注为弃用,因为它的API功能和灵活性满足不了现在日益复杂的相机开发了,所以在 API21之后,引入了 Camera2 ,参考:https://devel.原创 2020-07-13 10:34:22 · 4155 阅读 · 2 评论 -
Android 音视频开发(二) -- Camera1 实现预览、拍照功能
音视频系列文章Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音);AudioTrack播放音频工程: 音视频DemoCamera1 在 API 21 的时候已经被弃用了,虽然现在google 都推荐 使用 Camerax 来实现相机的一些功能,但这不妨碍我们学习 Camera1 和 Camera2,对此有基础了解,为后续学习 Camera2 和 Camerax 做铺垫在这篇文章中,你将了解到:实现相机的开启与预览相机预览方向的矫正实现拍照工鞥,并矫正.原创 2020-07-10 23:09:53 · 3293 阅读 · 0 评论 -
Android 音视频开发(一) -- 使用AudioRecord 录制PCM(录音);AudioTrack播放音频
前言,音视频这块,确实比较难入门,本着学习的态度,我这边也跟着 Android 音视频开发入门指南 打怪升级,留下个脚印,大家共勉。今天要完成的功能如下;使用AudioRecord 进行录音生成 wav 格式的音频,并进行播放使用 AudioTrack 播放 pcm 格式音频 (Stream 和 static 模式)由于声音不好上动图,只能来一张静图了,具体代码看工程:音视频学习Demo一、基础知识首先,我们先要了解声音是怎么被保存的起来的。在我们的世界中,声音是连续不断的,是一种模.原创 2020-07-09 15:36:11 · 5479 阅读 · 5 评论