问题
通过海思芯片编码后,将编码的数据通过UDP网口发送到UDP 服务端,UDP服务端收到后保存成文件。
保存的文件有时候用VLC软件可以打开。有时候不能打开,同时用Elecard HEVC Analyer工具打开,发现VLC不能打开时丢帧。如下图,实际为858帧,而此处只有846帧。
分析
UDP包丢包
实际统计,收发两端一致。
海思编码芯片异常
通过 /proc/h265 节点查看,编码没有问题。
H265 协议
和 H264 的码流结构一样,也是通过启始码(0x000001
或者0x00000001
)进行分割压缩数据,每一个称为NAL单元(NAL Unit,简称NALU
)。NALU有不同的类型,主要是对数据内容进行区分。
对于一个码流文件来说,和H264一样,有一系列的NALU的类型定义,可以分为VPS,SPS,PPS,SEI,I帧,P帧 6种类型。码流结构如下所示:
启始码+VPS+启始码+SPS+启始码+PPS+启始码+SEI+启始码+I帧+启始码+P帧+启始码+P帧+.....
如上就是一个图像系列的组成,为什么这么说呢? 一