首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >h264参考帧

h264参考帧
EN

Stack Overflow用户
提问于 2012-06-08 09:44:21
回答 1查看 5.5K关注 0票数 3

我正在寻找一个在h264流中寻找参考帧的算法。我在不同的解决方案中看到的最常见的metod是找到IDR类型的访问单元、分隔符和NAL。不幸的是,我检查过的大多数溪流都没有IDR类型的NAL。我会很感激你的帮助。问候Jacek

EN

回答 1

Stack Overflow用户

发布于 2012-06-25 06:50:54

H264帧由一个名为startcode前缀的特殊标记分割,它要么是0x000x000x01,要么是0x000x000x000x01。两个启动码之间的所有数据都由H264语音中的NAL单元组成。因此,您要做的是在h264流中搜索startcode前缀。startcode前缀后面的字节是NAL头。NAL头的最低5位将给您NAL单元类型。如果nal_unit_type = 5,那么这个特殊的NAL单元就是一个参考框架。

就像这样:

代码语言:javascript
运行
复制
void h264_find_IDR_frame(char *buf)
{
    while(1)
    {
        if (buf[0]==0x00 && buf[1]==0x00 && buf[2]==0x01)
        {
            // Found a NAL unit with 3-byte startcode
            if(buf[3] & 0x1F == 0x5)
            {
                // Found a reference frame, do something with it
            }
            break;
        }
        else if (buf[0]==0x00 && buf[1]==0x00 && buf[2]==0x00 && buf[3]==0x01)
        {
            // Found a NAL unit with 4-byte startcode
            if(buf[4] & 0x1F == 0x5)
            {
                // Found a reference frame, do something with it
            }
            break;
        }
        buf++;
    }
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10946496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档