我从IP摄像头处理H.264 RTP流。我使用的相机将每个I帧分成几个NAL单元,每个单元都被分成RTP包(开始和结束标志确定每个单元的尺寸,而不是帧的尺寸)。确定RTP流中H.264 I帧的末端
我怎么能知道帧传输何时完成,并且我有足够的数据来解压缩它?由于帧由多个单元组成 - 标志不能用于确定其结束。
我工作的大多数摄像机将每帧分割为RTP包,其中标志确定帧的开始和结束。所以我从这个等待结束标志的数据包中解压缩数据 - 这里是一个完整的框架。
NAL单元,我从这个摄像头获取的顺序是:
[NAL_UT_SPS]序列参数集+
[NAL_UT_PPS]图片参数集
[NAL_UT_SEI补充增强信息
[NAL_UT_IDR_SLICE] I帧图像数据的部件#1
[NAL_UT_IDR_SLICE]部分#2 e口帧图象数据
[NAL_UT_IDR_SLICE]零件编号的I帧的3图象数据
[NAL_UT_SLICE]第一P帧
[NAL_UT_SLICE]第二P帧
[ NAL_UT_SLICE]第三P帧
...
从该序列很明显,我可以结合[NAL_UT_SPS] + [NAL_UT_PPS] + [NAL_UT_SEI] + 3 * [NAL_U T_IDR_SLICE]合并为一个I帧,我将最近馈送给解码器。但是,我怎样才能确定有多少图片数据部分?我如何知道何时收到#X部分它不是序列中的最后一个?
任何想法?
谢谢您的回答。实际上,我强烈需要将NAL单元组合到相应的框架中。我需要的是关于如何确定帧中最后一个NAL单元的一些信息。我从这台相机获得的数据在上面编辑的问题中。 – paft 2013-02-25 06:18:49