nginx - 使用 RTMP 并通过 WebSocket 分发

标签 nginx websocket ffmpeg rtmp live-streaming

我有一台 Linux PC,可以将视频(带音频)从网络摄像头传输到 即时通讯 服务器(nginx)。 nginx 即时通讯 然后服务器将视频转换为 HLS 并且 HLS 流显示在浏览器上。一切正常。唯一的问题是 HLS 协议(protocol)造成的延迟(10-20 秒,具体取决于 HLS 播放列表的大小)。

我正在寻找 替代 到可以在大多数主要浏览器上运行的 HLS。我无法使用 WebRTC 由于缺少音频,我无法使用闪光 由于缺乏支持是移动浏览器。所以我的问题是,有没有办法 消费 即时通讯 流,然后 分发通过 WebSocket 继续玩支持现代 WebSocket 浏览器 没有任何额外的插件?我正在使用 ffmpeg 从 Linux PC 发布 RTMP 流。如果需要,源流可以轻松更改为其他实时流协议(protocol),如 RTSP。因此,如果有其他解决方案可以在没有 RTMP 的情况下解决此问题,我也可以这样做。

提前致谢。

最佳答案

是的,这是可能的,但还有一个更简单的解决方案。只需通过 HTTP 流式传输数据。

WebSockets 仅用于双向通信。您只是将视频发送给客户端。

关于nginx - 使用 RTMP 并通过 WebSocket 分发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48679980/

相关文章:

ruby-on-rails - 如何解决 Nginx 和 Amazon ElasticBeanstalk 中的错误 413 Request Entity Too Large?

linux - 尝试运行 unicorn 时写入错误 : directory for pid=/var/www/twimpush/pids/unicorn. pid 不可写 (ArgumentError)

c# - WebSocket.CreateServerBuffer 与 WebSocket.CreateClientBuffer

c++ - 从 void* 转换为字符串 libwebsocket

cocoa - 使用 ffmpeg 添加音频 channel

docker - 尝试使用带有自定义conf.d的docker-compose运行nginx时出错

ruby-on-rails - Nginx 无法使用 Unicorn 找到 unix 套接字文件

c# - 如何在 asp net core 中的服务之间共享 websocket

FFMpeg - 将第一帧卡住 X 秒

ffmpeg - MPEG-TS 流中 pts_time 的开始时间戳不为零