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;
继续在90行代码下添加这一段代码
video/MP2T ts;
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,根据你的情况随意修改
正常切片:
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, 点击播放 稍等片刻即可。