OBS 源码分析第一篇--踏石留印

作者介绍:况鹰,腾讯android高级工程师,目前主要负责手Q个性化增值及企鹅电竞pc助手业务开发与性能优化,在android和pc端都有丰富的经验,闲暇之余比较爱折腾和研究各种新技术。

在直播如此火热的 2016 年,OBS 作为一名元老级开源组件在主播和开发面前继续展示着它常青的魅力。自己接触其源码小半年,发现国内的分析篇要么篇幅太短文不达意,要么内容太杂枯燥难懂,总是不令人满意。失望之余便想尝试挑战自己的审美观来分析一下这位美人,今天就首先来分析一下美人的个人状态。

1、身世:OBS 的爸爸是 jp9000,自出生起发展截止目前主要分为两个阶段,第一代犹如未成熟的少女尚未绽开,在设计和代码上都存在较多的缺陷,追求者基本来自叫 Windows 的城市。随着工程的膨胀导致后期维护成本变高,jp9000 也不满足其发展,便对其进行了整容重构,工程的线条变得更加明朗婀娜,追求者也多了来自 Mac 和 Linux 的城市,人数直接翻了两倍多,而且在继续增长。

2、皮肤变身:第一版用的是底层 winapi 写的窗口,所以大家会发现皮肤上面有很多痘痘:

基本一个控件一个句柄,第二版由于兼容 Mac 和 Linux,嵌入了全球著名皮肤精华水 QT,像战网、YY、WPS、优酷客户端、Dropbox 等都用的这款牌子,OBS 也紧跟潮流,成为了又一名「形象代言人」。

3、琴棋书画:OBS 之所以吸引人,主要根源于其具备极多的才艺,可以极大的满足大家的视听,我们来尝试梳理一下套路:

  • 琴 - 音频编码:第一代用的 libfaac,第二代迁移到 ffmpeg,录制主要依靠就是 ffmpeg,利用管道跨进程写文件录播;
  • 棋 - 视频编码:软编 x264、硬编 qsv、硬编 nvenc,其中 qsv 主要用的 libmfx,属于 inter 流派,nvenc 顾名思义就是 2016 股民们熟悉的 nvidia 流派,相对于 cudaenc 在h264 编码方面性能更优 ;
  • 书 - 推流:第一代和第二代都用了鼎鼎大名的 rtmp 库,有推流地址和密钥便可以让所有主播上「电视」,斗鱼、熊猫、战旗、B站、全民直播都可以用这种方式推送;
  • 画 - 渲染引擎:第一代只支持 dx,第二代支持分别封装了 dx 和 opengl ,shader 渲染脚本可以共用一份无差使用,语法用的 hlsl,在 opengl 渲染时包装内会转换成 glsl,了解原理后可以非常方便的嵌入各种 effect,可以加入更多的特效。

4、杂耍:第二版由于追求者众多,每个人都想在 OBS 上留下自己的印记,OBS 除了学会了展示窗口、显示器、图片、幻灯片、视频、游戏、文字之外,还可以展示浏览器(基于 cef)、vlc 视频等。在第二版所以这些印记可以方便替代升级,希望你也能鼓足勇气去贡献一把。

第一篇先简单带领大家了解 OBS 美女的「个人情况」,下一篇我将为大家介绍 OBS 的五官构成 - 代码架构组成。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑白安全

浅析所谓的“安全圈黑客”

清一色的废站,无人管理,无人运维,甚至只是网上随便下一套源码随便改改,改改版权改改Logo

712
来自专栏大数据文摘

窃听风云| 苏联如何用IBM打字机获取美国情报

2509
来自专栏漏斗社区

专属| 200余个恶意程序被曝光

通过自主监测和样本交换形式,国家互联网应急中心近日共发现202个窃取用户个人信息的恶意程序变种,感染用户3822个。该类病毒通过短信进行传播会私自窃取用户短信和...

915
来自专栏IMWeb前端团队

程序员编程的10个实用技巧...| 慕课网

下面是我自己在工作中学到的一些简单的技巧和策略,希望能对各位有用。   1.橡皮鸭调试法    不知道各位有没有这样的经历,当你正在给别人描述问题的...

1969
来自专栏互扯程序

哪些曾经的高科技产品会消失呢?又被哪些高科技所替代呢?

KS Knowledge Sharing 知识分享 现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享。 写在...

18410
来自专栏域名资讯

cloudpass.com云类域名大五位结拍

近年,云服务大热,受云服务影响,“云”类域名深受青睐。和“云”相关的域名自然也随着市场发展而变得抢手。近日,就有一枚英文组合米cloudpass.c...

17910
来自专栏FreeBuf

横古贯今的隐私密史:密码的前世来生

21世纪什么最贵?密(秘)码(密)! 但陈老师高清无码教材红了,某菊订票信息玩票“脱裤”了,数以千万计的开房信息泄露了,各种社工库横行霸道,让我们不禁不去感叹...

1945
来自专栏机器人网

牛人大作!从收音机变成机器人的过程

我是那种会留下所有损坏的电子设备的人,因为我有可能会在某天用到这些东西。我有一张坏了的CD,一个磁带盒和一个别人送我的收音机,它会随机地保持关机状态。事实证明,...

2555
来自专栏企鹅号快讯

程序猿必须知道的一些有用的网站

来自:开源中国 原文:https://github.com/sdmg15/Best-websites-a-programmer-should-visit 在学习...

21210
来自专栏龙行天下CSIEM

科学瞎想系列之三十七 船舶动力系统(3)

上一篇说了船舶混合动力系统,这篇就说说船舶综合电力系统。所谓船舶综合电力系统就是指全船所有动力能源均采用电力,包括推进动力、辅机动力、军船上某些高能武器...

2754

扫码关注云+社区