11

ios3以上视频处理有一些不错的特性:

1、自适应码率

2、视频切片

测试目的:是否能在html5以及flash播放器中实现这些特性?

先用ffmpeg对源视频编码

ffmpeg -y -i test.avi -f mpegts -acodec libmp3lame -ar 48000 -ab 64k -vcodec libx264 -b 250k \

-flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 5 -trellis 1 -refs 1 \

-coder 0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 \

-bt 250k -maxrate 250k -bufsize 250k -rc_eq ‘blurCplx^(1-qComp)’ \

-qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 30 -aspect 320:240 -g 30 -async 2 a.ts

安装开源segmenter视频切片工具,接下来对单一视频进行切片,10秒一个文件

./segmenter a.ts 15 a a.m3u8 http://mysite/test/

nginx配置加入:

application/x-mpegURL                 m3u8;

video/MP2T                            ts;

 

完成之后访问 http://mysite/test/a.m3u8 ,用itouch设备播放正常,chrome浏览器无法播放。

结论,只有ios设备能播放,html5播放不能,flash播放不能。


较好的方案是根据用户访问设备来进行兼容,非iPhone用户则使用播放mp4,测试页面代码(来自akamai):

<html>

<head>

<script type=”text/javascript”>

function isiphone(){

return ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) != null;

}

function init(){

if (!isiphone()){

document.getElementById(“videotag”).src =”http://mysite/test/a.mp4″;

 

}else{

document.getElementById(“videotag”).src = “http://mysite/test/a.m3u8″;

}

}

</script>

</head>

<body onload=”init()” >

<video id=”videotag” width=”400″ height=”224″ controls=”controls” >

<!– Fall-through to Quicktime object –>

<object width=”400″ height=”224″ type=”video/quicktime” data=”http://mysite/test/a.m3u8″ >

<param name=”controller” value=”true” />

<!– Fall-through to Install message –>

<a href=”[link to preferred runtime install..]“>

Click here to install support for this content.

</a>

</object>

</video>

</body>

</html>

 

自适应码率:

只有ios和safari浏览器支持,通过m3u8定义文件选择带宽对应的m3u8播放列表。

 

设想:

是否可以通过flash播放器编写特定代码读取m3u8列表文件,挨个播放视频切片文件?

 

参考:

http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/

 

26

instagram是个iphone手机拍照利器,android党是无福消受了,不过幸好还有个类似强大的picplz,我比较喜爱70s和Little Plastic Lens特效。

近期换了个1.1G流量的3G卡,怎么用也才用到300M,浪费可耻鸟,得多拍拍照片。

picplz可以同步到twitter,facebook,4qs,就是没办法同步到新浪微博,网易微博,国内又没发现有这样的应用,有些遗憾。前些日子张锐感叹:再不做instagram,就有些晚了。

不过也没见网易有啥动静。

看来还是直接写点代码从picplz同步过来吧。

picplz个人页提供了个feed:http://picplz.com/user/seanwong/picfeed.rss/

思路是抓取第一条,下载了图文,再扔到新浪微博。

static Pattern patternImg = Pattern.compile("&amp;amp;amp;amp;lt;img src=\"(.*?)\"");
public static void picplz(String url) {
//记录上次图片发布时间
String filename = "/picplz/picplz.log";
String tmppicname = "/picplz/picplz_tmp.jpg";
String picplztime = FileUtil.read(filename);
try {
URL feedUrl = new URL(url);

SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new XmlReader(feedUrl));
List list = feed.getEntries();
if(list.size()&amp;amp;amp;amp;gt;0) {

SyndEntry entry = (SyndEntry) list.get(0);

long pubdate = entry.getPublishedDate().getTime();
//已经发布过的图片,避免重复发布
if(picplztime.equals(""+pubdate)){
return;
}
String title = entry.getTitle();
String imagesrc = entry.getDescription().getValue();
Matcher m = patternImg.matcher(imagesrc);
if (m.find()) {
imagesrc = m.group(1);
}
imagesrc = imagesrc.replaceAll("_thmb_", "_wmlg_");
//抓取图片到本地
wget(imagesrc,tmppicname);
//通过sina api上传图片
//String command = "/usr/bin/curl -u \"test@163.com:password" -F \"pic=@" + tmppicname + "\" -F \"status=asdfsdaf\" \"http://api.t.sina.com.cn/statuses/upload.json?source=4238273265\"";
String command = "/home/picplz_curl.sh " + title;

Process p = Runtime.getRuntime().exec(command);
p.waitFor();
//写入当前图片的时间
FileUtil.write(filename,""+pubdate);

}

} catch (Exception ex) {
ex.printStackTrace();

}
}

然后看见强叔在微博上震惊了,picplz居然可以同步到微博?

网易微博api有点复杂,貌似没有basic auth …

只能是先发图,获得图片链接,再发微博,汗了。。

十二 28

这一年快过去了,我做了一个艰难的决定:辞职。

方三文在他离职跟大伙说过,网易带给我的,远远超过了我带给网易的。这也是我此时的感觉。

亚运期间在广州待了一个多月,虽然阔别一年多,又回到网易大厦上班了,却已物是人非,每天都如同last day,离别的气氛越来越浓重,连庆功宴也好像开得像送别会。庆功宴这一天见到了好多熟悉的陌生人,明明认识却叫不上名字了,将近两年在北京的时间,衰老得厉害,时光如黑丝般润滑(via雷萌叔),我好像在沉睡,我忘记了太多的事情。

也许是离开了故土便失去了养分,北京虽然繁华,到处都流连着优秀和淡定的人类,而对我来说,一切不可持续,漂泊不定的浮躁让我不可忍耐,我终将离开。

阿甘有一天独自坐在屋檐下,突然站起来就跑啊跑,被别人赋予了很多不同的意义,突然有一天就不跑了,累了。阿甘为人纯粹,虽不善言语,却知道自己内心,有时候我也累了,背负的越来越多,却停不下来,不过有时候必须得有个选择,不是什么都得要有意义,于是遵从了内心,只有放弃才有希望。

19

操作数据库:SQLiteOpenHelper

数据库初始化,会自动调用onCreate(SQLiteDatabase),

写上创建表结构的sql即可:SQLiteDatabase.execSQL(DATABASE_CREATE); //不用自己控制

写程序需要要调用的:

SQLiteDatabase db = SQLiteOpenHelper.getWritableDatabase();

使用db对象做sql操作:

ContentValues initialValues = new ContentValues();
initialValues.put(KEY_TITLE, title);
initialValues.put(KEY_BODY, body);

db.insert(DATABASE_TABLE, null, initialValues)

Notepad例子用了内部类,基于SQLiteOpenHelper:

private static class DatabaseHelper extends SQLiteOpenHelper {

DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {

db.execSQL(DATABASE_CREATE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, “Upgrading database from version ” + oldVersion + ” to ”
+ newVersion + “, which will destroy all old data”);
db.execSQL(“DROP TABLE IF EXISTS notes”);
onCreate(db);
}
}

onCreate和onUpgrade为抽象方法,所以必须实现了。

拿到操作数据库对象的实例:

DatabaseHelper mDbHelper = new DatabaseHelper(mCtx);
SQLiteDatabase  mDb = mDbHelper.getWritableDatabase();

mDb.insert  …

mDb.delete  …

mDb.query …

mDb.update …

最后 mDbHelper.close();

close应该不用显式调用,通常很难判断什么时候该回收资源。

22

今天几个小时的管理培训,旁边小亮闷得奄奄一息,抬起手指指了下我的牛仔裤:大腿上一个小洞。我在本子上写了一个字:穷。
上一次买裤子,是膝盖上横向撕裂了一条缝,那是我跪在地上拍照,估计站起来的时候被石块撕开了,现在的牛仔裤质量不怎么好,才穿几年不是这里破就那里破。
晚上跟小亮去公司对面的青鸟健身,这是我第一次来,还穿着破牛仔裤,不过很惊喜,原来这里别有洞天,器械很齐全,而每一种我都特别喜欢,玩到累了爬下来,两腿打颤,双手发抖。
公司弄了那么多福利体育项目,我居然都没来过,仅仅隔周游泳一两次而已,要是我一年前就来玩,现在身材岂不超fit了?想起来真是肠子悔青了。玩完出门,我仿佛已经身轻如燕了,不过看了下肚腩和大腿,还是没啥变化,无语。
出来去吃饭,然后踩着破单车去修,这车不知为何总是咔咔作响,到了修车铺,那大妈一看,蹲下来往外掰了一下车链盖子,然后这车马上就很安静了,然后她也不收钱,我只好拍拍马屁:高手,真是个高手,大妈有点不好意思,我都干这行几十年了嘛。

15

2008年11月,王华元给网友题词——“网友朋友:阳光是最好的防腐剂”。

7 月14日,原浙江省纪委书记王华元受贿、巨额财产来源不明案在山东枣庄一审。检方指控王华元借职务之便受贿771万余元,并有折合人民币895万余元的 财产不能说明来源。

喻华峰笑而不语,以下:

2004年,就是因为王华元一句话,广州《南方都市报》总编辑程益中和总经理喻华峰被以“贪污罪”和“私分公 款”的罪名拘捕,喻华峰被判了七年多的重刑。据说王华元在广东省委的有关会议上表示“就是要以‘贪污罪’来处理《南方都市报》这帮小子”,被认为是中国式 冤狱典型的“有罪推定”和 “未审先判”。

15

当你撞墙了,你才知道什么是自由。

这次大批封杀阉割国内微博,算是一次普及教育吧,这也不许,那也不许,他们是完全看不得你们自由自 在。

各大门户微博功能会严重受限,短链接加入白名单,不再允许随便跳转,以控制信息传播。另外搜索功能也要受限,以免群众搜到不合适内容。

网 易微博虽然暂时被关,而往后受影响最大的应该还是新浪微博,目前他们的sinaurl.cn已经有很多网站跳转失效,以阻止用户跳转到境外或者是其他非白 名单网站去浏览更详细内容,搜索功能被停止。

2010-7-15 14-20-26

然而没有一个部门敢宣称对此次大规模整顿负责,他们也只 敢偷偷摸摸下达指令,网易搜狐新浪腾讯纷纷表示是自愿阉割功能,或者是自愿对网站进行维护关停。

看来这是不能在阳光下干的事,如此 看来,他们好像也知道点羞耻。

15

http://internet.solidot.org/article.pl?sid=10/07/13/0542226&from=rss

澳 洲推动这一项网络过滤计划是很让人疑惑,民主国家的政府当然不是不会犯错,不过这样跟选民争锋相对做一些不理智的决策,又置自身仕途于何处?

“悉 尼晨锋报设立的一个网上调查吸引了超过8.8万人投票,99%的人不同意政府对色情、暴力和非法网络内容进行过滤。”

然而至少目前计划被推 迟了,澳洲政府的想法,匪夷所思。

11

房间没有椅子和电脑桌,出门就是大马路,所以不能宅了,每周末都得出门,不管做什么。

陶陶推介了一本《老北京·新北京》,让我每周去 一个陌生的地方,每周认识一个陌生人,每周找一个没吃过的饭馆。

所以今天直奔O2去看,想顺便买独唱团和1Q84 book2,不料独唱团居然卖完了,我接着就去了万圣书园,这边也是售罄,韩少威武。

老鹰离职了,我想起来,她是我在网易上班第一天碰到的 第一个人吧,她见到我就拿笔记本让我帮忙调怎么上网。她昨晚请我们几个吃饭,我带他们去了粤味,北京下了几个小时的雨,前所未见,吃完出来,发现水淹没了 半条街,汽车从旁边开过,也不减速,被他们呼啸而过溅起一片片水花搞的很狼狈。

再往前,回了一趟广州,然后去了深圳,再回广州,直接转机场 回北京。在深圳,懒人公司,见到了莫掌门,上次见她大约是8年前我去深圳出差的时候了,她居然也没什么改变,只是在中午,略显困倦。中午吃饭,叫上了老 O,也是很久很久没见了,一见我就说我胖了黑了,巨汗,他也没啥改变,不过在其他地方碰到,可能也是认不出来了。

N年前深圳风雨操场聚会, 一屋子的网友,那是首次一下见了那么多熟悉的陌生人,我想在网上再找找当年的帖子,不过可惜操场已经不在了,搜索引擎也不再有保留数据。如果能再次打开, 想找我自己的帖子看看,看我当年都在想什么说什么。互联网电子公告服务专项审批(备案)终于被取消,所以重新启动这个论坛也不是不可能,就看数据是否还存在。

04

又是高考出分数,选志愿的时候了,高考独木桥挤满了彷徨和焦虑的考生和家长,这是关键的时刻。

不过真是自古华山一条道么?

我们很多人都是高考然后上大学一路过来的,谁也骗不了谁,大学那几年除了身体发发育,能学到些什么东西呢?

大学拥有了一些自由,所以可以随便你学什么,学校已经放手了很多,换句话说就是随便你怎么玩,老子不管了。不知别人是怎样,我自己是很不适应,然后 喜欢去泡图书馆,有一搭没一搭借书看,除了计算机方面的,都是莫名其妙的书,什么恶之花,顾城诗集,唐诗宋词,忏悔录甚至还有哲学,佛教的东西,越看越神 经病,后来就跑去计算机俱乐部专门玩电脑了。

所谓玩电脑,谁都知道,大部分其实是玩游戏。早上去买了点早餐,加一份新快报,然后就开始上课了,一边看报纸,吃早餐,老师在上面也不管你。差不多 时间就跑去鹤山楼,就是我们机房,下午经常没课,有课估计也不管,就一直玩游戏下来了。

不过有师弟师妹进来,我们通常变得一本正经,玩游戏的马上变身专业人士,古今中外,天文地理,软件硬件没有不精通的,要是你电脑出啥问题,三两下给 你格式化重装了。我们计算机专业的,总有莫名其妙的优越感,结果就是有次考试挂科几乎全军覆没,校长跑来谈话,寒假留下补考,杯具。

杯具变成洗具的关键,就是师兄不知从何处弄来一只36k的猫,拨号成功,我终于第一次看见红彤彤很喜庆的163电子邮局,以下十来天都沐浴在互联网 的春天里,你们未必经历过当年的互联网,相比之下很少东西可以玩,我们只是经常上网易虚拟社区,碧海银沙,华南木棉,水木清华,icq,和mug等等。还 一度自爆了,发了自己照片和一段话给网易社区,结果上了社区每日一星,然后收到好多电子邮件。

当年的学校网络是很自由的,图书馆有个叫华哥的建了一个bbs,我们很快就上面疯狂版聊,可惜自由的表达,总是跟学校的监管目标背道而驰,很快 bbs被迫关闭了。几年后我毕业,到图书馆注销借书证,华哥见了,就说,哦,原来是你啊。

我做过最愚蠢的事,就是加入团委想追求入党,结果被叫去画了几年黑板报;主动跑去给学校党委书记修电脑,顺便搭几句话,看能否跑个后门,结果领导只 是拍我肩膀说很好。另外就是找关系很好的学生会主席师兄让他指点迷津,其实都是想要走捷径,不过我还是很杯具地把党课考试给搞砸了,党课考不过的人几乎没 见过吧?这就是命,以后我就跟贵党渐行渐远了。

你玩什么,都不会有人说你不务正业,所以我经常找吉他协会的那几个人,还有晓健他们的乐队玩,也曾被赶鸭子上架,参加艺术节乐器比赛,得了个安慰奖。 最有价值的体验,就是看见大礼堂坐着几千万人看着自己,傻眼了。这种事以后也不再会有了,我要做个低调的人。我楼下有个师兄是个高人,他玩古典吉他,那指 法是我没见过的,书本描述的大珠小珠落玉盘,大概说的就是他,他给了我几个谱子,有《春江花月夜》,《彝族舞曲》,《佛拉门戈》。

晓健玩吉他很生疏,架子鼓是一把好手,节奏感很强,他性格很开朗,跟开平的沼泽乐队很熟悉,那时候他请了他们过来表演,里面也有个叫海亮的人,这些 可是真的高人,听多了晓健他们学校乐队的,再听沼泽,才发现学校乐队可真是不堪入耳啊。他们玩得很好很high,激动的都抱着吉他躺在台上乱抽动了,当时 不知到哪个乐队唱了一首涅槃的rape me,旁边一个外语系的师妹问,什么是rape me?我也没听明白,后来回去查了下,超囧。

在很多年以后一次校友会,有个熟识师弟拿着麦克风老气横秋,尊敬的各位领导,各位来宾blahblahblah,我感到莫名其妙的失落,我们这一代 人,只是复制了上一代的古板和虚伪么,然后又听得他讲,今天大家欢聚一堂,我感到很欣慰云云,我跟旁边的同学对望了一眼,汗如浆出。

不过,上大学未必就只是要跟年龄相仿的一批人一起在一个地方成长而已。在课堂上,学了一大堆不知什么时候能用的东西,当然能用的时候肯定也是已然忘却,更加不用讲那几门什么主义什么思想的必修课。跟那么多人学习,一个没弄好,就反而是个拖累,例如多数人总是会欺负少数人,即使我们宿舍四人,也是有一个会被冷落和疏远,每个个体都有个性,总是有人觉得你奇怪,也很可能会有一群人觉得你很奇怪,小学时代如此,大学依然是如此。

在国内,如韩寒一般,退学出来做自己爱做的事,并且能成就一番事业,原本就很稀少了,而且要饱受多年质疑,仿佛不去上学就是离经叛道罪大莫赎。而做父母的,又有几个像郑渊洁一般,把儿子放到家里自己培养的,仿佛拿了那些毕业证书,就是被亵渎了一般。跟大学熔炉出品的一个个类似的毕业生相比,我认为他们选择了一种不一样的方向,不求大而全的去培养“全才”又或者被灌输成蠢材,你喜欢什么,你就去做,家里全力去支持你,未来的路还是要靠你自己走,你走着走着就要走出老一代人的身影,就会发现老一代人的局限在什么地方。老家伙永远不要按自己的观点去限制小家伙,因为你老了,无所谓了,而往后的路是小家伙自己走的。

preload preload preload