音视频开发进阶
-
ExoPlayer如何提升渲染性能
熟悉MediaCodec解码原理的肯定知道,MediaCodec提供了同步模式和异步模式两种模式: MediaCodec异步模式 Android L以及Andrioid L以上的版…
-
21 个 Camera 相关概念
一些Camera相关概念,你可能听过,但可能没了解过,内容为网络资源整理~~ 1) 人眼特性 2) 帧、场 3) BLC(Black level correction) 4) …
-
音频质量评价体系(音频质量评价标准)
近年来,线上音视频的产品形态和应用场景越来越丰富,疫情更加速了许多行业线下转线上的布局,音视频技术也越来越受到各大厂的重视,Zoom的股价飞升,腾讯、字节、阿里等等巨头的大力投入,…
-
ExoPlayer解码器复用
播放器性能的极致优化,就是要发现播放流程中一点一滴的耗时,然后分析这些耗时,并提出有效的方式解决这些耗时。了解过ExoPlayer播放器的同学们都知道ExoPlayer的解码是依赖…
-
Android WebSocket 实现消息聊天
前言 消息推送功能可以说移动APP不可缺少的功能之一,一般简单的推送我们可以使用第三方推送的SDK,比如极光推送、信鸽推送等,但是对于消息聊天这种及时性有要求的或者三方推送不满足业…
-
用 Vulkan 渲染写一个 Android GPUImage
说的 GPUImage 相信大家都不陌生,GPUImage 是做滤镜、渲染、特效最主流的框架之一,被广泛应用在短视频应用中。 GPUImage 目前还是采用 OpenGL 进行渲染…
-
iOS音频采集技术
01 背景 在移动直播中, 声音是主播和观众互动的重要途径之一, 为了丰富直播的内容,大家都会想要在声音上做一些文章, 在采集录音的基础上玩一些花样,比如演唱类的直播间中, 主播伴…
-
WebRTC 源码编译及 Android 开发环境的搭建
最近开始折腾 WebRTC 了。 先介绍一下 WebRTC 源码编译以及 Android 开发环境的搭建。 整个下载编译过程都需要能够正常访问外网,这需要自己想办法克服了。 安装 …
-
如何在ffmpeg中添加一个codec,基于H264 Encoder
介绍 ffmpeg是一个很强大的框架,包含众多的编解码器、提供很多方便的函数用于解析或生成各种媒体文件。 大部分情况下,开发者使用ffmpeg开发应用程序,然而有时也有开发ffmp…
-
如何通过 FFmpeg 代码来获取文件信息
本篇文章主要是讲解如何通过 FFmpeg 代码来获取文件信息。 首先准备一个文件,用命令行来查看它的基本信息。 文件地址如下: https://github.com/glumes/…
-
FFmpeg 日志打印
本文主要讲解 FFmpeg 实现简单的日志打印。 日志打印基础使用 在 FFmpeg 中提供了 av_log() 方法去打印日志,它的函数声明如下: 其中 level&n…
-
FFMpeg 实现视频编解码(ffmpeg编解码流程)
FFMpeg 作为音视频领域的开源工具,它几乎可以实现所有针对音视频的处理,本文主要利用 FFMpeg 官方提供的 SDK 实现音视频最简单的几个实例:编码、解码、封装、解封装、转…
-
SDL 播放 PCM 音频文件【音视频基础学习】
在前面的文章中已经能够利用 SDL 去播放 YUV 视频文件了,接下来要通过 SDL 去播放 PCM 音频文件。 SDL 播放音频文件有两种方法,可以理解成 推(push…
-
OpenGL GPUImage源码分析
GPUImage 是 iOS 上一个基于 OpenGL 进行图像处理的开源框架,后来有人借鉴它的想法实现了一个 Android 版本的 GPUImage ,本文也主要对 Andro…
-
SDL 如何播放 YUV 视频文件【音视频基础学习】
在前面的文章中,我们已经能够加载 YUV 帧并显示了,那是把一张图片转换成 YUV 帧得到的素材。 如果是一个 YUV 视频文件的话,那就是很多 YUV 帧连续在一起,既然能展示一…
-
SDL 如何加载 YUV 文件并显示【音视频基础学习】
在前面的文章中已经完成了图片的加载和显示,接下来要做的就是加载 YUV 文件并显示。 YUV 文件素材准备 做这个功能点比较麻烦的是素材问题,上哪去找一个 YUV 文件出来,谷歌和…
-
SDL加载图片并显示【音视频基础学习】
在前面的文章中已经介绍完 SDL 显示窗口、消息循环和事件响应这些基础内容,有了这些基础就可以进行功能性开发了。 本篇的主要内容是利用 SDL 加载并显示一张图片,然后再去进行更多…
-
Android JNI 中的线程操作
今天学习一下如何在 Native 代码中使用线程。Native 中支持的线程标准是 POSIX 线程,它定义了一套创建和操作线程的 API 。 我们可以在 Native 代码中使用…
-
播放器性能优化干货
优化播放器性能,我们首先要知道播放的完整流程,从播放的各个阶段找优化方案。 下面是播放的完整流程: 给一个网络url,首先要进行网络请求,网络如何优化,涉及到网络优化的方方面面 网…
-
SDL 消息循环和事件响应【音视频基础学习】
在前面的文章中已经创建了一个 SDL 窗口并且显示指定的颜色。 为了让窗口显示出来,在程序中写了一个死循环,这几行代码就是 SDL 消息循环和事件响应的核心缩影了。 SDL 消息循…