关于FFMPEG 中I帧、B帧、P帧、PTS、DTS
1 基本概念
1.1 名词解释
媒体:是表示,传输,存储信息的载体,常人们见到的文字、声音、图像、图形等都是表示信息的媒体。
多媒体: 是声音、动画、文字、图像和录像等各种媒体的组合,以图文并茂,生动活泼的动态形式表现出来,给人以很强的视觉冲击力,留下深刻印象
多媒体技术:是将文字、声音、图形、静态图像、动态图像与计算集成在一起的技术。它要解决的问题是计算机进一步帮助人类按最自然的和最习惯的方式接受和处理信息。
多媒体文件:是既包括视频又包括音频,甚至还带有脚本的一个集合,也可以叫容器;
媒体编码:是文件当中的视频和音频所采用的压缩算法。也就是说一个avi的文件,当中的视频编码有可能是A,也可能是B,而其音频编码有可能是1,也有可能是2。
转码 :指将一段多媒体包括音频、视频或者其他的内容从一种编码格式转换成为另外一种编码格式
视频:连续的图象变化每秒超过24帧(Frame)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面,看上去是平滑连续的视觉效果,这样连续的画面叫做视频
音频 :人类能听到的声音都成为音频,但是一般我们所说到的音频时存储在计算机里的声音
帧:帧就是一段数据的组合,它是数据传输的基本单位。就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。 一帧就是一副静止的画面,连续的帧就形成动画,如电视图像等。
1.2 I、P、B帧概念简述
I帧表示关键帧,又称intra picture,I帧画面完整保留,解码时只需要本帧数据就可以完成(因为包含完整画面)。
1.3 I、P、B帧特点分析
1).它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码及传输;
5).I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量);
6).I帧是帧组GOP的基础帧(第一帧),在一组中只有一个I帧;
2).P帧采用运动补偿的方法传送它与前面的I或P帧的差值及运动矢量(预测误差);
3).解码时必须将I帧中的预测值与预测误差求和后才能重构完整的P帧图像;
4).P帧属于前向预测的帧间编码。它只参考前面最靠近它的I帧或P帧;
5).P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧;
2).B帧传送的是它与前面的I或P帧和后面的P帧之间的预测误差及运动矢量;
4).B帧压缩比最高,因为它只反映丙参考帧间运动主体的变化情况,预测比较准确;
2 PTS, DTS
2.1 概念
PTS:Presentation Time Stamp。PTS主要用于度量解码后的视频帧什么时候被显示出来,DTS主要用于视频的解码,在解码阶段使用。
GOP:两个I frame之间形成一个GOP,在x264中同时可以通过参数来设定bf的大小,即:I 和p或者两个P之间B的数量。
如果有B frame 存在的情况下一个GOP的最后一个frame一定是P.
转自:http://blog.csdn.net/real_myth/article/details/43530991
关于FFMPEG 中I帧、B帧、P帧、PTS、DTS相关推荐
- ffmpeg 将拆分的数据合成一帧_FFmpeg + OpenGLES 实现视频解码播放和视频滤镜
FFmpeg 开发系列连载: FFmpeg 开发(01):FFmpeg 编译和集成 FFmpeg 开发(02):FFmpeg + ANativeWindow 实现视频解码播放 FFmpeg 开发(03 ...
- ffmpeg将视频流转化成图片帧,将图片帧转化为视频(基本无损)
ffmpeg将视频流转化成图片帧,将图片帧转化为视频(基本无损) 其中-r 和-framerate 都是代表帧率(这个属性属于图片的属性,需要放在图片之前) -s 控制输出格式大小 本人在一个视频稳定 ...
- ffmpeg 将拆分的数据合成一帧_FFmpeg 简单合成 MP4 :视频解封与重新封装
教程代码:[Github传送门:https://github.com/ChenLittlePing/LearningVideo] 目录 一.Android音视频硬解码篇: 二.使用OpenGL渲染视频 ...
- H264中I、B、P帧编码原理及pts和dts分析
转载自:https://blog.csdn.net/bingqingsuimeng/article/details/9982107 --前言-- H264是新一代的编码标准,以高压缩高质量和支持多种网 ...
- 编程中什么叫做元素什么叫帧_R编程中的数据帧
编程中什么叫做元素什么叫帧 Let's continue in our R programming tutorial series, and understand data frames in R. ...
- C++ 函数调用过程中栈区的变化——(栈帧、esp、ebp)
C++ 函数调用过程中栈区的变化 1.C++ 函数调用过程中栈区的变化 1.1.程序的内存分布 1.2.函数调用过程中栈的变化解析 参考 1.C++ 函数调用过程中栈区的变化 1.1.程序的内存分布 ...
- H.264/AVC 中的宏块、片、帧
上篇文章最后,因为编辑的原因,有一点没有补充.就是最后给出的维基百科的FMO彩图,其中的Type 0 并不是规则0中的交错片组,而是不使用FMO情况下的,标准的H.264像片,而Type 1 至Typ ...
- android 张口逐帧动画,Android中实现一个简单的逐帧动画(附代码下载)
场景 Android中的逐帧动画,就是由连续的一张张照片组成的动画. 效果 注: 实现 首先准备一组不同表情的照片,放在res/drawable下,然后在此目录下新建动画资源文件fairy.xml 这 ...
- 【Android笔记25】Android中的动画效果之逐帧动画
这篇文章,主要介绍Android中的动画效果之逐帧动画. 目录 一.逐帧动画 1.1.什么是逐帧动画 1.2.逐帧动画的使用 (1)创建drawable动画资源<
最新文章
- To call `multi_gpu_model` with `gpus=2`, we expect the following devices to be available: [‘/cpu:0‘,
- vue 传递多行数据_vue 数据传递的方法
- html长图转换成pdf,将长 html 导入拆分 PDF
- Ext js 2.0 Overview(3) 组件生命周期
- java 8 lamda,Java8中你可能不知道的一些地方之Lambda表达式实战
- SQL Server高级查询之常见数据库对象(视图)第五章节
- autowired 静态方法使用_静态方法中调用Spring注入过程解析
- CSS学习总结(1)——基本介绍
- nginx通过upstream实现负载均衡
- 2k显示无法连接服务器,NBA2K18无法连接服务器怎么办 无法连接服务区解决方法一览...
- 百度时间显示时间_百度SEO需要多长时间以及如何加快排名?
- c#语言输出字符串长度,C#获取字符串长度(string.Length)
- 表格thead设置border无效的原因之一
- 疫情地图 | 如何制作百色新冠疫情分布行政区地图
- 06-golang布尔类型
- pyecharts将html转换图片,如何把pyecharts的炫酷延续到PPT里?
- 2021CCPC新疆省赛题解BDEFGHIJK
- wgt包更新时会下载但是不会安装
- 西门子PLC走马灯程序
- 絮絮叨叨的写一年毕业经历
热门文章
- GET与POST千古疑问---kalrry
- 1087 All Roads Lead to Rome (30 分)
- 梦想是一个天真的词,实现梦想是一个残酷的词。
- 段错误:SIGSEGV
- 如何拿到互联网大厂(SP/SSP)offer?
- ss 管理系统 php 源码,基于SSM框架下的B/S服装连锁店管理系统,源码分享
- 图形学基础笔记I:直线和圆的光栅算法、中点线算法、中点圆算法
- html,js 中如何屏蔽div子元素点击事件会触发父元素的点击事件($event.cancelBubble=true;)
- c#.net SQL存储过程直接传表;用户定义表类型的表
- puzzle(1523)纪念碑谷2