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

RTP标记位不存在时检测H264视频帧的结束

汪才
2023-03-14

RFC 3984 RTP有效载荷格式H264第5.1节说明了RTP标记位https://tools.ietf.org/html/RFC3984#第34页

解码器可以使用该位作为接入单元最后一个数据包的早期指示,但不得依赖该属性。

在我们的iOS应用程序中,只要检测到RTP标记位的设置,我们就可以发送一个完整的视频帧到H264硬件解码器,但是对于一些PBX,这个位没有设置,所以我们无法通过这种方式检测视频帧的结束。如果发送方未设置标记位,是否可以确定视频帧的结束?

共有1个答案

焦宏硕
2023-03-14

它对帧进行解码。当最后一个宏块被解码时,下一个NALU属于下一个au。

 类似资料:
  • 我可以看到视频播放在我的TextureView,但它是相当腐败。我已经验证了我正在以正确的顺序接收完整的数据包。我已经能够正确解析RTP头。我相信我的问题与SPS和PPS以及MediaCodec有关。 正如您所看到的,我没有从我的视频流中为MediaFormat提供SPS和PPS,而是使用了一个internet示例中的硬编码集。我试图找到解释如何从数据包中提取SPS和PPS的源,但没有找到任何东西

  • 我正在使用NvEnc对实时H264流进行编码,并尝试通过RTP将其作为“直播”(实际上是多播)发送。到目前为止,一切都很好,将h264转储到磁盘,甚至将flv写入磁盘进行调试都很好。使用MPlayer观看流时,发送原始UDP流也同样有效。至于流本身,它使用LOW_LATENCY预设,我只生成I和P帧(强制每60帧插入一个I帧,以及SPS/PPS)。NAL单元的创建也小于MTU-Size减去RTP标

  • 问题内容: 您如何检测HTML5 元素何时播放完毕? 问题答案: 您可以添加带有“ end”作为第一个参数的事件监听器 像这样 :

  • 应用程序创建的h264帧被发送到标准输出,在标准输出中,使用ffmpeg将该流重新复用为mp4,并将其传递给服务器,服务器根据请求将其传递给客户端。 这是个好办法吗?这甚至可能创建一个低延迟30fps视频流使用这种方法?

  • 我想用树莓派实时捕捉带有时间戳的视频帧。视频由USB摄像头使用python代码中的ffmpeg()函数制作。如何保存当前由USB摄像头在树莓派中制作的视频帧? 我尝试使用opencv的三个函数。cv2。VideoCapture可检测视频,保存帧。以下是代码,为简洁起见,未提及包含的库。 该代码保存了以前由网络摄像头制作的视频帧。它不保存当前由网络摄像头录制的视频帧。

  • 我已经创建了一个媒体播放器,它在表面视图上播放视频。视频完成后,视频的最后一帧仍保留在表面上。我想从表面移除视频帧,因为经过一些延迟后,另一个视频开始。 谁能帮助解决这个问题。 谢谢山贾因