版权声明:本文为博主原创文章未经本人许可不得用于商业用途及传统媒体;个人或网络媒体转载请注明出处;若本文侵犯了您的权益,请联系本人本人将会在第一時间删除侵权文章! /lizhijian21/article/details/
在对H264进行编解码分析时,碰到一个完整视频帧被切分成多个Slice用于网络媒体传输的情况而且接收端进行解码时需要一個完整帧(FFmpeg解码不需要拼接,内部已实现)因此怎么拼接多个Slice呢?
对于H264视频流中关于NAL Unit句法、Slice Header结构等不是本文讲述的重点相关资料可在网上查询,但需要对H264流媒体协议格式中的AVCC及Annex B格式有一定了解本文主要以Annex B视频格式协议讲解。
若完整的视频帧未被切分成多个slice时可直接被解碼成YUV或RGB数据,但是当切分成多个slice需要根据first_mb_in_slice计算每个帧片所在位置。
0x63则与上0x80为0x0,则表示不是第一片(不是第一个片时的值在上一包的基础仩会出现递增)可归纳规律(假设的数据):
以上就是合并的基本思路,一般情况下I帧不会被切分成多个slice而是以完整帧进行传输,P帧多數情况下存在切分的情况