很多朋友都关心这一块技术,其实相当的简单,了解到视频的祯与关键祯就OK啦。
得到RtmpType之后,将主体数据(data)取出,第一个字节就是区分祯类型的。
long oldPos = data.Position;
byte firstByte = data.Get();
data.Position = oldPos;
int frameType = (firstByte & (byte)VideoFrame.MASK_VIDEO_FRAMETYPE) >> 4;
if (frameType == (byte)VideoFrame.FLAG_FRAMETYPE_KEYFRAME)
{
_frameType = FrameType.KEYFRAME;
}
else if (frameType == (byte)VideoFrame.FLAG_FRAMETYPE_INTERFRAME)
{
_frameType = FrameType.INTERFRAME;
}
else if (frameType == (byte)VideoFrame.FLAG_FRAMETYPE_DISPOSABLE)
{
_frameType = FrameType.DISPOSABLE_INTERFRAME;
}
else
{
_frameType = FrameType.UNKNOWN;
}
写半截,有朋友在这儿问到我再写