自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 FLV 封装格式解析

FLV 实例分析 FLV(Flash Video) 是一种非常流行的多媒体封装格式。它可以以文件的方式存储,也可以承载在RTMP协议之上。作为网络传输的一种封装格式。像我们现在大部分的视频网站,或者是直播网站都是使用这种格式。所以对于从事多媒体行业的人员来说,FLV也是一个我们应该掌握的基本的...

2018-01-31 14:10:02

阅读数 4650

评论数 0

原创 C语言面向对象

在我们的印象中,C语言是一个面向过程的语言。应该是和面向对象没有什么关系的。但是在我们的实际开发中,如果我们真的决定使用C语言来完成一个大型的项目的化。纯函数式的编程,纯面向过程式的设计还是会让代码很难维护和理解的。所以一般的C语言项目中是或多或少会去尝试一些面向对象的设计的。那么用C 语言怎么实...

2017-08-30 17:01:24

阅读数 2580

评论数 0

转载 H264 的Profile与level

原文地址:http://www.cnblogs.com/tinywan/p/6402007.html 背景知识 先科普一下profile&level。(这里讨论最常用的H264) H.264有四种画质级别,分别是baseline, extended, main, high:...

2018-02-26 09:47:31

阅读数 351

评论数 0

原创 iOS 音视频采集 AVCaptureSession

多媒体开发技术概要 在之前的文章中,对多媒体音视频开发的经典流程做过一个简单的介绍。在这篇文章中,将首先就音视频从采集部分做一个实例的讲解。首先以iOS平台为例。AVFoundationApple 官方给我们提供了一个很大的一个集合框架 AVFoundation。Apple的官方介绍原文如下AVF...

2018-02-08 16:19:27

阅读数 845

评论数 0

原创 多媒体开发技术概要

我们在多媒体开发的过程中,其实主要是处理两方面的事情。一个是多媒体数据的产生。一个是多媒体数据的展现。 就对媒体数据的产生来说。如果我们将多媒体这个概念限制在音视频数据的话。那么这个过程就包含着音视频原始数据的采集,音视频原始数据的压缩,对压缩后数据的存储封装或分发。 再来看一个比较经典的...

2018-02-08 11:01:36

阅读数 125

评论数 0

原创 AAC ADTS 解析

ADTS的全称是 Audio Data Transport Stream。是一种运用于AAC编码数据之上的传输封装格式。当然,AAC可中的传输封装格式不止ADTS这一种。还有比如我们再VOIP产品时,如果用RTP协议作为传输协议的话,这个时候使用的就是LATM格式了。但我们再其他的一些应用场景中比...

2018-02-07 15:18:54

阅读数 254

评论数 0

原创 H.264 PPS 解析

在上一篇文章中我们看过了SPS的结构了。同时对其中的一些字段做了一些说明。这篇文章,我们接着来讲一讲PPS(picture parameter set)图像参数集。顾名思义。PPS主要是承载一些图像级的参数的。我们还是先来一个PPS的语法定义吧 然后我们还是需要了解一下其中的一些字段的含义。...

2018-02-06 15:06:06

阅读数 3206

评论数 0

原创 H.264 Sps 解析

H.264 NALUint 解析 H.264 NALUint 解析–实例 在之前的两篇文章 H.264 NALUint 解析 和 H.264 NALUint 解析–实例 中针对NALUint做了一个比较全面的介绍了,同时也结合了实例分析。在实例分析的过程中,我们看到,我们解析出来的头两个NAL...

2018-02-06 12:10:50

阅读数 3272

评论数 0

原创 H.264 NALUint 解析--实例

H.264 NALUint 解析 在上一篇文章 H.264 NALUint解析中对NALUint进行了语法结构上的分析了。这篇文章将对照上一篇的分析,结合实际的例子来一次实际的分析。我现在用UltraEdit打开一个.h264文件 看到如下结果 我们看到头四个字节的内容: 0x00 00...

2018-02-02 14:52:02

阅读数 3072

评论数 0

原创 H.264 NALUint 解析

接触过H.264视频编解码的朋友应该都知道NAL 单元这个概念。NAL的全称是 (Network Abstraction Layer) 网络抽象层。而这个NAL的主要作用是方便视频编码后数据的存储和网络传输而设计的一个额外的层。也就是说NAL是对编码数据的一种封装。说到这我们就有必要先来聊一下H....

2018-02-02 14:01:59

阅读数 3086

评论数 0

原创 FLV 实例分析

上一篇文章我们就FLV文件格式做了一个分析,这篇文章,我们结合实际的FLV文件对照着FLV的结构来一一分析一遍。我们用UltraEdit打开一个FLV文件,我们看到的内容大概是这样的: 其中选中的9个字节就是FLV header 我们通过最右边的字符表述可以很清楚的知道。 头三个字节 0x46...

2018-02-01 15:15:25

阅读数 4019

评论数 0

原创 设计模式--适配器模式

说道适配器模式,又要说到那句老话了。计算机科学领域的任何问题, 都可以通过添加一个中间层来解决。适配器模式也是这样的一个中间层。 那么它的出现主要是要解决什么问题呢?我们现实生活中的太多事软件系统都是按照分层架构来构建的,自顶向下。有时候我们会遇到这样一个问题:现在软件已经写完了,可以正常工作了...

2017-11-17 14:45:32

阅读数 2863

评论数 0

原创 设计模式--外观模式

外观模式应该是我们再实际项目中常常使用的一种设计模式。或者说其实在使用的时候自己都不感觉在使用一种设计模式在编程。它其实就是直接体现了在系统中增加一个中间件将使代码逻辑更加简洁清晰这样一种思想。比如我们需要编写一个媒体播放器。一般外面的调用者就只能看到一个Player类了而不用去关心内部的实现细节...

2017-11-17 13:18:31

阅读数 2886

评论数 0

原创 设计模式--策略模式

在面向对象程序设计过程中,我们常常说道利用多态这个特性,我觉得策略模式是最最原始的利用多态的一个设计模式了。 拿一个现实中的例子来澄清整个过程吧,比如两个人A,B同时去沃尔玛买一袋米,对于这袋米的销售价格,沃尔玛方面是这样规定的: 普通用户:原价100元 会员用户:原价基础上打八折所以针对不同的...

2017-11-16 16:00:40

阅读数 2846

评论数 0

原创 设计模式--观察者模式

观察者模式可以说是相当相当重要的一个设计模式,很多设计框架都是基于这一个设计模式的。比如我们最最熟悉的MVC,MVP,MVVM。那么观察者模式到底要解决一个什么问题呢?   现在假如在我们的系统中有A,B两个大的模块。我们可以先做这样一个假定。A模块在系统中负责信息展示与输入。B模块负责数据处理...

2017-11-16 14:49:57

阅读数 2860

评论数 0

原创 设计模式--代理模式

代理模式在我们日常开发中也是一个很重要的设计模式。我们见到的代理可以分为两种,分别是静态代理和动态代理。 我们先来看看代理的概念吧,假如我们现在有两个类,分别为Client类和Subject 类,在实现某一业务逻辑时,Client需要与Subject进行交互。出于某些考量,我们不能让Client...

2017-11-15 15:06:21

阅读数 2866

评论数 0

原创 设计模式--工厂模式

工厂模式可以说是我们日常工作过程中使用比较多的一个设计模式了。如果系统比较小,也比较简单,我们可能会直接选择最简单的一种工厂模式即简单工厂模式例如,我们定义了一个Animal 接口:interface Animal{ public void printInfo(); }包含一个 print...

2017-11-10 15:22:16

阅读数 3049

评论数 0

原创 设计模式 -- 单例模式

随着项目经验的增长,在工作过程中我们或多或少会涉及到设计模式相关的内容。设计模式是那些巨人们在漫长的软件开发过程中总结出来的对一些问题的通用的解决方案。或者称之为解题思想。正如我们大家所知道一样,从来没有一个设计模式的类库可以供大家直接调用的。而原因也就在于设计模式这东西没有固定的。它是一些经验的...

2017-11-09 17:15:03

阅读数 3048

评论数 0

原创 C 语言面向对象-- 多态

在面相对象的设计过程中,很重要的一个特性就是实现运行时多态。在我们的前面一篇文章中我们讨论过了如何实现继承。那么这篇文章中我们就将着上一次的例子,来说说在C语言中如何利用语言的灵活性来实现多态。 C 语言面向对象– 继承 C 语言面向对象– 多态在继承的例子里,我们实现了一个基类 Person...

2017-11-09 14:56:26

阅读数 3096

评论数 0

原创 C 语言面向对象-- 继承

在Java语言中,如果我们想实现继承,那我们会这样写。 比如我们要定义一个 Person 类,然后定义一个Student 类继承自Person 类, public class Person { private String name; private int age; ...

2017-09-04 10:15:03

阅读数 2637

评论数 0

原创 FFMpeg 源码分析 (3)avformat_open_input()

这个函数主要用来打开媒体资源。完成媒体格式的探测和获取相关的媒体信息的工作。函数完成定义如下:int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputFormat ...

2017-08-29 15:04:20

阅读数 2567

评论数 0

原创 FFMpeg 源码分析(2)avformat_network_init()

如果我们需要用到网络功能,那么我们还是需要调用一下avformat_network_init 这个方法。int avformat_network_init(void) { #if CONFIG_NETWORK int ret; ff_network_inited_globally ...

2017-08-25 16:33:41

阅读数 4035

评论数 0

原创 FFMpeg 源码分析(1)av_register_all()

FFMpeg 源码分析(1)av_register_all()一般我们使用FFMpeg做编解码都会先调用`av_register_all()`这个函数开头,完成基本的初始化工作。而至于它具体初始化了哪些东西呢,我们直接从代码里面来看吧。 void av_register_all(void) ...

2017-08-25 14:01:09

阅读数 3631

评论数 1

原创 FFMpeg 源代码分析

FFMpeg 源代码分析引言最近在公司带领团队在做一个视频播放器的项目。由于整个团队之前并没有相关的技术积累,同时公司也没有相关的产品积累。为了能让项目快速的上线,决定使用FFMpeg作为底层的多媒体引擎。一方面大大节省项目时间,另一方面也可以大大降低整个项目的技术门槛。 联想起之前的一...

2017-08-25 13:12:34

阅读数 2411

评论数 0

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