《#诗盗#·翔胺睡道》:通勤之路岛到岛,出岛一堵早造早。睡道屎油烧烧烧。入岛二堵艹艹艹。
注解
翔胺睡道:翔安隧道里面车太堵,都是毒气,闻多了会脑残,一氧化碳中毒。
早造早:早知道就再早点。
屎油:石油烧了有毒烟,臭臭的。
《#诗盗#·翔胺睡道》:通勤之路岛到岛,出岛一堵早造早。睡道屎油烧烧烧。入岛二堵艹艹艹。
翔胺睡道:翔安隧道里面车太堵,都是毒气,闻多了会脑残,一氧化碳中毒。
早造早:早知道就再早点。
屎油:石油烧了有毒烟,臭臭的。
《#诗盗#·上班族焦虑症》:一屎分成两泡拉,一泡切成三段挤,一挤使出三分气,一气蹦出四个屁。
本诗描述了上班族加班后晚起不得不节省拉屎的时间,分成两次拉的惨状,果然是好屎!
《#诗盗#·酒戒佛黄蓝织翔》:一股做空一切股,一庄通吃一切庄,一基普载一切鸡,一切基鸡一切切。
九界佛皇玉织翔:一性圆通一切性,一法遍含一切法,一月普现一切水,一切水月一切摄。
一股做空一切股:做空肖
一基普载一切鸡:载鸡翔
一切基鸡一切切:排骨基阿男
《#诗盗#·泡温泉》:七叠云山七叠泉,几天劳顿几天欢。牛奶浴池遇奶牛,玩一日后日一晚…
去七叠泡温泉。
《#诗盗#·精神》:兵不精则兵不精,神不宁则神不灵。稣之设备稣自设,精神并且精神病。
兵器不精则兵将不精,心神不宁则叫天天不灵。
稣的办公社配都是自己买,公司的实在太乐射,高效得十分精神~
《#诗盗#·宇督公》:吓醒时见薛定谔,宇督万物带八哥。老子曾言福祸依,天地神通在观测。
宇宙是一个整体,观测会改变宇宙。
《#诗盗#·戒股》:炒股真辛苦,买卖都是毒。清仓买买买,高潮两百五。
炒股真辛苦,就像在做毒品买卖,还是不炒了,安心买买买,反正高潮一天可以赚两百五。
之前在《Opus 编解码遇到的怪事》说过一个因为编码器不同而导致的怪事的解决过程,最近又出现一例类似情况了。
UMU 的任务是把从麦克风采集到的音频数据,直接编码成 AAC,然后用 live555 流化为 RTSP 协议,做服务端。其中涉及到一个 ADTS 头部的问题,理论上有没有 ADTS 都是可以的,各有可行的解决方案。但在阅读其他同事代码的时候,惊讶地发现,他特地把 ADTS 头给去掉了。而 UMU 调试时,发现 AVPacket 的数据里根本没有 ADTS 头,何来去掉之说?
有了上次的经验,UMU 很快推测,我们俩用的编码器可能不同。后来验证,确实如此:ffmpeg 3.1 有两个 AAC 编码器,一个内置的,名字是 aac,另一个第三方的 libfdk_aac,商业使用 non-free。(以前还有其它两个第三方的,因为质量不行,已经被移除,ffmpeg 官网上有说明)默认的编译方式只有前者,后者需要使用 non-free 参数编译,基于后期的版权问题考虑,UMU 使用的是内置的 aac。但为了调查这个问题,UMU 特地编译并使用了 libfdk_aac,发现确实有不同。
aac 编码出来的 AVPacket 是没有 ADTS 头的; libfdk_aac 则有。
aac 不需要设置 profile,因为它默认使用 LC,而 libfdk_aac 支持很多中 profile,所以需要设置一个合适的。
libfdk_aac 设置合适的 profile 字段,编码出来的 AVPacket 有 ADTS 头,VLC 可以播放,特地去掉 ADTS 头,VLC 也可以播放。
如果不设置 profile,默认是 FF_PROFILE_UNKNOWN,这时有 ADTS 头,但由于这个 ADTS 头里的 adts_buffer_fullness 不对,所以 VLC 无法播放,去掉反而可以。
一个工程同时使用了 ffmpeg 和 live555,结果一不注意就混乱了……原因如下:
1 | // ffmpeg 的 error.h 里 include 了 errno.h,有以下定义: |
很明显,live555 这么做,违背了面向对象的基本特征——封装,这种平台相关的抽象应该封装在源文件里面,而不是放在头文件。挪个位置即可。
刚刷完 OpenWRT trunk 版本,默认不支持 PPTP passthrough,表现为此路由器内网的 PC 拨号时,认证很快成功,但迟迟不能完成,最终报错误码 619。
这是因为默认不支持 GRE 协议的 NAT。
官方就有解决方案,简单地说是运行一下两条:
1 | opkg update |
立刻生效。