LINUX.ORG.RU

hls на nginx

 ,


0

1

недавно поднял hls на nginx, естественно скомпилированном с молулями rtmp и hls, вроде работало при воспроизведении плейрами, разве что на сайте не воспроизводилось, на формат ругалось, но не важно, начал ковырять конфиги, перестало совсем работать, вернул как было - не работает, в каталоге hls, который указан в конфиге для складывания плейлиста и потоков, пусто, права доступа на все каталоги 777, rtmp при этом работает. вот куски конфигов:

nginx.conf:
worker_processes auto;

error_log logs/error.log;

events {
#worker_connections 1024;
}

http {
access_log /usr/local/nginx/logs/access.log;
error_log /usr/local/nginx/logs/error_cam.log;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;

proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=nginx_local_cache:1m inactive=30m max_size=512M
proxy_temp_path /usr/local/nginx/cache/tmp;


server {
listen 8080;

location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}

location /stat.xsl {
root /usr/local/nginx;
}

location / {
rtmp_control all;
}

include camera_hls.conf;
}
}

rtmp {
server {
listen 1935;
ping 30s;
notify_method get;

include camera_rtmp_app.conf;
include camera_hls_app.conf;

}
}

------------------------------
camera_hls.conf

types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}

#add_header Cache-Control no-cache;
#add_header Access-Control-Allow-Headers '*';
#add_header Access-Control-Expose-Headers 'Server,range,Content-Length,Content-Range,Date'; add_header Access-Cont
#add_header Access-Control-Allow-Origin '*';

location ~* /hls/.*\.m3u8$ {
rewrite «/(.*)/hls/(.*)$» /hls-$1/$2 break;
root /usr/local/nginx/;
expires 10s;
add_header Cache-Control public;
}

location ~* /hls/.*\.ts$ {
rewrite «/(.*)/hls/(.*)$» /hls-$1/$1 break;
root /usr/local/nginx/;
expires 3m;
add_header Cache-Control public;
}

------------------------------
camera_rtmp_app.conf

application ffmpeg {
live on;
exec_options on;
exec_pull /usr/bin/ffmpeg -i 'rtsp://192.168.0.10/user=user&password=password&channel=10&stream=0.sdp' -vcodec copy -an -f flv rtmp://127.0.0.1:1935/ffmpeg/live;
}

------------------------------
camera_hls_app.conf

chunk_size 4000;

application hls {
live on;
sync 10ms;

exec_static /usr/bin/ffmpeg -i 'rtsp://192.168.0.10/user=user&password=password&channel=10&stream=0.sdp' -vcodec copy -vprofile baseline -f flv -an rtmp://127.0.0.1:1935/hls/live 2 > /usr/local/nginx/logs/hls.log

hls on;
hls_path /usr/local/nginx/hls/;
hls_fragment_naming timestamp;
}


что тут не так?
даже если в секцию «application hls» добавить exec_static echo «test» >>/usr/local/nginx/logs/work.log это тоже не появляется


в логах такие записи:
access.log
127.0.0.1 [09/May/2020:17:04:21 +0300] PUBLISH «hls» «live» «» - 338 529 «» «» (0s)

error.log
[error] 7512#0: *19 open() «/usr/local/nginx/hls/live.m3u8» failed (2: No such file or directory), .......

MaR ()
Последнее исправление: MaR (всего исправлений: 1)