3.1 如何使NTM支持HLS协议直播
在2.5中我们搭建了一个RTMP直播,HLS直播是基于http协议如何搭建?
HLS直播中m3u8/ts文件存放在哪里?
HLS直播是否可以与RTMP直播一起存在?
我们将在本节进行了解
1.为m3u8创建一个预备目录
mkdir /usr/local/m3u8File
2.修改配置文件
application mylive{
live on;#开启直播
hls on;#开启HLS直播
hls_path /usr/local/m3u8File;
#配置hls m3u8文件存放地址
}
因为HLS是基于http的协议所以我们无法通过RTMP协议头访问HLSm3u8,因此我们在http标签下配置它的访问
http{
server{
listen 80;
location /mylive_hls{
types {
#m3u8 type设置
application/vnd.apple.mpegurl m3u8;
#ts分片文件设置
video/mp2t ts;
}
#指向访问m3u8文件目录
alias /usr/local/m3u8File;
add_header Cache-Control no-cache;#禁止缓存
}
}
}
3.推流
执行推流命令,我们额外配置了视频编码器libx264与音频编码器aac
ffmpeg -i /tmp/nh.mp4 -vcodec libx264 -acodec aac -f flv rtmp://172.26.22.30:1935/mylive/44
通过上一小节的配置中我们可以得到,我们m3u8/ts文件存放在/usr/local/m3u8File, 查看这个目录是否有m3u8及ts文件输出,如图3-1。
图3-1
我们通过VLC播放HLS流媒体直播,如图3-2。
图3-2
可以看到通过上面简单配置了hls on;hls_path;后,我们就可以轻松的得到m3u8/ts文件了,再通过location与type中的配置客户端就可以通过http协议访问m3u8/ts文件进行媒体播放了。