I/B/P SP/SI
H264中I、B、P帧
I帧:只作为参考帧,采用帧内预测
B帧:以其前面的I帧或P帧和后面的P帧作为参考帧
P帧:只能以前面的I帧或P帧作为参考帧
H264中的SP SI
SP和SI是H264中引入的新技术,主要是为了适应视频流的带宽自适应和抗误码性能的要求,主要应用于流媒体服务。
SP帧就是指能够参考不同的参考帧重构出相同的图像帧。(SP和SI不同在于SI是基于帧内预测,SP是基于帧间预测)。
流媒体服务自身有一些特征,网络状况是一直变化的,有时候比较繁忙,有时候则比较空闲。针对不同的网络条件,服务器可能提供几种不同质量的数据服务,
当网络比较差时,提供比较差但是码率低的服务,当网络好时候,提供比较好码率高的服务。由于视频的编码是参考帧预测的基础上,在不同的条件下切换时
很可能会出现丢帧的现象。
如:
序列1: A1 A2 A3 A4 A5 A6 A7 A8 A9
Sab
序列2: B1 B2 B3 B4 B5 B6 B7 B8 B9
在序列1传输完A5之后想要切换到度列2上去,那么就会出现一个问题:如果B6刚好是I帧,就能够正常解析B6帧。如果B6是B帧或者P帧,那么B6就可能是参考B1-B5 中的一帧,由于这些帧之前并没有接收到,那么B6就无法正常解码,而且会影响到之后参考B6生成的其他帧。引入SP/SI之后,B6就可以参考A5和Sab来得到。根据相同的原理SP/SI还可以应用到拼接,随机接入及错误恢复等应用当中去。
值得注意的是:SP/SI只是在H264的Baseline Profile中才有,而且主要应用于流媒体服务当中。
I/B/P SP/SI的更多相关文章
- [FFmpeg] ffmpeg 常用命令
1. 视频转换 比如一个avi文件,想转为mp4,或者一个mp4想转为ts. ffmpeg -i input.avi output.mp4 ffmpeg -i input.mp4 output.ts ...
- h264 profile & level
转自:http://blog.csdn.net/sphone89/article/details/17492433 H.264 Profiles H.264有四种profile,每个profile支持 ...
- weblogic 12C 数据源配置出错的解决办法
驱动程序类名称: 11G 10.3.6与12G数据源配置有很大区别,整个一天才搞明白. 如有疑问可留言:http://www.cnblogs.com/endv/p/4110798.html 配 ...
- fFFmpeg 命令、案例、测试集中营
gitbook: https://www.gitbook.com/book/xdsnet/other-doc-cn-ffmpeg/details ffmpeg [全局选项] {[输入文件选项] -i ...
- bzoj1015 星球大战
Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这些星球通过 ...
- H264 Profile
H.264有四种profile,对应四种H264画质级别.每个profile支持一组特定的编码功能,并支持一类特定的应用,分别是BP.EP.MP.HP: 1. BP-Baseline Profile ...
- Python3批量爬取网页图片
所谓爬取其实就是获取链接的内容保存到本地.所以爬之前需要先知道要爬的链接是什么. 要爬取的页面是这个:http://findicons.com/pack/2787/beautiful_flat_ico ...
- H.264 Profile、Level、Encoder三张简图 (fps = AVCodecContext->time_base.den / AVCodecContext->time_base.num)
H.264 Profiles Profiles are sets of capabilities. If your black box only supports the Baseline profi ...
- 【转】H264视频编码级别说明profile level Encoder
版权声明:本文为博主原创文章,未经博主允许不得转载. 首先要阐明所谓的AVC其实就是H.264标准,是由ITU-T和ISO/IEC组成的联合视频组(JVT,Joint Video Team)一起开发的 ...
随机推荐
- Genymotion出现Unable to load VirtualBox engine问题--100%解决
首先强调一个事情,作为程序员,一定要养成一个习惯:安装软件时尤其像VirtualBox这类,首先设置其"兼容模式"以及"特权等级" . 环境:win7 64bi ...
- Hive(三):SQuirrel连接hive配置
熟悉了Sqlserver的sqlserver management studio.Oracle的PL/SQL可视化数据库查询分析工具,在刚开始使用hive.phoenix等类sql组件时,一直在苦苦搜 ...
- 每日学习心得:未定义的命名空间前缀"xsd"问题和<%%>、<%=%>、<%$%>、<%@%>的区别
2013-6-29 1. 未定义的命名空间前缀“xsd” 上周在项目开发中遇到这样的一个问题,在一个页面用到了自定义的Picker控件,在IE6.7.8.9以及IE10兼容模式下都没有任何问题,但是一 ...
- form表单reset重置按钮
如果ajax提交完数据,后想清空表单内容 ,以前都是用这个方法$("#id").val(""); 一个一个清空的,其实可以在form表单中加个隐藏的<in ...
- php base64编码和urlencode
base64编码 加密 base64_encode($str); 解密 base64_decode(base64_encode($str)); urlencode和base64混合使用 functio ...
- LVM---动态调整磁盘容量
LVM:logical volume manager(逻辑卷管理):LVM屏蔽了底层磁盘布局,方便于动态调整磁盘容量. 一.创建逻辑卷的步骤: 1)通过fdisk 工具将磁盘转换为linux分区 2) ...
- Web通过JS调用客户端
代码实现==> <html> <head> <script language="javascript"> function Run(str ...
- Erlang库 -- 有意思的库汇总
抄自这里 首先,库存在的目的大致可分为:1.提供便利2.尽可能解决一些痛点 首先,我们先明确一下Erlang编程语言的一些痛点(伪痛点):1,单进程问题Erlang虚拟机属于抢占式调度,抢占式调度有很 ...
- elasticsearch2
简单认为是可以在命令行下访问url的一个工具 curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求. curl -x 指定http请求的方法 ...
- OkHttp 源码分析
在工作中用到封装HTTP传输的OkHTTP,OkHttp是相对成熟的解决方案,同时也是开源项目.本文将从源码角度看下OkHttp是如何实现一些网络操作的. HTTP GET: OkHttpClient ...