Live555MediaServer 在每个新连接时重新启动流。为什么将 "reuseSource" 设置为 true 没有按预期工作?

Live555MediaServer restarts the stream at every new connection. Why setting "reuseSource" to true is not working as expected?

Live555MediaServer 可用于将视频文件流式传输为 rtsp 流。我有 2 个客户端 (vlc) 连接到服务器,A 和 B。我想在两个客户端中看到确切的视频流。问题是:我连接 A,10 秒后连接 B。连接 B 后,我看到的视频从头开始播放,而 A 保持原样播放。

我希望同步 2 个并发流。

live555 文档说将 reuseFirstSource 设置为 True 应该可行。所以我试图在 DynamicRTSSPServer:121 将 reuseSource 设置为 true 但它没有用。当我使用客户端 B 连接到服务器时,视频从头重新开始。

布尔常量 reuseSource = True;

我希望看到 2 个并发流同步,即使其中一个流相对于另一个流有延迟。

我终于找到了解决方法以及为什么会出现这个 'bug'。

快速回答:将第 67 行的 if 条件设置为 false,即
if (smsExists && isFirstLookupInSession) {
变成
if (false) {

说明:每次启动新会话时,isFirstLookupInSession 变量都会设置为 true,然后删除并重新创建会话。

我写信给 live555 的支持,Finlayson 告诉我,我引用

“LIVE555 Media Server” code was always intended to work this way, and was intended to be a ‘stand-alone appliance’ that does not have its code modified (e.g., by changing the value of “reuseFirstSource”).

因此,通过 Live555 创建 RTSP 服务器的唯一解决方案是从 testProgs 示例开始创建您自己的服务器。 此处提出的解决方法可能会产生不需要的行为,但对于具有多个流的简单 rtsp 服务器来说没问题。