假设从摄像头采集,采集顺序 1 2 3 4 5 ,最终编码结果是:1编码成I帧,2,3,4编码成B帧,5编码成P帧。
让我们来看下编码,存储以及解码,显示的具体步骤:
视频帧采集后,经过编码器encode以及mux成容器格式,编码和存储过程如下:
编码:
1)先编码 1,编成I帧
2)2,3,4准备编码成b帧,先缓存下来,记录下采集的时间点,后续作为pts基准
3)再编码 5,编成P帧,(注意5虽然先编码,dts相对2,3,4靠前,但是它的采集时间比2,3,4要晚,所以pts大于2,3,4)
4)编码 2, 3, 4 ,编成B帧
编码后立即经过mux写文件,所以存储顺序和编码顺序是一致的,编码后的顺序为(dts顺序)
1 5 2 3 4
I P B B B
视频保存下来后,如果通过player播放,需要解码和渲染,解码和显示的过程如下:
解码:(按照dts顺序)
1 5(参考1) 2(参考1,5) 3(参考1,5) 4(参考1,5)
解码后重新排序(按照pts),显示
1 2 3 4 5

关于视频编码I P B帧存储,编码,解码,显示顺序的理解相关推荐

  1. 视频编码基础:I帧、P帧 和 B 帧

    I 帧.P 帧和 B 帧的概念是视频压缩领域的基础.这三种帧类型在特定情况下用于提高编解码器的压缩效率.压缩流的视频质量以及流对传输和存储错误和故障的恢复能力. 在本文中,我们将了解 I 帧.P 帧和 ...

  2. 【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )

    FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 [FFmpeg]FFmpeg 相关术语简介 二 [FFmpe ...

  3. 视频教程-视频打包为MP4格式并存储到TF卡的实现-第7/11季-嵌入式

    视频打包为MP4格式并存储到TF卡的实现-第7/11季 互联网课程品牌<朱老师物联网大讲堂>创始人.精通U-Boot.Linux kernel移植及驱动程序开发;精通C.C++.Java. ...

  4. 音视频处理基础知识扫盲:数字视频YUV像素表示法以及视频帧和编解码概念介绍

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...

  5. 视频直播推流技术(MediaCodec硬编码+libRTMP,编码器),Demo - Android

    - aac audio_codec; h264,video_codec;25 framerate 25帧; - Camera-YUV帧序列-YUV帧预处理(镜像 缩放 旋转)-编码器-H264数据 从 ...

  6. 移动端实时音视频详解(三):编码和封装

    移动端实时音视频详解(三):编码和封装 视频编码是本系列一个重要的部分,如果把整个流媒体比喻成一个物流系统,那么编解码就是其中配货和装货的过程,这个过程非常重要,它的速度和压缩比对物流系统的意义非常大 ...

  7. 【转】数字音视频压缩编码标准及H.265的编码优势

    在制定数字音视频压缩编码标准的过程中,联合图像专家组(Joint Photographic Experts Group, JPEG).动态图像专家组(Moving Pictures Experts G ...

  8. (转)[视频压制/转换技术] I帧 B帧 P帧 IDR帧 等帧用途详细说明

    转:http://www.u2game.net/bbs/thread-46116-1-1.html 在视频压制.转换中,经常会看到:I帧 B帧 P帧 IDR帧 等名词,这里就是通用的解释一下这些帧的用 ...

  9. 阿里云 RTC QoS 及视频编码联合优化之切流编码

    如果要在两条分辨率不同的视频流之间切换,尽管这两条流的画面内容基本一样,但是由于两条流的参考帧不同,分辨率不同,目前所有的视频编码标准都无法做到利用帧间预测编码得到编解码匹配的结果,而帧内预测编码即 ...

  10. VTM配置并使用VTM对YUV视频帧进行编解码(基于windows系统)

    一.下载安装VTM H.266/VCC 参考软件VTM下载网址:https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM 这里我选择的Tags是VTM- ...

最新文章

  1. linux centos 网络 时间 日期 同步
  2. keras 实战系列之Self-Attention详细解析
  3. 2434: [Noi2011]阿狸的打字机
  4. centos7 zookeeper3.5.6单机伪集群部署
  5. 【离散数学】图的着色与对偶图
  6. Oracle性能调优
  7. 全量增量数据同步方法(Hive date_add date_sub)
  8. oracle j2ee数据库,J2EE连接远程Oracle数据库表
  9. 《21天学通C语言(第7版)》一6.6 课后研习
  10. 解决win8无法使用内置管理员账户打开
  11. wb在计算机知识里是什么意思,计算机二级考试内容是什么?
  12. HTML(简介及常用标签)
  13. 20164305 徐广皓《网络对抗》Exp9 Web安全基础实践
  14. ios面试题 看了就知道哪方面需要加强上机练习
  15. BAT文件的编写及使用
  16. 彻底解决高版本 mac Kernel_task占CPU问题
  17. 如何快速自动生成并定制报表
  18. nginx配置文件总结
  19. 字节跳动面试官这样问消息队列:高可用、不重复消费、可靠传输、顺序消费、消息堆积,我整理了下
  20. 洛谷 P1016 旅行家的预算

热门文章

  1. Tech.Ed盛大开幕 梁念坚致开幕辞
  2. tongweb7启动参数配置配置个人理解
  3. 语音合成论文优选STYLER: Style Modeling with Rapidity and Robustness via Speech Decomposition for Expressive
  4. modbusx协议讲解
  5. lol封号维护服务器,LOL玩家被封三年执着理论,腾讯客服是这样回复的
  6. 语音关键词检索实验小结
  7. 梦想遥不可及,现实寸步不离
  8. 有趣的微分方程传之可分离变量的微分方程
  9. java 校验 签名_使用JAVA实现签名验证示例程序详解
  10. 安卓刷java_安卓逆向刷题(攻防世界)