【发布时间】:2022-06-14 06:20:23
【问题描述】:
我正在使用 nginx-rtmp 模块从我的相机捕获 RTMP 流并将它们传输到其他系统。
一般来说,我的设置工作正常,可以正常生成 .m3u8 文件。例如:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:23
#EXT-X-TARGETDURATION:50
#EXT-X-DISCONTINUITY
#EXTINF:49.957,
verification-23.ts
但是如您在上面的示例中所见,生成的片段始终是 50 秒。
这会导致播放延迟超过 50 秒,我想避免这种情况。
我尝试将 Nginx 参数减少到,例如片段为 3 秒,播放列表为 15 秒:
hls_fragment 3s;
hls_playlist_length 15s;
但它没有用。 .m3u8 文件仍然使用#EXTINF:49.957 生成。
是否可以通过 Nginx 配置减少延迟?或者它可能是相机上的某种附加配置?
我当前的nginx.conf 文件:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
}
rtmp {
server {
listen 1935;
chunk_size 2000;
application live {
live on;
hls on;
hls_path /tmp/hls;
hls_fragment 50s;
hls_playlist_length 60s;
deny play all;
}
}
}
http {
sendfile off;
tcp_nopush on;
directio 512;
default_type application/octet-stream;
server {
server_name stream.mydomain.pl;
location / {
# Disable cache
add_header 'Cache-Control' 'no-cache';
# CORS setup
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length';
# allow CORS preflight requests
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
types {
application/dash+xml mpd;
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp;
}
# Certbot configuration
# ...
}
【问题讨论】:
-
只是把显而易见的事情排除在外,您是否在修改后重新加载了 Nginx 配置?
标签: nginx http-live-streaming rtmp nginx-rtmp