老王的技术博客

认真记录认真交流 QQ技术群:451989345

在Android Studio 3中自动产生jni头文件的方法

前言 最近开发一个需要支持native的项目,开发环境已经迁移到Android Studio,现在的最新版本是3.3.2,前期我在博文 https://blog.csdn.net/ericbar/article/details/80252171 中已经大概描述过eclipse的相关配置方法,总体...

2019-04-08 15:49:35

阅读数 33

评论数 0

在Android Studio中添加com.android.support:design的支持

关于Material Design Google在2015的IO大会上,给我们带来了Material Design的设计规范,同时,也给我们带来了全新的Android Design Support Library,利用这个库在Android上可以做一些相对统一风格的UI界面。 导入包 如何在And...

2019-04-07 10:17:06

阅读数 231

评论数 0

编译Android版的WebRTC

写在前面 最近有兴趣研究一下webrtc,由于这几年一直有基于chromium浏览器的源码开发,在src/third_party下是能看到webrtc的目录的,只是一直没有真正单独编译过webrtc,国庆期间在家闲着编译了一把,现在把步骤记录一下。 ...

2018-10-17 22:14:05

阅读数 931

评论数 0

关于FFmpeg里的GPL和LGPL协议

参考博文 谢谢博主的分享:http://www.cnblogs.com/findumars/p/3556883.html GPL介绍 我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使...

2018-07-17 13:54:34

阅读数 1870

评论数 3

AAC 文件解析及解码流程

原文地址 感谢博主的分享, https://blog.csdn.net/wlsfling/article/details/5876016 AAC概述 AAC是高级音频编码(Advanced Audio Coding)的缩写,出现于1997年,最初是基于MPEG-2的音频编码技术。由Fraun...

2018-07-16 18:42:49

阅读数 295

评论数 0

移植ffplay媒体播放器和sdl2到Android平台

前言 前述博文《基于FFmpeg和Android的音视频同步播放实现》中,我们按照自己的方法实现了一个简单的媒体播放器,并做了音视频同步。但是这个程序在播放更多码流时,遇到了一些问题,包括视频解码问题,同步时视频卡顿等。我们在博文《在ubuntu16.04下测试ffplay程序》中也测试过ffp...

2018-06-25 22:52:27

阅读数 390

评论数 0

基于FFmpeg和Android的音视频同步播放实现

前言 在以前的博文中,我们通过FFmpeg解码,并基于OpenGL ES完成了视频的渲染,也完成了基于OpenSL ES实现的native音频注入播放。 本文将这两部分代码进行合并,并实现音视频的同步播放。 实现需求 基于FFmpeg实现视频解码,并通过OpenGL ES进行渲染; 基...

2018-06-23 22:16:57

阅读数 1466

评论数 0

基于FFmpeg和OpenSL ES的Android音频播放器实现

前言 在博文https://blog.csdn.net/ericbar/article/details/80509887中,我们实现了通过FFmpeg解码,并基于OpenGL ES完成了视频的渲染。本文我们将基于OpenSL ES完成native音频的注入播放。 OpenSL ES也是The ...

2018-06-04 22:15:04

阅读数 552

评论数 0

通过FFmpeg解码和OpenGL的YUV转RGB实现Android视频播放

前言 在我的博文 https://blog.csdn.net/ericbar/article/details/80506390 中,我们在Android平台上,实现了通过FFmpeg在native(C/C++)层进行视频解码,并通过OpenGL实现了硬件渲染工作,减少CPU的消耗,提高整个视频播...

2018-05-30 17:21:33

阅读数 1172

评论数 0

基于FFmpeg解码和OpenGL ES渲染的Android视频播放

前言 在我的博文 https://blog.csdn.net/ericbar/article/details/80416328 中,我们在Android平台上,实现了通过FFmpeg在native(C/C++)层进行视频解码,并通过SurfaceView(基于ANativeWindow)实现了图...

2018-05-30 14:36:23

阅读数 2094

评论数 5

OpenGL之EGL入门知识

参考博文 本来材料参考下述博文,感谢作者 : https://blog.csdn.net/ba_jie/article/details/6370701 概述 EGL是由Khronos Group提供的一组平台无关的API,它的主要功能如下: 1. 和本地窗口系统(native win...

2018-05-30 10:48:34

阅读数 2444

评论数 0

FFmpeg视频解码中的YUV420P格式

参考文章 在做基于FFmpeg解码的视频播放时,需要涉及到帧数据存储的YUV与RGB格式,所以了解了一下,参考下述博文。 https://blog.csdn.net/lanxiaziyi/article/details/74139729#avframe-%E4%B8%8E-yuv420%E9%...

2018-05-30 10:16:42

阅读数 3344

评论数 0

图像色彩编码YUV(YCbCr)的基本知识

参考地址 https://www.cnblogs.com/lifan3a/articles/4930182.html YUV与YCbCr的定义 YCbCr是DVD、摄像机、数字电视等消费类视频产品中,常用的色彩编码方案。YCbCr 有时会称为 YCC。YCbCr 在模拟分量视频(analog...

2018-05-30 09:39:34

阅读数 1667

评论数 1

基于FFmpeg和SurfaceView实现Android原生窗口(ANativeWindow)的视频播放

实现需求 只演示视频解码和显示,不进行音频解码,也不做音视频同步,每一帧视频之间通过固定延时来间隔,所以视频播放时存在偏慢和偏快的问题; 基于FFmpeg来进行解码,而不是基于Android自带的MediaPlayer播放器,也不基于Android的mediacodec硬件解码; 视频显示层,...

2018-05-23 21:58:37

阅读数 2308

评论数 11

基于eclipse进行ndk开发的环境配置

写在开头 虽然我们在其他的博文中(如https://blog.csdn.net/ericbar/article/details/76602720和https://blog.csdn.net/ericbar/article/details/80229592),早就见识了ndk的强大,也基于ndk环...

2018-05-09 21:49:22

阅读数 981

评论数 3

基于ndk-r16b编译Android平台的FFmpeg-3.4.2和FFmpeg-4.0动态库

问题来源 基于NDK编译Android平台的FFmpeg动态库,这件事情我们早在去年就做过了,详细的可以参考我的博文: https://blog.csdn.net/ericbar/article/details/76602720, 但是FFmpeg的基线版本以及ndk编译链是不断更新的,近期...

2018-05-07 19:20:58

阅读数 1191

评论数 2

关于媒体编解码以及封装那点事

前言 从事音视频相关研究的工程师,免不了涉及编码,解码,复用(封装),解复用(解封装)等概念,还可能涉及到播放器,编码器等程序或硬件。现在火爆的互联网直播,小视频还有各种P2P视频通话等,其基本原理都十分类似。 播放器媒体流图 从上图可以看出,通用的播放器(如FFmpeg中的ffpl...

2018-04-10 17:25:48

阅读数 359

评论数 0

Linux下pthread_once()函数

函数声明 int pthread_once(pthread_once_t *once_control, void (*init_routine) (void)); 本函数使用初值为PTHREAD_ONCE_INIT的once_control变量保证init_routine()函数在本进程执...

2018-04-10 13:22:52

阅读数 401

评论数 0

FFmpeg庖丁解牛系列之dict模块

关于dict模块 由于C语言不像C++和JAVA,没有key/value键值对的高级实现,所以FFmpeg专门写了一个dict模块(AVDictionary字典)用于简单的key/value存储。dict模块相对比较简单,其代码实现主要位于如下两个文件: libavutil/dict.c li...

2018-04-10 11:19:48

阅读数 197

评论数 0

FFmpeg庖丁解牛系列之option模块

关于option模块 option是FFmpeg中另一个很基础的模块,相对于log模块,代码量上要复杂一些。主要代码实现在如下两个文件中: libavutil/opt.c libavutil/opt.h 关于AVOptions的介绍,直接参考log.h里的头文件注释吧: AVOp...

2018-04-09 23:02:29

阅读数 262

评论数 0

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