HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS系统,为iOS设备(如iPhone、iPad)提供音视频直播和点播方案。HLS点播,基本上就是常见的分段HTTP点播,不同在于,它的分段非常小。要实现HLS点播,重点在于对媒体文件分段,目前有不少开源工具可以使用,这里我就不再讨论,只谈HLS直播技术。
实验操作系统:ubuntu
需要的模块:
1ffmpeg 用于将其他格式的文件转码为ts流文件
apt-get install ffmpeg
2m3u8-segmenter 用于将ts流文件分割并生成 *.m3u8文件
https://github.com/johnf/m3u8-segmenter
Installing
TO install from source you will need to make sure you have the libav/ffmpeg libraries installed. On Ubuntu/Debian you would run
apt-get install libavformat-dev
You can then build and install m3u8-segmenter by running
aclocal
automake -ac
autoconf
./configure
make
sudo make install
Usage
Some example command lines
ffmpeg -loglevel quiet -i big_buck_bunny.ogv -f mpegts - | \
m3u8-segmenter -i - -d 10 -p tmp/big_buck_bunny -m tmp/big_buck.m3u8 -u http://inodes.org/bigbuck/
ffmpeg -er 4 -i input.mp3 -f mpegts -acodec libmp3lame -ar 22050 -ab 32k -vn - | \
m3u8-segmenter -i - -d 10 -p outputdir/prefix -m outputdir/output.m3u8 -u http://domain.com/
3安装nginx,作为http服务器
apt-get install nginx
安装后网站发布目录默认为:/usr/share/nginx/www
4实例
ffmpeg -loglevel quiet -i test.mp4 -f mpegts - |m3u8-segmenter -i - -d 10 -p big_buck_bunny -m /usr/share/nginx/www/big_buck.m3u8 -u http://localhost/
此时在vlc播放器中输入http://localhost/big_buck.m3u8 即可进行流的播放。