首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用ffmpeg和aparat.com设置rtmp?

如何用ffmpeg和aparat.com设置rtmp?
EN

Stack Overflow用户
提问于 2020-07-29 18:06:15
回答 1查看 577关注 0票数 1

我是一个全新的rtmp和nginx和ubuntu,我只想使用一个vps来重新流我的流到多个网站,如twitch,youtube等。它对我来说运行得很好,但最近我的主要流媒体网站aparat.com改变了他的系统,他们不接受/usr/local/nginx/conf/nginx.conf中的推送命令,我使用了以下命令:

代码语言:javascript
复制
application live {
live on;
record off;
push rtmp://live.cdn.asset.aparat.com:443/event/<stream key>;
}

它在twitch、youtube或mixer上运行良好,但不能在aparat.com上运行

不知道为什么他们给我这个,然后让我用它:

代码语言:javascript
复制
application live {
live on;
record off;
hls off;
dash off;
wait_key on;
exec_publish ffmpeg -i rtmp://127.0.0.1/live/name -async 1 -vsync 1 -c copy -f flv "rtmp://rtmp.cdn.asset.aparat.com:443/event/<stream key>";
}

当我开始流媒体时,我在站点上得不到流媒体。除了我高亮的那条线以外,我还应该换别的东西吗?我应该在我的ubuntu 18.04.4上安装什么吗?

请考虑我对那里的任何事情都一无所知,我只是应付粘贴代码……

我已经安装了ffmpeg和stunnel,并对它们进行了配置,我还尝试这样做:

代码语言:javascript
复制
exec_publish ffmpeg -i rtmp://127.0.0.1/live/name -async 1 -vsync 1 -c copy -f flv "rtmp://live.cdn.asset.aparat.com:443/event/<stream key>";
代码语言:javascript
复制
exec_publish ffmpeg -i rtmp://127.0.0.1:19350/live/name -async 1 -vsync 1 -c copy -f flv "rtmp://live.cdn.asset.aparat.com:443/event/<stream key>";
代码语言:javascript
复制
exec_publish ffmpeg -i rtmp://127.0.0.1:19350/live/name -async 1 -vsync 1 -c copy -f flv "rtmp://rtmp.cdn.asset.aparat.com:443/event/<stream key>";

我应该说,使用twitch和youtube一切都很好,我也使用OBS来流式播放游戏,当我直接流式传输到aparat.com并使用rtmp://rtmp.cdn.asset.parat.com:443/event时,一切都很好

EN

回答 1

Stack Overflow用户

发布于 2020-07-29 22:02:41

该服务建议使用以下命令:

代码语言:javascript
复制
exec_publish ffmpeg -i rtmp://127.0.0.1/live/name -async 1 -vsync 1 -c copy -f flv "rtmp://live.cdn.asset.aparat.com:443/event/<stream key>";

让我们来理解一下上面的命令:

rtmp://127.0.0.1/live/name -这是你的nginx设置上的一个块。因此,您必须创建一个监听本地主机的服务器块,端口1935,因为1935是默认的rtmp协议端口,或者您可以更改为任何其他端口,并将此端口附加到上面的命令,如下所示:

代码语言:javascript
复制
rtmp://127.0.0.1:port/live/name

rtmp://127.0.0.1/live/name -这是发布点,您的nginx发布块在上面的服务器块中(此名称可以是您希望的任何名称),但它必须存在,否则nginx服务器将丢弃连接。

rtmp://127.0.0.1/live/name -这是您的流名称(此名称可以是您希望的任何名称),类似于上面的发布名称。

好的。现在你有了一个新的rtmp服务器块,监听本地主机连接,使用你想要的端口,你想要的发布名称和你想要的流名称。现在,在这个代码块中,如果服务目的地(aparat)需要,您必须使用ffmeg重新编码您的流,并将其发送到stunnel代理,或者简单地将流推送到stunnel代理,因为此服务需要RTMPS。如下所示:

代码语言:javascript
复制
rtmp {

   server {
      listen 127.0.0.1:1935;
      # or 127.0.0.1:yourPort;

      application live {
         live on;
         # i will push the stream name to the stunnel proxy, 
         # without re-encoded it because i believe you can adjust the broadcaster
         # software to send it as your service requires it.
         # Understand that stunnel proxy will be listening localhost connections
         # under the port 1936 or change it to your stunnel settings 
         push rtmp://127.0.0.1:1936/event/streamkey
      }
   }

}

现在,让我们来了解一下push stunnel代理url:

代码语言:javascript
复制
push rtmp://127.0.0.1:1936/event/streamkey

rtmp://127.0.0.1:1936/event/streamkey -这部分是url,它将监听连接、服务器(127.0.0.1)和端口(1936)。

rtmp://127.0.0.1:1936/event/streamkey --这是一个路径,在这个路径中,stunnel将把你的流发布到服务目的地(aparat)。

现在,stunnel将简单地将127.0.0.1:1936替换为服务所需的主机和端口(443),并使用RTMPS发送您的流。

下面是我对stunnel.conf的建议:

代码语言:javascript
复制
pid = /var/run/stunnel4/stunnel.pid
output = /var/log/stunnel4/stunnel.log

setuid = stunnel4
setgid = stunnel4

# https://www.stunnel.org/faq.html

socket = r:TCP_NODELAY=1
socket = l:TCP_NODELAY=1

debug = 4

[aparat-live]
client = yes
accept = 127.0.0.1:1936
connect = rtmp.cdn.asset.aparat.com:443
verifyChain = no

现在,在服务器上的默认pusblish块上,添加以下行,替换远程服务建议的第一个命令:

代码语言:javascript
复制
push rtmp://127.0.0.1:1935/live/name;

在您的默认发布块中,上面的命令将把流推送到服务器块(localhost:1935),这将把流发送到stunnel代理。

请理解,您不需要新的服务器块来将流直接发送到stunnel代理。这是使用您发布的命令对您的问题的解释。

你只需要在你的默认发布块上用下面的命令替换这个命令,它就会把流发送到stunnel代理:

替换

代码语言:javascript
复制
exec_publish ffmpeg -i rtmp://127.0.0.1/live/name -async 1 -vsync 1 -c copy -f flv "rtmp://live.cdn.asset.aparat.com:443/event/<stream key>";

通过

代码语言:javascript
复制
push rtmp://127.0.0.1:1936/event/<streamkey>;

你只需要一个可以很好的工作的stunnel代理。

完成后,重新启动nginx和stunnel服务以及happy stream。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63151175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档