如何使用WebRTC将视频流传输到RTMP?

2023-11-29

我正在尝试构建一项服务,将您的屏幕从浏览器流式传输到客户端(例如抽搐)。

我所完成的是我用 rtmp 构建了一个工作的 nginx 服务器,我使用 OBS 对其进行了测试。这效果很好。

我的问题是如何使用 WebRTC 将屏幕从浏览器(不是来自 OBS 或其他广播公司)流式传输到使用 RTMP 的 nginx 服务器?


对于 RTSPWebRTC / RTMPWebRTC 转换, 您需要运行某种 WebRTC 网关/媒体服务器软件,该软件适用于所有这些格式/协议,并且可以在所有这些格式/协议之间进行传输复用。 尝试 Wowza / Unreal Media Server / Flashphoner。https://en.wikipedia.org/wiki/Comparison_of_streaming_media_systems

因此,在您的情况下,您希望通过 WebRTC(必须使用 H264 编解码器)将屏幕从浏览器发布到媒体服务器,然后使用 nginx-rtmp 模块将 RTMP 流从媒体服务器拉到 nginx 服务器。

请注意,相反的情况也是可能的:您可以通过 RTMP 将流推送到媒体服务器(例如 OBS 屏幕捕获),然后通过 WebRTC 将此流从媒体服务器发送到 Web 浏览器。

这些转换中的主要问题是编解码器兼容性:视频必须使用 H264,但如果您需要音频,则必须进行 Opus 到 AAC 转码。

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

如何使用WebRTC将视频流传输到RTMP? 的相关文章

  • AJAX 安全问题

    我希望能够解决一些关于 AJAX 安全性的问题 这是我试图理解的一个场景 假设我正在使用 AJAX 向页面请求一些半敏感材料 例如 我将把用户的 ID 传递给一个 php 文件 并返回一些关于他们自己的信息 现在 是什么阻止人们模拟此 Ja
  • Docker 网络 - nginx:[emerg] 在上游找不到主机

    我最近开始迁移到 Docker 1 9 和 Docker Compose 1 5 的网络功能来取代使用链接 到目前为止 通过链接 nginx 通过 docker compose 连接到位于一组中不同服务器中的 php5 fpm fastcg
  • 获取被调用的 javascript 文件的查询字符串

    是否可以在调用的 javascript 文件上使用 javascript 获取查询参数 如下所示 in html in file js console log this location query 这是否可能以某种方式实现 或者我必须使用
  • Javascript 进程是否有多个执行线程?

    背景 我正在创建一个 地址簿 类型的应用程序 有很多条目需要加载 一个想法是首先加载一小部分条目 让用户开始 然后将剩余条目排队 优先考虑用户单击的条目 例如 如果他们单击以 X 开头的名称 请先加载这些名称 然后再处理队列的其余部分 这个
  • 如何将 Ajax.BeginForm MVC 助手与 JSON 结果一起使用?

    我正在尝试使用 ASP NET MVC Ajax BeginForm 帮助程序 但不想在调用完成时使用现有的内容插入选项 相反 我想使用自定义 JavaScript 函数作为回调 这可行 但我想要的结果应该以 JSON 形式返回 不幸的是
  • 检测 Webkit/Chrome 中 HTML5 数字控件更改的事件?

    HTML5 为我们提供了一些新的输入元素 例如
  • JavaScript 相当于 Python 的参数化 string.format() 函数

    这是 Python 示例 gt gt gt Coordinates latitude longitude format latitude 37 24N longitude 115 81W Coordinates 37 24N 115 81W
  • 检查用户设备的 GPS 是否开启

    我正在使用 jQuery Mobile 和 PHP 开发一个应用程序 我没有使用 Phonegap 或其他框架 我需要找到用户的geolocation 如果用户设备的 GPS 关闭 那么我无法获取位置 现在我需要查找用户设备的 GPS 是否
  • websockets 如何处理同一浏览器的两个选项卡

    I have 1 个 PHP 服务器 提供 http 请求 和 1 node js 发布更新的数据消息 每个连接都带有 websocket php 服务器设置其 cookie 在一个浏览器中 此 cookie 可在所有选项卡中使用 当浏览器
  • 在 Nginx 中使用查询参数绕过基本身份验证

    在我的 nginx 配置中 我打开了基本身份验证来限制对站点的访问 如下所示 auth basic Restricted Area auth basic user file path to htpasswd 这适用于用户 但我们使用的一些工
  • 如何显示接下来的三个图像单击加载更多按钮

    我需要一个加载更多按钮来显示图像 页面加载时 我显示 3 个图像 单击 加载更多 按钮后 接下来的 3 个图像将显示在屏幕上 我尝试了下面的代码 但它不起作用 你能帮我解决这个问题吗 function item slice 0 2 show
  • 使用 float:left 与 display:inline-block 的 jQuery UI 拖放排序比较

    我这里有两个例子 这两个例子之间的唯一区别是 一种使用display inline block 另一种使用float left li doc item 显示 内联块 与 li doc item float left 我的问题是 displa
  • Firefox Addon 中的 JQuery 导致多个警告

    我在 Firefox 插件中使用 jquery 但我不断收到大量警告消息 如下所示 anonymous function does not always return a value System JS WARNING resource g
  • Angular 4 Http POST 不起作用

    我希望每个人都做得很好 我最近开始使用 Angular 4 4 我一直在尝试将数据发布到我的 api 服务器 但不幸的是它不起作用 我花了大约两天的时间 但仍然没有成功 甚至已经尝试过 6 7 篇文章角 io https angular i
  • 播放没有音频标签的音频

    是否可以在没有音频标签的情况下仅使用 javascript 播放音频 我通过 tinyMce 编辑器注入脚本 因为我无权访问网站的后端 并且它不支持客户端的音频标签 她只想要当您将鼠标悬停在图像上时发出简单的声音 我已经完成了所有设置 但是
  • Angular JS - 使服务可以从控制器和视图全局访问

    假设我们有以下服务 myApp factory FooService function 然后 从控制器中 我会说 myApp controller FooCtrl scope FooService function scope FooSer
  • 如何从 CSS 选择器中提取类名?

    故事 我目前正在构建一个 ESLint 规则 以警告在 CSS 选择器定位器中使用引导布局导向和角度技术类 目前我在字符串方法中使用简单的子字符串 for var i 0 i lt prohibitedClasses length i if
  • javascript - 如何获取对象名称或关联数组索引名称?

    我有一个像这样的 JSON 对象 var list name1 element1 value1 name2 element1 value2 如何提取所有 nameX 字符串值 例如 假设我想将它们连接在一个字符串中输出 例如 name1 n
  • Google 地图 API - 地图未显示 - 没有错误

    我正在尝试将地图从 Google API 加载到 div 中 但是 地图未加载 并且没有输出任何错误 这是代码 google maps var geocoder map function codeAddress address geocod
  • 为什么 JavaScript 中是 [1,2] + [3,4] = "1,23,4" ?

    我想将一个数组的元素添加到另一个数组中 所以我尝试了以下方法 1 2 3 4 它的回应是 1 23 4 到底是怎么回事 The 操作员没有为数组定义 发生的事情是 JavaScript将数组转换为字符串并将它们连接起来 Update 由于这

随机推荐

  • Windows TCP 套接字默认启用 SO_KEEPALIVE 吗?

    我在 TCP 套接字方面遇到了一个奇怪的错误 看起来SO KEEPALIVE默认情况下在所有套接字上启用 我编写了一个简短的测试用例来创建套接字并连接到服务器 连接后 我立即检查SO KEEPALIVE with getsockopt 该值
  • 转换元组类型

    所以我是提升 MPL 的新手 我不知道如何将它与标准类型一起使用 我想要一个隐藏这种类型的元函数 std tuple
  • FLOT 趋势线

    包括我jquery flot trendline js 从这里 这是我的代码 plot placeholder seriesdata series trendline show true lineWidth 2 fill true fill
  • 为什么 numpy.random.choice 不使用算术编码?

    如果我评估类似 numpy random choice 2 size 100000 p 0 01 0 99 使用一个均匀分布的随机数float say r 并决定是否r lt 0 01可能会浪费许多生成的随机位 熵 我听说 二手 生成伪随机
  • Fuseki SPARQL INSERT 生成“错误 400:SPARQL 查询:无 'query=' 参数”

    我尝试将一个人插入到我的本体中 但出现错误 Error 400 SPARQL Query No query parameter Fuseki version 2 4 1 Build date 2016 11 04T18 59 20 0000
  • 如何获取要粘贴到 html 文本编辑器中的文本?

    我的主页 文本区域 中有一个小型文本编辑器 我可以在其中粘贴文本 在粘贴之前如何将该文本放入变量中 我知道有这个功能 clipboardData getData 但它在 Firefox 中不起作用 我想要适用于所有浏览器的东西 我正在使用
  • 如何将 Sass 函数转换为 Less 函数?

    有谁知道如何在 Less 中重新创建以下 Sass 函数 我希望能够轻松转换任何 CSS 属性内的单位 例如 字体大小 边距 填充等 Sass function get vw target vw context 1440 0 01 1px
  • MYSQL中DBCC INPUTBUFFER(@@SPID)(为当前连接或指定连接提供sql语句)的等效语句是什么?

    是什么MySQL 等效项声明DBCC INPUTBUFFER SPID 其中列出了当前连接或指定连接的sql语句 Use 显示资料查看发送到 MySQL 的最新语句的列表 SHOW PROFILES 如果您想要 需要查看当前正在运行的查询
  • Java泛型方法声明基础

    我开始学习Genericsfor Java我读了几个教程 但我有点困惑 不确定如何声明泛型方法 当我使用泛型类型时 定义方法的正确顺序是什么 我找到了这个示例 什么时候需要使用尖括号 什么时候不需要 public class Box a p
  • 从 datetime.timedelta 对象中删除“ x days ”

    我需要创建一个报告 其中需要减去两个日期并以以下形式返回 H M S 这是我插入列表中的减法 time difference temp datetime strptime next time Y m d H M S datetime str
  • Java:以一定角度移动对象并使用 KeyPress 改变角度

    好的 所以我想要的是矩形始终移动 但是当您按下左右箭头时 会通过增加或减少角度来改变方向 使用此代码 正方形会按照正确的方向移动 但是当我按下按键时 方向不会改变 import java awt import java awt Color
  • 需要帮助纠正用 Javascript (node.js) 编写的 CRC-ITU 检查方法中的问题

    我们正在尝试在 Javascript 上编写 GPS 设备侦听器代码 在此过程中 我们无法开发正确的 CRC ITU 错误检查脚本 协议文档生成crc码的解释如下 终端或服务器可以使用校验码来区分 接收到的信息是否有误 为了防止错误 数据传
  • xmlstarlet XPath 表达式选择单个结果而不是多个

    我有一个 XML 文件 其结构如下
  • 不在“程序和功能”控制面板中显示应用程序版本

    可以删除或隐藏AppVersion从安装 我不想看到程序版本 程序及特点 安装后 Set AppVersion空 或删除该行 因为该指令默认为空 但是 那么你必须设置AppVerName 根据您的需要 将其设置为My Program 1 0
  • 自定义旋转弹出窗口

    我想修改微调弹出对话框 我想实现我自己的自定义旋转弹出窗口 可能还是不可能 任何人都可以为我提供解决方案来实现自定义微调器弹出窗口吗 这是为了统一我的应用程序中的各种弹出窗口而做出的努力 看到这里是一个简单的例子 它让您了解如何构建自定义微
  • SwiftUI:.contextMenu 关闭时的通知(iOS)

    我在用着 contextMenu和 一起 onDrag在视图上 这似乎非常棘手 通过设置背景颜色变为灰色dragging为真 这是由 onDrag打开上下文菜单时已经发生了这种情况 有点早但还可以 当我使用按钮关闭菜单时 我可以设置drag
  • 在 IIS7 中将表单发送到 404 + HttpHandler:为什么所有 POST 数据都丢失了?

    好吧 这可能听起来有点令人困惑和复杂 所以请耐心听我说 我们编写了一个框架 允许我们定义友好的 URL 如果您浏览任意 URL IIS 会尝试显示 404 错误 或者在某些情况下显示 403 14 或 405 但是 IIS 已设置为将任何针
  • Gatttool非交互模式--char-write

    仍在询问 BLE 设备和gatttool 我可以在交互模式下发送 char write cmd 但无法在非交互模式下执行相同的操作 这是我以交互模式发送的内容 gatttool I gt connect BTADDR BTADDR gt c
  • 自动化 Team Foundation Build 配置

    我目前正在寻找一种无需使用配置向导即可配置 Team Foundation Build 服务 一个构建代理的方法 有没有办法做到这一点 无论是通过命令行 我还没有找到 TFS Build 的任何命令行安装选项 还是通过 API Thanks
  • 如何使用WebRTC将视频流传输到RTMP?

    我正在尝试构建一项服务 将您的屏幕从浏览器流式传输到客户端 例如抽搐 我所完成的是我用 rtmp 构建了一个工作的 nginx 服务器 我使用 OBS 对其进行了测试 这效果很好 我的问题是如何使用 WebRTC 将屏幕从浏览器 不是来自