视频编解码学习
文章平均质量分 54
陈纪建
关注行业动态,找出最适合自己的发展道路
展开
-
RTSP - RTP over TCP
Normally, RTSP provide streaming over UDP. By nature, UDP is a better choice as it provides robust streaming capability for media. However, it is unlikely to use UDP for streaming over the Internet.转载 2017-09-07 14:04:11 · 386 阅读 · 1 评论 -
视频码流分析工具
Elecard:http://www.elecard.com/en/index.htmlCodecVisa:http://www.codecian.com/更新(2014.8.26)===================又发现了一个不错的码流分析工具:Intel Video Pro Analyzer 201转载 2017-12-15 10:22:57 · 1220 阅读 · 0 评论 -
UDP接收多路视频数据, 接收缓存不足了
(1)困扰几天的udp内网传输部分终于做通了,解决的关键就在于setsockopt的调用,设置接收缓冲。遇到的问题是这样的,主机端发送udp数据包: 应用层的包大小为1452byte大小,这样拆包是根据以太网的MTU为1500字节而考虑的(当然外网状态下并不一定就是以太网网络,路由MTU可...转载 2018-04-08 18:22:16 · 1954 阅读 · 0 评论 -
基于IP播放TS流的码率控制策略
前言在数字电视的应用中,TS流数据的播放是其中一个重要环节。TS流的播放从接收端的角度来考虑,是如何保证解码器的缓冲器不出现溢出;从发送端来考虑,是如何保证码流按照其自身的码率较为均匀地离开发送设备。 目前TS流的发送有两种方式,一种是传统的通过硬件设备,输出ASI信号,另一种是通过IP网络以IP的数据包方式进行发送。本文就后者进行讨论。TSOverIP通过IP网络传输TS流数据,主要是通过单播(...转载 2018-04-23 14:06:30 · 613 阅读 · 0 评论 -
将H264与AAC打包Ipad可播放的TS流的总结(h5的实现)
由于要在crtmpserver中实现Http Live Streaming ,本人花了接近3个星期的时间,研究将H264与AAC打包为TS流并能在Ipad上通过HTML5播放,由于没有任何现成代码可供参考,打包代码全部手写,打包格式主要参考ISO/ICE 18318-1.pdf。期间碰到很多问题,走了不少弯路,符合标准的TS不一定能在Ipad上播放,但是Ipad上播放的TS一定是符合标准的,可以说...转载 2018-04-23 14:39:55 · 316 阅读 · 0 评论 -
Mpeg-2的同步及时间恢复
蔡新国广州市广播电视网络有限公司 (广东广州 510010) 摘要:Mpeg-2同步及时间恢复在编码、传输和解码中占有重要的地位,它不仅直接影响视音频的解码质量,还是衡量整个传输网络优劣的重要指标。本文将从原理上介绍Mpeg-2同步及时间恢复方法,并给出PCR测量的几个项目。关键字:STC,PCR,DTS,PTS 一、引言Mpeg-2用于视音频同步以及系统时钟恢复的时间标签分别在ES,PES和TS...转载 2018-04-23 14:45:55 · 296 阅读 · 0 评论 -
从ES到TS 从Ts离到提取分离PES再到ES
https://download.csdn.net/download/aguang888/3398945转载 2018-04-19 11:53:45 · 996 阅读 · 0 评论 -
MPEG2-TS音视频同步原理
一、引言MPEG2系统用于视音频同步以及系统时钟恢复的时间标签分别在ES,PES和TS这3个层次中。 在TS 层, TS头信息包含了节目时钟参考PCR(Program Clock Reference), 用于恢复出与编码端一致的系统时序时钟STC(System Time Clock)。 在PES层, 在PES头信息里包含有表示时间戳PTS(Presenta...转载 2018-04-23 16:27:31 · 617 阅读 · 0 评论 -
HLS 切片生成demo 点播
https://download.csdn.net/download/tengym/9844023转载 2018-04-23 16:58:35 · 1077 阅读 · 0 评论 -
哈夫曼树与哈夫曼编码
在一般的数据结构的书中,树的那章后面,著者一般都会介绍一下哈夫曼(HUFFMAN)树和哈夫曼编码。哈夫曼编码是哈夫曼树的一个应用。哈夫曼编码应用广泛,如JPEG中就应用了哈夫曼编码。 首先介绍什么是哈夫曼树。哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的 路径长度(若根结点为0层,叶结点到根结转载 2017-12-14 18:15:32 · 244 阅读 · 0 评论 -
CRC32校验原理及实现
CRC即循环冗余校验(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC校验实用程序库:在数据存储和数据通讯领域,为了保证数据的正确性,就不得不采用检错的手段。CRC码校验原理:发送端:发送端根据信息字段与生成多项式生产呢个CRC码,CRC码作为数据发送给接收端,同时也会把计算出的校转载 2017-12-21 15:20:44 · 40133 阅读 · 3 评论 -
TS流中BAT与SDT等表的解析
TS流的文章不少,但都比较难读;TS码流分析的软件挺多,但思路都雷同。本文章从另外一个角度来理解和分析TS流,不过只是我个人的理解,错误在所难免,不当之处,请大家多多指教(本文可能经常更新)。 由于传输的文件比较大,文件分片传输,形成包(也可以叫帧);由各个包组合在一起,就能形成这完整的文件。不过,TS流传输按DVB标准,需要打包为固定格式的包,同时传输一些表(P转载 2017-12-21 14:23:10 · 7708 阅读 · 0 评论 -
TS流文件分析流程
转载自:http://blog.csdn.net/a1875566250/article/details/406154731、查找PAT表,从PAT表里面找到所有的PMT表的map_id。 - 注意1:PAT表并不一定在文件的起始位置,TS流这种对于电视直播的Live流需要保证在任何时间打开电视你都能看到画面,所以PAT表是被随机插到TS流的Packet中的,比如间隔10帧插一个PAT转载 2017-11-02 09:56:47 · 736 阅读 · 0 评论 -
TS协议解析第一部分(PAT)
1. 前言1.1 工具准备:ts文件http://download.csdn.net/detail/u013354805/9540190UltraEdithttp://download.csdn.net/detail/u013354805/9540205EStreamAnalyzerhttp://download.csdn转载 2017-11-03 12:18:09 · 1087 阅读 · 0 评论 -
mpeg PMT 的 stream type汇总
Value Description0x00 ITU-T | ISO/IEC Reserved0x01 ISO/IEC 11172-2 Video0x02 ITU-T Rec. H.262 | ISO/IEC 13818-2 Video or ISO/IEC 11172-2 constrained parameter video stream0x03转载 2017-11-14 14:22:56 · 1993 阅读 · 0 评论 -
TS 流解码过程
TS 流解码过程:1. 获取TS中的PAT2. 获取TS中的PMT3. 根据PMT可以知道当前网络中传输的视频(音频)类型(H264),相应的PID,PCR的PID等信息。4. 设置demux 模块的视频Filter 为相应视频的PID和stream type等。5. 从视频Demux Filter 后得到的TS数据包中的payload 数据就是 one piece of PE转载 2017-11-28 17:33:44 · 392 阅读 · 0 评论 -
TS协议解析(adaptation field)
1. 调整字段(adaptation field):1.1 调整字段介绍:在MPEG-2TS中,为了传送打包后长度不足188B(包括包头)的不完整TS,或者为了在系统层插入节目时钟参考PCR字段,需要在TS包中插入可变长度字段的调整字段调整字段则包括对较高层次的解码功能有用的相关信息,调整字段的格式基于采用若干标志符,以表示该字段的某些特定扩展是否存在。调整字段由1B调整字段长度、转载 2017-11-06 11:01:53 · 3384 阅读 · 0 评论 -
TS 详解
数字电视的TS包和TS流的组成和功能综合考虑几下几个因素:(1)包的长度不能过短,否则包头开销所占比例过大,导致传输效率下降(2)包的长度不能过长,否则在丢失同步的情况下恢复同步的周期过长,导致较多的信息丢失(3)其他环境相适配,如纠错编码,宽带网等。• TS包按功能分为链接头,适配域,净荷。• 链接头的长度固定,4个字节转载 2017-11-15 14:03:59 · 1553 阅读 · 0 评论 -
用SDL创建一个窗口
原文来自:http://www.aaroncox.net/tutorials/2dtutorials/sdlwindow.html注意:这里我们想当然你已经知道怎么在你的IDE集成开发环境里配置好SDL 创建一个窗口 要用SDL创建一个窗口,设计到以下步骤:◆初始化SDL视频库◆创建窗口◆设置窗口标题◆关闭SDL 1.初始化SDL视频库我们用SD转载 2017-11-23 09:54:56 · 552 阅读 · 0 评论 -
熵编码基础概念
熵编码即编码过程中按熵原理不丢失任何信息的编码。信息熵为信源的平均信息量(不确定性的度量)。常见的熵编码有:香农(Shannon)编码、哈夫曼(Huffman)编码和算术编码(arithmetic coding)。在视频编码中,熵编码把一系列用来表示视频序列的元素符号转变为一个用来传输或是存储的压缩码流。输入的符号可能包括量化后的变换系数,运动向量,头信息(宏块头,图象头,序列的头等)以及附加转载 2017-12-13 09:41:31 · 5336 阅读 · 0 评论 -
基于IP播放TS流的码率控制策略
前言在数字电视的应用中,TS流数据的播放是其中一个重要环节。TS流的播放从接收端的角度来考虑,是如何保证解码器的缓冲器不出现溢出;从发送端来考虑,是如何保证码流按照其自身的码率较为均匀地离开发送设备。 目前TS流的发送有两种方式,一种是传统的通过硬件设备,输出ASI信号,另一种是通过IP网络以IP的数据包方式进行发送。本文就后者进行讨论。TSOverIP通过IP网络传输TS流数据,主要是通过单播(...转载 2018-05-02 10:27:41 · 979 阅读 · 0 评论 -
WASAPI 01 采集默认设备的音频
音频采集或播放时,需要用MMDevice API来枚举和获取指定设备,用WASAPI来处理应用程序和音频设备之间的音频流数据,如采集或播放。1. MMDevice APIThe Windows Multimedia Device (MMDevice) API enables audio clients to discover audio endpoint devices, determine th...转载 2018-05-09 11:25:31 · 6012 阅读 · 2 评论 -
【VS开发】Windows上的音频采集技术
前一段时间接到一个任务,需要采集到声卡的输出信号,以便与麦克风的输入信号进行混音。之前一直没有研究过音频的相关技术,这次就顺便抽出一点时间去了解了一下Windows上采集音频的相关技术。对于音频处理的技术,主要有如下几种:采集麦克风输入采集声卡输出将音频数据送入声卡进行播放对多路音频输入进行混音处理1.Windows上音频处理的API在Windows操作系统上,常用的音频处理技术主要包括:Wave...转载 2018-07-05 22:40:58 · 1063 阅读 · 0 评论 -
流媒体协议介绍
https://www.jianshu.com/p/8b803ba0e526转载 2018-07-12 21:52:58 · 145 阅读 · 0 评论 -
使用Core Audio实现对声卡输出的捕捉
涉及的接口有:IMMDeviceEnumeratorIMMDeviceIAudioClientIAudioCaptureClient主要过程:创建多媒体设备枚举器(IMMDeviceEnumerator)通过多媒体设备枚举器获取声卡接口(IMMDevice)通过声卡接口获取声卡客户端接口(IAudioClient)通过声卡客户端接口(IAudioClient)可获取声卡输出的音频参数、初始化声卡、...转载 2018-07-06 19:54:13 · 2308 阅读 · 0 评论 -
WASAPI 01 采集默认设备的音频
音频采集或播放时,需要用MMDevice API来枚举和获取指定设备,用WASAPI来处理应用程序和音频设备之间的音频流数据,如采集或播放。1. MMDevice APIThe Windows Multimedia Device (MMDevice) API enables audio clients to discover audio endpoint devices, determine th...转载 2018-07-06 21:14:38 · 1320 阅读 · 0 评论 -
离散傅里叶变换-DFT(FFT基础)
本文是从最基础的知识开始讲解,力求用最通俗易懂的文字将问题将的通俗易懂,大神勿喷,多多指教啊,虽然说是从零学习FFT,但是基本的数学知识还是要有的,sin,cos,等。 FFT(快速傅里叶变换)其本质就是DFT,只不过可以快速的计算出DFT结果,要弄懂FFT,必须先弄懂DFT,DFT(DiscreteFourier Transform)离散傅里叶变换的缩写,咱们先来详细讨...转载 2019-06-13 17:49:04 · 13527 阅读 · 3 评论 -
H264编码器6( H.264整数DCT公式推导及蝶形算法分析)
这是网上的一篇文章, 我重新读了一下, 然后做了一些整理1.为什么要进行变换空间图像数据通常是很难压缩的:相邻的采样点具有很强的相关性(相互关联的),而且能量一般平均分布在一幅图像中,从而要想丢掉某些数据和降低数据精度而不明显影响图像质量,就要选择合适的变换,方法,使图像易于被压缩。适合压缩的变换方法要有这样几个性质:(1).可以聚集图像的能量(将能量集中到少数有意义的数值上),如下图...转载 2019-08-02 18:03:56 · 1250 阅读 · 0 评论 -
CAVLC算法解析
CAVLC算法解析writeSyntaxElement_NumCoeffTrailingOnes里有lentab[3][4][17] codtab[3][4][17]编码非零系数数目 (NumCoeff)和拖尾系数数目(TrailingOnes)writeSyntaxElement_NumCoeffTrailingOnesChromaDC里有lentab[4][5] codtab[4]...转载 2019-08-04 17:22:11 · 1086 阅读 · 0 评论 -
二维离散余弦变换(2D-DCT)
图像处理中常用的正交变换除了傅里叶变换以外,还有一些其它常用的正交变换,其中离散余弦变换DCT就是一种,这是JPEG图像压缩算法里的核心算法,这里我们也主要讲解JPEG压缩算法里所使用8*8矩阵的二维离散余弦正变换。一维离散余弦变换一般表达式 要弄懂二维离散余弦变换,首先我们需要先了解它在一维下的情况,具体表达式如下: 式中F(u)是第u个余弦...转载 2019-08-01 09:20:43 · 10144 阅读 · 2 评论 -
WASAPI 01 采集默认设备的音频
音频采集或播放时,需要用MMDevice API来枚举和获取指定设备,用WASAPI来处理应用程序和音频设备之间的音频流数据,如采集或播放。1. MMDevice APIThe Windows Multimedia Device (MMDevice) API enables audio clients to discover audio endpoint devices, determine th...转载 2018-07-04 21:48:29 · 1518 阅读 · 0 评论 -
音频学习基础
https://wenku.baidu.com/view/5806a010ad51f01dc381f12f.html转载 2018-07-08 22:25:49 · 1020 阅读 · 0 评论 -
flv文件AVCDecoderConfigurationRecord以及AudioSpecificConfig结构
H264和AAC数据流 RTMP推送的音视频流的封装形式和FLV格式相似,由此可知,向FMS推送H264和AAC直播流,需要首先发送"AVC sequence header"和"AAC sequence header",这两项数据包含的是重要的编码信息,没有它们,解码器将无法解码。 AVC sequence header就是AVCDecoderConfigurationRecord结构,该结构...转载 2018-06-20 10:56:06 · 887 阅读 · 0 评论 -
ffmpeg视音频同步
原文地址: https://blog.csdn.net/nonmarking/article/details/50522413对于直播流来说, 只考虑发送端的同步问题, 原理如下: 1. 解析视音频, 讲视频流和音频流的时间戳用同样的时间基准表示 2. 比较转换后的两个时间戳, 找出较小值, 对应发送偏慢的流 3. 读取, 转码, 发送相应的流, 同时, 若该流的转码时间很快, 超前于wall c...转载 2018-05-10 14:19:50 · 499 阅读 · 0 评论 -
H264元素的分层结构
H264元素的分层结构H.264编码器输出的Bit流中,每个Bit都隶属于某个句法元素。句法元素被组织成有层次的结构,分别描述各个层次的信息。 在H.264 中,句法元素共被组织成 序列、图像、片、宏块、子宏块五个层次。在这样的结构中,每一层的头部和它的数据部分形成管理与被管理的强依赖关系,头部的句法元素是该层数据的核心,而一旦头部丢失,数据部分的信息几乎不可能再被正确解码出来...转载 2018-04-27 11:10:07 · 776 阅读 · 0 评论 -
ffplay注解
/* get_clock(&is->vidclk): 获取到的实际上是:最后一帧的pts 加上 从处理最后一帧开始到现在的时间,具体参考set_clock_at 和get_clock的代码 c->pts_drift=最后一帧的pts-从处理最后一帧时间 clock=c->pts_drift+现在的时候 get_clock(&is->vidclk) =...转载 2018-05-11 18:23:39 · 827 阅读 · 0 评论 -
TS流PCR简介
引自《广播电视信息》2008年1月从数字电视前端系统功能上来讲,传统的DVB数字硬件前端技术包含编码、复用、加扰、调制四个基本环节,而在实际的DVB前端系统中还有直接的TS流转发环节,如下图所示:上图中编码环节是将模拟视音频或者基带的数字视频和音频信号编码形成标准的TS流,而流转发环节是将卫星或者通过其它信道过来的信号转成符合当地标准的TS流,所有的TS进入复用环节进行复用。为了满足运营的需求,T...转载 2018-04-28 14:56:09 · 4050 阅读 · 0 评论 -
H.264难点问题分析
H.264编码后码流的生成H.264 比较全的编码框架 2011年4月23日22:23:35H.264中的PB帧编码 在针对连续动态图像编码时,将连续若干幅图像分成P,B,I三种类型,P帧由在它前面的P帧或者I帧预测而来,它比较与它前面的P帧或者I帧之间的相同信 息或数据,也即考虑运动的特性进行帧间压缩。P帧法是根据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据。采取P帧和I帧联合压缩的方...转载 2018-05-15 12:27:53 · 368 阅读 · 0 评论 -
rtmp流转Hls流 与 flv转mpegts
rtmp协议是adobe出的一种流媒体格式协议。是目前较为流行的协议的一种。HLS协议是苹果推出的一种流媒体协议,由于IOS系统不支持RTMP协议,如实现RTMP协议的流媒体需要自己实现RTMP的客户端,这使得移动手机端使用RTMP的流媒体增加了一些开发成本。HLS协议的详情可以参考APPLE的网站,内容主要由M3U8和MPEGTS这两大文件组成,本文详解的是MPEGTS文件。MPEG2-TS(T...转载 2018-06-25 15:59:35 · 3804 阅读 · 0 评论 -
打包H264码流到FLV文件
FLV格式非常简单,头信息数据量很少,适合网络传输,因此被广泛的应用。1. H264 NALU结构 h264 NALU: 0x00 00 00 01 | nalu_type(1字节)| nalu_data (N 字节) | 0x00 00 00 01 | ... 起始码(4字节) 类型 ...转载 2018-07-01 21:35:18 · 655 阅读 · 0 评论