video - 为什么SPS和PPS以不同的 block 流id发送?

标签 video stream h.264 rtmp flv

我正在使用 RTMP。我需要编写一个程序来捕获 RTMP 数据包,解析它并将 RTMP 视频保存在 flv 容器中。为此,我需要在流开始时发送的 SPS 和 PPS。但这些数据可能会在不同的流中发送。例如:

  1. SPS 和 PPS 在流 6 中发送,视频数据在流 7 中发送。
  2. 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。

关于video - 为什么SPS和PPS以不同的 block 流id发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42300009/

相关文章:

audio - 关于多媒体编解码器的概念(容器、格式、编解码器、复用器、解复用器)

python-3.x - 如何使用 opencv 将一系列图像写入视频?

c# - "Parameter not valid"加载System.Drawing.Image异常

android - MediaCodec 创建输入表面

c++ - ffmpeg 流解码 - 不使用 ffplay 时的人工制品

video - 在 H.264 block 中搭载额外数据

android - Android中MediaCodec编码的H.264 avc视频无法播放

linux - FFmpeg 自动同步音视频

python - 波开 : redirect stderr and stdout to single stream

regex - Stream 或 Iterator 生成匹配正则表达式的所有字符串?