Streaming 如何通过RTMP发送h264的PTS

Streaming 如何通过RTMP发送h264的PTS,streaming,h.264,rtmp,pts,Streaming,H.264,Rtmp,Pts,我已经做了很多搜索,但无法获得足够的信息来说明这一切到底是如何结合在一起的 所以我知道H264帧包含一些SPS和PPS信息,您可以从中提取帧速率。但是PTS实际上是在PES中编码的?那么,如何在RTMP中传输PES 我使用librtmp和一个RTMPServer来推送h264帧。服务器是否只向客户端发送与我使用librtmp发送的相同的数据包?RTMP有自己的时间戳和帧速率,就像它发送的数据包一样。那么RTMP客户端是否不需要从h264帧等中提取帧速率,而只需要依赖RTMP数据包 如果有人能解释

我已经做了很多搜索,但无法获得足够的信息来说明这一切到底是如何结合在一起的

所以我知道H264帧包含一些SPS和PPS信息,您可以从中提取帧速率。但是PTS实际上是在PES中编码的?那么,如何在RTMP中传输PES

我使用librtmp和一个RTMPServer来推送h264帧。服务器是否只向客户端发送与我使用librtmp发送的相同的数据包?RTMP有自己的时间戳和帧速率,就像它发送的数据包一样。那么RTMP客户端是否不需要从h264帧等中提取帧速率,而只需要依赖RTMP数据包


如果有人能解释这一切是如何协同工作的,那就太酷了。我最终尝试发送有用的定时信息,这些信息可以在客户端解析为绝对时间。

Rtmp使用FLV发送数据。FLV有一个32位(技术上是24+8)字段来设置DTS。然后它有一个单独的字段来设置CTS,CTS=PTS-DTS

嗯,我很迷路。你能给我指一些我能读到的资源吗?pts如何与标题中的rtmp timstamps相关?音频和视频的pts同步使用pes中的pts而不是rtmp时间戳?pts是时间戳。rtmp中没有PES。只有mpegts具有PES。RTMP使用FLV。好的,我正在看规范文件。这似乎都在块头中。FLV指定第一个标记始终具有时间戳0。这就是为什么我用librtmp发送流。但是rtmpserver如何将信息发送到客户端?客户端可以随时连接,服务器是否需要重新计算所有时间戳并从0开始?这意味着我们不能真正在流中以绝对时间编码,而是依赖于客户端-服务器握手时间上的时间同步?不。流应该从零开始,这样当客户端连接时,它就知道自流开始以来经过了多少时间。你可以输入任何你想要的起始值,玩家只会认为流的长度比实际的要长。我说的是同样的事情。我要告诉你们的是,doc是在5月份之后编写的,我们是通过逆向工程开发的。大多数服务器都不在乎。