h264封包介绍】的更多相关文章

这个要看你怎么理解了.和MPEG2.MPEG4相比,H.264字节流中帧的形式发生了变化.以视频帧为例,MPEG2和MPEG4字节流在传输的时候提取帧的关键参数,将其封装入传输包首部,比如TS包或RTP包,而包负载中的数据仍然是一个完整的图像帧.也就是说,你即使不使用包首部中所设置的关于包负载的参数信息,也能够根据包负载中的帧数据本身进行正确的解码. 而H.264码流本身对图像数据就做了处理,将一个完整的图像帧进行分解,抽出序列参数集.图像参数集等帧信息,放到各自对应的NAL中,而图像数据本身则…
网络抽象层单元类型 (NALU): NALU头由一个字节组成,它的语法如下: +---------------+      |0|1|2|3|4|5|6|7|      +-+-+-+-+-+-+-+-+      |F|NRI|  Type   |      +---------------+ F: 1个比特.  forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0. NRI: 2个比特.  nal_ref_idc. 取00~11,似乎指示这个NALU的重要性,…
总括: 一帧视频数据可以编码成多个H264的NALU, 每个NALU的开头为00 00 00 01: 一个RTP包可以传送 部分.一个或多个 NALU,看NALU的大小而定. 之前写过一篇文章,分析了h264使用rtp进行封包的格式介绍:RTP封装h264 (见下面).但里面好像没有把拆分以及一些需要注意的情况说清楚,因此这里做补充,也作为自己的备忘(自己记性好像不太好). 关于时间戳,需要注意的是h264的采样率为90000HZ(被标准固定死的,为了方便转换成npt时间,见维基百科:https…
网络抽象层单元类型 (NALU): NALU头由一个字节组成,它的语法如下: +---------------+      |0|1|2|3|4|5|6|7|      +-+-+-+-+-+-+-+-+      |F|NRI|  Type   |      +---------------+ F: 1个比特.  forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0. NRI: 2个比特.  nal_ref_idc. 取00~11,似乎指示这个NALU的重要性,…
前言 H264是属于视频的编码层的标准格式,视频编码显然是为了压缩大小.我们看下一个完全没压缩的视频数据大小.假设视频是高清(1280 * 720),每秒30帧,也就是每秒的数据 1280 * 720 *30 / 8(字节) /1024(KB)/1024(MB) = 3.11MB 那么90分钟的电影就要16.7GB,这个数据量显然在当前网络下是不现实的. 视频压缩的原理就是去除视频冗余部分,下面列举下1,时间冗余时间冗余是序列图像(电视图像.动画)和语音数据中所经常包含的冗余.图像序列中的两幅相…
请看文档rfc3984 1.看h264的帧 SPS序列參数帧 00 00 00 01 67 64 . . .. PPS图像參数帧 00 00 00 01 68 EE... . I帧 00 00 00 01 65 EE.. .. P帧 00 00 00 01 61 E0 ... 2. rtp头 RTP 头格式例如以下: RTP 头的结构: 0                   1                   2                   3        0 1 2 3 4 5…
二. PS封包 PS 是 GB28181 规定的标准封包格式(也是存储格式),在讲 PS 之前,先介绍几种相关的 数据格式概念: 1)ES 基本流 (Elementary Streams)是直接从编码器出来的数据流,也成为净荷数据.ES是编码后的视频流(比如H.264),音频数据流(如AAC),和其他编码数据流的统称. ES是只包含一种内容的数据流(比如纯粹的视频或音频),每个ES都由若干个存取单元(AU)组成,每个视频AU或音频AU都是由头部和编码数据两部分组成,1个AU相当于编码的1幅视频图…
1. H264视频的RTP封包 static int h264_parse(Track *tr, uint8_t *data, size_t len) { h264_priv *priv = tr->private_data; //    double nal_time; // see page 9 and 7.4.1.2 size_t nalsize = 0, index = 0; uint8_t *p, *q; if (priv->is_avc) { while (1) { unsigne…
阅读完H264/AVC 编解码器的介绍,脑海中仅仅是留下下面三条: 1.H264并没有明白规定一个编解码器怎样实现,仅仅是规定了一个编码后的视频比特流的句法,和该比特流的解码方法,这个与MPEG 类似. 2.H264和曾经的标准(如H261.H263.MPEG-1.MPEG-4)的编解码器实现流程没有太大差别,基本的不同在于各功能块的细节. 3.H264就是利用实现的复杂性获得压缩性能的明显改善.(至于复杂度的评估,以后会介绍) 以下介绍一下H264的编码器框图: 编码器採用的仍是变换和预測的混…
H264编码 封装成MP4格式 视频流 RTP封包         分类:             多媒体编程              2013-02-20 21:31     3067人阅读     评论(0)     收藏     举报     转自:http://www.cnblogs.com/ghw-NO1/archive/2012/08/28/2660848.html http://blog.csdn.net/crazyman2010/article/details/8596229…
频编解码技术有两套标准,国际电联(ITU-T)的标准H.261.H.263.H.263+等:还有ISO 的MPEG标准Mpeg1.Mpeg2.Mpeg4等等.H.264/AVC是两大组织集合H.263+和Mpeg4的优点联合推出的最新标准,最具价值的部分无疑是更高的数据压缩比.在同等的图像质量条件下,H.264的数据压缩比能比H.263高2倍,比MPEG-4高1.5倍. 以下我们简单介绍H.264的概念和发展,并探讨H.264技术实用化的可能性 H.264/AVC是什么? H.264/AVC标准…
1. 引言     H.264/AVC 是ITU-T 视频编码专家组(VCEG)和ISO/IEC 动态图像专家组(MPEG )联合组成的联合视频组(JVT)共同努力制订的新一代视频编码标准,它最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264 的压缩比是MPEG-2 的2 倍以上,是 MPEG-4的1.5-2 倍.同时,采用视频编码层(VCL)和网络提取层(NAL )的分层设计,非常适用于流媒体技术进行实时传输.本文就是基于 RTP 协议,对 H.264 视频进行流式打包传输…
1.  引言        随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性.但人们又面临着另外一种不可避免的尴尬,就是在网络上看到生动清晰的媒体演示的同时,不得不为等待传输文件而花费大量时间.为了解决这个矛盾,一种新的媒体技术应运而生,这就是流媒体技术.流媒体由于具有启动时延小.节省客户端存储空间等优势,逐渐成为人们的首选,流媒体网络应用也在全球范围内得到不断的发展.其中实时流传输协议 RTP 详细说明了在互联网上传递音频和视频…
H.264的NALU,RTP封包说明(转自牛人) 2010-06-30 16:28 H.264 RTP payload 格式 H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) NALU 头由一个字节组成, 它的语法如下: +---------------+       |0|1|2|3|4|5|6|7|       +-+-+-+-+-+-+-+-+       |F|NRI| Type   |       +---------------+ F: 1 个比特. for…
转自:http://my.oschina.net/u/1431835/blog/393315 一. h264基础概念 1.NAL.Slice与frame意思及相互关系 1 frame的数据可以分为多个slice.每个slice中的数据,在帧内预测只用到自己slice的数据, 与其他slice 数据没有依赖关系. NAL 是用来将编码的数据进行大包的. 比如,每一个slice 数据可以放在NAL 包中.I frame 是自己独立编码,不依赖于其他frame 数据.P frame 依赖 I fram…
H264--编码原理以及I帧B帧P帧--1 前言 ----------------------- H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内.所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,这样B帧的大小就只有完整帧的1/…
用实例分析H264 RTP payload H264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interleaved) 应用程序可以使用第一个字节来识别. 在SDP中也说明了本次会话的属性 SDP 参数 下面描述了如何在 SDP 中表示一个 H.264 流: . m= 行中的媒体名必须是 video . a=rtpmap 行中的编码名称必须    H264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interl…
前写过一篇文章,分析了h264使用rtp进行封包的格式介绍:RTP封装h264.但里面好像没有把拆分以及一些需要注意的情况说清楚,因此这里做补充,也作为自己的备忘(自己记性好像不太好). 关于时间戳,需要注意的是h264的采样率为90000HZ,因此时间戳的单位为1(秒)/90000,因此如果当前视频帧率为25fps,那时间戳间隔或者说增量应该为3600,如果帧率为30fps,则增量为3000,以此类推. 关于h264拆包,按照FU-A方式说明:1)第一个FU-A包的FU indicator:F…
H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) NALU 头由一个字节组成, 它的语法如下: +---------------+      |0|1|2|3|4|5|6|7|      +-+-+-+-+-+-+-+-+      |F|NRI|  Type   |      +---------------+ F: 1 个比特.  forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0. NRI: 2 个比特.  nal_ref_idc…
转自:http://blog.csdn.net/jychen105/article/details/47006345 一.什么是RTSP 通常所说的rtsp协议其实包含三个协议: rtsp协议, rtp协议, rtcp协议 各协议运作流程概要: 第一阶段:rtsp协议负责沟通传输什么数据,传的是图像还是声音,还是两者混合?图像的话传是h264流,还是h265流,还是jpeg流?后续的rtp,rtcp协议是采用tcp还是udp,端口号是多少都是通过第一阶段的rtsp协议确定的. 第二阶段:通过rt…
H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) NALU 头由一个字节组成, 它的语法如下: +---------------+      |0|1|2|3|4|5|6|7|      +-+-+-+-+-+-+-+-+      |F|NRI|  Type   |      +---------------+ F: 1 个比特.  forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0. NRI: 2 个比特.  nal_ref_idc…
前言 H264 视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的.随着 x264/openh264 以及 ffmpeg 等开源库的推出,大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本. 但为了用好 H264,我们还是要对 H264 的基本原理弄清楚才行.今天我们就来看看H264 的基本原理. H264概述 H264压缩技术主要采用了以下几种方法对视频数据进行压缩.包括: 帧内预测压缩,解决的是空域数据冗余问题. 帧间预测压缩(运动估计与补偿),解决的…
wireshark介绍 wireshark的官方下载网站: http://www.wireshark.org/ wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息. wireshark是开源软件,可以放心使用. 可以运行在Windows和Mac OS上. 使用wireshark的人必须了解网络协议,否则就看不懂wireshark了. Wireshark不能做的 为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包…
Modernizr:一个HTML5特征检测库 Modernizr帮助我们检测浏览器是否实现了某个特征,如果实现了那么开发人员就可以充分利用这个特征做一些工作 Modernizr是自动运行的,无须调用诸如modernizr_init()之类的初始化方法 Modernizr的官网地址http://modernizr.com/ 在官网首页你就可以下载modernizr.js(它分两个版本Development和Production版本.其实它们都会导向同一个下载页面,只不过前者会帮我们把选项预先勾上而…
转自唐巧的技术博客:http://blog.devtang.com/blog/2013/12/11/network-tool-charles-intr/ Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析. Charles是收费软件,可以免费试用30天.试用期过后,未付费的用户仍然可以继续…
480x320, 640x480 标清 1024x720p 高清 1920x1080i (隔行扫描) 也属于高清 1920x1080p 全高清 3840x2160,7680x4320 超(高)清   美国消费电子协会(CEA)将4K的分辨率正式命名为Ultra HD(Ultra High-Definition) 目前视频行业里的视频分辨率的规范: (1)高清(High Definition),是我们目前相对比较熟悉的一个词语.高清是在广播电视领域首先被提出的,最早是由美国电影电视工程师协会(SM…
简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析. Charles是收费软件,可以免费试用30天.试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时.   相关厂商内容 知道创宇首席安全官黑哥分享黑客传奇 触控科技运维总监萧田…
同Winsock1相比,Winsock2最明显的就是支持了Raw Socket套接字类型,使用Raw Socket,可把网卡设置成混杂模式,在这种模式下,我们可以收到网络上的IP包,当然包括目的不是本机的IP包,通过原始套接字,我们也可以更加自如地控制Windows下的多种协议,而且能够对网络底层的传输机制进行控制.  在本文例子中,nbyte.BasicClass命名空间实现了RawSocket类,它包含了我们实现数据包监视的核心技术.在实现这个类之前,需要先写一个IP头结构,来暂时存放一些有…
传统浏览器目前不会被完全取代,令你难以将最新的 CSS3 或 HTML5 功能嵌入你的网站. Modernizr 正是为解决这一难题应运而生,作为一个开源的 JavaScript 库,Modernizr 检测浏览器对 CSS3 或 HTML5 功能支持情况. Modernizr 并非试图添加老版本浏览器不支持的功能,而是令你通过创建可选风格配置修改页面设计. 它也可以通过加载定制的脚本来模拟老版本浏览器不支持的功能. 什么是Modernizr? Modernizr是一个开源的JS库,它使得那些基…
网址:http://www.charlesproxy.com/ 截取网络封包的工具. 简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析. Charles是收费软件,可以免费试用30天.试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒…