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文件进行媒体播放了。

results matching ""

    No results matching ""