志的博客

博文相关代码 https://github.com/MrZhaozhirong / (BlogApp、NativeCppApp)

NDK学习笔记:RtmpPusher之利用rtmpdump推h264/aac码流

NDK学习笔记:RtmpPusher之利用rtmpdump推h264/aac码流 本篇将是RtmpPusher 的最后一篇。在之前的3篇文章里,我们已经把原生的视频YUV格式编码成h264,把音频的PCM格式编码成aac。现在我们借助rtmpdunmp库,把这些数据包以RTMP的协议打包并推...

2019-03-07 22:42:44

阅读数 82

评论数 0

NDK学习笔记:RtmpPusher之利用faac库将pcm格式编码为aac

NDK学习笔记:RtmpPusher之利用faac将pcm格式编码为aac 打算一篇总结完知识点。faac的源码编译过程就不介绍了,网上很多。而且faac版本貌似已经稳定不更新,所以直接拿人家编译好的库也没问题(我github工程里面就是已经是最后一个版本的了)。 不废话,开始代码,jav...

2019-03-06 11:56:23

阅读数 50

评论数 0

NDK学习笔记:RtmpPusher之深度学习编码协议h264

NDK学习笔记:RtmpPusher之深度学习编码协议h264 认识编码协议 h264 x264是根据h264编译协议写出来的一个编码库,两者就是这样关系。so,什么是h264编码协议?首先我们从简单的说起: 在H264协议里定义了三种帧,完整编码的帧叫I帧,参考之前的I帧生成的只包含...

2019-03-02 11:28:11

阅读数 217

评论数 0

NDK学习笔记:RtmpPusher之认识x264编码库

NDK学习笔记:RtmpPusher之认识x264编码库 在家过了个懒散年,为自己定了些小目标(譬如一个亿什么的,人要有梦想是吧)哈哈。祝大家诸事顺景,代码没bug,服务器不宕机。距离上一篇文章一个多月了,之前的文章主要是学习ffmpeg关于视音频解码同步的部分内容(native_decode)...

2019-03-01 16:18:41

阅读数 36

评论数 0

NDK学习笔记:FFmpeg音视频同步3(你追我赶,升级ffmpeg/libyuv支持neon)

NDK学习笔记:FFmpeg音视频同步3   本篇内容说多不多,但如果要说得明明白白的,可能就有点难度了。所以我决定把我的调试过程日志都呈现出来,方便大家理解。继上一篇文末,我们学习到了什么是DTS/PTS,还有音视同步的三种策略。那再FFmpeg框架中,又怎么体现这些变量?我们以音频的解码线...

2019-01-23 18:52:01

阅读数 87

评论数 0

NDK学习笔记:FFmpeg音视频同步2.5(内存池的优化)(DTS/PTS && 视频IPB帧)

NDK学习笔记:FFmpeg音视频同步2.5(内存池的优化)   继续上一篇 AV_PACKET_BUFFER内存池应用。FFmpeg音视频同步1~2的代码,demo运行的效果应该是怪怪的。 怎么怪?前几秒视频丢失 \ 混乱花屏 \ 视频慢、音频快。这一章我们一一分析这些问题的根本原因,以及解...

2019-01-20 10:16:06

阅读数 245

评论数 0

NDK学习笔记:FFmpeg音视频同步2(内存池应用)

NDK学习笔记:FFmpeg音视频同步2(内存池应用)   本章继续上一篇的内容,实现nativePlay方法,创建简易的AVPacket缓冲区,实现高效的存储。废话不说,直接上代码。 JNIEXPORT void JNICALL Java_org_zzrblog_ffmp_SyncPla...

2019-01-17 23:13:22

阅读数 418

评论数 0

NDK学习笔记:FFmpeg音视频同步1(视频解码+音频解码)

NDK学习笔记:FFmpeg音视频同步1(视频解码+音频解码)   0、开篇先来点废话 本篇文章开始,我和大家一起来讨论这个经久不衰的音视频开发的难点 —— 音视频同步。囊括内容比较多,大到代码组织,小至C语法糖,尽力做到每一个像我一样的菜鸡都能掌握解决方法。 正式开始之前,我又想起了之前...

2019-01-14 22:37:06

阅读数 101

评论数 0

NDK学习笔记:线程JNIEnv,JavaVM,JNI_OnLoad(GetEnv返回NULL?FindClass返回NULL?)

NDK学习笔记:线程JNIEnv,JavaVM,JNI_OnLoad   此文章是关于NDK线程的第二篇理论知识笔记。主要有两个点,如下: pthread_create(Too many arguements, expected 1) ? 线程中如何获取JNIEnv?GetEnv返回NUL...

2018-12-27 17:31:44

阅读数 232

评论数 0

NDK学习笔记:POSIX-thread 用法总结(pthread_join、pthread_cancel、pthread_mutex_、pthread_cond_ )

NDK学习笔记:POSIX-thread 用法总结 三个简单的例子,记录NDK中的POSIX-thread线程的常用用法。好记性不如烂笔头。   第一个例子,创建,退出,自杀,它杀。 #include <stdlib.h> #include &...

2018-12-25 17:45:07

阅读数 84

评论数 0

NDK学习笔记:JNI调用Java层方法创建Native的AudioTrack播放PCM(方法签名,CallXXXMethod)

NDK学习笔记:JNI调用Java层方法创建Native的AudioTrack播放PCM 题目有点复杂,不过确实就是那么回事。这章想记录的内容比较多,先列出来: native static 与 native的参数列表 区别 JNI 调用 Java的方法(相关API、方法签名的获取) nat...

2018-12-19 16:04:27

阅读数 232

评论数 0

NDK学习笔记:FFmpeg解压MP34提取音频PCM(swrContext、swr_alloc_set_opts)

NDK学习笔记:FFmpeg解压MP34提取音频PCM   承接 FFmpeg解压MP4提取视频YUV ,这次我们需要提取的是音频原始数据PCM。代码流程大同小异,主要区别就是AVFrame->PCM数据的转换。废话不说了,直接贴代码。 public class Zz...

2018-12-17 17:44:42

阅读数 57

评论数 0

NDK学习笔记:FFmpeg + SurfaceView = 播放 解码后的AVFrame(ANativeWindow_fromSurface)

NDK学习笔记:FFmpeg + SurfaceView = 播放AVFrame   承接上一篇FFmpeg解压MP4得YUV,在我们解压媒体文件(MP4,AVI,RMVB等)之后获取得到yuv420p格式的AVFrame之后,该怎么优雅的显示到Android的屏幕上呢?此时我们应该想到And...

2018-12-13 22:57:13

阅读数 126

评论数 0

NDK学习笔记:AndroidStudio NDK 日志输出 & 断点调试

NDK学习笔记:AndroidStudio NDK 日志输出 & 断点调试   一、 Why I need log&debug ? 在我们正常的开发过程中,业务调整必须依靠日志的输出;出现非业务逻辑的异常状况,我们就必须靠断点调试来排查问题。s...

2018-12-10 11:52:52

阅读数 87

评论数 2

NDK学习笔记:FFmpeg解压MP4提取视频YUV

NDK学习笔记:FFmpeg解压MP4提取视频YUV   继上一篇NDK的开发笔记,既然我们已经从源码手动编译ffmpeg-so出来了,这篇文章就当是检验编译的so是否可用,对FFmpeg进行一番学习,写一个最简单的例子。并结合工作中的一些架构内容,推出一些简单架构的话题。欢迎大家互相学习。事...

2018-12-07 18:12:11

阅读数 63

评论数 0

NDK学习笔记:手动编译Android使用的FFmpeg库(Linux)

此文主要是翻查整理当年自己手动编译FFmpeg的记录,之前是在网易云笔记上,现在搬到CSDN上。   一、环境配置 开发机windows10 64位,安装xshell+xftp方便与编译机器文件传输和操作通信。官网下载链接,注册的时候是教育自用而非商用。 编译机Ubuntu 14.04.5...

2018-11-21 23:46:25

阅读数 144

评论数 2

NDK学习笔记:一起来变萝莉音!FMOD学习总结(下)

NDK学习笔记:一起来变萝莉音!FMOD学习总结(下)   一、创建自己的变音demo 上一节我已经能够在AndroidStudio上跑起了fmod的基础教程。还有疑问的同学可以重新阅读跟着来跑一次。这章节计划参照官方的play_sound.cpp + effect.cpp,实现类似变音器的...

2018-11-05 11:59:38

阅读数 600

评论数 0

NDK学习笔记:一起来变萝莉音!FMOD学习总结(上)

NDK学习笔记:一起来变萝莉音!FMOD学习总结(上) 一、不是fmod(),不是/fmod,是FMOD! 关于 FMOD,总感觉全网关于它的文章不多,也不够细,Android平台上的总结更是如数家珍。可能是FMOD自身没有中文说明介绍的原因吧,另外一个原因可能就是闭源商用付费吧。我自己是在2...

2018-10-14 22:12:44

阅读数 304

评论数 0

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