0

在我通过其 gstreamer 插件流式传输到 KVS 的片段中,我看到数百个片段 - 超过 55% - 在“FragmentLengthInMilliseconds”字段中有 0(通过 LIST_FRAGMENTS api 获取)。它们都有相同的时间戳。我观察到的另一件事是,在这些情况下,“FragmentSizeInBytes”的值几乎总是 12265。

我想知道为什么这些碎片甚至存在?我是否在我的 gstreamer 插件配置中遗漏了一些东西 - 摆脱它们(如果它们没用)?这是我在 C++ 中配置它的方式:

   g_object_set(kvs_sink,
        "stream-name", stream_name.c_str(),
        "storage-size", 1024,
        "retention-period", 168, // in hours
        "aws-region", AWS_REGION, NULL);

这是我正在使用的插件https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp

4

1 回答 1

1

您的配置看起来不错。通过添加整个片段的帧持续时间,在后端计算片段持续时间。一些媒体管道无法指定帧持续时间,然后片段持续时间计算为最后一帧的时间戳减去第一帧的时间戳。如果是单个帧片段且未指定持续时间,它将评估为 0。持续时间为 0 表示您的媒体管道上游存在问题。您可能需要仔细检查您的配置。如果您实际上是在流式传输视频,请确保您的编码器生成有规律的节奏 I 帧。查看存储库中的多个示例并查看文档。

于 2020-09-02T04:54:53.933 回答