HLS也就是HTTP Live Streaming,是苹果出的一个基于HTTP的流媒体通信协议。字面意思有个live,也就是直播相关的。下面介绍如何在windows系统下用ffmpeg+nginx+Vitamio来搭建HLS服务器+Android客户端的方法。
- 准备软件
服务器端软件:
nginx下载地址http://nginx.org/en/download.html
ffmpeg下载地址https://ffmpeg.zeranoe.com/builds/
客户端软件:
Vitamio下载地址 https://github.com/yixia/VitamioBundle
2.服务器搭建
2.1 用ffmpeg制作HLS视频
解压ffmpeg软件后,将ffmpeg的bin文件目录地址加入到windows环境变量的PATH中.打开cmd,用ffmpeg -version测试是否正确安装。
然后用ffmpeg软件对mp4视频进行分割,命令:
ffmpeg -i source.mp4 -codec:v libx264 -codec:a mp3 -map 0 -f ssegment -segment_format mpegts -segment_list playlistLevel1.m3u8 -b:v 300k -vframe 100 -segment_time 10 level1%03d.ts -codec:v libx264 -codec:a mp3 -map 0 -f ssegment -segment_format mpegts -segment_list playlistLevel2.m3u8 -b:v 700 k -vframe 100 -segment_time 10 level2%03d.ts
参照http://elkpi.com/topics/ffmpeg-f-hls.html
2.2 建nginx服务器
解压nginx软件后,点击nginx.exe打开nginx服务器。注意不要路径中有中文,80端口不被占用。将ffmpeg生成的ts流和playlist.m3u8文件方式nginx\html\文件夹中。正常安装后,点击nginx.exe会显示如下:
3终端vitamio搭建
vitamio软件https://github.com/yixia/VitamioBundle/
安装SDK和Android Studio后,选择import project
导入后build 项目,按照指示更新需要的SDK API.
注意在vitamio-sample/AndroidManifest.xml文件中加入:
<manifest xmlns:tools="http://schemas.android.com/tools">
<uses-sdk tools:overrideLibrary="io.vov.vitamio" />
程序build成功后,导入虚拟android系统中。可以看到:
选择VideoView后,根据nginx服务器IP地址和HLS视频的安装目录编辑URL:
这里将HLS视频放到nginx/html/文件夹下,编辑的URL是:http://localhost:80/playlist.m3u8
可以看到: