自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (7)
  • 收藏
  • 关注

原创 HM编码器代码阅读(46)——SAO总结

SAO总结理论HEVC/H.265理论知识(7)——环路滤波代码解读HM编码器代码阅读(27)——样点自适应补偿SAO(一)SAO介绍以及入口函数HM编码器代码阅读(43)——样点自适应补偿SAO(二)收集像素块的统计信息HM编码器代码阅读(44)——样点自适应补偿SAO(三)选取最优的SAO模式并确定补偿值HM编

2017-02-22 21:25:39 2103 1

原创 HM编码器代码阅读(40)——帧内预测的总结

帧内预测的总结原理HEVC/H.265理论知识(3)——帧内预测代码实现HM编码器代码阅读(34)——帧内预测(一)HM编码器代码阅读(35)——帧内预测(二)帧内预测总流程HM编码器代码阅读(36)——帧内预测(三)帧内预测之参考像素块的预处理和滤波HM编码器代码阅读(37)——帧内预测(四)帧内预测之候选模式列表的建立HM

2017-02-17 21:30:07 3496 1

原创 HM编码器代码阅读(33)——帧间预测的总结

原理理论介绍:HEVC/H.265理论知识(4)——帧间预测AMVP模式HM编码器代码阅读(13)——帧间预测之AMVP模式(一)总体流程HM编码器代码阅读(14)——帧间预测之AMVP模式(二)predInterSearch函数HM编码器代码阅读(15)——帧间预测之AMVP模式(三)xGetBlkBits函数HM编码器代码阅读(16)——帧间预测之AMV

2017-02-16 21:59:27 5093 1

原创 RTMP学习(九)rtmpdump源码阅读(4)建立连接

建立连接建立连接的步骤如下:1、设置套接字的地址信息2、调用RTMP_Connect0,和服务器建立套接字连接,套接字的连接是所有今后通信的基础,这里就是tcp的三次握手3、调用RTMP_Connect1,进行rtmp内部的握手操作和网络连接操作。入口函数:/*** 1、设置套接字的地址信息** 2、调用RTMP_Connect0,和服务器建立套接字

2017-02-28 22:19:41 1305

原创 RTMP学习(八)rtmpdump源码阅读(3)初始化与URL解析

初始化与URL解析初始化    初始化实际就是创建rtmp对象实例,然后初始化各个成员。// 创建rtmp对象,设置rtmp实例的属性voidRTMP_Init(RTMP *r){#ifdef CRYPTO if (!RTMP_TLS_ctx) RTMP_TLS_Init();#endif memset(r, 0, sizeof(RTMP))

2017-02-28 21:31:36 947 1

原创 RTMP学习(七)rtmpdump源码阅读(2)与rtmp有关的结构体

与rtmp有关的结构体rtmp句柄    它表示了rtmp协议 // rtmp表示了rtmp协议 typedef struct RTMP { int m_inChunkSize; int m_outChunkSize; int m_nBWCheckCounter; int m_nBytesIn; int m_nB

2017-02-28 21:24:40 1453

原创 RTMP学习(六)rtmpdump源码阅读(1)总体流程

rtmpdump总体流程rtmpdump实际就是一个下载工具,它会把URL中指定的资源下载下来1、初始化2、解析URL3、打开文件(把URL资源保存到本地的文件)4、建立连接5、建立流6、开始下载7、下载完成,关闭连接,清理资源下面是简化过的main函数,只保留核心的几个函数intmain(int argc, char **argv

2017-02-28 21:09:05 1010

转载 RTMP学习(五)RTMP流媒体播放过程

原文地址:http://blog.csdn.net/leixiaohua1020/article/details/11704355本文描述了从打开一个RTMP流媒体到视音频数据开始播放的全过程。注意:RTMP中的逻辑结构RTMP协议规定,播放一个流媒体有两个前提步骤:第一步,建立一个网络连接(NetConnection);第二步,建立一个网络流(NetStrea

2017-02-28 19:57:26 921

原创 RTMP学习(四)RTMP连接的建立与播放

RTMP连接的建立与播放RTMP连接的步骤RTMP连接的建立有三个步骤:1、握手。用于判别客户端、服务器是否存在。2、建立网络连接。注意不是tcp中的网络连接。3、建立流连接。建立流连接的目的是传输媒体数据。4、播放。握手阶段握手阶段,双方分别发送大小固定的三个数据块.1、客户端发送数据块C0和C1。2、服

2017-02-28 19:09:58 3752 1

转载 RTMP学习(三)RTMP协议详解(转)

原文地址:http://www.cnblogs.com/android-blogs/p/5650771.htmlReal Time Messaging Protocol(实时消息传送协议协议)是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的私有协议。具体使用RTMP的AS代码大概如下:  var videoInstance

2017-02-28 17:05:12 822

转载 RTMP学习(二)RTMP规范简单分析

原文地址:http://blog.csdn.net/leixiaohua1020/article/details/11694129RTMP协议是一个互联网TCP/IP五层体系结构中应用层的协议。RTMP协议中基本的数据单元称为消息(Message)。当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk)。1 消息消息是RTMP

2017-02-28 17:03:08 916

原创 RTMP学习(一)RTMP协议介绍

RTMP协议介绍rtmp协议中的数据被称为message(消息)一个message包含message head和message body在网上传输的时候,如果一个message太大,那么它将会被分段传输一个分段被称为chunk,chunk包含chunk head 和chunk body。chunk的长度初始长度固定为128个字节,但是这个

2017-02-28 16:44:41 1434

原创 MP4学习(十)ts-mp4源码阅读(8)其他box的解析

其他box的解析常见的MP4结构图其他box的解析流程    解析过程是类似的:        1、假设该box的名字叫xxx box,例如mdia box        2、如果它是container box,就调用mp4_read_xxx_atom,该函数内部会调用mp4_read_at

2017-02-28 10:24:49 1312

原创 MP4学习(九)ts-mp4源码阅读(7)mdia box的解析

mdia box的解析常见的MP4结构图mdia box的定义/* ** mdia box的定义,包含: ** mdhd、hdlr、minf等box */ static mp4_atom_handler mp4_mdia_atoms[] = { { "mdhd", &Mp4Me

2017-02-28 10:09:51 980

原创 MP4学习(八)ts-mp4源码阅读(6)tkhd box的解析

tkhd box的解析常见的MP4结构图tkhd box的定义// tkhd box typedef struct { u_char size[4]; u_char name[4]; u_char version[1];

2017-02-28 10:00:51 1357

原创 MP4学习(七)ts-mp4源码阅读(5)trak box的解析

trak box的解析常见的MP4结构图trak box的定义/* ** trak box的定义,包含: ** tkhd、mdia */ static mp4_atom_handler mp4_trak_atoms[] = { { "tkhd", &Mp4Meta::mp4_read_tk

2017-02-27 22:28:07 832

原创 MP4学习(七)ts-mp4源码阅读(5)mvhd box的解析

mvhd box的解析常见的MP4结构图mvhd box的定义// mvhd box typedef struct { u_char size[4]; // 大小 u_char name[4]; // 名字 u_char version[1]; // box版本,0

2017-02-27 22:22:45 1468

原创 MP4学习(六)ts-mp4源码阅读(4)moov box的解析

mvhd box的解析    由于moov box是个container box,读取box头部之后就开始读取子box了,因此从它的子box开始讲解mvhd box的定义 class MVHD : FullBox { private: protected

2017-02-27 19:49:42 1073

原创 MP4学习(五)ts-mp4源码阅读(3)ftyp box的解析

ftyp box的解析    ftyp box有且只有一个,在mp4文件最开始的地方。它依次包括1个32位的major brand(4个字符),1个32位的minor version(整数)和1个以32位(4个字符)为单位元素的数组compatible brands。这些都是用来指示文件应用级别的信息ftyp box的定义 // ftyp类型

2017-02-27 16:10:03 975

原创 MP4学习(四)ts-mp4源码阅读(2)MP4的解析流程

MP4的解析流程MP4的解析步骤解析步骤如下:1、读取mp4文件2、读取box的size字段3、读取box的type字段4、如果box的size字段的值是1,表示真实的长度在后面,需要继续读取5、如果box的类型是下面的一种,表示它是一个container box,那么重复步骤1~4,读取子box "dinf" "edts"

2017-02-27 15:54:34 960

原创 MP4学习(三)ts-mp4源码阅读(1)介绍

MP4Parse源码阅读为了加深对mp4文件格式的理解,接下来介绍一个开源的MP4解析器MP4Parse,下载地址:https://github.com/macmade/MP4Parse把工程下载下来之后,进入source目录就可以看见源代码了,有很多cpp文件,最重要的是MP4.Parser.cpp,其他文件大部分都是各个box的解析代码,代码量不是很多。box的定义

2017-02-27 15:26:29 1207

转载 MP4学习(二)MP4文件格式的解析,以及MP4文件的分割算法

原文出处:http://www.cnblogs.com/haibindev/archive/2011/10/17/2214518.htmlMP4文件格式的解析,以及MP4文件的分割算法  mp4应该算是一种比较复杂的媒体格式了,起源于QuickTime。以前研究的时候就花了一番的功夫,尤其是如何把它完美的融入到视频点播应用中,更是费尽了心思,主要问题是处理mp4文件庞大的“

2017-02-27 15:06:11 1041

原创 MP4学习(一)MP4格式分析

MP4格式分析mp4文件由一系列的box(也有人把它叫做atom)构成,每个box包含box头部和box体。box体可以包含普通的数据,也可以包含其他的box,如果box中包含了另一个box,这种box称为container box。box由head和body构造,head中指明了box的大小和类型,如果size为1,则表示这个box的大小为large size,真正的si

2017-02-27 14:33:36 8343

原创 MPEG-2 TS学习(九)tsfilter源码阅读(6)解析音视频数据

解析音视频数据    在上一篇博客中,我们已经得到stream,stream里面包含了stream的类型和PID,根据stream的类型判断,如果是音视频数据,那么就可以根据PID查找得到包含这些音视频数据的TS包。代码实现略

2017-02-26 21:55:48 957

原创 MPEG-2 TS学习(八)tsfilter源码阅读(5)解析PMT

解析PMT    解析完成PAT之后,就得到了program的信息了,如果program中存放了PMT的信息,那么就把program中PMT的PID记录下来,根据PID查找对应的TS包,找到之后就可以从该TS包中解析出PMT了从TS包中读取PMT // 从TS包中读取PMT friend PMT& operator<<(PMT& pmt, Packet&

2017-02-26 21:50:12 717

原创 MPEG-2 TS学习(七)tsfilter源码阅读(4)解析PAT

解析PAT从TS包中读取PAT // 从TS包中读取PAT friend PAT& operator<<(PAT& pat, Packet& packet) { const char* payload; // 获取TS的载荷 packet.getPayload(payload); // 强制转换

2017-02-26 21:39:22 580

原创 MPEG-2 TS学习(七)tsfilter源码阅读(4)读取TS包

读取TS    实现比较简单,读取188字节的数据即可/* TS包 */class Packet{public: // ... // 读取数据 friend std::istream& operator>>(std::istream& is, Packet& packet) { // 读取 is.read(reinterpret_

2017-02-26 21:31:41 743

原创 MPEG-2 TS学习(六)tsfilter源码阅读(3)TS的解析流程

TS的解析流程解析流程    解析流程如下:        1、读取一个TS包,注意Packet重载了>>操作符        2、如果TS包的PID等于0,表示TS包中装的是PAT    (1)从TS包中把PAT读取出来,PAT也重载了>>操作符    (2)把PAT中的program读取出来    (3)遍历所有的program    (

2017-02-26 21:26:13 960

原创 MPEG-2 TS学习(五)tsfilter源码阅读(2)TS的数据结构

TS的数据结构TS包TS包的包头提供关于传输方面的信息:同步、有无差错、有无加扰、PCR(节目参考时钟)等标志。TS包的包头长度不固定,前32比特(4个字节)固定,后面可能跟有自适应字段(适配域)。32个比特(4个字节)是最小包头。包头的结构固定如下:同步字节传输错误指示开始指示传输优先级

2017-02-26 21:02:01 1120

原创 MPEG-2 TS学习(四)tsfilter源码阅读(1)概述

TS源码阅读介绍    了解了TS的格式之后,为了加深理解,分析一个开源的项目TSParser,看看TS的解析在代码中是怎么样实现的。 TSParser的地址: TSParser项目结构    项目下载下来之后可以看到,项目仅仅包含四个文件:        types.h 定义了各种数据

2017-02-26 20:07:12 802

转载 MPEG-2 TS学习(三)多媒体文件格式之TS

TS流是MPEG-2标准中定义一种用于直播的码流结构,具有很好的容错能力。所有跟TS相关的标准可以从ISO/IEC_13818-1中找到。通常TS流的后缀是.ts、.mpg或者.mpeg,多数播放器直接支持这种格式的播放。0. 学习多媒体容器格式的目的主要是为了回答以下问题:该容器中数据是如何组织的?该容器包含哪些编码格式的数据?这些数据是如何存储的?该容器包含哪些元数

2017-02-26 20:04:51 3867

转载 MPEG-2 TS学习(二)MPEG-2 TS码流分析

TS源码阅读介绍    了解了TS的格式之后,为了加深理解,分析一个开源的项目TSParser,看看TS的解析在代码中是怎么样实现的。 TSParser的地址: TSParser项目结构    项目下载下来之后可以看到,项目仅仅包含四个文件:        types.h 定义了各种数据类型和结构体        TSPars

2017-02-26 19:48:21 1569

转载 MPEG-2 TS学习(一)MPEG-2 TS格式解析

MPEG-2 TS格式解析ts文件格式解析TS文件格式详解白话浅谈MPEG2-TS之demuxTS文件解析流程TS流的解码过程-ES-PES-DTS-PTS-PCRMPEG-2 TS码流分析本文来自上面几篇文章的整理分析TS和FLV不同TS流是由连续的TS传输包构成的每一个TS包的长度固定是188字节,TS

2017-02-26 16:38:04 10463

原创 FLV学习(九)FlvParser源码阅读(6)解析其他标签

解析其他标签入口函数CreateTag    流程如下:    1、解析标签头部    2、判断标签头部的类型    3、根据标签头部的类型,解析不同的标签    4、如果是视频类型的标签,那么就创建并解析视频标签CFlvParser::Tag *CFlvParser::CreateTag(unsigned char *p

2017-02-25 21:43:11 547

原创 FLV学习(八)FlvParser源码阅读(6)解析音频标签

解析音频标签入口函数CreateTag    流程如下:    1、解析标签头部    2、判断标签头部的类型    3、根据标签头部的类型,解析不同的标签    4、如果是视频类型的标签,那么就创建并解析视频标签CFlvParser::Tag *CFlvParser::CreateTag(unsigned cha

2017-02-25 21:38:25 466

原创 FLV学习(七)FlvParser源码阅读(5)解析视频标签

解析视频标签入口函数CreateTag流程如下:1、解析标签头部2、判断标签头部的类型3、根据标签头部的类型,解析不同的标签4、如果是视频类型的标签,那么就创建并解析视频标签CFlvParser::Tag *CFlvParser::CreateTag(unsigned char *pBuf, int nLeftLen){ // 开始解

2017-02-25 21:03:47 1322

原创 FLV学习(六)FlvParser源码阅读(4)解析标签头部

解析标签头部标签的解析过程1、CFlvParser::Parse调用CreateTag解析标签2、CFlvParser::CreateTag首先解析标签头部3、根据标签头部的类型字段,判断标签的类型4、如果是视频标签,那么解析视频标签5、如果是音频标签,那么解析音频标签6、如果是其他的标签,那么调用Tag::Init进行解析解析标签头部的函数

2017-02-25 20:15:25 504

原创 FLV学习(五)FlvParser源码阅读(3)解析FLV头部

解析FLV头部入口函数int CFlvParser::Parse(unsigned char *pBuf, int nBufSize, int &nUsedLen){ int nOffset = 0; if (_pFlvHeader == 0) { CheckBuffer(9); // 解析FLV头部 _pFlvHeader = CreateF

2017-02-25 20:01:21 734

原创 FLV学习(四)FlvParser源码阅读(2)相关的数据结构

FLV相关的数据结构CFlvParser表示FLV解析器图1.文件结构(简图)图2.FLV文件结构(详图)class CFlvParser{public: CFlvParser(); virtual ~CFlvParser(); int Parse(unsigned char *pBuf, int nBuf

2017-02-25 17:54:42 983

原创 FLV学习(三)FlvParser源码阅读(1)总体流程

总的流程main函数流程:1、读取输入文件(flv类型的视频文件)2、调用Process进行处理3、退出int main(int argc, char *argv[]){ cout << "Hi, this is FLV parser test program!\n"; if (argc != 3) { cout << "FlvPars

2017-02-25 17:44:43 1682

ffplay源码和书籍.rar

杨书良大神的ffplay工程

2016-11-24

More Effective C++ 简体中文版.pdf

More Effective C++ 简体中文版.pdf

2012-08-28

Exceptional C++ CN.pdf

Exceptional C++ CN.pdf

2012-08-28

WINDOWS核心编程

WINDOWS核心编程.chm中文版,很好的一本书,进阶提高

2012-08-10

我的工程我自己的工程,文件、套接字、序列化等

我自己的工程,文件、套接字、序列化等我自己的工程,文件、套接字、序列化等我自己的工程,文件、套接字、序列化等

2012-07-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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