最近研究了一下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-gsegmenter.c-osegmenter-lavformat-lavcodec-lavutil-lbz2-lm-lz-lfaac-lmp3lame-lx264-lfaad
- clean:
- rmsegmenter
使用:
- segmenter<inputMPEG-TSfile><segmentdurationinseconds><outputMPEG-TSfileprefix><outputm3u8indexfile><httpprefix>
例如:
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>VideoTest</title>
- <metaname="viewport"content="width=320;initial-scale=1.0;maximum-scale=1.0;user-scalable=0;"/>
- </head>
- <bodystyle="background-color:#FFFFFF;"mce_style="background-color:#FFFFFF;">
- <center>
- <videowidth='150'height='150'src="stream-128k.m3u8"mce_src="stream-128k.m3u8"/>
- </center>
- </body>
- </html>
这样在iPhone上就可以播放流媒体了。
分享到:
相关推荐
HTTP Live Streaming for iPhone iPad(HLS流媒体服务器) - coolham的专栏 - 博客频道 - CSDN.NET
2012年3月HTTP Live Streaming (HLS) 视频直播技术的第8个版本的修订草案,常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP 的实时流媒体协议,这二种基本是完全不同的东西,目前比较方便又好用的我建议使用 ...
HTTP Live Streaming (HLS) 视频直播技术,常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP 的实时流媒体协议,这二种基本是完全不同的东西,目前比较方便又好用的我建议使用 HTTP 渐进下载的方法。...
HLS最新文档,HLS之http live streaming 开发必备,Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。 常用的流媒体协议主要有 HTTP 渐进...
HLS流光HLS Streamer 是一个 node.js 项目,使人们能够通过 iPhone、iPad 或 Mac OS X 浏览他们的多媒体收藏,并使用 HTTP 实时流式传输功能将其收藏的内容流式传输到他们的设备。安装node.js 部分的安装很简单。 ...
本演示系统采用HLS(Http Live Streaming)协议,内置web服务器,客户端支持iPhone、IPad、iTouch等移动设备接入,同时也支持Android系统的移动终端及机顶盒接入。 演示系统特点: 一键直播(集采集、编码、传输...
HTTP Live Streaming,对Apple TV,iPhone,iPad,iPod,Mac Safari和其他支持HTTP Live Streaming的设备的任何视频文件进行即时编码。 通过使用还支持Android和普通桌面浏览器 hls-vod是一个服务器应用程序,使您...
Android streaming support list: http, HLS (http live streaming),rtsp iOS streaming support list: http,HLS (http live streaming) EasyMovieTexture requires Android 4.0 or above. EasyMovieTexture ...
"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和 Macbook 等设备播放。 即HLS 是新一代流媒体传输协议,其基本实现原理为将一个大的媒体文件...
Android streaming support list: http, HLS (http live streaming),rtsp iOS streaming support list: http,HLS (http live streaming) EasyMovieTexture requires Android 4.0 or above. EasyMovieTexture ...
HLS (HTTP Live Streaming)是苹果公司实现的基于 HTTP 的流媒体协议,可以实现流媒体的点播和直播播放,主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件、TS媒体分片文件和key加密串文件。 什么是...
HLS直播系统 为了让更多人更简单的体验新媒体直播...本演示系统采用HLS(Http Live Streaming)协议,内置web服务器,客户端支持iPhone、IPad、iTouch等移动设备接入,同时也支持Android系统的移动终端及机顶盒接入。
"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和 Macbook 等设备播放。 作者:Whyn 链接:https://www.jianshu.com/p/e97f6555a070 来源:简书 ...
Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和 Macbook 等设备播放。 这种格式将一整段视频分割为多个数秒的ts分片文件,便于网络传输。其中还可以将ts分片文件加密。由于chrome开始放弃对flash的...