NGINX如何實現rtmp推流服務--視訊快取

最愛白菜吖發表於2020-03-31

今天我們講解NGINX如何實現視訊快取的,不瞭解NGINX如何推流的可以先去看一下我上篇文章 NGINX如何實現rtmp推流服務 NGINX的rtmp推流部分的配置如下


rtmp {
    server {
        listen 1935;
        application live {
            live on;
    		record all;
    		record_unique on;
    		record_path "C:/laragon/bin/nginx/nginx-rtmp/video";
    		record_suffix -%Y-%m-%d-%H_%M_%S.flv;
    		#on_publish http://127.0.0.1:8686/auth;
    		#on_play http://127.0.0.1:8686/auth;
        }
    	
        application hls {
            live on;
            hls on;  
            hls_path "C:/laragon/bin/nginx/nginx-rtmp/hls/";
            hls_fragment 8s;  
        }
    }
}

複製程式碼

這裡主要分了兩個部分講解,一個是live推流,一個是hls的推流。

application live {
    live on;
	record all;
	record_unique on;
	record_path "C:/laragon/bin/nginx/nginx-rtmp/video";
	record_suffix -%Y-%m-%d-%H_%M_%S.flv;
	#on_publish http://127.0.0.1:8686/auth;
	#on_play http://127.0.0.1:8686/auth;
}
複製程式碼

記錄所有資料

	record all;

複製程式碼

記錄值唯一

	record_unique on;

複製程式碼

視訊快取路徑

	record_path "C:/laragon/bin/nginx/nginx-rtmp/video";

複製程式碼

快取檔案字尾

	record_suffix -%Y-%m-%d-%H_%M_%S.flv;


複製程式碼

利用obs推流,配置如下

NGINX如何實現rtmp推流服務--視訊快取

點選開始推流,結果如下

NGINX如何實現rtmp推流服務--視訊快取


視訊存放位置
C:\laragon\bin\nginx\nginx-rtmp\video
視訊快取
stream-1585622145-2020-03-31-10_35_45.flv

複製程式碼

hls配置

application hls {
    live on;
    hls on;  
    hls_path "C:/laragon/bin/nginx/nginx-rtmp/hls/";
    hls_fragment 8s;  
}

複製程式碼

視訊儲存路徑

    hls_path "C:/laragon/bin/nginx/nginx-rtmp/hls/";

複製程式碼

每一段視訊的大小,也就是時長,這裡儲存了8秒

    hls_fragment 8s;  

複製程式碼

obs配置如下

NGINX如何實現rtmp推流服務--視訊快取

結果如下

NGINX如何實現rtmp推流服務--視訊快取

hls的推流會產生一個m3u8的索引,儲存ts檔案的索引,同時儲存一個個視訊片段。後端根據檔案的快取地址,可以拿到再次播放。

NGINX如何實現rtmp推流服務--視訊快取

相關文章