- 浏览: 676514 次
- 性别:
- 来自: 深圳
最新评论
-
fingerplay:
请问一下,第一份,逻辑树,就是代码里可以操纵的,例如更改lay ...
UIView与CALayer -
ok_lyc:
分享到哪里去了
iPhoneUIFont各种字体 -
lliiqiang:
我的个人理解:wait方法是在java虚拟机层面上在获取对象锁 ...
JAVA多线程同步wait、notify、synchronized -
milixw:
谢谢分享,就在找这个
iphone 推送通知 java 实现 -
wsqwsq000:
你的log4j包不行,上网搜一下:log4j-1.2.16.j ...
iphone 推送通知 java 实现
本文转载自:http://blog.csdn.net/nmgfrank/article/details/6955105
最近,需要将苹果的HTTP Live Streaming系统搭建起来。完全没有头绪,故第一步就是学习。 一、学习资料 官网资料 具体的搭建方案 使用segmenter将现成的视频文件分割,并生成列表文件。 1. http://blog.csdn.net/zhoujunming/article/details/6694730 二、使用Helix Universal Server和Helix Producer搭建直播系统 1. http://scrolls.bokecc.com/?p=207 ““” ”“” 因此我也选择使用Helix Universal Server和Helix Producer来搭建直播系统。 2. Helix Universal Server (1) 下载与安装 http://www.realnetworks.com/helix/download-helix-products.aspx 在官方页面下载Helix Universal Server与Helix Producer。 Windows系统下,软件的安装过程会有详细而明白的提示,十分方便, Linux操作系统中, 将下载的tar.gz文件解压得到bin文件。执行bin文件。 1. 输入证书的路径,如果证书有效,就可以不断地按【enter】键将其读完。 2. 选择accept刚才阅读过的内容。 3. 然后程序会让你填写安装路径,默认为bin文件所在的文件夹。第一次安装时, 由于enter点得太快,跳过了这一步。于是不得不再安装一次!! 4. 输入用户名和密码。 剩下就没有太重要的内容了,凭着感觉安装即可。 安装结束后,进入安装目录, 输入命令:sudo ./Bin/rmserver rmserver.cfg就可以将服务器运行起来。 打开配置文件rmserver.cfg,找到管理端口,在我这里是<Var AdminPort="25567"/> 输入链接:http://localhost:25567/admin/index.html 就可以进入系统的管理页面。 (2) 官方文档 http://www.realnetworks.com/helix/download-helix-products.aspx 从上述链接对应的文章中,我们可以了解到如何搭建基于Helix Universal Server的系统, 其中,文章的第七章详细介绍了如何将 http://docs.real.com/docs/producer14/HelixProducer14.0.0_GettingStarted.pdf 上述链接对应的文章介绍了Helix Producer的使用方法。 3. 利用Helix Universal Server和Helix Producer在一台机器上搭建直播系统(winxp操作系统)。 (1) 安装 Helix Universal Server和Helix Producer,安装时均使用默认设置,另外 还要设置用户名和密码。 (2) 运行Server (3) 运行Helix Producer。 output servers:设定编码后的数据发到哪个服务器上。主要有如下几个参数: Server Type(可能是producer向服务器传送数据的方式):Helix Push. Stream Name(数据流的名称,在客户端,可以通过这个名称向服务器请求相应的数据流):test.mp4。 Server address(服务器地址,由于server在本地,我将这个值设定为127.0.0.1)。 HTTP Server Port(服务器设定的HTTP端口,默认为80):80. Username,Password(Helix服务器在安装之初设置的用户名和密码)。 4. 观察直播系统中的文件。 (1) 通过链接http://127.0.0.1/m3ugen/broadcast/test.mp4可以获得.m3u8文件(类似于index文件)。 (2) 进入服务器管理页面,选择Content Management -> Content Browsing, 点击Browse Content链接,就可以看到服务器上 的挂载点,以及挂载点下的资源。选择iPhone挂载点,进入broadcast,,进入test.mp4就可以看到ts格式的片段文件。 5. 播放。 (1) 在播放器(例如vlc)中输入地址 rtsp://127.0.0.1:554/broadcast/test.mp4, 可以看到直播的视频。 (2) 播放HTTP Streaming,使用苹果客户端(iPhone) 用safari运行脚本: <html> <head> </head> <body style="background-color:#FFFFFF; "> <body> <center> <video src="SERVER_ADD:SERVER_PORT/m3ugen/broadcast/test.mp4" controls autoplay ></video> </center> </body> </html> 三、使用免费的产品搭建直播系统 上述方案的不足就是Helix的产品只有试用版。想用正版就得花钱。 1. 学习资料 使用VLC+mediastreamsegmenter+apache搭建HTTP Live Streaming系统: http://www.unmht.org/memo/en_ipod_stream.html http://jokru.org/apple-http-live-streaming-to-the-ipadiphone-w mediastreamsegmenter的使用方法:http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/mediastreamsegmenter.1.html 对于搭建HTTP Live Streaming系统,官方的说明资料:http://developer.apple.com/library/ios/#technotes/tn2224/_index.html 2.工具的选择 (1)视频信号的采集与编码。 mediastreamsegmenter能够接收的数据:视奥频-》H264;音频-》AAC, 封装于ts流中, 通过UDP传输(似乎是这些要求,具体细节我其实也不清楚)。 下面开始寻找能够满足这个要求的工具。 1)quicktime broadcaster broadcaster的下载地址:http://developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/streamingmediaguide/Introduction/Introduction.html 安装这个软件后,用它向mediastreamsegmenter喂数据,segmenter报错。因此,我认为(可能不对), 这个工具不能满足要求。 2) VLC 经过试验,使用VLC可以成功地向mediastreamsegmenter喂数据。因此我选择VLC作为视频、音频流的处理工具。 (2)视频流的分片工具 使用苹果的mediastreasegmenter ( 3 ) 服务器 apache 3. 具体架设方案。 (1) 视频、音频信号的采集与编码,使用rtsp协议将视频播放出去。 一台PC(ip地址为192.168.1.101),装备有摄像头,麦克风,安装有VLC. 1)打开vlc,,选择 媒体->打开捕获设备->捕获设备。点击播放。如果vlc能够成功将摄像头和麦克风捕获的信号显示出来, 就可以进行下一步。 2)在VLC中选择 媒体->串流->捕获设备,点击串流。接下来会弹出一个流输出设置窗口。 在“目标”中,选择RTSP进行添加,接着数据端口号(默认5544)和路径(我设置为 /test)。 在转码选项中,在“激活转码前打钩”,档案中,保持默认选项(Video-H264+AAC(MP4))。 点击“串流”,这时,该PC机的5544端口就开始提供rtsp直播服务了。 3) 验证rtsp服务是否可用。 打开一个新的VLC,选择 媒体->打开网络串流。输入rtsp://127.0.0.1:5544/test, 如果可以成功地看到摄像头捕获 的影像,就说明rtsp服务是可用的。 (2)视频流的转码 一台mac(我测试用的的视频服务器都部署在这里,IP:192.168.1.109),安装有vlc. 由于mediastreamsegmenter不能直接读入rtsp服务器传来的数据流,所以我们需要对数据进行一定的变换。 1)找到应用程序vlc的地址(一般默认在/Applications/VLC.app/Contents/MacOS下),进入文件夹。 2)输入命令: ./VLC --intf=dummy rtsp://192.168.1.101:5544/test '--sout=#transcode{fps=25,vcodec=h264,venc=x264{aud,profile=baseline,level=30, keyint=30,bframes=0,ref=1,nocabac},acodec=mp3,ab=56,audio-sync,deinterlace}:duplicate{dst=udp{mux=ts,dst=127.0.0.1:8000,access=udp}}' 下面大致介绍一下这条命令: (3) 获取ts流并进行分片 1)medianstreamsegmenter 这个小程序一般默认安装在mac的/usr/bin下。 2)使用命令 /usr/bin/mediastreamsegmenter -s 3 -t 5 -D -f /usr/frank/stream 127.0.0.1:8000 判断是否成功分片:如果终端显示 : Finalized 存储路径 file Sequencex.ts,则说明分片成功了。 说明: -s 3 设定index文件中记录几个分片。 -t 5 设定多长时间(秒)产生一个分片,默认为10秒。 -D 删除过期的分片文件 -f /usr/frank/stream设置存储分片文件和index文件的文件夹 127.0.0.1:8000 设置获取ts流的地址 (4)使用apache提供服务. 第一次在mac下使用apache,难免会感到一丝生疏。学习资料:http://hi.baidu.com/hsbd2005/blog/item/7393a84f0017b5c7d1c86ad4.html mac自带apache. 1) 启动 使用命令:sudo apachectl start, 然后在浏览器中数据localhost进行查看,如果看到It works,说明apache可以正常工作。 2) 配置文件 配置文件默认路径为 /etc/apache2/httpd.conf(对于文本的编辑,可以用 (vi 文件路径),也可以用(sudo open -a TextEdit.app 文件路径)). 可以看到 DocumentRoot "/Library/WebServer/Documents",也就是说,这是存放资源的默认路径。 3) 进入 /Library/WebServer/Documents, 建立文件夹httpstream, 将mediastreamsegmenter的输出指向这里: /usr/bin/mediastreamsegmenter -s 3 -D -f /Library/WebServer/Documents/httpstream 127.0.0.1:8000 在浏览器中输入localhost/httpstream/prog_index.m3u8,如果能够看到分片文件的列表,就说明成功了一半。 4) 写脚本文件,在Library/WebServer/Documents/下创建一个index.html文件,具体内容如下: <html> <head> </head> <body style="background-color:#FFFFFF; "> <body> <center> <video src="192.168.1.109/httpstream/prog_index.m3u8" controls autoplay ></video> </center> </body> </html> (5) 直播效果 在safari中输入链接http://192.168.1.109/index.html,观看直播。 画质很差,可能是一些参数设得不够好。
苹果没有官方的HLS直播服务器软件和客户端软件。其它第三方公司的产品有:
· TVersity
· Helix Universal Server
· Wowza Media Server
· VLC Media Player version 1.2
我采用Helix Universal Server和Helix Producer(客户端软件)进行了直播测试。
若要做针对iOS平台的直播,目前来看,只能采用此种方式。
encoding settings:设定相应的格式以及视频流的平均码率,帧率等参数
<meta name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
<meta name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
发表评论
-
iphone开发如何后台播放音频
2012-12-25 14:38 1563<!--?xml version="1.0&q ... -
iPhone开发中使用AVAudioPlayer出现内存泄漏的解决办法
2012-12-25 11:53 3349最近在使用AVAudioPlayer播放音频时,发现 ... -
dispatch多线程
2012-10-31 20:45 1459#define kBgQueue dispat ... -
iPhone开发使用数组排序
2012-10-30 19:18 1791我们以数组的排序为例(也许NSSortDes ... -
用containsObject判断是否存在的问题
2012-10-16 15:37 4565在NSArray或NSMutableArray中想使用c ... -
用NSZombieEnabled解决恼人的EXC_BAD_ACCESS错误
2012-09-17 10:30 1382转载自:http://longtimenoc.com/a ... -
使用xib加载视图后,在dealloc中crash
2012-09-08 11:20 1770最近遇到个问题,就是使用xib加载视图后,经常会 ... -
iPhone中如何获取当前输入法
2012-09-06 16:28 1702如题,在iPhone开发中,我们如何获取当前的输入 ... -
objectForKey和valueForKey的区别
2012-08-24 17:23 2165valueforkey和objectforkey区别 ... -
粒子发射系统中的CAEmitterLayer
2012-08-22 16:00 2522简介:CAEmitterLayer提供了一个基于 ... -
iPhone开发使用UILineBreakMode不精确
2012-07-26 12:02 1553一开始用UILineBre ... -
Xcode方法提示不显示的解决办法
2012-07-24 09:45 1616Xcode方法提示显示的不正确,只显示方法 ... -
NSArray的排序功能sortedArrayUsingSelector
2012-07-18 17:54 2234- (NSArray *)sortedArrayUs ... -
iPhoneUIFont各种字体
2012-07-24 09:45 1565苹果开发者们想在应用中使用不同字体的话,往往会发现 ... -
iPhone使用ASIHTTPRequest请求时,发送了2次请求
2012-07-24 09:45 2557前段时间用到ASIHTTPRequest做请求时, ... -
iPhone开发调用新浪微博OAuth2.0
2012-06-05 02:30 3104就像题目说的,这次的小项目是做一个新浪微博的客 ... -
Iphone cover flow 开源实现
2012-06-04 00:04 890tapkulibrary-CloverFlow ... -
ASIHTTPRequest下载示例(支持断点续传)
2012-07-24 09:45 1598在工程中,我们会常常遇到需要下载的程序,比 ... -
ASIHTTPRequest类库简介和使用说明
2012-07-24 09:45 1698文章转载自:http: ... -
NSUserDefaults 用户偏好设定保存自定义类(序列化)
2012-04-17 23:30 0NSUserDefaults 用户偏好设定保存 ...
相关推荐
http live streaming protocol http live streaming protocol
http live streaming guide
HLS(Http live Streaming)流媒体协议。
2012年3月HTTP Live Streaming (HLS) 视频直播技术的第8个版本的修订草案,常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP 的实时流媒体协议,这二种基本是完全不同的东西,目前比较方便又好用的我建议使用 ...
HLS http live streaming 白皮书 draft-pantos-http-live-streaming
前面给大家演示了如何使用Windows media service来搭建流媒体服务器进行视频直播。今天将为大家介绍另一种流媒体直播技术—IIS Live Smooth Streaming(IIS平滑流式处理)。
HTTP Live Streaming (HLS) 视频直播技术,常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP 的实时流媒体协议,这二种基本是完全不同的东西,目前比较方便又好用的我建议使用 HTTP 渐进下载的方法。...
HTTP Live Streaming伪直播的设计与实现,李志昂,马跃,HTTP Live Streaming是由Apple公司提出的新一代的移动流媒体传输协议,通过普通的HTTP Server向客户端提供接近实时的流媒体服务,在移动终端�
它从ffmpeg之类的工具中获取MPEG-TS流,并将其分解为多个ts段,适用于从iPhone之类的设备进行HTTP Live流传输。 它还创建此流类型所需的M3U8流描述符。 它最初由Chase Douglas编写,现在由John Ferlito维护。 ##...
一步步安装nginx搭建流媒体服务器的所有软件打包; nginx-1.8.0.tar.gz :应用服务器主程序 nginx_mod_h264_streaming-2.2.7.tar.gz :MP4流媒体支持模块。 openssl-1.0.1c.tar.gz :openssl库 pcre-7.9.tar.gz :...
HTTP Live Streaming for iPhone iPad(HLS流媒体服务器) - coolham的专栏 - 博客频道 - CSDN.NET
Http Dynamic Streaming 点播直播服务器搭建、原理
内容由流媒体协议等基本知识,视频媒体基本知识,流媒体服务器搭建实战,流媒体工具使用实战等内容组成。由本人“天地会珠海分舵”(http://blog.csdn.net/zhubaitian)耗时一个月整理而成,现分享给大家。 章节内容...
Live Streaming Super guide2014年6月刊
draft-pantos-http-live-streaming-16.doc Example Playlist Files for use with HTTP Live Streaming.doc HLS_Sample_Encryption.pdf HTTP_Live_Streaming_Metadata_Spec.pdf StreamingMediaGuide.pdf ...
http-live-streaming-10 翻译件
The role of live streaming in building consumer trust and engagement with social commerce sellers
HLS之http_live_streaming_开发必备,很详细的讲解了每种m3u8文件中的标签的语法及用法,对学习hls有不少帮助