您当前的位置是:  首页 > 新闻 > 国内 >
 首页 > 新闻 > 国内 >

如何优雅地在夏威夷海滩上写代码

2019-01-07 14:01:49   作者:Seven Du   来源:CTI论坛   评论:0  点击:


  今天,也标题党一把。其实真正的标题应该是《如何优雅地直播在夏威夷海滩上写代码》或《如何优雅地在夏威夷海滩上直播写代码》。
  前几天,Anthony跟我聊,说他找到一个开源的库,可以做Chromakey,问我能不能用它来做点好玩的事情。我还是第一次听说Chromakey,抓紧查了查,懂了,不就是个虚拟演播室么。以前,参加各种新科技展会的时候曾玩过几次。大致是,你站在一个绿幕(有的也用蓝幕)前面,表演各种动作,后期进行图像处理时就可以把背景去掉,然后拼接到一个更煊的背景上,然后,你就可以在中央电视台直播,或者在夏威夷海滩上写代码了。
  这种技术也多用在电影里,在绿幕前拍摄,后期处理时把背景去掉,就可以把人拼到任何煊酷的场景了。
  当然,作为一个程序员,我只想写代码。
  为了能优雅地在夏威夷海滩上写代码,我也是拼了。对着那个库的文档和代码看了半天,得出结论,太复杂,光编译就得依赖许许多多的库,而我们还要做跨平台,不大好弄。那个库叫OpenShot。
  后来,又仔细研究了一下里面的算法,查了一些资料,发现,算法其实不难。无非就是有几个公式,逐一计算每个像素跟背景色的差异,如果跟背景差异少,则把背景做成透明的。只是,算法复杂度比较高,因为,一张1080p的图像,会有1920x1080个像素点。
  得了,不管怎么样,挽起袖子自己做。在一个月黑风高的晚上,正赶上出差,在酒店昏暗的灯光下把代码写好了。
  其实该技术需要一个主要的道具就是绿幕(或蓝幕,理论上任何单色的都可以,但红色跟人的肤色近,所以少用,一说欧美人的眼睛是蓝色的,所以多用绿幕),而我现场没有道具,就把代码发给Anthony,说你试试效果吧,结果,他团队所有人都试了。
  昨天,著名FreeSWITCH网红Seven Du就在网上用FreeSWITCH搞起了直播,为FreeSWITCH精英群会员讲FreeSWITCH,为了演示这一神奇的技术,他还把Ken的图片当成了背景,虽然他连个绿幕都没有,灯光也不明亮,但整体效果还不错。
  当然,后来,还为改进算法纠结了好几天,Anthony又加了些代码,把背景换成了视频,外国人真会玩。
  Anthony还在家里开起了汽车
  其实上面的视频有个Bug。你发现了吗?当然,这个Bug现在已经修好了,但你很有幸看到了一个带Bug的视频。
  上面传的图片多是一些早期的图片和视频,所以,如果仔细观察,会发现画面的边缘还是有些拖泥带水。
  我已经把这部分最新的代码写到了《FreeSWITCH源代码分析》里,感兴趣的话,买一本看看吧。
  话说,还有不到一个月我们的FreeSWITCH培训班就开班了。好多人误以为FreeSWITCH只是用来打电话的,但其实,FreeSWITCH能做的事情很多很多,要不要来上海切磋切磋?

【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

专题

CTI论坛会员企业