All posts by suncup

轿

春秋亭外风雨暴

何处悲声破寂寥

隔帘只见一花轿

相必是新婚渡鹊桥

吉日良辰当欢笑

为什么娇珠花泪抛

此时却又明白了

世上何尝尽富豪

也有饥寒悲怀抱

也有失意痛哭号啕

轿内的人儿弹别调

必有隐情在心潮

甲午年小结

丙 丁 戊 己 庚 辛 壬 癸
子丑寅卯  辰巳  申酉戌亥

甲午年已过,这一年也和之前一样,忙忙碌碌,波浪起伏。正如我二十来岁的人生。

有关身体

身体的安康是万分重要的。

今年关于身体健康有些欠奉。值得一提的大概也就是依照习惯使用Hacker’s Diet提供的模版记录自己的体重,并观察均线。John Walker用科学且浅显的理论解释了为什么人观察体重需要关注均线,而不是体重秤上的某一时刻数字。至于锻炼,并无遵循。主要是懒,次要是推脱给工作繁忙比较方便。如此对生活的态度可见一斑。体重并未刻意去控制,最多只是在饮食上会有收敛。同事惊诧于我不守规律、秉持“饿了需要热量了就吃,不饿就不吃”的特点,并祝福我不会得到消化器官方面的疾病,虽然他们自己都不相信这份祝福。

今年最大的身体问题仍然是失眠,这个如同往日旧友的症状一直在它恰到好处的时机出现并给予我恰到好处的折磨。时长不规律、频率也不甚规律。对付失眠我已试过各种各样的“术”——比如牛奶、热水澡、镇静、冥想、噪音耳塞、阅读、食补、自暴自弃地游戏……我感谢这些稀奇古怪的办法,当然更要谢谢多少在关心我失眠的朋友们。可毕竟“术”这一层在未弄清底层原因的时候像是无头苍蝇,只得猜测并尝试了。失眠源于焦虑,焦虑源于心理失衡。很可惜的是甲午年一年也不见得记录几次做来的梦,使得学习自己认识自己变得困难起来。人如果一直困顿于自己的表意识,很容易变得“只缘身在此山中”那般认不清自己。比如我只能认识到自己带着大大的焦虑去生活,自然会有失眠来拜访。这能从日常感觉得到,譬如,小到周末来临大到假期,我会感觉到自己按下了暂停键,而在意识较深处,暂停是一个安全的、能保护我的动作,那么我会显得放松自在。如果这时恰好我又处在新的环境——无论是出游时拜访的异乡还是省亲时寄宿亲人的屋檐下——睡觉便回归了吃饭呼吸一样的自然。回到父母身边甚至会有下午小睡的冲动。而一旦到了工作日,大量的时间被用来处理业务,大量的时间在播放甚至快进键度过。深夜,躺在自己逼仄且充满灰尘的屋子里,满满的都是焦虑。随着今年日期的推进,愈演愈烈。

这说明我还无法学会与压力共处,排解心中的苦闷,或者更直接地抚平焦虑。比起身体健康来说,心理健康的差劲程度相当地厉害。作为一个社会螺丝钉,这个短板有些致命。要么你变身扳手要么你就卸下来当备用件。排解压力无外乎娱乐、阅读思考、工作减压。希望来年能有所改善,驾轻就熟地疏导自己的心理。这才是根本的,无论你工作职责工作地点有否变动,应对的方式需要更加成熟一些才好。除此以外,颈椎、关节和肌肉已经也算“程序员老毛病”了。

有关饭碗

一方面已经在正式的工作总结里写吐了。诸如已经逐渐在测试这个田地里开始耕耘起来,诸如承担队伍的主力云云。这都无所谓。我想梳理一下自己的工作能力到底有什么长进。简单说,我成为了熟练工。不胆怯不畏惧,遇到问题首先分析线索,解答已知解析未知,遇到各种情绪的人尝试用合适的态度去应对,遇到公众场合表达自己更加有条理。这是好事。

但我又恐惧自己止步于此。往往能从一些社交场合看到各种有梦想的人在向着自己的目标前进,或者在创造在改造。而我的方向却有些从学徒到熟手的路上去走。我一直有种感觉,自己在做的事情没什么创造力。在这个个性张扬的年代,任何人能用作品来表达自己,而我却惶惶恐恐地感觉自己毫无创造头脑。真希望这是错觉,我反思了一下,自己在目前这个位置也不是那么容易找到替代。即便是传统专业领域,培养学习也很耗费精力。大约这就叫做“壁垒”或者“护城河”。来年希望自己能够不要局限于此而画地为牢,还是在其他地方有所建树才行。哪怕这虚假的成就感仅仅是为了缓解上文的焦虑呢?

另一个饭碗是意识到自己需要工作以外的赚钱技能。是的,培养了投资理财的爱好。回顾从有了固定积蓄以来,自己想出了定存滚存的办法,发愁过各银行5万的理财产品门槛,在毫无研究下申购了处于债券熊市的债券基金并亏损,在余额宝风靡之前一年认识到货币基金的储蓄替代意义,在所谓互联网金融时候参与P2P。然而,直到甲午年,才摆正了投资收入和个人成长的位置,也去行动起来开了各种证券户。从价值投资学起(不要嘘),参与了财务稳健估值低到抛弃的蓝筹,企业债券,封闭基金,也因为行业便利参与了$MONT的私有化套利,在爱民如子证监会的环境下中过一次新股,怎么也没想到自己会碰上2014年尾的这次行情,同时因为毫无思考与经验,经历了2015年初的较大幅度回撤。目前到除夕时的收益为33.7%,值得反思为什么凭借运气从这血淋淋的市场上得来的结果。

值得总结的是更加体会到了赚钱的艰辛,学会了贴现的概念以后,我更愿意用年化收益率与贴现来看待付出与回报的关系。劝诫亲朋不要去招惹民间借贷时的想法就是,他们承诺的利息这么高,这在真正的市场上需要多少努力承受多少风险才能获得?如果人人都有这么高的无风险收益,没人会在现有的金融框架生活了。反过来这才是不可持续甚至会击鼓传花地行骗的。唉,收效甚微。但是贴现的思考方式仍然是我这年最重要的收获之一。

然而,对于其他理论我却仍然一头雾水。譬如估值,一个好生意一个好公司你觉得什么是好价格?让你收购你认为用多少钱来盘下来是合算的?这个问题,完全没有入门。我的格局太小了,从来不懂生意人的思维,自然答案会显得陌生。除此之外,我也体会到市场是自己情绪的放大器。贪婪与恐惧这对最经典的对立情绪能瞬间左右自己的决定,实在可怕。人性之薄弱,未曾体会之前肯定会低估的。经常能看到人说,市场交易是反人性的,那么越是欠缺智慧的凡夫俗子,越需要下功夫去一一克服,真累。

有关娱乐

娱乐,哈哈。我平时的爱好太少了,娱乐对我来说基本剩下了两样:数钱、电影。前者在随手记的帮助下已经尽量做得精确了,后者则是大大小小的电影票根、电影节、依靠网络和电视获取的片段或全片等等。除此之外,今年跟着刘总和小张开始跳常旅客的坑。也算是种小乐趣吧。最后,在甲午年末,收获了四公主开始步入正版人生之类的,也算娱乐。

有关人生

人生一点都不平淡,一年所见之人和所经历的事快速地掠过会让人眼花。就像泛舟遇到骇浪,我没法维持平静和安详。

2014年7月,我的爷爷故去了。他终于能和我奶奶团聚,而我在几近中暑地跪在黄土地之时也意识到这是我最喜爱最敬重的长辈离开了我,他生活的那个平静又闭塞的村庄以后也不会去探望。我体会到这便是失去,一种尘封起来就不怎么想再去故地重游的记忆。

在这之后,沉沦于日常斗争的我渐渐发现和父母的价值偏差,以致冲突与互相误解。我会为此而消沉几个星期,就为了想不通为什么母亲不理解我或者我不能让母亲体会我的用心。又不住一起,人生体验相距又远。悲观的说,也就血缘关系能维系在一起,不被异地和各自的人生挣扎而打败了。我抽空回家也算频繁,但往往互动中带有失落。其实我也讲不清自己在人生中最想追求的是什么,如果能理顺,讲清楚,也许父母会更宽容一些,而不是陷入一般意义上的长辈见识了。

人生的际遇又是奇妙。我认识了新朋友和老朋友的新面目,有些很欣赏的人也各种各样的原因离开了自己的生活。当然要谢谢能够友善交往的人,也要提醒自己,能不能像他们一样好学和勤奋。

你现在要我怎么样

又欠了一年的小结。日子过得匆匆,你却不曾回头。欠下的小结也是这样的遗憾。不想让遗憾带到很久的将来,就把它写了下来。未来的压力还是有点大,但是,正如一个公众号说的:“时间是你最好的朋友,你现在的限制你现在发愁的一无所有,时间都会给你。你只要相信这点就好。”我相信,我还在期望这些想要索取的能快一点实现。

使用ffmpeg命令行裁剪合并mp4封装的H.264视频音频流

最近因为工作上的关系又要重操旧业折腾视频编码了,而且这次更偏向实际应用一些。

工作时使用到的工具:

  • CamStudio – 屏幕录像,可录音。Free, GPL license
  • MediaCoder – Audio/Video Transcode Interface
  • FFmpeg – Audio/Video CODEC Converter. Free, LGPL
  • StreamEye – 视频码流分析器。Commercial
  • YUVviewer – YUV RAW码流播放器
  • MediaPlayer

这次的工作是为了录制一次培训讲座中Lab部分的演示。录制很麻烦,起码NG了千万次,而且有过长时间的返工。那么最后为了减少重新录制的麻烦,我选择了输出片段的方式。期望依靠后期处理来进行裁剪和合并的操作。但我并没有Adobe Premier这种非线性编辑器,所以就略显麻烦。折腾很久。

首先CamStudio输出的视频是AVI封装,视频为CamStudio专用编码、音频则是PCM。所以第一步是将这个原始的AVI码流使用MediaCoder的界面小批量地将它用x264编码,Baseline profile@L3.1。这样可以在其他并未预装CamStudio解码器的机器正常播放。

接下来,需要把录成的各个章节小片段合并。我尝试过许多种组合,国产流氓软件我们就不再提及。这里记录下使用FFmpeg的操作过程。来源于搜索到的这篇文章。它的一个思路就是将mp4用MPEG TS码流,而TS码流在文本数据层面可以进行拼接的动作。那么我这里还多了一步转换成mp4封装的步骤,vcode和acode就不指定了,FFmpeg的默认编码必然满足我的需要。

ffmpeg -i demo2-1.avi demo2-1.mp4
ffmpeg -i demo2-2.avi demo2-2.mp4
...
ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4

后来嫌麻烦,写了个Batch做这个合并的事情。放心,FFmpeg跑的挺快的。我在Windows下干活,也可以根据需要转成shell脚本。

@echo off

ffmpeg -i %1 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i %2 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc %3

del 1.ts
del 2.ts

最后呢,就是按照需要去裁剪那些因为不断失误而录下来的错误。参考了这篇这篇文章。他们的一个思路都是利用ffmpeg -ss <Start time> -t <Duration>的选项去做裁剪输出。但是直接对H.264和AAC等编码的码流使用会有两大问题:1、视频裁剪只能对关键参考帧动刀子,如果需要裁切的时间落在了P帧或者B帧最后输出的视频片断肯定有偏差。2、比较明显的音画不同步问题。

那么为了解决上述问题,思路则为:针对问题1,首先将码流转换为仅帧内预测编码(Intra Prediction),另外将AAC等压缩的音频流还原成PCM也对问题2有帮助。参考文章之一选择了MJPEG作为“无损”的视频编码格式,并且提到不使用RAW的理由。而在我的实际使用步骤并不绝对符合。我使用h264的纯帧内编码和PCM音频。

ffmpeg -i demo3-1_1.avi -vcodec h264 -intra -acodec pcm_s16e demo3-1_out.avi

接下来,想要将一段25秒长的错误之处去掉。这里利用MPlayer播放暂停后使用Goto(Ctrl+G)得到比较精确的时间:2’59.121” ~ 3’24.638”。那么用FFmpeg裁剪,就等价于截取0’0”~2’59.121”和3’24.638”这段,抛弃不要的,用上面讲的方法合并前后。为了计算Duration方便,我将分秒格式的时间(1:2.30)换算成秒钟浮点数(62.30)——这两种格式都被FFmpeg支持。

ffmpeg -ss 0.00 -t 179.121 -i demo3-1_out.avi -vcodec libx264 -acodec libvo_aacenc
-ab 320k demo3-1_1.mp4
ffmpeg -ss 204.638 -t 80.372 -i demo3-1a.avi -vcodec libx264 -acodec libvo_aace
nc -ab 320k demo3-1_2.mp4

join_mp4.bat demo3-1_1.mp4 demo3-1_2.mp4 demo3-1.mp4

好了,烦恼我一个月的视频编辑做完啦。

办理“进沪人员落户社区公共户” (更新)

对,又一次和官僚主义做了艰苦卓绝的斗争。

起因是2013年末上海市公安局发布一则通知要清理延续二十余年的上海市学生事务中心人才引进类集体户口。本着能分流常驻户口则分流,能挂靠单位则挂靠,什么都不能则落入“社区公共户”的指导思想,限期折腾广大挂靠“延安西路900号”的集体户口注册人。如果你以及你的配偶、直系亲属拥有可以落户的产权,迁出;没有但是你的工作单位建立了集体户口,迁出;都没有了,找你实际居住地的辖区派出所社区公共户,迁出。 问题是市局的指导文件公开了,但是具体执行流程依然语焉不详。在所谓全面深化改革开放、简化行政审批手段大势所趋的今天还能继续玄而又玄地把解释权下放到基层辖区派出所。这是一种什么样的蛇精病呵?基层派出所就有趣了,各自对流程的理解都花样百出,所以会有跑一个派出所当面询问流程和所需(繁冗的)材料会同其他派出所询问结果不一致的局面。当然了,最终肯定以你期望迁入公共户所在辖区的派出所解释为准。

我的户籍情况也简单,大学时期户口从父母所在城市迁入学校集体户口,毕业之后通过(持续20年之久的)毕业生落户流程和几十万人一样挂在了延安西路900号,学生事务中心集体户口。一切都还算稳妥,新华派出所驻新华路办事处距离上班处也不算远,偶尔去索取户籍证明等材料也算方便。租赁一处房屋居住,名下登记的不动产权为零。工作单位不具备设立集体户口的条件。因此,我该在限期清理日期之前,迁移到社区公共户。 上面说到具体办事流程的解释权下放到各辖区派出所。经过几次(过程不算友好、态度不算亲善的)咨询,大体上想把这劳心事给办了的话还是有据可依的。比如,必要的材料有以下几种。按一位基层民警的精神,迁移社区公共户需要证明你有稳定的工作及固定可查的住所。

  • 实际租赁居住地证明(三选一)
    • 街道社区服务中心开具的《居住房屋租赁合同登记备案》
    • 社区居委会开具的《寄宿证明》
    • 工作单位集体宿舍管理处开具的《集体宿舍入住登记证明》
  • 身份证及复印件(多印两三张没错的)
  • 房屋租赁合同原件及复印件
  • 辖区派出所填写《申报常住户口申请表》
  • 其他充满玄幻感的证明材料*

我们还是有官方精神可以参考的,例如上海市公安局的这个角落。很多具体信息可以查,诸如社区公共户设立的户籍地址、辖区派出所地址与联系电话等。有鉴于自2014年来公安及基层社区行政工作人员普遍不受互联网思潮的影响,使用电话沟通具体疑问还是很有必要的。 这里多说一点实际居住地的证明文件,派出所可以受理任何一种形式。但是不同的生活方式带来了开具这三种证明文件的难易程度不一。例如本人的居住性质是市筹公共租赁住房,和某地产公司下属的管理公司签订的租赁合同,有经营发票且必须备案。那么本人开具第一种房屋租赁合同备案是最可取的选择。我的同事有很多是和本市私人房东签订的私人租房合同,且不少房东不理解或者不愿意将房屋出租交给社区服务中心备案登记,担心可能引起的租赁收税等各种问题,加之基层居委会工作人员(多半是大妈)业务素质有限或政策精神学习领会不够深入,误解甚至妖魔化社区公共户政策以及配套的实际居住地证明,给广大需要办理业务的租客及配合办理业务的业主带来了误解和不必要的麻烦。这种情况下,我想除了耐心说服教育及沟通,并主动解释市局政策之外别无他法了吧。倘若能以“亲友投宿”身份取得居委会开具的《寄宿证明》,派出所同样可以接受。但是,居委会也是另一个精英怪物云集的副本了,战居委会完全可以另起一帖书写,我们按下不表。

我办理社区公共户的子目标就成为了取得房屋租赁合同登记备案。这个备案登记是在小区所属的社区服务中心办理(周一至周六)。稳妥起见我先咨询了物业公司,大有收获。物业告诉我本社区服务中心要求申报人提前填妥《来沪人员居住登记表》一式两份并加盖经租管理中心的公章,物业需要统一在每周二报备,周四或周五亲自去社区服务中心才可查询记录并领取备案申请。照着指导填写这个登记表——后来被派出所民警揶揄:“你本来就是上海市集体户口要什么来沪登记啦”——并在周五消耗宝贵年假一天,兴冲冲跑去社区服务中心办理了。排队领取一张需要回到小区加盖经租管理中心印章的备案申请表,又茫然地等上十来分钟公交车回到了小区。下午再次折返,获得了关键物品:《居住房屋租赁合同登记备案》。此时已经14:30超过了一些。 简单查询通往辖区派出所的公交路线就上车前往了。那个派出所的地点曾经最熟悉不过,几年如一日地每天路过但从来不曾踏门进入。当天带着一堆纸质材料进去排队却被告知不予受理,需“下周一、三、四、五再来,有专人办理社区公共户事务的。”惊愕之余求解释未果,只好请求帮忙审阅材料完整与否。期间获得《申报常住户口申请表》原表。所以,一天内办完的白日梦破灭了。只好改日再战。

这是拜托同事从浦东新区某派出所给出的申请表填写样张。

申报常住户口申请表-正面
申报常住户口申请表-正面
申报常住户口申请表-背面
申报常住户口申请表-背面

接下来又找了某个周三下午,来到辖区派出所。递交材料:

  • 填写完备的《申报常住户口申请表》
  • 《租赁合同》原件及复印件(每页都需复印)
  • 《房屋租赁合同登记备案》原件及复印件
  • 身份证原件及正反面复印件

接下来就是查验原件、整理统计复印件、各页材料签字、填写保证书等流程。最后民警会打印回执,告知本人15个工作日内会电话通知受理情况,届时请带上身份证原件集体户口个人信息页于工作日来派出所完成最后落户手续。和同事的浦东某亲民派出所做法不一样啊!!!这意味着我需要在某个工作日先跑一趟冠生园路401号,也就是学生事务中心办公地取得集体户口个人信息页加盖公章的复印件,再次折返才可落户。同事的案例是派出所直接调取现存户籍信息免除以上步骤。

在4月6日星期天的下午1点,本人接到辖区派出所电话,正式通知申报社区公共户已经受理,请于周一至周五带上a与b完成落户手续。意味着我又要在繁忙的春季选一天穿梭在田林到长征之间了。

我觉得这一两年来,折腾不止的办事手续一直能被我碰上,比如毕业时遇上三方撤销等等。那么也算运气不俗,折腾便折腾吧,将之记录下来或许也对其他不知头绪的朋友有点帮助——搜索了下似乎没有什么人比较详细地写出社区公共户的办理过程,只有论坛回帖的只言片语等等。

——4/8  更新集体户口个人信息页——

上周接到派出所民警的电话受理通知之后确认过,必须亲自在工作日去上海市学生事务中心(冠生园路401号)获取集体户口个人信息页加盖公章的复印件才可完成最后的社区公共户落户。由于四月七日周一补休清明节假期,我在次日一早途径中山公园和3号线上海南站过去办理。虽然起了大早,但天气和交通拥堵原因到达冠生园路已经是上午10点了。在办事大厅要求工作人员开具所需的集体户口个人信息页,被告知已经停止办理,并追问我办事缘由。为办理“社区公共户”的话,他们只能接受户籍迁出流程,让我填写《中心集体户口人员户籍迁出申请表》(下载地址为doc文件),且必须加盖公司公章。毫无变通办法,只得折返回公司找人事与财务签字并盖章,再次返回后补交当年的人事代理费,获得集体户口个人信息页复印件。之后乘坐224并换乘辗转到派出所内完成最后的手续。社区公共户事项正式办完。

非常混蛋的办事记录