您的位置:首页 > 理论基础 > 计算机网络

HTTP Live Streaming for iPhone/iPad(HLS流媒体服务器)

2011-05-06 00:21 489 查看
最近研究了一下Http Live Streaming机制,顺便搭建了一个测试环境。

参考:http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/comment-page-1/

Step 1: 编译ffmpeg

这个就不多讲了,先要编译facc和x264

a)编译faac和faad

b)编译x264

c)编译ffmpeg

configure --enable-gpl --enable-nonfree --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libx264

Step2: 视频文件编码

configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libx264


Step3: 下载和编译Segmenter
http://svn.assembla.com/svn/legend/segmenter/
需要修改一下Makefile

all:
gcc -Wall -g segmenter.c -o segmenter -lavformat -lavcodec -lavutil -lbz2 -lm -lz -lfaac -lmp3lame -lx264 -lfaad

clean:
rm segmenter


使用:

segmenter <input MPEG-TS file> <segment duration in seconds> <output MPEG-TS file prefix> <output m3u8 index file> <http prefix>


例如:

segmenter sample_low.ts 10 sample_low stream_low.m3u8 http://www.ioncannon.net/
Step4:搭建HTTP Server

以Tomcat为例,修改conf/web.xml文件,增加

<mime-mapping>
<extension>m3u</extension>
<mime-type>audio/x-mpegurl</mime-type>
</mime-mapping>
<mime-mapping>
<extension>m3u8</extension>
<mime-type>application/x-mpegurl</mime-type>
</mime-mapping>
<mime-mapping>
<extension>ts</extension>
<mime-type>video/MP2T</mime-type>
</mime-mapping>


指定.m3u8和.ts的MIME类型

.m3u8 application/x-mpegURL

.ts video/MP2T

Step5: 测试流媒体服务器

a)用iPhone的Safari浏览器,注意访问的地址是服务器上以.m3u8后缀的文件

b)用支持html5的浏览器,我还没有试验

<html>
<head>
<title>Video Test</title>
<meta name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
</head>
<body style="background-color:#FFFFFF; " mce_style="background-color:#FFFFFF; ">
<center>
<video width='150' height='150' src="stream-128k.m3u8" mce_src="stream-128k.m3u8" />
</center>
</body>
</html>


这样在iPhone上就可以播放流媒体了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: