如何从 NGINX RTMP 模块向 Janus 发送 RTP 流?
How to send RTP stream to Janus from NGINX RTMP module?
这是我第一次post来到这里,尽管这个平台已经帮了我很多。
所以,我正在尝试创建一个流并在浏览器中显示它。我已经使用 rtmp 模块配置了 NGINX,并且我的流与 HLS 配合得很好(延迟在 5 到 10 秒之间)。
现在我想设置一个低延迟流,这就是为什么我安装了 janus-gateway webRTC 服务器,它允许输入一个 RTP 流并在输出中提供一个 webRTC 流。
这是我想要遵循的架构:
OBS -> RTMP -> Nginx-rtmp-module -> ffmpeg -> RTP -> Janus -> webRTC -> 浏览器
但是这部分我有问题:“nginx-rtmp-module -> ffmpeg -> janus”
事实上,我的 janus 服务器是 运行 并且演示流在本地主机上运行良好,但是当我尝试提供 RTP 流时,Janus 没有检测到演示中的流(它显示“没有可用的远程视频").
有人可以帮帮我吗?
资源:
- 我的 janus.plugin.streaming.jcfg 配置:
rtp-sample: {
type = "rtp"
id = 1
description = "Opus/VP8 live stream coming from external source"
metadata = "You can use this metadata section to put any info you want!"
audio = true
video = true
audioport = 5002
audiopt = 111
audiortpmap = "opus/48000/2"
videoport = 5004
videopt = 100
videortpmap = "VP8/90000"
secret = "adminpwd"
}
- 我的nginx.conf申请:
application test {
deny play all;
live on;
on_publish http://localhost/test/backend/sec/live_auth.php;
exec ffmpeg -i rtmp://localhost/test/$name -an -c:v copy -flags global_header -bsf dump_extra -f rtp rtp://localhost:5004;
}
如果您需要更多帮助我,请不要犹豫!提前谢谢你,抱歉我的英语不好:)
你解决问题了吗?
我试试控制台
“
ffmpeg -i rtmp://0.0.0.0:1935/live/test03 -an -c:v copy -flags global_header -bsf dump_extra -f rtp rtp://127.0.0.1: 5004
“
“
sudo ffmpeg -i "rtmp://0.0.0.0:1935/live/test03" -map 0:2 -c:v libx264 -profile:v main -preset ultrafast -tune zerolatency -f rtp rtp:/ /127.0.0.1:5005
“
我和你有同样的问题
我终于用下面的命令解决了这个问题:
sudo ffmpeg -y -i "rtmp://127.0.0.1/app/stream" -c:v libx264 -profile:v main -s 1920x1080 -an -preset ultrafast -tune zerolatency -g 50 -f rtp rtp://127.0.0.1:5004
不幸的是,当我使用-c:v copy 时,它不起作用。它仅在使用 libx264 编码时有效,这会增加延迟,我得到了 3 到 4 秒的延迟。
然而,当我安装 Janus 时,我的目标是比 HLS 做得更好,我使用该协议达到 2.5 秒的延迟。
所以Janus不符合我的需求。此外,我被警告说它不是流服务器。经过一些研究后,我在 Oven Media Engine 项目上遇到了 Github,这是一个提供小于 1 秒延迟的流服务器。该文档在专用站点上是完整的,并且适用于此服务器的播放器(Oven Media Player)在 MIT 许可下可用。服务器在 GPLv2 许可证下。
这是我的架构的当前架构:
OBS -> Nginx(允许使用 on_publish 进行流式传输,因为 OME 还不允许。然后将流推送到 OME 服务器)-> OME -> 以不同的比特率进行转码和分辨率(可选)-> OME -> Edge OME(可选)-> 播放器。
如有任何疑问,请不要犹豫,支持非常友好!
希望对您有所帮助
我没有名声。所以我写答案。
谢谢您的回答
Oven Media Engine 对我来说是完美的解决方案。
OBS ->RTMP-> OME ->webrtc-> chrome 播放器。
可以
我有问题。
我试试
ffmpeg -i rtmp://0.0.0.0:1935/live/test03 -an -c:v libvpx -flags global_header -bsf dump_extra -f rtp rtp://0.0.0.0:5005
它的工作延迟为 500 毫秒,但我发现延迟很小
ffmpeg -i rtmp://0.0.0.0:1935/live/test03 -an -c:v libx264 -profile:v baseline -preset ultrafast -tune zerolatency -flags global_header -bsf dump_extra -f rtp rtp://0.0.0.0:5006
它的工作延迟 2 秒,我看到它经常滞后。
我知道 h246 比 vp8 好。
但就我而言,我想知道 vp8 是否工作得更好。
我们需要录音所以使用nginx
如何推送nginx ->RTMP-> OME
推送 0.0.0.0:1935/$app/$name;不行
推 0.0.0.0:1935/app/stream;工作
什么???
这是我第一次post来到这里,尽管这个平台已经帮了我很多。
所以,我正在尝试创建一个流并在浏览器中显示它。我已经使用 rtmp 模块配置了 NGINX,并且我的流与 HLS 配合得很好(延迟在 5 到 10 秒之间)。
现在我想设置一个低延迟流,这就是为什么我安装了 janus-gateway webRTC 服务器,它允许输入一个 RTP 流并在输出中提供一个 webRTC 流。
这是我想要遵循的架构:
OBS -> RTMP -> Nginx-rtmp-module -> ffmpeg -> RTP -> Janus -> webRTC -> 浏览器
但是这部分我有问题:“nginx-rtmp-module -> ffmpeg -> janus”
事实上,我的 janus 服务器是 运行 并且演示流在本地主机上运行良好,但是当我尝试提供 RTP 流时,Janus 没有检测到演示中的流(它显示“没有可用的远程视频").
有人可以帮帮我吗?
资源:
- 我的 janus.plugin.streaming.jcfg 配置:
rtp-sample: {
type = "rtp"
id = 1
description = "Opus/VP8 live stream coming from external source"
metadata = "You can use this metadata section to put any info you want!"
audio = true
video = true
audioport = 5002
audiopt = 111
audiortpmap = "opus/48000/2"
videoport = 5004
videopt = 100
videortpmap = "VP8/90000"
secret = "adminpwd"
}
- 我的nginx.conf申请:
application test {
deny play all;
live on;
on_publish http://localhost/test/backend/sec/live_auth.php;
exec ffmpeg -i rtmp://localhost/test/$name -an -c:v copy -flags global_header -bsf dump_extra -f rtp rtp://localhost:5004;
}
如果您需要更多帮助我,请不要犹豫!提前谢谢你,抱歉我的英语不好:)
你解决问题了吗? 我试试控制台 “ ffmpeg -i rtmp://0.0.0.0:1935/live/test03 -an -c:v copy -flags global_header -bsf dump_extra -f rtp rtp://127.0.0.1: 5004 “ “ sudo ffmpeg -i "rtmp://0.0.0.0:1935/live/test03" -map 0:2 -c:v libx264 -profile:v main -preset ultrafast -tune zerolatency -f rtp rtp:/ /127.0.0.1:5005 “
我和你有同样的问题
我终于用下面的命令解决了这个问题:
sudo ffmpeg -y -i "rtmp://127.0.0.1/app/stream" -c:v libx264 -profile:v main -s 1920x1080 -an -preset ultrafast -tune zerolatency -g 50 -f rtp rtp://127.0.0.1:5004
不幸的是,当我使用-c:v copy 时,它不起作用。它仅在使用 libx264 编码时有效,这会增加延迟,我得到了 3 到 4 秒的延迟。
然而,当我安装 Janus 时,我的目标是比 HLS 做得更好,我使用该协议达到 2.5 秒的延迟。
所以Janus不符合我的需求。此外,我被警告说它不是流服务器。经过一些研究后,我在 Oven Media Engine 项目上遇到了 Github,这是一个提供小于 1 秒延迟的流服务器。该文档在专用站点上是完整的,并且适用于此服务器的播放器(Oven Media Player)在 MIT 许可下可用。服务器在 GPLv2 许可证下。
这是我的架构的当前架构:
OBS -> Nginx(允许使用 on_publish 进行流式传输,因为 OME 还不允许。然后将流推送到 OME 服务器)-> OME -> 以不同的比特率进行转码和分辨率(可选)-> OME -> Edge OME(可选)-> 播放器。
如有任何疑问,请不要犹豫,支持非常友好!
希望对您有所帮助
我没有名声。所以我写答案。 谢谢您的回答 Oven Media Engine 对我来说是完美的解决方案。
OBS ->RTMP-> OME ->webrtc-> chrome 播放器。 可以
我有问题。 我试试
ffmpeg -i rtmp://0.0.0.0:1935/live/test03 -an -c:v libvpx -flags global_header -bsf dump_extra -f rtp rtp://0.0.0.0:5005
它的工作延迟为 500 毫秒,但我发现延迟很小
ffmpeg -i rtmp://0.0.0.0:1935/live/test03 -an -c:v libx264 -profile:v baseline -preset ultrafast -tune zerolatency -flags global_header -bsf dump_extra -f rtp rtp://0.0.0.0:5006
它的工作延迟 2 秒,我看到它经常滞后。
我知道 h246 比 vp8 好。 但就我而言,我想知道 vp8 是否工作得更好。
我们需要录音所以使用nginx 如何推送nginx ->RTMP-> OME 推送 0.0.0.0:1935/$app/$name;不行 推 0.0.0.0:1935/app/stream;工作 什么???