音视频开发进阶
-
Vulkan 在 FFmpeg 中的支持
周末时候看到一篇推送说 FFmpeg 升级到 5.0 版本了。 其中提到 FFmpeg 引入了 Vulkan 驱动的新滤镜,用于视频水平、垂直翻转。 看到 FFmpeg 引入了 V…
-
根据采样频率计算音频时长
基础知识: 采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。 正常人听觉的频率范围大约在20Hz~20kHz之间,根据奈奎斯特采样理论(只有采样频率高于声音信…
-
OpenGL之仿美图实现不规则物体加描边特效
在美图中有个功能可以给抠图以后的物体加上描边,就想着能不能在Android中用OpenGL实现它,最终效果如下: 实现 分析 思路一:刚开始的想法是把物体放大,放大的物体全设为白色…
-
一文看懂音视频流媒体协议及信令技术
1、音视频通信 音视频通信完整流程有如下几个环节:采集、编码、前后处理、传输、解码、缓冲、渲染等。 每一个细分环节,还有更细分的技术模块。比如,前后处理环节有美颜、滤镜、回声消除、…
-
视频清晰度优化指南 | 得物技术
以下文章来源于得物技术 ,作者Jeff Mony 一、背景介绍 随着移动互联网的深入发展,视频消费场景逐渐变成主流,早期由于手机硬件的限制问题,导致生产出来的视频画质、清晰度存在较…
-
WebRTC Android 开发学习环境搭建
先介绍一下 WebRTC 源码编译以及 Android 开发环境的搭建。 整个下载编译过程都需要能够正常访问外网,这需要自己想办法克服了。 安装 depot_tools 工具包 首…
-
OpenGL 实现视差贴图与 UE 中的凹凸贴图偏移(Bump Offset)
UE 中提供了 凹凸贴图偏移 的贴图来实现修改 UV 坐标达到提升表面细节,使材质产生深度错觉。凹凸贴图偏移是 UE4 中的术语,其实就对应于 LearnOpe…
-
UE4 材质练习之基础操作
最近在学习 UE4 虚幻引擎,正好项目中也有用到,顺便记录一下相关内容,欢迎大家交流讨论,来不及解释了,快上车~~ 基础概念 使用 UE 创建材质后,默认状态如下图所示,…
-
视频码控 CBR、VBR和ABR的特点及应用场景
问题背景: 无论是查线上一些花屏、卡顿,马赛克问题,还是进行码率自适应的功能开发,抑或进行客户端播放器的JitterBuffer的优化,都需要编码器发送端的配合。我们需要在编码速度…
-
游戏开发面试题 — 图形学篇
以下文章来源于游戏君五尘 ,作者五尘君。 图形学和3D数学篇,收录了几十道面试真题,也欢迎小伙伴后续提供以便继续更新。 因第二篇内容主要来源于网上,未原创发表在公众号,文章链接如下…
-
MediaCodec 在 Android 硬解码的路线
随着多媒体产业的发展,手机端对视频解码性能要求越来越高。如果采用cpu进行解码,则会占用很多cpu资源。现在主流做法是利用手机gpu资源进行视频解码。 Android系统在Andr…
-
云/移动端媒体处理技术分享
今天在部门内做了一个分享,我整理了一下也分享给大家。文章的内容是我在上家单位做的云剪辑和短视频处理用到的一些技术和架构。 先来说一下当初做这个跨平台媒体处理的一个指标吧,当初是对标…
-
音视频环形缓冲区 介绍与实现
一、什么是环形缓冲区 环形缓冲区(也称为循环缓冲区)是固定大小的缓冲区,工作原理就像内存是连续的且可循环的一样。在生成和使用内存时,不需将原来的数据全部重新清理掉,只要调整head…
-
Android 图形架构之一 ——概述
本系列的文章,可以让你明白,一个View最终是如何显示到屏幕上的,从应用层到硬件抽象层。对分析app的卡顿,掉帧等 有很大帮助。 App 的绘图方式 应用层可通过两种方式将图像绘制…
-
Android NDK 常见面试题
Android 面试涉及到底层开发总是绕不开 NDK 的,一些常见的面试题也是帮忙大家加深印象和理解!!! 一、谈谈你对 JNI 和 NDK 的理解 JNI: JNI 是 Java…
-
Android高手笔记-屏幕适配 & UI优化
屏幕与适配 由于Android碎片化严重,屏幕分辨率千奇百怪,而想要在各种分辨率的设备上显示基本一致的效果,适配成本越来越高; 屏幕适配究其根本只有两个问题: 在不同尺寸及分辨率上…
-
GLSL 的若干优化策略
一个好的 Shader,特别是在低端机上跑效果,性能往往会有很大的提升,那么,就很有必要学习一下 GLSL Shader 性能优化的策略。 下面整理了一些优化的策略。 1. 延迟 …
-
WebRTC 创建相机预览
用 WebRTC 创建相机预览,不到 50 行核心代码就可以轻松搞定了。 WebRTC 依赖版本 直接使用官方给的版本就好了,不需要再去额外编译。 implementation ‘…
-
WebRTC 双摄像头同时预览
在前面文章中介绍了用 webrtc 打开摄像头并进行画面预览,但这只是有自己的画面,要达到实时通信的目标,还需要另一方的摄像头画面。 简单起见,可以同时打开手机的前后摄像头模拟远程…
-
Android NDK 开发之 CMake 必知必会
Android Studio 从 2.2 版本起开始支持 CMake ,可以通过 CMake 和 NDK 将 C/C++ 代码编译成底层的库,然后再配合 Gradle 的编译将库打…