问题标签 [rtmps]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
510 浏览

wowza - wowza rtmp 输入和 rtmps 输出

我有一个 wowza 服务器接收 RMTP 视频并发送 RTMP 视频,这完美无瑕。

现在我需要添加 ssl 支持,所以我配置了流锁,并且可以很好地从 ffmpeg 作为编码器接收 RTMPS,并使用 flowplayer 将 RTMPS 发送给用户。

但是我需要让它与 VidiU 编码器一起工作,而且这个设备不支持 RTMPS 协议,它只能使用 RTMP 发送视频。

然后我尝试将 RTMP 视频(使用 VidiU)发送到服务器(启用流锁)以将 RTMPS 视频发送给用户,但它对我不起作用,我不知道 wowza 中需要哪种配置才能做到这一点。任何提示?

0 投票
1 回答
352 浏览

facebook - Facebook Graph API:无法播放实时视频流 (rtmps)

我正在尝试播放使用 Facebook 应用程序流式传输的实时视频。当我在 Graph API Explorer 中点击 /me/live_videos 端点时,我可以看到我的流:

该流设置为公开,因此 Facebook 内部或外部的任何人都应该能够查看它。我的问题是我无法使用“stream_url”(或“secure_stream_url”)查看流。我正在尝试使用 VLC 查看它(已尝试过桌面应用程序和 iOS 上的VLCKit库)。

顺便说一句,来自 iframe 的 https 链接有效。我可以使用此链接在浏览器中查看流。

VLC 上的错误

0 投票
1 回答
368 浏览

flash - RTMPS 和自签名证书

我正在通过videojs开发RTMPS直播。(闪存播放器

访问 web 域时播放带有公共证书的 RTMPS 服务器。

例如)rtmps://www.example.com:5555/live/(成功)

但,

我想使用带有自签名证书和 IP 地址的 RTMPS 服务器。(IP不断变化。)

例如)rtmps://123.456.78.9:5555/live/(失败)

我应该怎么办?

0 投票
0 回答
322 浏览

openmeetings - 如何在 openmeeting 中通过 HTTPS 隧道传输 RTMP?

我已经在 Linux 服务器上部署了 openmeeting(4.0.4),它只打开了运行 nginx 的端口 443。我将 nginx 配置为通过 https 访问开放式会议 Web 界面,但音频功能不起作用。

我想通过 HTTPs 实现简单 RTMP 的调整。任何帮助/建议表示赞赏。

注意:在服务器上打开会议在http://localhost:5080上运行

0 投票
0 回答
73 浏览

facebook - 我的 Facebook 流媒体代码不再工作,FB 想要用户点击上线,页面管理可能在视频拍摄时不可用

我正在使用 RTMP FFmpeg 流式传输到 facebook,一切正常,但看起来 Facebook 现在希望用户点击 facebook.com 上的实时视频进行直播。这件事增加了复杂性,例如在一家公司 5 人正在工作并直播一个视频项目,突然高级离开办公室并早早回家,他是唯一拥有 facebook 页面管理员访问权限的人,现在视频不会上线是因为需要在 facebook UI 上点击实时视频。

facebook 是否有适合这种情况的东西。我的意思是我在软件中使用 RTMP 协议,这样人们就可以轻松地做任何他们可以做的事情,而无需具备技术知识。我不希望该人每次使用该软件时都单击“上线”。任何人都有解决此类问题的方法。

注意:我正在写这个问题,因为它与 facebook 开发有关,他们告诉我使用 StackOverflow 进行所有与开发相关的查询。

0 投票
1 回答
195 浏览

flash - How to set dynamic variables in flash (swf) that are passed from javascript?

I'm trying to modify an SWF using a flash decompiler. I found a SWF that plays a live crypted stream rtmps and I want to use it to embed on my website. I want to be able to change the url for the stream with javascript:

So I basicly want to be able to set the serverName variable with something that I pass with javascript when embedding it on my website.

The javascript i´v been looking at is SWFObject.. for example:

How do I modify the code in flash (swf file) so that it reads the value I´m passing from javascript?

(IF there are other better ways to include a live stream rtmps stream on a website then also let me know :) I have tried using the flowplayer but I only manage to play rtmp-streams with it)

0 投票
1 回答
217 浏览

certificate - 如何从 Chrome 中查看 rtmps red5 播放视频?

我无法在 Chrome 或任何浏览器上使用 flash 播放视频(播放)。我正在尝试观看以前在 Widlfy 15 上运行的 red5 服务器录制的视频。我使用的 red5 版本是 v1.0.9.-RELEASE

我正在使用 Chrome(版本 73.0.3683.103(官方版本)(64 位))和 Adob​​e flash 32.0.0.171)。我嵌入在 HTML 中的 SWF 文件中的代码是:

在 Chrome 上检查日志时出现以下错误:POST https://localhost:8935/open/1 net::ERR_EMPTY_RESPONSE

  1. 我可以用 red5 和 rtmps 协议录制视频。我可以使用 ffmpeg -i "rtmps://localhost:8935/service/my_video.mp4" -vcodec copy -acodec copy out.mp4 进行成功的测试。我已经升级了许多库,如 apache、httpcontantainer。
  2. 我已将 Chrome64_51.0.2704.84 与 Flash 版本 21.0.0.242 一起使用。问题是一样的。
  3. 我的 red5 服务器支持 TLS 1.0 、 TLS 1.1 、 TLS 1.2 (使用 nmap 和调试 red5 服务器代码时检查它。
  4. 我对 red 5 的 v1.0.10 版本有同样的问题。
  5. Wireshark 指示使用了 TLS 1.2,并显示加密消息 Hanshake,然后显示应用程序数据消息,就好像 TLS 1.2 正在传输数据一样。然后下一条消息是 TLS 加密警报。之后,通讯就被粗暴地停止了。

我正在为我的 localhost 使用自签名证书。我在 Chrome 浏览器中添加了 CA 根证书来模拟 CA 证书。在 redcore.xml 中正确设置了信任库和密钥库,并且可以进行视频录制。在我的名为 my_hostname 的容器中运行 red5 的服务器端,我得到了以下看起来很重要的日志:

我已经在 red5 中设置了一个本地 RTMPS,但我有一个日志说我出于某种原因在一个非本地 RTMPS 中:

我的主机名 | 15:55:37,610 INFO [org.red5.server.net.rtmps.RTMPSIoFilter](NioProcessor-28)RTMPS 会话 ID:CBN7YR9BFVO9W

我的主机名 | 15:55:37,610 INFO [org.red5.server.net.rtmps.RTMPSIoFilter] (NioProcessor-28) 请求的非本地 RTMPS 连接:CBN7YR9BFVO9W

我的主机名 | 15:55:47,324 WARN [org.red5.server.net.rtmp.RTMPConnection] (rtmpScheduler-1) 由于长时间握手而关闭 CBN7YR9BFVO9W。状态:>连接

如何从 Chrome 中查看 rtmps red5 播放视频?

更多日志:

我的主机名 | 15:55:37,547 INFO [stdout] (NioProcessor-28) 更新握手状态:change_cipher_spec

我的主机名 | 15:55:37,547 INFO [stdout] (NioProcessor-28) 即将握手状态:客户端完成[20]

我的主机名 | 15:55:37,547 INFO [stdout] (NioProcessor-28) 即将握手状态:服务器 change_cipher_spec[-1]

我的主机名 | 15:55:37,547 INFO [stdout] (NioProcessor-28) 即将握手状态:服务器完成[20]

我的主机名 | 15:55:37,547 INFO [stdout] (NioProcessor-28) NioProcessor-28,阅读:TLSv1.2 握手,长度 = 40

我的主机名 | 15:55:37,548 INFO [stdout] (NioProcessor-28) 检查握手状态:完成[20]

我的主机名 | 15:55:37,548 INFO [stdout] (NioProcessor-28) 更新握手状态:完成[20]

我的主机名 | 15:55:37,548 INFO [stdout] (NioProcessor-28) 即将握手状态:服务器 change_cipher_spec[-1]

我的主机名 | 15:55:37,548 INFO [stdout] (NioProcessor-28) 即将握手状态:服务器完成[20]

我的主机名 | 15:55:37,548 INFO [stdout] (NioProcessor-28) *** 完成

我的主机名 | 15:55:37,549 INFO [stdout] (NioProcessor-28) verify_data: { 118, 34, 113, 228, 247, 234, 90, 205, 141, 172, 200, 231 }

我的主机名 | 15:55:37,549 信息 [标准输出] (NioProcessor-28) ***

我的主机名 | 15:55:37,553 INFO [stdout] (NioProcessor-28) 更新握手状态:change_cipher_spec

我的主机名 | 15:55:37,554 INFO [stdout] (NioProcessor-28) 即将握手状态:服务器完成[20]

我的主机名 | 15:55:37,554 INFO [stdout] (NioProcessor-28) NioProcessor-28,写入:TLSv1.2 更改密码规范,长度 = 1

我的主机名 | 15:55:37,555 信息 [stdout] (NioProcessor-28) *** 完成

我的主机名 | 15:55:37,560 INFO [stdout] (NioProcessor-28) verify_data: { 66, 121, 143, 7, 121, 172, 211, 83, 5, 34, 144, 192 }

我的主机名 | 15:55:37,561 信息 [标准输出] (NioProcessor-28) ***

我的主机名 | 15:55:37,561 INFO [stdout] (NioProcessor-28) 更新握手状态:完成[20]

我的主机名 | 15:55:37,562 INFO [stdout] (NioProcessor-28) NioProcessor-28,写入:TLSv1.2 握手,长度 = 40

我的主机名 | 15:55:37,562 INFO [stdout] (NioProcessor-28) %% 缓存服务器会话:[Session-9,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]

我的主机名 | 15:55:37,610 INFO [org.red5.server.net.rtmps.RTMPSIoFilter](NioProcessor-28)RTMPS 会话 ID:CBN7YR9BFVO9W

我的主机名 | 15:55:37,610 INFO [org.red5.server.net.rtmps.RTMPSIoFilter] (NioProcessor-28) 请求的非本地 RTMPS 连接:CBN7YR9BFVO9W

我的主机名 | 15:55:47,324 WARN [org.red5.server.net.rtmp.RTMPConnection] (rtmpScheduler-1) 由于长时间握手而关闭 CBN7YR9BFVO9W。状态:连接

我的主机名 | 15:55:47,326 INFO [stdout] (rtmpScheduler-1) rtmpScheduler-1,称为 closeOutbound()

我的主机名 | 15:55:47,326 信息 [stdout] (rtmpScheduler-1) rtmpScheduler-1,closeOutboundInternal()

我的主机名 | 15:55:47,326 INFO [stdout] (rtmpScheduler-1) rtmpScheduler-1,发送 TLSv1.2 警报:警告,描述 = close_notify

我的主机名 | 15:55:47,327 INFO [stdout] (rtmpScheduler-1) rtmpScheduler-1,写入:TLSv1.2 警报,长度 = 26

我的主机名 | 15:55:47,328 INFO [org.red5.server.net.rtmp.RTMPMinaConnection] (NioProcessor-28) 连接已关闭:CBN7YR9BFVO9W

我的主机名 | 15:55:47,329 INFO [stdout] (NioProcessor-28) NioProcessor-28,称为 closeInbound()

我的主机名 | 15:55:47,329 INFO [stdout] (NioProcessor-28) NioProcessor-28,致命错误:80:入站在收到对等方的 close_notify 之前关闭:可能的截断攻击?

我的主机名 | 15:55:47,329 INFO [stdout] (NioProcessor-28) javax.net.ssl.SSLException:入站在接收对等方的 close_notify 之前关闭:可能的截断攻击?

我的主机名 | 15:55:47,329 INFO [stdout] (NioProcessor-28) %% 无效:[Session-9, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]

我的主机名 | 15:55:47,330 INFO [stdout] (NioProcessor-28) NioProcessor-28,发送 TLSv1.2 警报:致命,描述 = internal_error

我的主机名 | 15:55:47,332 INFO [stdout] (NioProcessor-28) NioProcessor-28,异常发送警报:java.io.IOException:写入端已关闭。

我的主机名 | 15:55:47,332 INFO [stdout] (NioProcessor-28) NioProcessor-28,称为 closeOutbound()

我的主机名 | 15:55:47,332 信息 [stdout] (NioProcessor-28) NioProcessor-28,closeOutboundInternal()

我的主机名 | 15:55:47,332 WARN [org.red5.server.net.rtmp.RTMPMinaIoHandler] (NioProcessor-28) 未找到 CBN7YR9BFVO9W 的连接

我的主机名 | 15:55:47,507 WARN [org.red5.server.net.rtmp.RTMPConnection] (rtmpScheduler-1) 由于长时间握手而关闭 LVI6J72JECMZ2。状态:连接

我的主机名 | 15:55:47,512 INFO [stdout] (rtmpScheduler-1) rtmpScheduler-1,称为 closeOutbound()

我的主机名 | 15:55:47,512 信息 [stdout] (rtmpScheduler-1) rtmpScheduler-1,closeOutboundInternal()

我的主机名 | 15:55:47,513 INFO [org.red5.server.net.rtmp.RTMPMinaConnection] (NioProcessor-29) 连接已关闭:LVI6J72JECMZ2

我的主机名 | 15:55:47,513 INFO [stdout] (NioProcessor-29) NioProcessor-29,称为 closeInbound()

我的主机名 | 15:55:47,513 INFO [stdout] (NioProcessor-29) NioProcessor-29,致命错误:80:入站在收到对等方的 close_notify 之前关闭:可能的截断攻击?

我的主机名 | 15:55:47,513 INFO [stdout] (NioProcessor-29) javax.net.ssl.SSLException:入站在收到对等方的 close_notify 之前关闭:可能的截断攻击?

我的主机名 | 15:55:47,513 INFO [stdout] (NioProcessor-29) NioProcessor-29,发送 TLSv1.2 警报:致命,描述 = internal_error

我的主机名 | 15:55:47,513 INFO [stdout] (NioProcessor-29) NioProcessor-29,异常发送警报:java.io.IOException:写入端已关闭。

我的主机名 | 15:55:47,513 INFO [stdout] (NioProcessor-29) NioProcessor-29,称为 closeOutbound()

我的主机名 | 15:55:47,513 信息 [stdout] (NioProcessor-29) NioProcessor-29,closeOutboundInternal()

我的主机名 | 15:55:47,513 WARN [org.red5.server.net.rtmp.RTMPMinaIoHandler] (NioProcessor-29) 未找到 LVI6J72JECMZ2 的连接

0 投票
1 回答
935 浏览

node.js - 使用 ffmpeg 与 facebook rtmps 传输问题的 GoLive

我在试图找出适用于 ffmpeg 的 facebook rtmps Go Live 配置时遇到问题,但没有成功!

我从 facebook 事件日志中收到了这个

Facebook 已经有一段时间没有收到来自视频源的视频信号了。检查视频源和 Facebook 之间的连接是否足以满足源分辨率和比特率。检查您的视频编码器日志以获取详细信息。如果问题仍然存在,请考虑提高连接质量或降低视频源的比特率。

当我将帧率从 60 更改为 30 时,它会闪烁一个黑色的空白屏幕,试图接收信号,然后立即返回默认页面。虽然 youtube 完美无缺!

这是 ffmpeg 的日志,但只有 youtube rtmp 时也会出现日志。 日志

0 投票
2 回答
4246 浏览

android - 如何使用 VLC 作为实时流媒体服务器?

我正在开发可以通过编译的 VLC 库将视频流式传输到 Facebook 的 android 应用程序。在 Facebook 政策最近发生变化后https://developers.facebook.com/blog/post/v2/2019/04/16/live-video-uploads-rtmps/ VLC 停止流式传输视频。日志中有消息:

标准流输出:'rtmp/flv://rtmps://live-api-s.facebook.com:443/rtmp/xxxxxxxxx.....' 没有合适的 sout 访问模块

谁能帮我理解 - 应该怎么做才能重新启用流媒体?我的猜测是用 --enable-gnutls 标志编译 VLC,但我不确定如何使用当前的 VLC 源代码

0 投票
1 回答
79 浏览

video-streaming - RTMP规范中的“高层协议”是什么意思?

查看RTMP 规范,在第 5 节(RTMP 块流)中它说:

RTMP Chunk Stream 包含自己的带内协议控制消息,并且还提供了一种机制让上层协议嵌入用户控制消息。

“高级协议”是什么意思?

它还规定:“虽然 RTMP 块流设计为与实时消息传递协议(第 6 节)一起使用,但它可以处理任何发送消息流的协议”。RTMP Chunk Stream 和 Real Time Messaging Protocol 不一样吗?