linux应用程序之---视频编解码
文章平均质量分 80
bingqingsuimeng
这个作者很懒,什么都没留下…
展开
-
H.26L中的Access unit结构分析
看了一天的代码也没看明白,看来还是概念不清楚,A B C型分割的概念,在网上只找到这一篇。一帧图像就是一个Access unit,一个图像序列由几个Access unit组成。其中第一个Access unit就是IDR帧,其他的Access unit是非IDR帧(B帧或者P 帧)。I帧的Access unit包括的SEI nalu可以被一个序列的其他p帧或者B帧access u转载 2013-08-15 17:59:10 · 3228 阅读 · 0 评论 -
bs_t结构及其相关函数的定义
参考bs.h此部分内容对应H.264标准9.1节及[2]中6.4.13小节bs_t结构描述了比特流的概念,从比特流中进行顺序读写操作(类似于前向迭代器)typedef struct bs_s{ uint8_t *p_start; // 缓冲区首地址 uint8_t *p;转载 2013-08-16 15:47:49 · 1259 阅读 · 0 评论 -
x264中bs.h文件部分函数解读
本文结合写入、读取码流函数介绍哥伦布编码方式。1 写入码流函数bs_write:1) static inline void bs_write( bs_t *s, int i_count, uint32_t i_bits )该函数的作用是:向s里写入i_bits流的后i_count位,s以字节为单位,所以够8个位就写下个(注意i_bits的单位是uint32_t)。sta转载 2013-08-16 15:52:17 · 1925 阅读 · 1 评论 -
H.264的Slice及Slice类型
一、基本概念一个视频图像可编码成一个或更多个条带,每个条带包含整数个宏块(MB),即每个条带至少一个MB,最多时每个条带包含整个图像的宏块。总之,一幅图像中每个条带的宏块数不一定固定。设条带的目的是为了限制误码的扩散和传输,应使编码条带相互间是独立的。某个条带的预测不能以其它条带中的宏块为参考图像,这样某一条带中的预测误差才不会传播到其它条带中去。Slice的类型如表1所示转载 2013-08-16 10:08:14 · 1208 阅读 · 0 评论 -
[总结]FFMPEG视音频编解码零基础学习方法
http://blog.csdn.net/leixiaohua1020/article/details/15811977转载 2015-04-08 17:28:01 · 868 阅读 · 0 评论 -
TS 流分析
TS流分析 1. 文件来源Ø PS文件:prison_break_clip0.mpgØ TS抓包文件:dump:http://dl2.csdn.net/down4/20070729/29203617214.dump2. TS流分析2.1 PAT(1) 起始地址:0x001e(2) 各字段内容: Header:sync_byte(1B):0x47转载 2013-08-15 16:17:36 · 1023 阅读 · 0 评论 -
H.264码流结构
a、对照:H.263的码流结构H.263定义的码流结构是分级结构,共四层。自上而下分别为:图像层(picture layer)、块组层(GOB layer)、宏块层(macroblock layer)和块层(block layer)。 PSCTRPTYPEPQUANTCPMPSBITRB转载 2013-08-15 14:21:14 · 1090 阅读 · 0 评论 -
将H264与AAC打包Ipad可播放的TS流的总结
将H264与AAC打包Ipad可播放的TS流的总结由于要在crtmpserver中实现Http Live Streaming ,本人花了接近3个星期的时间,研究将H264与AAC打包为TS流并能在Ipad上通过HTML5播放,由于没有任何现成代码可供参考,打包代码全部手写,打包格式主要参考ISO/ICE 18318-1.pdf。期间碰到很多问题,走了不少弯路,符合标准的TS不一定能在I转载 2013-08-13 09:30:51 · 6757 阅读 · 0 评论 -
H264(NAL简介与I帧判断)
1、NAL全称Network Abstract Layer, 即网络抽象层。 在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL)。其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。因此我们平时的每帧数据就是一个NAL单元(SPS与PPS除外)。转载 2013-08-14 14:36:30 · 1883 阅读 · 1 评论 -
I帧和IDR帧区别
I 帧和 IDR 帧的区别: IDR 帧属于 I 帧。解码器收到 IDR frame 时,将所有的参考帧队列丢弃 (用x264_reference_reset 函数实现——在 encoder.c 文件中) 。这点是所有 I 帧共有的特性,但是收到 IDR 帧时,解码器另外需要做的工作就是:把所有的 PPS 和 SPS 参数进行更新。由此可见,在编码器端,每发一个 IDR ,就相转载 2013-08-15 14:06:20 · 1166 阅读 · 0 评论 -
PTS PCR DTS 详解
MPEG-2 TS/PS同步原理2010-08-11 19:47 一、引言 MPEG-2系统用于视音频同步以及系统时钟恢复的时间标签分别在ES,PES和TS这3个层次中。在ES层,与同步有关的主要是视频缓冲验证VBV(Video Buffer Verifier),用以防转载 2013-08-15 16:08:02 · 3561 阅读 · 1 评论 -
如何在H264数据中获取PTS?
序:只大概说明要点。更具体的方法恕不祥叙。我的开源工程和很多开源项目都有详细完整的实现代码。这些要点都是我自己学习的总结,无责任保证正确性。仅做参考。如发现有问题请丢砖头,跪求各方高人指正错误。Orz内容:H264的ES原始数据一般是以NAL(Network Abstract Layer)的格式存在。可以直接用于文件存储和网络传输。每一个NALU(Netwo转载 2013-08-15 11:30:59 · 5286 阅读 · 0 评论 -
字节流格式(Annex B)和RTP格式流浅析
AnnexB格式:NALU数据+开始前缀(00000001或000001,此处注意为甚么是4bit或3bit,后面有描述);针对H.320电话会议RTP 格式:NALU数据+20个字节的类似的并不符合RTP协议的RTP头。针对IP网络的RTP打包方式 H.264协议只规定了字节流格式,没有规定 RTP 格式。可能也是因为这个原因,JM 的 RTP 格式没有被用到任何转载 2013-08-15 14:25:59 · 1507 阅读 · 0 评论 -
IDR(刷新帧)与I帧的一些知识点
IDR帧属于I帧,但是I帧不一定是IDR帧。解码器收到IDR帧时,将驱动器参数块(DPB)清空。而I帧不会。(我自己理解为即把参考帧列表刷新从新更新,就是不再参考idr前面的帧)由此可见,在编码器端,每发一个IDR,就相应地发一个nal。当然在现在的编码中,为了取得更高的图像质量,在一个视频文件中有好多个IDR帧,这些IDR帧把视频文件分成了片,但是每片中第一个帧是IDR,而且仅此一个转载 2013-08-15 14:32:15 · 1306 阅读 · 0 评论 -
H264--1--编码原理以及I帧B帧P帧、pts&dts
----------------------前言----------------------- H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于转载 2013-08-15 13:44:42 · 4926 阅读 · 1 评论 -
CMMB中的H264和AAC打包成ts流
参照tstools这个开源项目完成了CMMB的merge aac with 264 to TS.在做的过程中,分成了几个阶段。先试着将H264打包成TS,这花了最大的精力和时间;接着将AAC打包成TS;最后将其合并起来。一、处理H264 1、H264 -> pes 在查找了大量资料后,对H264有了初步的认识。H264的结构从转载 2013-08-13 09:28:17 · 1661 阅读 · 0 评论