H264 I帧 P帧
在H.264标准中,编码器会使用不同的帧,包括I帧,P帧以及其它的帧。
其中I帧包含全部独立的信息,也就是说可以对I帧进行解码,然后产生的内容就可以播放。由此可见,I帧就必须是视频流的第一帧,因为不存在这样的帧的话,那么久无法进行解码。因为包含了所有的视频信息,所以I帧所占的空间应该是比较大的。在我现在的这个项目中,就恰恰是因为第二个客户端连接上以后,没有收到第一个I帧,而导致崩溃的。
P帧(帧间预测编码帧)与之最近的I帧或者P帧进行编码才行,通常是在前一帧的信息上发生的改变上再加上一定的改变,这样的话,就使得P帧所占用的空间更小,方便传输,但是,这种情况下,也就造成了P帧对前面的帧的依赖,如果前面发生了帧丢失这类的事件,那么后面将会有比较明显的影响,甚至无法解码。