文章分类 - 视频编解码
摘要:1、NAL、Slice与frame意思及相互关系NAL指网络提取层,里面放一些与网络相关的信息Slice是片的意思,264中把图像分成一帧(frame)或两场(field),而帧又可以分成一个或几个片(Slilce);片由宏块(MB)组成。宏块是编码处理的基本单元。
阅读全文
posted @ 2014-07-05 13:23
general001
摘要:VBR是动态码率。CBR是静态码率。 VBR(Variable Bitrate)动态比特率。也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率,这是以质量为前提兼顾文件大小的方式。 VBR也称为动态比特率编码,使用这个方式时,你可以选择从最差音质/最大压缩...
阅读全文
摘要:H.264有四种画质级别,分别是(H.264 )BP、(H.264)EP、(H.264 )MP、(H.264) HP: 1、BP-Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;2、EP-Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;3、MP-Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),也支持CAVLC 和CABAC 的支持;4、HP-High profile:高级画质.
阅读全文
摘要:使用RTP传输H264的时候,需要用到sdp协议描述,其中有两项:Sequence Parameter Sets (SPS) 和Picture Parameter Set (PPS)需要用到,那么这两项从哪里获取呢?答案是从H264码流中获取.在H264码流中,都是以"0x00 0x00 0x01"
阅读全文
摘要:多媒体计算机技术是面向以文本、图形、图象、声音、视频和动画等多种媒体信息--为主的综合处理技术。在多媒体系统中,为了达到令人满意的视频画面质量和听觉效果,必须对视频信号和音频信号做到实时处理。实时处理技术的关键是如何解决视频和音频信号的数字化存储和实时传输问题。 数字化了的视频和音频信号的数据量是十分惊人的,是制约多媒体发展和应用的最大障碍。一帧中等分辨率(640×480)真彩色(24位/象素)数字视频图象的数据量约占0.9mb字节空间,按目前流行的三种视频制式(pal制式,25帧/s;ntsc和secam制式,30帧/s),以每秒30帧计算,则视频信号的传输速率大约在27.6mb/
阅读全文
摘要:由于android摄像头出来的视频默认是YUV420SP格式,因此在做转换之前需要专为YUV420P,二者的区别在于420SP的CbCr分量是交错的,而不像420P是分离的3个平面。因此需要借助sws_scale。另外ffmpeg中YUV420SP叫做PIX_FMT_NV21或PIX_FMT_NV12, 区别是CbCr交错排列的顺序,不确定都试下就好。出来的图像是反转的,这里还有个小技巧,用sws_scale时,将数据源起始位置设为width * ( height - 1) 高度设为 = -height,就可以反转过来,避免再做一次手工操作
阅读全文
摘要:基本概念:I frame :帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。P frame: 前向预测编码帧 又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧;B frame: 双向预测内插编码帧 又称bi-directional interpolated prediction frame,既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时
阅读全文
摘要:mpeg4的每一帧开头是固定的:00 00 01 b6,那么我们如何判断当前帧属于什么帧呢?在接下来的2bit,将会告诉我们答案。注意:是2bit,不是byte,下面是各类型帧与2bit的对应关系: 00: I Frame 01: P Frame 10: B Frame 为了更好地说明,我们举几个例子,以下是16进制显示的视频编码: 00 00 01 b6 10 34 78 97 09 87 06 57 87 …… I帧 00 00 01 b6 50 78 34 20cc 66b3 89 …… P帧 00 00 01 b6 96 88 99 06 54 34 78 90 98 …...
阅读全文
摘要:YCbCr是DVD、摄像机、数字电视等消费类视频产品中,常用的色彩编码方案。YCbCr 有时会称为 YCC.。Y'CbCr 在模拟分量视频(analog component video)中也常被称为 YPbPr。YCbCr不是一种绝对色彩空间,是YUV压缩和偏移的版本。1、YUV与YCbCr的区别 正如几何上用坐标空间来描述坐标集合, 色彩空间用数学方式来描述颜色集合。常见的3 个基本色彩模型是RGB , CMYK和YUV。 YCbCr 则是在世界数字组织视频标准研制过程中作为ITU - R BT1601 建议的一部分, 其实是YUV经过缩放和偏移的翻版。其中Y与YUV 中的Y含义一致
阅读全文
摘要:muxer是合并将视频文件、音频文件和字幕文件合并为某一个视频格式。如,可将a.avi, a.mp3, a.srt用muxer合并为mkv格式的视频文件。demuxer是拆分这些文件的。
阅读全文
摘要:一般在开头有一个单元分隔符NAL,两个单元分隔符之间的数据包就是一帧图像。就是00 00 01 09,这个09就是单元分隔符的标志。不过协议并没有说NAL流必须如此组织,可能还有其它的组织形式。我手头的H264文件都是这样组织的。 H264的字节流确实没有帧的概念.具体原因请仔细研读协议. 这个要看你怎么理解了。和MPEG2、MPEG4相比,H.264字节流中帧的形式发生了变化。以视频帧为例,MPEG2和MPEG4字节流在传输的时候提取帧的关键参数,将其封装入传输包首部,比如TS包或RTP包,而包负载中的数据仍然是一个完整的图像帧。也就是说,你即使不使用包首部中所设置的关于包负载的参数信息,也
阅读全文
摘要:数字信号实际传送的是数据流,一般数据流包括以下三种: ES流:也叫基本码流(elementary stream),包含视频、音频或数据的连续码流。PES流:也叫打包的基本码流,是将基本的码流ES流根据需要分成长度不等的数据包,并加上包头就形成了打包的基本码流PES流。TS流:也叫传输流,是由固定长度...
阅读全文
posted @ 2011-12-27 20:34
general001
摘要:Video Object Plane,即译为视频对象平面。 S Frame: S(GMC)-VOP MPEG-4 的正式名称叫做 VOP,不用 Frame。 VOP 是一个物件单位,MPEG-4 可以将画面上的每个物体(物件)切割出来,个别压缩, 由许多个 VOP 组成一个画面。 切割的形状可以不是矩形,而是任意形状。 这个功能目前 DivX 5, XviD 都没有做,VOP 就是一整个画面,所以 VOP 等于Frame。 S-VOP 代表 Sprite VOP,MPEG-4 可以将静态的背景画面单独切割出来,同一个场景, 好几个画面会用同一个背景,只是位置稍有移动(例如画面慢慢向右移...
阅读全文
posted @ 2011-12-26 09:35
general001
摘要:The libavformat and libavcodec libraries that come with ffmpeg are a great way of accessing a large variety of video file formats. Unfortunately, there is no real documentation on using these libraries in your own programs (at least I couldn't find any), and the example programs aren't reall
阅读全文
摘要:简介FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Matroska、ASF等90多种解码.TCPMP, VLC, MPlayer等开源播放器都用到了FFmpeg。FFmpeg主目录下主要有libavcodec、libavformat和libavutil等子目录。其中libavcodec用于存放各个encode/decode模块,libavformat用于存放muxer/d
阅读全文
posted @ 2011-12-12 10:53
general001
摘要:1.引言H.264的主要目标:1.高的视频压缩比2.良好的网络亲和性解决方案:VCL video coding layer 视频编码层NAL network abstraction layer 网络提取层VCL:核心算法引擎,块,宏块及片的语法级别的定义NAL:片级以上的语法级别(如序列参数集和图像参数集),同时支持以下功能:独立片解码,起始码唯一保证,SEI以及流格式编码数据传送VCL设计目标:尽可能地独立于网络的情况下进行高效的编解码NAL设计目标:根据不同的网络把数据打包成相应的格式,将VCL产生的比特字符串适配到各种各样的网络和多元环境中。NALU头结构:NALU类型(5bit)、重要
阅读全文
摘要:视频封装格式如何理解? 笔者曾经随机的询问过各行各业各个年龄阶层文化水平的人,发现对于视频接触无论是多还是少的人很少有人能清楚的分清楚视频编码还有封装格式。主要原因笔者认为一方面是由于视频编码以及封装格式本身繁乱驳杂,一方面是因为许多人不太注重这方面知识的收集,存在许多自以为是的误区,这里笔者为大家一一解答。 一、什么是封装格式 所谓封装格式就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,也就是说仅仅是一个外壳。这里举两个例子大家就很清楚了。下图是一个瓶子里面有两个动画形象。我们可以把这个瓶子当成封装好的视频,而里面有压缩好视频以及音频。我们看一部既有声音又有图像的视频...
阅读全文
posted @ 2011-12-06 14:42
general001
摘要:常见的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等文件其实只能算是一种封装标准。一个完整的视频文件是由音频和视频2 部分组成的。H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式。 例如:将一个Xvid视频编码文件和一个MP3视频编码文件按AVI封装标准封装以后,就得到一个AVI后缀的视频文件,这个就是我们常见的AVI视频文件了。 由于很多种视频编码文件、音频编码文件都符合AVI封装要求,则意味着即使是AVI后缀,也可能里面的具体编码格式不同。因此出现在一些设备上,同是AVI后缀文件,一些能正常播放,还有一些就无法播放。 同样的情况也存在于其他容器格式
阅读全文
摘要:Decode(){FILE*inpf;intnWrite;inti,p;intnalLen;unsignedchar*Buf;intgot_picture,consumed_bytes;unsignedchar*DisplayBuf;DisplayBuf=(unsignedchar*)malloc(60000);charoutfile[]="test.pgm";//1.打开输入文件inpf=fopen("test.264","rb");//outf=fopen("out.yuv","wb");i
阅读全文
posted @ 2011-11-18 12:42
general001

浙公网安备 33010602011771号