视频dosyalarınıNGINX ile HLS olarakyayınlamak

Dahaöncedende HLS ilealakalıbiryazıyazmıştım。 Oradabahsettiğimkonucanlıyayınıbir kaynaktanalıp互联网ortamınataşıyarakHLSyayınyapmaktı。 Buyazıdabahsetmekistediğimkonu ise,elimizdeki videodosyalarını(MP4 MP4)FFmpegyardımıile HLSşeklindeyayınlamakolacaktır。

Bunu nedenyapıyoruzpeki? Örneğin,MP4dosyalarını播放器ileoynattığınızzamankullanıcıvideoyuoynattıktan声音视频videoyunyüklenmesi(kullanıcınınhızınadabağlıolarak)tamamınayakıntigerçekle。 HLS kullanarakkullanıcıne kadar izlerse,izlemeye devamettikçe下载işlemigerçekleşecektir。

NginxPlus’ınngx_http_hls_module isimlimodülünükullanacağız。 您可以在服务器端的服务器端olarakyapmamızısağlayanbirmodüldür中进行操作。 Dosya olarak,MP4和MOVuzantılıdosyalarıdesteklemektedir。 视频编解码器olarak H.264,AAC和音频编解码器olaraksa MP3 desteklemektedir。

NGINX Plus发行版:https://www.nginx.com/resources/admin-guide/installing-nginx-plus/ kontrol edebilirsiniz。

Örnek配置:

 位置 / { 
hls;
hls_fragment 5s;
hls_buffers 10 10m;
hls_mp4_buffer_size 1m;
hls_mp4_max_buffer_size 5m;
根/ var / video /;
}

Bu配置ileaşağıdakigibi URLyapısınıkullanabilirsiniz。

  http://hls.example.com/test.mp4.m3u8?offset=1.000&start=1.000&end=2.200 
  http://hls.example.com/test.mp4.m3u8?len=8.000 
  http://hls.example.com/test.mp4.ts?start=1.000&end=2.200 

Yani bumodülükullanırkensunucunuzda bulunan bir mp4dosyasıvar diyelim。 (video.mp4)Bunu isterseniz direk mp4 olarak da oynatabilirsiniz。

  http://example.com/video.mp4 

Ya da isterseniz,bu MP4dosyanızıHLS olarak da oynatabilirsiniz。

  http://hls.example.com/test.mp4.m3u8?start=1.000&end=2.200 

gördüğünüzgibidosyanızınadınınsonuna m3u8koymanızyeterliolacaktır。

Gelelim conf。 içerisindekullanılan参数。

  -hls参数
位置bloğuiçerisindeişlemgörmektedir。 Ve HLSyayınınıaçmakiçinkullanılır。
  -hls_buffers   
Verileri okurken ve yazarkenkullanılacakolan bufferiçinkullanılır,adet ve boyut olarak belirtilir。
  -hls_forward_args  
播放列表dosyasındageçilenparametreleri。

Örneğinhttp://example.com/hls/test.mp4.m3u8?a=1&b=2 bu dosyaiçin播放列表içerisindekitsdosyalarışuşekildeolacaktır。

  #EXTM3U 
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:15
#EXT-X-PLAYLIST-TYPE:VOD
  #EXTINF:9.333, 
test.mp4.ts?start = 0.000&end = 9.333&a = 1&b = 2
#EXTINF:7.167,
test.mp4.ts?start = 9.333&end = 16.500&a = 1&b = 2
#EXTINF:5.416,
test.mp4.ts?start = 16.500&end = 21.916&a = 1&b = 2
#EXTINF:5.500,
test.mp4.ts?start = 21.916&end = 27.416&a = 1&b = 2
#EXTINF:15.167,
test.mp4.ts?start = 27.416&end = 42.583&a = 1&b = 2
#EXTINF:9.626,
test.mp4.ts?start = 42.583&end = 52.209&a = 1&b = 2
  #EXT-X-ENDLIST 
  -hls_fragment  
http,服务器,位置bloklarıiçerisindeişlemgörür。 Videoya ait播放列表dosyalarının她的birininuzunluğunubelirtir。
  -hls_mp4_buffer_size  
http,服务器,位置bloklarıiçerisindeişlemgörür。 影片dosyalarıişlenirkenkullanılacakolan bufferiçinboyut belirtmekiçinkullanılır。
  -hls_mp4_max_buffer_size  
Videolarişlenirkenmetadaişlemlerindeçokdahagenişbufferalanınaihtiyaçduyulabilmektedir。 NGINX 500帽尺寸和尺寸。
  “ /some/movie/file.mp4” mp4 moov原子太大: 
  12583268,您可能要增加hls_mp4_max_buffer_size