HTTP Live Streaming(HLS), 是苹果公司推出的视频直播协议,具体的内容可以到苹果开发者后台查看相关文档。简单地讲,就是将实时直播的视频,切割成大小基本相等的
.ts
文件和一个索引文件prog_index.m3u8
,然后通过索引文件来在web或者app中实现直播效果。
目标/思路
本文目标:利用HLS技术,模拟一个视频直播平台。具体包括以下几个步骤:
- 通过
VLC
模拟一个直播视频的输入源; - 利用
mediastreamsegmenter
将捕捉到的输入源视频切割成 .m3u8 格式文件; - 利用
Apache
搭建本地服务器,在Safari中打开localhost,实现直播效果。
具体实现
VLC: 多媒体播放器
直接在百度上输入VLC,搜索下载安装Mac版的。
配置VLC: 打开VLC —> Open media —> Browse选择视频输入源,即将要用来以直播的形式展现出来的视频;然后勾选 Streaming/Saving,点击Setting,进行设置;
其中,Address是当前Mac的ip地址,Port自定义。这个地址是输入源视频的地址,在切割视频的时候会用到这个地址。配置完成之后,点击ok, 然后如果你的视频很短,就不要着急点击open。
启动Apache本地服务器
打开Mac终端,执行指令
sudo apachectl start
, 在浏览器中打开 localhost,如果出现It works
,则说明Apache打开成功;在路径
/Library/WebServer/Documents/
下建立文件新文件,我建的是 Games;在路径
/Library/WebServer/Documents/
下新建一个文件名为index.html文件,html里的内容为:<html> <head> <meda name="viewport" content="width=320;initial-scale=1.0;maximum-scale=1.0;user-scalable=0;"/> </head> <body> <center><video src="Games/prog_index.m3u8" controls autoplay></video></center> </body> </html>
mediastreamsegmenter切割视频
- 这个是苹果公司提供的视频切割工具,可以在https://developer.apple.com/streaming/进行下载,需要开发者账号登陆;
- 在终端运行
mediastreamsegmenter -s 20 -D -f /Library/WebServer/Documents/Games 192.168.1.113:1234
, 同时将运行VLC,即点击VLC中的Open。 - 在Safari中打开localhost, 刚开始出现的是一个含有错误字样的播放控制条,稍等一会,直播就开始了。
注意:VLC,mediastreamsegmenter,和Apache,在同一时间段,都要处于开启状态才可以在浏览器中看到直播效果。
参考文档:
https://developer.apple.com/library/ios/technotes/tn2224/_index.html