关于FFMPEG 中I帧、B帧、P帧、PTS、DTS

本文介绍了FFMPEG中视频压缩的I帧、P帧、B帧的概念及其特点,以及PTS和DTS在解码过程中的作用。I帧是关键帧,P帧基于前一帧,B帧则同时参考前后帧。PTS用于显示时机,DTS用于解码时机。理解这些概念有助于深入视频编码原理。

1 基本概念

1.1 名词解释

媒体:是表示,传输,存储信息的载体,常人们见到的文字、声音、图像、图形等都是表示信息的媒体。

多媒体: 是声音、动画、文字、图像和录像等各种媒体的组合,以图文并茂,生动活泼的动态形式表现出来,给人以很强的视觉冲击力,留下深刻印象

多媒体技术:是将文字、声音、图形、静态图像、动态图像与计算集成在一起的技术。它要解决的问题是计算机进一步帮助人类按最自然的和最习惯的方式接受和处理信息。

流媒体 :流媒体是指采用流式传输的方式在Internet播放的连续时基媒体格式,实际指的是一种新的媒体传送方式,而不是一种新的媒体格式(在网络上传输音/视频等多媒体信息现在主要有下载和流式传输两种方式)。流式传输分两种方法:实时流式传输方式(Realtime streaming)和顺序流式传输方式(progressive streaming)。

多媒体文件:是既包括视频又包括音频,甚至还带有脚本的一个集合,也可以叫容器

媒体编码:

### FFmpeg 中音视频编解码 I P 的工作原理 #### I (Intra Frame) I 是一种独立完整的图像,不依赖其他任何进行重建。这意味着每一个 I 都可以单独解码并显示出来。这种特性使得 I 成为随机访问的关键点,在流媒体播放或视频编辑过程中非常重要。 对于 H.264 编码而言,I 不仅包含了当前时刻的画面信息,还可能携带了一些额外的数据用于初始化后续的预测过程[^3]。 ```bash ffmpeg -i input.mp4 -vf "select=eq(pict_type\,I)" -vsync vfr output_frames_%03d.png ``` 上述命令可以用来提取输入文件中的所有 I ,并将其保存为一系列 PNG 图像文件。 #### P (Predicted Frame) P 通过向前参考之前的某个已知(通常是最近的一个 I 或者 P )来进行运动补偿预测,从而减少冗余信息量。因此,要正确地解码一个 P ,必须先获得它所参照的那个前向的内容。由于只需要单方向上的参考关系,所以处理起来相对简单一些。 当存在 B 时,P 的时间戳属性会表现出特定的行为模式:其呈现时间戳(PTS)大于解码时间戳(DTS)。 #### 使用 FFmpeg 进行操作 为了更好地理解管理这些不同类型的,可以通过 FFmpeg 提供的各种选项来查看或修改它们: - **获取类型统计**: 要分析一段视频里各类型的数量分布情况,可执行如下指令: ```bash ffmpeg -i video.mp4 -an -vf showinfo -f null - ``` 此命令会在控制台输出每一的信息,其中包括了该所属的具体类别(I/P/B)。 - **强制设置关键间隔** 如果希望调整输出视频中 I 出现频率的话,则可以在编码阶段指定 `g` 参数值作为 GOP 大小,也就是两个相邻 I 之间的最大距离: ```bash ffmpeg -i source.avi -c:v libx264 -g 60 destination.mp4 ``` 上述例子设定了每隔 60 个就会插入一个新的 I
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值