使用nginx搭建hls点播(m3u8)

时间:2024-04-05 19:09:59

windows环境下使用nginx搭建hls推流(m3u8)

环境:

操作系统:windows7旗舰版64位

nginx:1.8.1

ffmpeg:4.1.3

下载nginx
官网地址:http://nginx.org/en/download.html

 

1.修改配置文件 conf/mime.types 配置文件
    在59行下面添加这两段代码
    application/x-mpegURL m3u8; 
    application/vnd.apple.mpegurl m3u8;

使用nginx搭建hls点播(m3u8)

   继续在90行代码下添加这一段代码
    video/MP2T ts;

使用nginx搭建hls点播(m3u8)

2.修改配置文件 conf/nginx.conf 配置文件

      location /hlsdb {     
           #server hls fragments     
           types{     
             application/vnd.apple.mpegurl m3u8;     
             video/mp2t ts;     
           }     
           #alias G:/Baidu_download/temp/hlsdb;     
           #expires -1;     
           root G:/Baidu_download/temp;    视频文件(.ts; .m3u8)路径
           add_header Cache-Control no-cache;
      }

 

   nginx配置安装部分完成,启动nginx 服务

3.使用ffmpeg将mp4格式文件转成TS格式文件

ffmpeg -y -i G:/Baidu_download/video/orange3.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb G:/Baidu_download/temp/hlsdb2/output.ts

//orange3.mp4原文件名称

//output.ts转换之后出输ts文件名称

ffmpeg -i G:/Baidu_download/temp/hls/output.ts -c copy -map 0 -f segment -segment_list G:/Baidu_download/temp/hlsdb2/movie.m3u8  G:/Baidu_download/temp/hlsdb2/output%03d.ts

//output.ts 这个看上条命令后面出输的文件名称。这里是output.ts

//movie.m3u8 出输的m3u8文件索引文件名称,可以随意修改,

// -segment_time 10 每一段切片的控制时间,我这里是10s,根据你的情况随意修改

正常切片:

使用nginx搭建hls点播(m3u8)

 

4.ffmpeg 切片异常

如果遇到将MP4转化为ts完整文件,然后将完整ts文件进行切片出现只有一个ts切片,并且不能正常使用nginx推流点播什么解决?

ts切片,正常应该有很多的切片文化才正常,ts切片只生成一个ts切片文件是因为原视频文件或者视频编码有问题,需要使用格式工厂进行一次mp4视频转码!

ffmpeg转换ts文件出现

Codec 'mpeg4' (12) is not supported by the bit stream filter 'h264_mp4toannexb'. Supported codecs are: h264 (27) Error initializing bitstream filter: h264_mp4toannexb

出现这个问题的话ts文件就是有问题了大小是0kb,不能切片
因为原视频文件或者视频编码有问题,需要使用格式工厂进行一次mp4视频转码!
格式工厂转换mp4格式不需要什么修改,正常转换就行了

格式工厂现在转码利用gpu转换的,所以转换的时间根据你显卡质量来决定转换需要的时间

 

5.VLC播放

在 “打开网络串流”菜单,录入播放URL, 点击播放 稍等片刻即可。

使用nginx搭建hls点播(m3u8)