视频中的I帧、B帧、P帧

2023-11-09

        视频文件都是一帧一帧存储的,为了使文件的大小减小,通常会对文件进行压缩。mpeg4(MP4)文件中的每一帧开始都是固定的:00 00 01 b6,那么在接下来的每一帧分别是什么帧呢(I帧、B帧、P帧)?一般在这固定帧的后面2bit就是标志是什么帧的。

        I帧:00    B帧:01   C帧:10

        下面举例说明:

                00 00 01 b6 10        0x10---------00 01 00 00    // 该帧为I帧

               00 00 01 b6 50        0x50---------0101 00 00    //该帧为B帧

               00 00 01 b6 96        0x96---------10 01 01 10    //该帧为P帧

        现在知道了视频中每一帧分别是什么帧了,那么,到底I帧、B帧、P帧是什么呢?

        I帧:关键帧,该帧的压缩方式属于帧内压缩,这种压缩方式和AVI的压缩方式是一样的。

        P帧:表示这一帧和上一帧的区别,解码的时候需要与缓存的上一帧叠加在一起得到差别,生成最终画面。P帧就是与上一帧的差别,即差别帧。

        B帧:双向差别帧,需要与前后两帧叠加得到差别,生成最终画面,B帧的压缩率高,但相对的,解码时就要占用更多的CPU资源。

        一般平均来说,I帧的压缩率是7(跟JPG差不多),P帧是20,B帧可以达到50,可见使用B帧能节省大量空间,节省出来的空间可以用来保存多一些I帧,这样在相同码率下,可以提供更好的画质。

       

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

视频中的I帧、B帧、P帧 的相关文章

  • GB/T28181-2022协议版本标识X-GB-Ver解读

    GB28181 2022相对2016 其中有个变化是 报文中携带协议版本标识 X GB Ver 3 0 3 0 2022 2 0 2016 为便于联网设备或服务器之间互相识别对方支持的协议版本 在SIP注册及其响应消息 无论是成功或失败 头
  • 国网B接口资源上报(Push_Resourse)接口描述和消息示例

    上篇blog 梳理了国网B接口的REGISTER接口描述和消息示例 前端系统加电启动并初次注册成功后 向平台上报前端系统的设备资源信息 包括 视频服务器 DVR DVS 摄像机 告警设备 环境量采集设备等模拟或数字信号采集设备信息 前端系统
  • 【技术分享】如何实现功能完备性能优异的RTMP、RTSP播放器?

    技术背景 这几年 我们对接了太多有RTSP或RTMP直播播放器诉求的开发者 他们当中除了寻求完整的解决方案的 还有些是技术探讨 希望能借鉴我们播放端的开发思路或功能特性 完善自己的产品 忙里偷闲 今天我们就再聊一聊老生常谈的问题 如何实现功
  • 音视频绕不开的话题之WebRTC

    什么是WebRTC 闲来无事 我们今天探讨下音视频绕不开的一个话题 WebRTC WebRTC之于音视频行业 无异于FFMpeg 可以说WebRTC的开源 让音视频行业大跨步进入发展快车道 WebRTC是一个支持实时音视频通信的开源项目 它
  • H.264(H264)视频文件的制作

    一 准备工作 1 下载并安装优酷客户端 2 下载ffmpeg可执行文件 解压可用 不需要下载源码自己编译 ffmpeg可执行文件下载链接 http download csdn net detail caoshangpa 9492758 二
  • 基于RTMP实现Linux

    背景 Windows操作系统自问世以来 以其简单易用的图形化界面操作受到大众追捧 为计算机的普及 科技的发展做出了不可磨灭的功绩 也慢慢的成为人们最依赖的操作系统 在中国 90 以上的办公环境都是Windows 学校和各种培训班的培训内容也
  • 我的开源项目-RtspServer

    项目地址 GitHub传送门 如果你对如何实现一个RTSP服务器感兴趣 可以看这 从零开始写一个RTSP服务器专栏 文章目录 一 项目介绍 二 功能介绍 三 开发环境 四 使用方法 4 1 传输音视频文件 4 2 采集V4L2摄像头 4 3
  • 网络流媒体(七)———RTSP

    RTSP协议介绍 RTSP协议的一些分析 一 一些字符串函数的使用 RTSP协议的一些分析 二 printf类似函数 sscanf以及log保存到内存中 printf输入重定位 1 简介 DSP产生的媒体流需要通过网络传送到客户端 如图1
  • wireshark提取视频数据之RTP包中提取H264和H265

    wireshark提取视频数据之RTP包中提取H264和H265 文章目录 wireshark提取视频数据之RTP包中提取H264和H265 1 背景 2 提取前工作 3 H264视频从RTP包中提取步骤 4 H265视频从RTP包中提取步
  • NV21、NV12、YV12、RGB565、YUV等颜色编码格式区别和接口设计探讨

    NV21 NV12 YV12 RGB565 YUV扫盲 NV21 NV12 YV12 RGB565 YUV分别是不同的颜色编码格式 这些颜色编码格式各有特点 适用于不同的应用场景 选择合适的颜色编码格式取决于具体的需求和环境 NV21 NV
  • GB28181-2022注册注销基本要求、注册重定向解读和技术实现

    规范解读 GB28181 2022注册 注销基本要求相对GB28181 2016版本 做了一定的调整 新调整的部分如下 更改了注册和注销基本要求 见 9 1 1 2016 年版的 9 1 1 1 增加对NAT模式网络传输要求 宜增加TCP传
  • WebRTC建立会话流程分析

    WebRTC建立会话流程总结 了解如何运行PeerConnection Demo后 熟悉运行流程可以做为深入学习WebRTC的切入点 本节重点解释客户端双方建立会话时交互的主要信令 控制会话的文本协议 和与信令相关的 WebRTC API
  • Android平台GB28181设备接入端如何实时更新经纬度实现国标平台侧电子地图位置标注

    技术背景 我们在做GB28181设备接入端的时候 其中有个功能 不难但非常重要 那就是GB28181实时位置的订阅 mobileposition subscribe 和上报 notify 特别是执法记录仪 智能安全帽 车载终端等场景下 现场
  • [mpeg4]mpeg4码流分析

    基于内容的AV编码 以前AV信息被看作纯粹的数据 编码时没有结合自身包含的内容 例如视频序列被认为是象素的组合 MPEG 4采用了对象的概念 不同的数据源被视作不同的对象 分别编码 数据的接收者不再是被动的 他可以对不同的对象进行自己的操作
  • RTP和RTCP详解

    1 RTP和RTCP详解 文章目录 1 RTP和RTCP详解 1 1 概述 1 2 RTP协议详解 1 3 RTCP协议详解 1 1 概述 在流媒体相关的领域 我们进场会看到RTP RTCP 其用于流式传输的最常见的码流传输协议 位于传输层
  • Android平台GB28181设备接入端如何调节实时音量?

    我们在对接Android平台GB28181设备接入端的时候 有开发者提出这样的疑惑 如何调整设备接入端的实时音量 实际上 这块我们前几年在做RTMP直播推送模块的时候 已经发布了相关的接口 这里再回顾下 SmartPublisherJniV
  • ffmpeg命令行map参数的使用

    介绍 理解 map参数的最好办法就是想像一下怎么去告诉ffmpeg你要从源文件中选择 拷贝哪个流到输出文件 输出文件的stream顺序取决于在命令行中 map的参数顺序 下面有一些例子 默认 默认操作 没有指定map参数 比如 ffmpeg
  • Android前端音视频数据接入GB28181平台意义

    技术背景 在我们研发Android平台GB28181前端音视频接入模块之前 业内听到最多的是 如何用Android或者Windows端 在没有国标IPC设备的前提下 模拟GB28181的信令和媒体流交互流程 实现GB28181整体方案的测试
  • Java中进行H264数据的I帧判断

    要判断从编码器中获取到的一帧Byte数组是I帧还是P帧 首先需要了解H264数据的基本格式 I帧 帧内编码 P帧 前向预测编码 与前一个I帧比较差异 B帧 双向预测编码 与前后帧比较差异 H264流 首帧数据为SPS和PPS 后面为IPPP
  • GB/T 28181联网系统通信协议结构和技术实现

    技术回顾 在本文开头 我们先一起回顾下GB T28181联网系统通信协议结构 联网系统在进行视音频传输及控制时应建立两个传输通道 会话通道和媒体流通道 会话通道用于在设备之间建立会话并传输系统控制命令 媒体流通道用于传输视音频数据 经过压缩

随机推荐

  • 高数【求导】--猴博士爱讲课

    第三课 求导 1 5 照公式求导 常见的求导 2 5 隐函数求导 例 1 若 y y
  • spring Aop嵌套调用的解决办法

    众所周知 Spring AOP在同一个类里自身方法相互调用时是无法拦截的 问题示例代码 public String say String a System out println say a a say2 a return a a publ
  • px、em、rem、rpx 用法 与 区别

    这篇文章记录前端 包含小程序 开发中常用到的几个单位 px em rem rpx 的区别和用法 px px像素 Pixel 相对长度单位 像素px是相对于显示器屏幕分辨率而言的 PX特点 1 IE无法调整那些使用px作为单位的字体大小 2
  • 消息中间件 RocketMQ 源码解析:Message拉取&消费(上)

    摘要 原创出处 http www iocoder cn RocketMQ message pull and consume first 芋道源码 欢迎转载 保留摘要 谢谢 本文主要基于 RocketMQ 4 0 x 正式版 1 概述 2 C
  • std::vector push_back报错Access violation

    C C code 1 2 3 4 5 6 7 8 9
  • 简单聊聊FPGA的一些参数

    笔者 E林1010 在上一篇中 我们已经知道了 FPGA的几个主流厂家和其中Intel家族中FPGA的系列的分类 上一篇文章链接 https mp weixin qq com s 1YufdRZ3Kvvk1znDGu69Og 本文微信公众号
  • word无法显示图片的问题终于搞定!oh yeah!

    我的word中的图片只显示一个方框 这个问题困扰我有一段时间了 今天终于搞定 原因如下 Word中不能显示公式 问 在Word 2003中编辑好的公式无法显示 只显示为一个方框 该怎么办 答 Word把使用公式编辑器输入的公式作为图形处理
  • SPECCPU 2017测试指导

    一 依赖包下载安装 安装前需要安装依赖包 可通过本地源进行安装 yum install gcc gfortran 离线场景下需要外网下载好后传到本地再安装 Deepin gfortran安装包手动安装3个gfortran的包 可选 yum
  • UDS应用层协议解析(史上最全)

    UDS应用层协议解析 UDS应用层协议解读 下 诊断服务分类 基础服务类 0x10 诊断会话模式 任何会话模式切换至默认会话模式时 非默认会话模式下设置的状态需要reset 28服务 85服务设置的状态需要恢复至默认状态 27服务解锁状态需
  • Win平台搭建WordPress环境

    Win平台搭建WordPress环境 WordPress是一个开源流行的个人信息发布平台 使用PHP编写 现在有众多的网站都使用WordPress来搭建的 同时WordPress还提供了大量的插件 能够帮助人们搭建个性化的网站 安装PHP
  • 在IntelliJ IDEA上使用Maven创建Spring项目HelloWorld

    因为IDEA自带Maven插件 所以使用IDEA是不需要在下载Maven的文件的 也可使用自己下载的Maven Spring我们则是通过Maven来下载构建 所以不需要下载jar包的 大神勿喷 请自行绕道 本博客面向第一次接触spring的
  • 使用Python绘制语音信号的波形图

    improt library import numpy as np import wave import pylab as pl download open souce audio in http www voiptroubleshoote
  • (一)基于物联网的智能安防监控机器人2207231212569

    基于物联网的智能安防监控机器人2207231212569 项目摘要 机器人是人类一直期待的东西 但自动化的东西有点不同 理想情况下 机器人能够做的事情比自动化机器人想做的要多得多 自动化机器人希望实现监控和制造商想要实现的另一主要可用性 但
  • 【六袆 - Dubbo】Dubbo服务的简单调用;

    这里写目录标题 1 Dubbo服务的基本调用过程 1 1在Java中定义dubbo服务 以interface接口的方式 1 2 Provider提供服务的具体实现 并声明为dubbo服务 1 3 Consumer使用dubbo服务 1 Du
  • ArrayList LinkedList Set HashMap介绍

    在Java中提供了Collection和Map接口 其中List和Set继承了Collection接口 同时用Vector ArrayList LinkedList三个类实现List接口 HashSet TreeSet实现Set接口 直接有
  • 11-13 输入输出流的位置

    1 获取文件流的读取位置 使用 ftell 函数可以获取当前文件流的读取位置 其返回值为当前位置距 0 位置的字节数 文件以二进制形式打开后 默认从 0 位置开始读取 读取一定字节后 读取位置会向后推移该字节数 例如下面的代码 未读取时 p
  • Java中FileInputStream简介说明

    转自 Java中FileInputStream简介说明 FileInputStream简介说明 FileInputStream对象的功能用于从文件中读取数据 我们可使用new 关键字创建此对象 FileInputStream功能 用于从文件
  • C++报错 invalid operands to binary expression

    C 报错 invalid operands to binary expression c 为什么加 const 就解决了 invalid operands to binary expression c 为什么加 const 就解决了 inv
  • 四种IO模型

    四种IO模型 目录 一 什么是IO 二 阻塞IO 三 非阻塞IO 四 信号驱动IO 五 异步IO 目录 一 什么是IO 对于IO的简单理解 我们首先通过两个数据之间的交互过程来理解什么是IO 向上面这样数据从对应的发送缓冲区发送到对应的接受
  • 视频中的I帧、B帧、P帧

    视频文件都是一帧一帧存储的 为了使文件的大小减小 通常会对文件进行压缩 mpeg4 MP4 文件中的每一帧开始都是固定的 00 00 01 b6 那么在接下来的每一帧分别是什么帧呢 I帧 B帧 P帧 一般在这固定帧的后面2bit就是标志是什