什么是 I 帧,它们会影响视频大小吗?
What are I-frames and do they affect the video size?
定义视频的参数有多个,您可能知道它们是 frame rate
、bit rate
、resolution
、...等等。
我注意到有一些我不知道的新参数,包括 B-frames
和 I frames
调用的参数。
我试图了解我正在实施的自定义视频捕获中的 I-intervals
,这就是我得到的:
I-区间
I 间隔是视频帧之间的间隔,它们以秒为单位相互关联。所以他们要么相距 1 秒,要么相距 2 秒,要么相距 3 秒....
当我对我的视频进行编码并将 I Interval 设置为(2 秒或 1 秒)时,我注意到在媒体控制器控制下输出视频无法正确定位。
当我编码我的视频并将 I Interval 设置为(0 秒)时,我注意到视频确实正确地寻找但视频的大小增加了。
问题:
这些 I 间隔是什么?为什么它们会影响视频的大小和搜索?
I帧设置为0秒是不是错了?
基础知识
H264压缩格式是一种帧间预测格式。很简单,要完成并显示一个框架,需要其他框架存储的信息。
大多数基本帧是 I 表示独立,P 表示预测,B 表示双向帧。
I 帧,通常也称为关键帧,是完整的帧,不需要其他帧的任何数据。
P 帧使用之前帧的数据。
最后,B 帧可以同时使用之前和未来的帧数据
回到问题
现在大部分事情应该都清楚了。
大小增加是因为I帧是最不可压缩的,你可以把一个全I帧的视频想象成把jpg图片串起来。
搜索受到影响,因为一些玩家搜索到搜索位置的前一个 I 帧并简单地从那里开始播放,因为无论如何他们必须从那里解码以产生正确的视觉效果。
把I-frame间隔设置为0没有错,其实很常见。
定义视频的参数有多个,您可能知道它们是 frame rate
、bit rate
、resolution
、...等等。
我注意到有一些我不知道的新参数,包括 B-frames
和 I frames
调用的参数。
我试图了解我正在实施的自定义视频捕获中的 I-intervals
,这就是我得到的:
I-区间
I 间隔是视频帧之间的间隔,它们以秒为单位相互关联。所以他们要么相距 1 秒,要么相距 2 秒,要么相距 3 秒....
当我对我的视频进行编码并将 I Interval 设置为(2 秒或 1 秒)时,我注意到在媒体控制器控制下输出视频无法正确定位。
当我编码我的视频并将 I Interval 设置为(0 秒)时,我注意到视频确实正确地寻找但视频的大小增加了。
问题:
这些 I 间隔是什么?为什么它们会影响视频的大小和搜索?
I帧设置为0秒是不是错了?
基础知识
H264压缩格式是一种帧间预测格式。很简单,要完成并显示一个框架,需要其他框架存储的信息。
大多数基本帧是 I 表示独立,P 表示预测,B 表示双向帧。
I 帧,通常也称为关键帧,是完整的帧,不需要其他帧的任何数据。
P 帧使用之前帧的数据。
最后,B 帧可以同时使用之前和未来的帧数据
回到问题
现在大部分事情应该都清楚了。 大小增加是因为I帧是最不可压缩的,你可以把一个全I帧的视频想象成把jpg图片串起来。
搜索受到影响,因为一些玩家搜索到搜索位置的前一个 I 帧并简单地从那里开始播放,因为无论如何他们必须从那里解码以产生正确的视觉效果。
把I-frame间隔设置为0没有错,其实很常见。