多媒体开发工程师,分享 Android 应用开发、图形图像渲染、音视频等相关内容,目前就职于抖音,与你一同技术成长进阶~~~

欢迎关注微信公众号 【音视频开发进阶】

Docker 基础知识

可以简单地将 Docker 理解为一种沙盒 Sandbox 。每个容器内运行一个应用,不同的容器相互隔离,容器之间也可以建立通信机制。

容器的创建和停止都十分快速,容器自身对资源的需求也十分有限,远远低于虚拟机,甚至把容器当做应用本身也没问题。

Docker 容器在启动速度、硬盘使用、性能、系统支持量、隔离性等方面与传统的虚拟机相比都有明显的优势。

[Read More]

OpenGL 学习系列---基本形状的绘制

在之前的一篇博客中,讲述了 OpenGL 绘制一个点的流程及相关的代码,其中关于 OpenGL 程序编译部分都是可以在其他项目中接着复用的,接下来会讲到如何去绘制其他的基本图元。

[Read More]

Python 函数式编程

函数式编程是一种编程范式,不同于之前的面向对象编程。它是面向数学的抽象,也就是说,这里的函数二字不再是我们编程语言中的函数,而是数学中的函数了。

[Read More]

Python 命令行参数解析工具 docopt

正如标题所言,docopt 是一个用来解析命令行参数的工具,当想要在 Python 程序后面附加参数时,就不需要再为此而发愁了。

docopt 是一个开源的库,代码地址:https://github.com/docopt/docopt。它在 README 中就已经做了详细的介绍,并且还附带了很多例子可供学习,这篇文章也是翻译一下 README 中内容……

[Read More]

FFmpeg 3.0 版本视频解码浅析

MPEG封装格式到PCM数据格式

有了上一篇文章基础,这里就只关注 FFmpeg 如何解析的具体实践了。

在开始工程之前,第一步要做的就是编译 FFmpeg 源码,生成 Android 平台上使用的 so 库。

在生成完了之后,导入 Android 工程项目中,并且配置 CMake 文件,添加对应的库,就可以开始开发了。

[Read More]

音视频编解码的那些基础理论

最近在研究学习 FFmpeg,从网上参考了好多资料,其中最了不起的就当属——雷霄骅大神了,若没有他的博文,别说入门了,可能连门在哪里都不知道,在此还是要表达一下对雷神的敬佩和敬仰。

本文主要讲的是视频文件的解码,从视频文件的封装格式解码到原始数据格式,通过讲解涉及到的各种概念,从而理清整个思路和流程。

[Read More]

用 Rxjava 封装 Dialog 以及 RxBinding 实现简要分析

之前有写过一篇文章:用 RxJava 封装回调方法 CallBack

RxJava 封装回调方法的大体思路就是:使用 Observable 的 create 方法来返回一个 Observable,在 create 方法内给事物设置回调接口,用 Observable 的 onNext 方法来接受回调接口所产生的内容。

这样一来,通过 onNext 方法就把事物的回调方法转换到 Rxjava 对应的事件流里面了,再可以通过其他操作符,如 Map、FlatMap 等对事件流进行相应的转换。

[Read More]

Android 布局加载之 LayoutInflater

Activity 在界面创建时需要将 XML 布局文件中的内容加载进来,正如我们在 ListView 或者 RecyclerView 中需要将 Item 的布局加载进来一样,都是使用 LayoutInflater 来进行操作的。

LayoutInflater 实例的获取有多种方式,但最终是通过(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)来得到的,也就是说加载布局的 LayoutInflater 是来自于系统服务的。

[Read More]