rtmp Nginx 使用控制端点进行记录?
rtmp Nginx use control endpoint for record?
我已经用 rtmp module 编译了 nginx。我开始 nginx
和 运行 以下内容以开始流式传输我的网络摄像头:
ffmpeg -i /dev/video0 -f flv rtmp://localhost/live/test
然后我尝试使用control module开始录制:
curl "http://localhost:8080/control/record/start?app=application&name=test&rec=rec1"
但是录制事件好像没有触发。
这是我的 nginx.conf
文件的简化版本:
rtmp {
server {
# ... more code here
recorder rec1 {
record all manual;
record_suffix all.flv;
record_path /tmp/rec;
record_unique on;
}
}
}
http {
server {
listen 8080;
server_name localhost;
location /control {
rtmp_control all;
}
}
# ... more code here
}
注意:检查端口 8080 和 1935 都已打开 nmap
。
Note/Update:
我注意到,如果我将 app=
更改为 live
,我会收到一条实际的错误消息:
<html>
<head><title>500 Internal Server Error</title></head>
<body bgcolor="white">
<center><h1>500 Internal Server Error</h1></center>
<hr><center>nginx/1.11.1</center>
</body>
</html>
与带有实际应用程序名称的命令相反,returns 什么都没有。这告诉我它在某种程度上是有效的,但我仍然没有重新编码。
我也在尝试将 name=test
切换为 name=live
都不会导致错误响应。
更新#2:
我在使用上面的 curl
命令时正在观看 /var/log/nginx/error.log
。每次我使用它时都会记录以下内容:
client 127.0.0.1 closed keepalive connection
我已经解决了这个问题。问题有两方面。
- application 不是我的应用程序名称,它是
live
。
rec1
块不在实时应用程序块内,它是一个与 hls 无关的代码块。
我已经用 rtmp module 编译了 nginx。我开始 nginx
和 运行 以下内容以开始流式传输我的网络摄像头:
ffmpeg -i /dev/video0 -f flv rtmp://localhost/live/test
然后我尝试使用control module开始录制:
curl "http://localhost:8080/control/record/start?app=application&name=test&rec=rec1"
但是录制事件好像没有触发。
这是我的 nginx.conf
文件的简化版本:
rtmp {
server {
# ... more code here
recorder rec1 {
record all manual;
record_suffix all.flv;
record_path /tmp/rec;
record_unique on;
}
}
}
http {
server {
listen 8080;
server_name localhost;
location /control {
rtmp_control all;
}
}
# ... more code here
}
注意:检查端口 8080 和 1935 都已打开 nmap
。
Note/Update:
我注意到,如果我将 app=
更改为 live
,我会收到一条实际的错误消息:
<html>
<head><title>500 Internal Server Error</title></head>
<body bgcolor="white">
<center><h1>500 Internal Server Error</h1></center>
<hr><center>nginx/1.11.1</center>
</body>
</html>
与带有实际应用程序名称的命令相反,returns 什么都没有。这告诉我它在某种程度上是有效的,但我仍然没有重新编码。
我也在尝试将 name=test
切换为 name=live
都不会导致错误响应。
更新#2:
我在使用上面的 curl
命令时正在观看 /var/log/nginx/error.log
。每次我使用它时都会记录以下内容:
client 127.0.0.1 closed keepalive connection
我已经解决了这个问题。问题有两方面。
- application 不是我的应用程序名称,它是
live
。 rec1
块不在实时应用程序块内,它是一个与 hls 无关的代码块。