У меня hginx с модулем rtmp. Поток RTMP работает нормально, теперь я хочу попробовать поток HLS.
Мой конфиг:
rtmp {
server {
listen 1935;
application myapp {
live on;
exec_pull /usr/bin/ffmpeg -i http://url-to-remote-webcam
-map 0 -codec:v copy rtmp://my-ip:1935/myapp/mystream.flv 2>>/tmp/ffmpeg-$name.log;
}
application myapp {
live on;
hls on;
hls_path /tmp/hls;
hls_fragment 5s;
}
}
}
http {
server {
listen 8080;
location /hls {
root /tmp;
}
}
}
Попробуйте открыть URL-адрес http://my -ip: 8080 / hls / mystream.m3u8 в проигрывателе vlc, но возникла ошибка, которая не может открыть исходный код.
Что я могу пропустить?
UPDATE
Я попытался отредактировать конфиг на основе ответа miknik.
rtmp {
server {
listen 1935;
application myapp {
live on;
exec_push ffmpeg -i http://url-to-remote-webcam -acodec copy -vcodec libx264 -vprofile baseline -g 10 -r 15 -s 640x360 -f flv rtmp://my-ip:1935/hls/mystream;
}
application hls {
live on;
hls on;
hls_path /tmp/hls;
hls_fragment 5s;
}
}
}
http {
server {
listen 8080;
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
}
root /tmp;
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
}
}
}
И попробуйте открыть http://my-ip:8080/hls/mystream.m3u8
, но все равно получена та же ошибка.
А вот ошибка из журнала nginx:
2018/09/20 15:50:29 [error] 11406#11406: *2 open() "/tmp/hls/mystream.m3u8" failed (2: No such file or directory), client: client-ip, server: , request: "GET /hls/mystream.m3u8 HTTP/1.0", host: "server-ip:8080"