Submitted by gouki on 2011, November 3, 3:59 PM
由于公司的规划,在未来的一段时间内可能会给ipad用户提供流媒体的播放服务,因此,在服务器上架设流媒体服务器就已经被我提上了日程。找了不少资料,发现这一篇还算是相对不错的。
原文地址是:http://www.aojie.biz/902
原文内容:
iOS设备上要用原生的浏览器或者播放器来跑直播流媒体,确实是有点费周折,不过找对了软件和方法就相对容易许多。收集了一下关于iOS设备上搭建直播流媒体服务器的一些解决方案,如下:
1、凤雨小城,HLS 简介,http://www.vexx.cn/blog/read.php?240
2、dancong , wowza服务器无法将RTMP的流播放到iOS上(已解决),http://www.cocoachina.com/bbs/read.php?tid-47849.html
HLS简介 – rainstown (小城秋雨)
HLS(HTTP Live Streaming)是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的基于HTTP协议的流媒体解决方案。
在 HLS 技术中 Web 服务器向客户端提供接近实时的音视频流。但在使用的过程中是使用的标准的 HTTP 协议,所以这时,只要使用 HLS 的技术,就能在普通的 HTTP 的应用上直接提供点播和直播。
在App Store中的视频相关的应用,基本都是应用的此种技术。
该技术基本原理是将视频文件或视频流切分成小片(ts)并建立索引文件(m3u8)。支持的视频流编码为H.264,音频流编码为AAC。
m3u8文件示例:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:10,
http://192.168.1.36/vod/tt/tt-1.ts
#EXTINF:10,
http://192.168.1.36/vod/tt/tt-2.ts
#EXTINF:10,
http://192.168.1.36/vod/tt/tt-3.ts
#EXT-X-ENDLIST
可以在iOS或Mac OS上通过quicktime或safari(其实还是调用quicktime)来进行播放。
下面分点播和直播分别进行一下介绍。
点播:
苹果官方提供了Segmenter软件,参数如下:
segmenter <input MPEG-TS file> <segment duration in seconds> <output MPEG-TS file prefix> <output m3u8 index file> <http prefix>
示例:
segmenter youku.m2ts 10 tt/tt index.m3u8 http://192.168.1.36/vod/
注意:输入文件必须为MPEG2TS格式。对我们的mp4文件来说,必须先进行一次容器格式转换才能进行分割。分割命令:
ffmpeg -i youku.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb youku.m2ts
我们下一阶段要做的视频分割项目,针对iOS平台的播放,可以考虑采用此种方式。只是若如此做,存储成本会加倍.。
直播:
客户端软件推送H.264视频流和AAC音频流到服务器软件,服务器软件将接收到的流每缓存一定时间后包装为一个新的ts文件,然后更新m3u8文件.。 m3u8文件中只保留最新的几个片段的索引,以保证观众任何时候连接进来都会看到较新的内容,实现近似直播的效果。这种方式的理论最小延时为一个ts文件 的时长,一般为2-3个ts文件的时长。
苹果没有官方的HLS直播服务器软件和客户端软件。其它第三方公司的产品有:
· TVersity
· Helix Universal Server
· Wowza Media Server
· VLC Media Player version 1.2
我采用Helix Universal Server和Helix Producer(客户端软件)进行了直播测试。
若要做针对iOS平台的直播,目前来看,只能采用此种方式。但在其它平台(除了iOS和Mac之外)上无法观看直播,也决定了此种直播方式的应用场景暂时具有相当的局限性,只能作为常规直播方式的一种补充。
wowza服务器无法将RTMP的流播放到iOS上(已解决)
我现在需要将本地Macbook的rtmp的视频流直播到iOS上,准备采用wowza作为服务器。
我按照这个教程用FlashMediaLiveEncoder 3.2 采集本机的iSight视频后,按视频H.264, Baseline 3.0, 音频 AAC为格式输出rtmp协议的流。
复制代码
- FMS URL里填rtmp://localhost:1935/live
- Stream里填mp4:myStream
|
我在本地按wowza官方的配置方法配完后,Mac OS X 网页上可以用jwplayer直接以:
复制代码
- var flashvars = {
- file:’myStream’,
- streamer:’rtmp://localhost/live/’
- };
|
这种方式播放rtmp流,说明wowza已经接收到rtmp流了。
问题是,用iOS访问“http://localhost:1935/live/myStream.sdp/playlist.m3u8”,结果iOS虽然出现播放界面,但是报错“File not found”,查看wowza控制台报错,说:
复制代码
- INFO stream create myStream.sdp -
- WARN server comment – HTTPStreamerAdapterCupertinoStreaming.getAppInstance: Stream not found [live/myStream.sdp/playlist.m3u8]: myStream.sdp
- WARN server comment – HTTPStreamerAdapterCupertinoStreaming.getAppInstance: Stream not found [live/myStream.sdp/playlist.m3u8]: myStream.sdp
- INFO stream destroy myStream.sdp -
|
说明访问到了wowza,但是wowza无法将rtmp流转成myStream。
我看过了Apple官方的HTTP live stream的文档,说需要segmenter将视频流切分成多个ts的视频文件和m3u8的播放列表,我觉得这些都是wowza负责实现的。
请问如何配置wowza才能将rtmp流转成Apple HTTP live stream。
另外,虽然wowza要求SDP文件,但是我不知道怎么生成SDP文件,而且网上有人说不用SDP文件也可以。是因为这个SDP缺失导致的吗?如何生成SDP?
解决方案:
根本不用生成SDP。
原来是iOS上的访问地址被官方误导了,晕死,官网上的竟然是错的。URL里不需要写“.sdp”,应该是http://localhost:1935/live/myStream/playlist.m3u8就可以了。
---------
最后一句超有意思。。
官方的文档应该是这个:http://developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/streamingmediaguide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008332-CH1-DontLinkElementID_31
Tags: 流媒体, ios, fms
Flutter | 评论:0
| 阅读:38963
Submitted by gouki on 2011, November 1, 10:51 PM
这是cnbeta上面的一篇文章里面讲的很有意思。其中有一点:很多人不知道电子邮件是什么,以为QQ就是互联网
这句说的真的不错,其中还有一点说了中国的现状:创业公司不得不在办公地点上花大量钱财。大多数中国技术人员喜欢为大公司工作,并且他们更喜欢现金而非股权。如果公司没有一个好的办公环境,那么他们很难招到合适的员工。
嗯。宁当凤尾不做鸡头,这句话其实和以前是相反,以前是宁做鸡头不做凤尾的,现在不一样,宁可在大公司当小员工,不想云小公司当头。做互联网破产的机会比较大,很多人就不愿意去小公司搏。
原文来自:http://www.cnbeta.com/articles/160449.htm
感谢雷锋网的投递
这是一位出生在中国、但早年随父母移居美国的华人工程师Bowei Gai所做的一个PPT,不久前他来到中国寻找机会,于是有了以下的PPT,这份PPT在Slideshare上发布后迅速成为第二热门的PPT。这多少能反映硅谷公司和VC对中国创业公司的看法。
Bowei Gai的结论是:进入中国市场就像你摸着石头过河初次创业。因为:
竞争异常激烈。在美国,如果你有一个好的想法,可能会有一些公司模仿你,但在中国则有数不清的公司模仿,并称之为“微创新”。举个例子:在中国有超过5000家模仿Groupon的团购网站,有超过100家的Android应用商店。而且中国公司的竞争往往会使用一些非常手段,包括造对手负面消息、剽窃知识产权,无所不用其极。
中国互联网用户的网络基础与美国完全不同。在中国,不少网民甚至不知道电子邮件为何物,对于他们来说,QQ就是互联网。
建立一个公司的手续会让你抓狂。如果你是一家海外公司,并希望吸引美国的投资,你必须在另一国家建立一个分公司,让投资者注资到这家公司,然后签署一份托管协议,授予员工股票期权(编者注:从这一表达看似乎作者想说的是国内公司在海外上市的“新浪模式”)。
创业技术环境欠佳。在中国很少有像Amazon Web Services、Heroku和Google Apps这样可靠的基础服务可以利用,而且开发者在技术上要比世界落后一个时代。
创业公司不得不在办公地点上花大量钱财。大多数中国技术人员喜欢为大公司工作,并且他们更喜欢现金而非股权。如果公司没有一个好的办公环境,那么他们很难招到合适的员工。
丑陋的网站表现更好。大多数中国网站按西方标准看起来丑陋而拥挤(想想Ha0123),但测试表明,这些网站点击率和转换率比起有更好UI的web2.0网站更高,这些web2.0网站在美国更受欢迎。
外来的天使投资者没有机会。他们只相信他们的圈子内的人,而且中国不缺钱。
PPT全文如下:
The China Startup Report View more
presentations from
Bowei Gai
尽管如此,Gai称仍然值得在中国创业。但是,你最好学点汉语,盯着北京这块市场,把你那份属于美国人的傲慢抛在脑后。
Via
BI www.leiphone
-----------------------------
以上都是原文,原文中还有几段很深得人心啊,我在里面都加背景色了。
不过,评论更给力:
- 一直在模仿,从未想过创新。所谓的创新即是以最快的速度复制国外成功案例,国内首创!
- 镇上js对外来合作者的态度是,大不了先给你找个niu,然后咱再谈生意~
Misc | 评论:0
| 阅读:14932
Submitted by gouki on 2011, October 31, 3:02 PM
Tags: 设计模式
PHP | 评论:1
| 阅读:16995
Submitted by gouki on 2011, October 29, 12:39 PM
今天好象我真是闲的蛋疼了。其实我在等饭吃。。。。
还有两个小功能没有完成,等转贴完开始干活。。。。
1 未婚夫、男友、情人、蓝颜一桌打牌,女人倒水出来,被障碍物绊倒,腿被碎玻璃划伤。未婚夫急忙起身把女人抱到沙发上,男友跑去拿医药箱,情人在一边哄女人一边咒骂障碍物,蓝颜默默的收拾好地上的残局,再倒好水坐在不远不近的地方,心疼……
2 他们已经分手很久了,久到已经删了QQ没了手机号,又是很久很久以后,他和她同时受邀参加老同学的婚礼,婚礼上她不小心丢失了手机,只有他不翻看通信簿便第一个播出了她的号码,铃声响起,他和她同时去捡地上的手机,他不经意见看到屏幕上的来电显示“老公”...
3 毕业的前一天,他看着同桌的她戴着耳机写着卷子,很想对她表白却不好意思开口,终于,他试探着叫了她的名字,她一点反应也没有,依然写着卷子,于是他很小声的把想对她说的话全部说出;打铃下课了,他离开了座位,同桌的她松开暂停键泪流满面。
4 她跟他结婚七年感情一直很好,可她却在他车祸身亡的一个星期内闪电结婚,她依旧开心快乐,这一切让她儿子愤怒不止,在儿子的声声质问中她只问了一句“他不是最会吃醋吗…他怎么还不回来…”
5 高一那年他喜欢上了她,但他知道她只把他当成蓝颜知己。 他苦苦沉迷于暗恋之中。 高考填报志愿那天,他填了与她喜爱的南方向背驰的北方。 交到老师那儿的时候偶然发现她也填报了那个学校。 他疑惑的问她为什么。 她笑了,用俏皮的语气说:你是我的蓝颜知己,我做你的红粉佳人。
6 男孩婚后对自己的妻子比婚前更好。一次聚会朋友笑他:“怎么结婚了还那么腻…?”他讪讪地笑着说:“结婚前很多男生都想追她,很多男生会对她好,我只有对 她更好才能追到她;结婚后对她好的男生越来越少,我只有对她更好才能不让她失落。”我所做的就是想让她幸福。说完,在场的朋友都沉默了.
7 女生睡不着,躺在床上拿着手机上QQ,看到他在线,然后聊天,不小心睡着了,一直没有回复,第二天起来看到男生最后一句只是轻轻的:“傻瓜,又睡着了?晚安!” 这样的日子会不会好幸福?会不会觉得很温暖?
有没有一个人在你失眠的夜晚为你挂着QQ,等你安然入睡后,轻轻地说一句:晚安,傻瓜!
8 700多年前的一天,北威尔士王子出去打猎,留狗在家看护婴儿。
王子回来后,看见血染被毯,却不见婴儿。
而狗呢,一边舔着嘴边的鲜血,一边高兴地望着他。
王子大怒,抽刀刺入狗腹。
狗惨叫一声,惊醒了睡熟在血迹斑斑的毯子下面的婴儿。
这时,王子才发现屋角躺着一条死去的恶狼。
9 他向她求婚时,只说了三个字:相信我;
她为他生下第一个女儿的时候,他对她说:辛苦了;
女儿出嫁异地那天,他搂着她的肩说:还有我;
他收到她病危通知的那天,重复地对她说:我在这;
她要走的那一刻,他亲吻她的额头轻声说:你等我。
这一生,他没对她说过一次“我爱你”,但爱,从未离开过。
10 饥馑之年,儿子决定抛弃瞎眼老母。
一天,他编个瞎话,将娘背进远处的大山里。
放下娘,又饿又累的他已觉得没有半点力气。
他说:娘,你在这儿等一会,我去给你弄吃的。
刚要走开,娘一把拽住他:儿呐,娘兜里还有一块馍,你吃了再去吧。
儿子一听,顿时热泪横流,“噗嗵”一声跪倒在娘脚下……
11 上学时,妈说:等你们毕业,妈就享福了。
毕业时,妈说:等你们找到工作妈就享福了。
工作时,妈说:等你们结婚妈就享福了。
结婚时,妈说:等你们有了小孩妈就享福了。
有了小孩,妈说:等你们小孩长大妈就享福了。
现在小孩长大了,我说可以享福了。
可是妈妈,你能听到么
--------
11个其实是最感人的,所幸我的父母还是可以听到的。不过,他们现在说的就是最后那一句:等你们小孩长大就可以享福了。
有时候想想还是挺伤感的,把握现在吧,不要象别人说的,等到失去了才后悔莫及。
以前那句老话:父母在不远行。想想自己却是在15岁左右就离开家了。一转眼都16年过了。。。
Misc | 评论:0
| 阅读:15684
Submitted by gouki on 2011, October 29, 12:30 PM
闲着蛋疼的时候,乔楚在群里发了个转贴,其中我只听过第一个的故事,第二个第三个没听过,不过确实都挺感人。
其实,第三个故事我也做过,只是可能心里想的并非他说的那样,只是简单的觉得既然人家不方便就让别人坐喽,确实是没有想过“我只不方便三小时,而别人不方便一辈子”
三个故事
第1个故事 小孩的心
有一位单身女子刚搬了家,她发现隔壁住了一户穷人家,一个寡妇与两个小孩子。
有天晚上,那一带忽然停了电,那位女子只好自己点起了蜡烛。没一会儿,忽然听到有人敲门。原来是隔壁邻居的小孩子,只见他紧张地问:「阿姨,请问你家有蜡蠋吗?」
女子心想:「他们家竟穷到连蜡烛都没有吗?千万别借他们,免得被他们依赖了!」于是,对孩子吼了一声说:「没有!」
正当她准备关上门时, 那穷小孩展开关爱的笑容说:「我就知道你家一定没有!」说完,竟从怀里拿出两根蜡烛,说:「妈妈和我怕你一个人住又没有蜡蠋,所以我带两根来送你。」
此刻女子自责、感动得热泪盈眶,将那小孩子紧紧地抱在怀里。
第2个故事 纯真的心
有一个小镇很久没有下雨了,令当地农作物损失惨重,于是牧师把大家集合起来,准备在教堂里开一个祈求降雨的祷告会。
人群中有一个小女孩,因个子太小,几乎没有人看得到她,但她也来参加祈雨祷告会。
就在这时候,牧师注意到小女孩所带来的东西,激动地在台上指着她:「那位小妹妹很让我感动!」于是大家顺着他手指的方向看了过去。牧师接着说:「我们今天来祷告祈求上帝降雨,可是整个会堂中,只有她一个人今天带着雨伞!」大家仔细一看,果然,她的座位旁挂了一把红色的小雨伞;这时大家沉静了一下,紧接而来的,是一阵掌声与泪水交织的美景。有时我们不得不说:小孩子其实一点都不「小」,他(她)们其实很「大」!他(她)们的爱心很大!他 (她)们的信心很大!
第3个故事 我们只不方便三小时
那天跟老公幸运地订到了票回婆家,上车后却发现有位女士坐在我们的位子上,老公示意我先坐在她旁边的位子,却没有请这位女士让位。我仔细一看,发现她右脚有一点不方便 ,才了解老公为何不请她让出位子。
他就这样从嘉义一直站到台北,从头到尾都没向这位女士表示这个位子是他的,下了车之后,心疼老公的我跟他说:「让位是善行,但从嘉义到台北这么久,大可中途请她把位子还给你,换你坐一下。老公却说:「人家不方便一辈子,我们就不方便这三小时而已。」听到老公这么说,我相当感动,有这么一位善良又为善不欲人知的好老公,让我觉得世界都变得温柔许多。
心念一转,世界可能从此不同,人生中,每一件事情,都有转向的能力,就看我们怎么想,怎么转。我们不会在三分钟内成功,但也许只要花一分钟,生命从此不同。
亲爱的朋友们:你看完这三篇小故事后,可以马上起身去擦桌子,或洗碗;或闭起眼睛沉思一会;也可以转送给其它的朋友。
当然,我最开心的是你选择转送,也许会对别人有所触动,亦如当初我被触动那一刻!
Misc | 评论:0
| 阅读:16120