当前位置: 首页 > 知识库问答 >
问题:

碎片整理H264 NAL流(最初为1722个avb数据包)

滑弘扬
2023-03-14
    null

共有1个答案

尹雅健
2023-03-14

首先,我假设你的分析是在NAL单元上进行的。下表显示了NAL单元类型的部分列表。在主要的H264编码器实现中,您可能只发现NAL单元类型1、5、6、7和8。你可能很少能找到其他的NAL单位。

访问单元分隔符:

如果流具有NAL单元编号9,即访问单元分隔符,那么您的问题就更容易解决了。所有的NAL单元,在2个接入单元delmiter NAL单元之间,属于单个视频帧。由于此NAL单元类型是可选的,大多数编码器通常跳过嵌入此NAL单元。所以,很可能你在你的流中找不到这个NAL单元

这3个NAL单元不直接参与去帧化,但需要它们来进行解码操作。在大多数情况下,这两种类型在一个序列中只出现一次,即在视频序列的开始。

NAL单元-1和5:

上图由H264标准的2个部分表(仅在此相关)组合而成。

一旦您解码NAL报头(1字节信息),您将弄清楚它是NAL类型1还是5(切片NAL单元)。一旦发现NAL是一个切片单元,解析流中的“first_mb_in_slice”符号(该信息紧跟在1字节的NAL报头信息之后)。如果设置了这个标志,那么这就是视频帧的第一个切片。以下NAL单元将在当前视频帧的最后一片之前将此标志设置为零。如果发现片NAL单元的“first_mb_in_slice”标志被设置,则意味着这个新片属于下一个视频帧,并且是下一个视频帧的开始。

 类似资料:
  • 主要内容:压实问题我们知道动态分区受到外部碎片的影响。 但是,这可能会导致一些严重的问题。 为了避免压缩,我们需要更改规则,该规则指出进程无法存储在内存中的不同位置。 也可以使用压缩来减少外部碎片的可能性。 在压缩过程中,所有的空闲分区都是连续的,所有加载的分区都集中在一起。 通过应用这种技术,可以将更大的进程存储在内存中。 合并可用分区,现在可以根据新进程的需要分配这些分区。 这种技术也称为碎片整理。 如上图所示

  • 本文向大家介绍详解golang碎片整理之 fmt.Scan,包括了详解golang碎片整理之 fmt.Scan的使用技巧和注意事项,需要的朋友参考一下 本文介绍了从golang语言中fmt包从标准输入获取数据的Scan系列函数、从io.Reader中获取数据的Fscan系列函数以及从字符串中获取数据的Sscan系列函数的用法。 Scan系列 go语言fmt包下有fmt.Scan、fmt.Scanf

  • null 两者都有一些令人困惑的小区别(见下文)。 但首先让我们来看看简单的部分。正如我从摄像头看到的,有SPS和PPS数据包发送。所有剩余的数据包都是分段帧,有没有索引。 对于所有没有帧的数据包(在我的例子中只有NALUnitType 7和8),我去掉了RTP报头(12字节),并在前面添加起始字节3x0字节和1 x1(00 00 00 01)。 如果设置了起始位,则有一个新的有效载荷报头构造为:

  • 一、简介 碎片是什么?把一个完整的页面理解成由许多块组成,而每一个“块”我们就可认为就是一个”碎片“! 这样,我们在页面放置一些碎片,在以后的维护维护中,只需要对碎片进行维护! 碎片功能支持完全手动更新,并且可以搜索内容,可恢复数据至任何历史版本,常用于专题制作和首页频繁更新的内容。 您可以在模板中直接插入 {pc:block pos="index_block_1"}{/pc} 格式的碎片标签,然

  • 我已经读过一些关于动画片和多个消费者的问题,但我仍然不明白它是如何工作的。 我的用例:我有一个只有一个分片的运动流。我想使用不同的lambda函数使用这个分片,每个函数都独立。就像每个lambda函数都有自己的分片迭代器一样。 有可能吗?是否设置多个lambda使用者(基于流)从同一流/碎片读取?

  • --编辑-- 值得一提的是,我在我的应用程序中同时使用了KCL和KPL。