为什么 SPS 和 PPS 以不同的块流 ID 发送?
Why SPS and PPS sents in different chunk stream id?
我正在使用 RTMP。我需要编写一个程序来捕获 RTMP 数据包,解析它并将 RTMP 视频保存在 flv 容器中。为此,我需要在流中发送的 SPS 和 PPS 开始。但是这些数据可能会以不同的流发送。例如:
- SPS 和 PPS 在流 6 中发送,视频数据在流 7 中发送。
- SPS、PPS 和视频数据来自流 7。
如果我有 3 个视频流而只有 1 个流包含 SPS 和 PPS,我如何知道哪个流属于 SPS 和 PPS?
"How do I know which stream belongs to SPS and PPS if i have 3 video streams and only 1 stream which contain SPS and PPS?"
SPS 和PPS 仅用于设置MPEG 解码器。一旦设置为处理一个流,您就可以更改为解码文件中的其他流,而无需任何新的 SPS 和 PPS。
除非这 3 个流完全不同(即:每个流具有不同的图片尺寸和不同的帧速率等)。在这种情况下,您将需要新的 SPS 和 PPS。
正如我在我的案例中注意到的那样,我们在 RTMP 中获得的第一个视频帧具有这两个值。当您将其存储为单个 FLV 文件时,您可以将其作为第一帧。
但如果您想将其拆分为间隔更短的较小文件(例如,使用 DASH 进行流式传输),则需要将第一帧粘贴到您创建的每个拆分文件中。这可以在 ffmpeg
的帮助下自动完成。在这种情况下,如果您想在该 RTMP 客户端中包含代码,您可以按照此操作。否则您可能无法播放除第一个以外的拆分文件。
正如我上面提到的,第一帧转换为十六进制字符串:
17 - It represents 1 - Keyframe
7 - H.264
00 00 00 00 01 64 00 28 ff e1 00 - ?
1a - Size of the SPS
67 64 00 28 ac d9 40 78 02 27 e5 84 00 00 03 00 04 00 00 03 00 f2 3c 60 c6 58 - SPS
01 - According to AMF0 01 represent number
00 04 - Size of PPS
68 ef bc bc - PPS
(我不确定- ?
后面的十六进制代表什么。如果有人可以填写那部分,请随时发表评论,我会更新我的答案。)
详细了解什么是SPS:Refer Here
我正在使用 RTMP。我需要编写一个程序来捕获 RTMP 数据包,解析它并将 RTMP 视频保存在 flv 容器中。为此,我需要在流中发送的 SPS 和 PPS 开始。但是这些数据可能会以不同的流发送。例如:
- SPS 和 PPS 在流 6 中发送,视频数据在流 7 中发送。
- SPS、PPS 和视频数据来自流 7。
如果我有 3 个视频流而只有 1 个流包含 SPS 和 PPS,我如何知道哪个流属于 SPS 和 PPS?
"How do I know which stream belongs to SPS and PPS if i have 3 video streams and only 1 stream which contain SPS and PPS?"
SPS 和PPS 仅用于设置MPEG 解码器。一旦设置为处理一个流,您就可以更改为解码文件中的其他流,而无需任何新的 SPS 和 PPS。
除非这 3 个流完全不同(即:每个流具有不同的图片尺寸和不同的帧速率等)。在这种情况下,您将需要新的 SPS 和 PPS。
正如我在我的案例中注意到的那样,我们在 RTMP 中获得的第一个视频帧具有这两个值。当您将其存储为单个 FLV 文件时,您可以将其作为第一帧。
但如果您想将其拆分为间隔更短的较小文件(例如,使用 DASH 进行流式传输),则需要将第一帧粘贴到您创建的每个拆分文件中。这可以在 ffmpeg
的帮助下自动完成。在这种情况下,如果您想在该 RTMP 客户端中包含代码,您可以按照此操作。否则您可能无法播放除第一个以外的拆分文件。
正如我上面提到的,第一帧转换为十六进制字符串:
17 - It represents 1 - Keyframe
7 - H.264
00 00 00 00 01 64 00 28 ff e1 00 - ?
1a - Size of the SPS
67 64 00 28 ac d9 40 78 02 27 e5 84 00 00 03 00 04 00 00 03 00 f2 3c 60 c6 58 - SPS
01 - According to AMF0 01 represent number
00 04 - Size of PPS
68 ef bc bc - PPS
(我不确定- ?
后面的十六进制代表什么。如果有人可以填写那部分,请随时发表评论,我会更新我的答案。)
详细了解什么是SPS:Refer Here