字节流动
技术人,8 年大厂经验,熟悉 OpenGL、FFmpeg、Vulkan、Camera 开发,日常技术干货、个人总结、职场经验分享。
展开
-
OpenGL ES 实现可视化实时音频
OpenGL 实现可视化实时音频的思路比较清晰,可以利用 Java 层的 API AudioRecorder 采集到未编码的音频裸数据(PCM 数据),也可以利用 OpenSLES 接口在 Native 层采集,然后将采集到的音频数据看作一组音频的强度(Level)值,再根据这组强度值生成网格,最后进行实时绘制。原创 2020-05-14 21:11:36 · 3640 阅读 · 1 评论 -
视频图像处理中的错帧同步是怎么实现的?
一般 Android 系统相机的最高帧率在 30 FPS 左右,当帧率低于 20 FPS 时,用户可以明显感觉到相机画面卡顿和延迟。我们在做相机预览和视频流处理时,对每帧图像处理时间过长(超过 30 ms)就很容易造成画面卡顿,这个场景就需要用到错帧同步方法去提升画面的流畅度。原创 2020-04-23 18:33:46 · 1886 阅读 · 0 评论 -
Android NDK 编译和 Crash 问题集合
记录 Android NDK 编译一些常见的问题原创 2020-03-07 20:52:11 · 3904 阅读 · 0 评论 -
NDK 编译的三种方式
该文章首发于微信公众号“字节流动”通过 Android Studio 默认的方式创建带有 native 方法的类,build 项目。生成与类名相关的 .h 文件。进入 app -> build -> intermediates -> classes -> debug 目录下执行: javah com.haohao.hellojni.MyJNI (先配...原创 2019-01-27 15:08:14 · 7741 阅读 · 0 评论 -
NDK 开发中的几个重要知识点
该文章首发于微信公众号“字节流动”本博客 NDK 开发系列文章:NDK 编译的三种方式NDK 开发中引入第三方静态库和动态库NDK 开发中 Native 与 Java 交互NDK POSIX 多线程编程NDK Android OpenSL ES 音频采集与播放NDK FFmpeg 编译NDK FFmpeg 音视频解码NDK 直播流媒体服务器搭建NDK 直播推流与引流N...原创 2019-03-08 18:27:41 · 1875 阅读 · 0 评论 -
NDK 开发中 Native 与 Java 交互
该文章首发于微信公众号“字节流动”前面文章分别介绍的 NDK 编译方式和第三方库的引入方式:NDK 编译的三种方式在 NDK 开发中引入第三方静态库和动态库Java 与 JNI 数据类型对应关系Java 数据类型JNI 数据类型booleanjbooleanbytejbytecharjcharshortjshortintji...原创 2019-01-27 15:34:51 · 5205 阅读 · 0 评论 -
NDK 开发中 Native 方法的静态注册与动态注册
该文章首发于微信公众号“字节流动”本博客 NDK 开发系列文章:NDK 编译的三种方式NDK 开发中引入第三方静态库和动态库NDK 开发中 Native 与 Java 交互NDK POSIX 多线程编程NDK Android OpenSL ES 音频采集与播放NDK FFmpeg 编译NDK FFmpeg 音视频解码NDK 直播流媒体服务器搭建NDK 直播推流与引流N...原创 2019-03-08 18:22:22 · 2444 阅读 · 0 评论 -
在 NDK 开发中引入第三方静态库和动态库
该文章首发于微信公众号“字节流动”静态库和动态库静态库静态库文件后缀一般为 .a ,利用静态库编译成的可执行文件通常比较大,编译后的执行程序不需要外部函数库的支持。但是,如果一个程序依赖的静态库发生改变,那么这个程序就需要重新编译。动态库动态库也称为共享库,动态库文件后缀一般为 .so (Linux) 或 .dll (Windows) ,相对于静态库,动态库在编译时, 并没有被编译...原创 2019-01-27 14:29:43 · 6890 阅读 · 1 评论 -
NDK POSIX 多线程编程
该文章首发于微信公众号“字节流动”本博客 NDK 开发系列文章:NDK 编译的三种方式NDK 开发中引入第三方静态库和动态库NDK 开发中 Native 与 Java 交互POSIXPOSIX 全称是 Portable Operating System Interface of UNIX ,表示可移植操作系统接口,本质上是一种编程标准。它定义了操作系统应该为应用程序提供的接口...原创 2019-01-27 15:45:31 · 4691 阅读 · 0 评论 -
NDK 开发中快速定位 Crash 问题
该文章首发于微信公众号“字节流动”在 NDK 开发中最熟悉的关键字非 “backtrace” 莫属,lnux 系统中进程 crash 后通过 backtrace 输出堆栈信息,开发者就是基于这些堆栈信息来定位代码问题。当然定位 Native 层代码问题最优的方式还是通过 IDE(AS、VS)或者 GDB 进行 debug 断点调试,本文针对的是使用第三方 C/C++ SDK 出现 cras...原创 2019-01-13 15:02:30 · 6312 阅读 · 0 评论 -
NDK Android OpenSL ES 音频采集与播放
该文章首发于微信公众号“字节流动”。本博客 NDK 开发系列文章:NDK 编译的三种方式NDK 开发中引入第三方静态库和动态库NDK 开发中 Native 与 Java 交互NDK POSIX 多线程编程OpenSL ES 是什么?OpenSL ES 是一个针对嵌入式系统的开放硬件音频加速库,也可以将其视为一套针对嵌入式平台的音频标准,全称为: Open Sound Lib...原创 2019-01-27 16:01:04 · 5438 阅读 · 1 评论 -
NDK FFmpeg 编译
该文章首发于微信公众号“字节流动”。本博客 NDK 开发系列文章:NDK 编译的三种方式NDK 开发中引入第三方静态库和动态库NDK 开发中 Native 与 Java 交互NDK POSIX 多线程编程NDK Android OpenSL ES 音频采集与播放FFmpeg 是什么?FFmpeg 全称(First Forward MPEG),是一款领先的开源多媒体框架,采...原创 2019-01-27 16:10:39 · 4879 阅读 · 0 评论 -
NDK FFmpeg 音视频解码
本篇介绍一下 FFmpeg 音视频解码。本博客 NDK 开发系列文章:NDK 编译的三种方式在 NDK 开发中引入第三方静态库和动态库NDK 开发中 Native 与 Java 交互NDK POSIX 多线程编程NDK Android OpenSL ES 音频采集与播放NDK FFmpeg 编译封装格式我们经常所说的视频格式,如 mp4 、 mkv 、 rmvb 、fl...原创 2019-01-27 16:43:06 · 5301 阅读 · 0 评论 -
NDK 直播推流与引流
该文章首发于微信公众号“字节流动”。本博客 NDK 开发系列文章:NDK 编译的三种方式在 NDK 开发中引入第三方静态库和动态库NDK 开发中 Native 与 Java 交互NDK POSIX 多线程编程NDK Android OpenSL ES 音频采集与播放NDK FFmpeg 编译NDK FFmpeg 音视频解码NDK 直播流媒体服务器搭建流媒体服务器测试...原创 2019-01-27 17:21:39 · 5211 阅读 · 3 评论 -
NDK 直播流媒体服务器搭建
该文章首发于微信公众号“字节流动”。本博客 NDK 开发系列文章:NDK 编译的三种方式在 NDK 开发中引入第三方静态库和动态库NDK 开发中 Native 与 Java 交互NDK POSIX 多线程编程NDK Android OpenSL ES 音频采集与播放NDK FFmpeg 编译NDK FFmpeg 音视频解码NginxNginx 是由俄罗斯人 Igor ...原创 2019-01-27 16:58:00 · 4584 阅读 · 0 评论