如何在不停止管道的情况下在多个 rtsp 视频流之间切换 [无缝流媒体]

2024-01-06

我使用 5 个 ip 摄像机,每个摄像机为我提供 5 个 RTSP 流。我选择这些 RTSP 视频流中的任何一个,并将它们与我的麦克风(音频 RTSP 流源)混合并将其广播到我的 RTMP 服务器。

我尝试进行无缝流传输,这意味着当相机到相机切换发生时不应该有任何延迟。在摄像机到摄像机切换期间,服务器应该看到来自我的流客户端 PC 的连续流。

我看到管道随机崩溃并给我很多错误消息。知道如何解决吗?


要获得真正的无缝切换,您需要同时将所有流接收到临时缓冲区中,然后对所选缓冲区中的 RTMP 输出进行编码。

如果您不这样做,那么在进行切换时总会有明显的延迟,因为您必须与编码硬件进行握手并等待下一个关键帧。

这是很有可能做到的,它只是变得更像是一个项目而不是单个堆栈溢出问题......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不停止管道的情况下在多个 rtsp 视频流之间切换 [无缝流媒体] 的相关文章

  • 用于代数简化和求解的 C# 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 网络上有很多代数求解器和简化器 例如 algebra com 上不错的代数求解器和简化器 然而 我正在
  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • ClickOnce 应用程序错误:部署和应用程序没有匹配的安全区域

    我在 IE 中使用 FireFox 和 Chrome 的 ClickOnce 应用程序时遇到问题 它工作正常 异常的详细信息是 PLATFORM VERSION INFO Windows 6 1 7600 0 Win32NT Common
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 由 IHttpClientFactory 注入时模拟 HttpClient 处理程序

    我创建了一个自定义库 它会自动为依赖于特定服务的 Polly 策略设置HttpClient 这是使用以下方法完成的IServiceCollection扩展方法和类型化客户端方法 一个简化的例子 public static IHttpClie
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData

随机推荐

  • 使用Retrofit 2.0和RxJava获取响应状态代码

    我正在尝试升级到 Retrofit 2 0 并在我的 android 项目中添加 RxJava 我正在进行 api 调用 并希望在服务器出现错误响应时检索错误代码 Observable
  • 初始化列表与初始化方法

    在 C 中至少有两种初始化类的方法 1 初始化列表 struct C int i C i 0 2 初始化方法 struct D int i C init void init i 0 我需要时不时地重新初始化我的类的对象 使用第二种解决方案
  • C:为什么 LLVM 从左到右计算 printf,而 GCC 从右到左计算?

    正如这个问题中所述 LLVM和GCC 不同输出相同的代码 https stackoverflow com questions 15929795 llvm and gcc different output same code LLVM 和 G
  • Android - 从另一个活动完成活动

    有什么办法 如何从堆栈中完成某些活动 我有服务 它会查找更新 当找到更新时 它会打开更新活动 其中会出现安装提示 但是安装出现后我想完成更新活动 因为没有必要仍然在堆栈上 Thanks 如果更新活动正在启动另一个安装活动 那么您可能需要覆盖
  • 反应式的“缓冲直到安静”行为?

    我的问题有点像内格尔算法 https en wikipedia org wiki Nagle 27s algorithm是为了解决问题而创建的 但不完全是为了解决问题 我想要的是缓冲OnNext通知来自IObservable
  • 创建具有相同键和值的对象,而不重复数据

    在ES6中 我们可以这样做 const key foo const myObj key myObj gt foo foo So key 相当于 key key 但是 我们怎样才能创建同一个对象而不需要key多变的 我想要有类似的东西 foo
  • 使用应用程序期间可达性连接丢失时弹出警报(IOS xcode swift)

    我是 IOS 应用程序开发的初学者 希望 在使用应用程序期间失去可达性连接时弹出警报 IOS xcode swift 但我只在启动我的应用程序时收到弹出警报 当互联网连接丢失时 使用我的应用程序时不会弹出警报 请各位好心人帮忙 谢谢 我做了
  • Spring Batch - 并非所有记录都通过 MQ 检索进行处理

    我对 Spring 和 Spring Batch 相当陌生 所以如果您有任何疑问 请随时提出任何澄清问题 我发现 Spring Batch 存在问题 无法在测试或本地环境中重新创建 我们的日常工作是通过 JMS 连接到 Websphere
  • Java - Checkstyle - 冗余抛出

    我正在使用 STS 并安装了 checkstyle 插件 使用安装新软件与此网址http eclipse cs sourceforge net update http eclipse cs sourceforge net update 我的
  • 事件监听器如何工作?

    他们是否反复检查条件并在满足条件时执行 例如 操作系统如何准确知道 USB 设备何时插入 或者 MSN 如何准确知道您何时收到电子邮件 这是如何运作的 Thanks 在底层 操作系统内核 知道 何时发生某些事情 因为相关设备向 CPU 发送
  • 不处理从这里抛出的 Swift 错误

    我的代码在 Xcode 6 中工作 但自从我使用 Xcode 7 以来 我不知道如何解决这个问题 let jsonresult 行有一个错误 指出未处理从此处抛出的错误 代码如下 func connectionDidFinishLoadin
  • Hibernate / SQLException:字段没有默认值

    使用以下命令生成 mySQL 表 CREATE TABLE actors actorID INT 11 NOT NULL actorName VARCHAR 255 NOT NULL PRIMARY KEY AUTO INCREMENT a
  • 类型错误:$.datepicker 未定义

    我的 javascript 有代码 适用于我网站上的其中一个页面 nmdt1 datetimepicker dateFormat datepicker ATOM minDate nmsdt 当加载 id nmdt1 的页面时 这运行正常 我
  • 自定义键盘中handleInputModeList的正确实现

    iOS 10 中添加了一个新的 API 用于显示用户可以切换到的其他键盘列表 与用户在系统键盘上长按地球仪时出现的列表相同 函数的声明如下 func handleInputModeList from view UIView with eve
  • 如何在 Python 中将折叠标量转储到 YAML(使用 ruamel?)

    我一直在 stackoverflow 上搜索 寻找一种使用 Python 以 YAML 格式转储折叠标量的方法 普通的answer https stackoverflow com a 35406862 3615411来自用户Anthon h
  • 无法远程启动WebLogic进行调试

    我使用以下选项设置远程 WebLogic 服务器进行调试 Xdebug Xnoagent Xrunjdwp transport dt socket address DEBUG PORT server y suspend n Djava co
  • SVN 到 GitHub 迁移

    我必须将多个目录从 SVN trunk 迁移到one单个 GitHub 存储库 我可以使用以下命令一次克隆单个目录 git svn clone https svn repo url 如何使用 svn trunk 中的单个命令克隆多个目录 进
  • 错误:无法找到类 R.java 没有这样的文件或目录

    当我尝试开始一个新项目时 我不断收到此消息 ERROR Unable to open class file C Users Levi Desktop Android workspace Droid1 gen com androidbook
  • rbenv:权限被拒绝

    我正在关注 Ryan 的 RailsCast Episode 339 我已经安装了 rbenv 并且可以运行ruby v 我退出了会话 当我尝试返回时 通过su deployer from root 我收到这个错误 home deploye
  • 如何在不停止管道的情况下在多个 rtsp 视频流之间切换 [无缝流媒体]

    我使用 5 个 ip 摄像机 每个摄像机为我提供 5 个 RTSP 流 我选择这些 RTSP 视频流中的任何一个 并将它们与我的麦克风 音频 RTSP 流源 混合并将其广播到我的 RTMP 服务器 我尝试进行无缝流传输 这意味着当相机到相机