hls URL을 사용하여 스트림을 열 수 없는 이유는 무엇입니까?

hls URL을 사용하여 스트림을 열 수 없는 이유는 무엇입니까?

공식 nginx 매뉴얼에 따라 로컬 컴퓨터에 RTMP 서버를 설정했습니다.
nginx를 사용한 원격 학습용 비디오 스트리밍

내 nginx 설정:

sudo vim /usr/local/nginx/conf/nginx.conf    
worker_processes  1;   
error_log  logs/error.log;
worker_rlimit_nofile 8192;

events {
  worker_connections  1024;  
}  

rtmp { 
    server { 
        listen 1935; 
        application live { 
            live on; 
            interleave on;
 
            hls on; 
            hls_path /mnt/hls; 
            hls_fragment 15s; 
        } 
    } 
} 
 
http { 
    default_type application/octet-stream;
 
    server { 
        listen 80; 
        location /tv { 
            root /mnt/hls; 
        } 
    }
 
    types {
        application/vnd.apple.mpegurl m3u8;
        video/mp2t ts;
        text/html html;
    } 
}

RTMP URL 설정:

output="rtmp://127.0.0.1:1935/live/sample"  

웹캠 홍보:

ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -c:v libx264 -f flv $output

rtmp 프로토콜을 사용하여 스트림을 가져옵니다.

ffplay rtmp://127.0.0.1:1935/live/sample

영상을 성공적으로 받았습니다.

hls 프로토콜을 사용하여 스트림을 가져옵니다.

ffplay http://127.0.0.1/live/sample
HTTP error 404 Not Found
http://127.0.0.1:80/live/sample.m3u8: Server returned 404 Not Found 
#It can't get video with browser.

어떻게 고치나요? http 세그먼트의 다음 코드 조각은 무엇을 의미합니까?

    server { 
        listen 80; 
        location /tv { 
            root /mnt/hls; 
        } 
    }

난 어디로 가야 해 mkdir /tv?

답변1

변화

hls_path /mnt/hls;

도착하다

hls_path /mnt/hls/tv;

스트림은 다음과 같습니다.http://127.0.0.1/tv/sample.m3u8.

답변2

http와 rtmp, hls의 push url과 pull url 사이에는 관계가 있습니다. 첫 번째 그룹 설정은 훌륭하게 작동합니다.

Pull url  

    http://127.0.0.1/tv/sample.m3u8

Push url

    rtmp://127.0.0.1:1935/live/sample

        location /tv { 
            root /mnt/hls; 
        } 
rtmp setting

        application live { 
            live on; 
            interleave on; 
            hls on; 
            hls_path /mnt/hls; 
        } 

http setting

        location /tv { 
            root /mnt/hls; 
        } 

또한 위와 같은 기능을 하는 다음 쌍으로 작성할 수도 있습니다.

Pull url  

    http://127.0.0.1/tv/sample.m3u8

Push url

    rtmp://127.0.0.1:1935/tv/sample

        location /tv { 
            root /mnt; 
        } 
rtmp setting

        application tv { 
            live on; 
            interleave on; 
            hls on; 
            hls_path /mnt/tv; 
        } 

http setting

        location /tv { 
            root /mnt/hls; 
        } 

관련 정보