好多开发者问道,既然有了OBS,你们为什么还要开发SmartPublisher?

的确,在我们进行Windows平台RTMP推送模块开发之前,市面上为数不多的Windows平台RTMP推流工具当属OBS了,不得不说,OBS是一款很好用的直播软件,它的优势在于,几乎可以直播所有直播平台,不需要每个直播平台都下载相关平台的专用直播软件,可以直播游戏,显示器,word,浏览器等。

今天,我们以OBS和大牛直播SDK开发的SmartPublisher为例,就Windows平台RTMP推流工具,做个简单的比较:

OBS介绍

OBS的优势在于,功能强大,几乎所有你想要的场景它都有,现成的软件,用起来很顺手。当然如果你是开发者,想基于OBS做二次开发,实现二次产品化的化,难度比较大,OBS代码量很大,驾驭起来难度很大,有bug的话,跟踪起来很累。

鉴于外面的介绍乱七八糟,我们引用官方的:

What is OBS Studio?

OBS Studio is software designed for capturing, compositing, encoding, recording, and streaming video content, efficiently.

It's distributed under the GNU General Public License v2 (or any later version) - see the accompanying COPYING file for more details.

Quick Links

  • Website: https://obsproject.com
  • Help/Documentation/Guides: https://github.com/obsproject/obs-studio/wiki
  • Forums: https://obsproject.com/forum/
  • Build Instructions: https://github.com/obsproject/obs-studio/wiki/Install-Instructions
  • Developer/API Documentation: https://obsproject.com/docs
  • Donating/backing/sponsoring: https://obsproject.com/contribute
  • Bug Tracker: https://github.com/obsproject/obs-studio/issues

SmartPublisher

SmartPublisher是大牛直播SDK (Github)的RTMP推流SDK,跨平台,支持Windows、Android、iOS平台,特别针对如在线教育、会议同屏等传统场景开发,以SDK开发包的形式提供,功能强大,可扩展性强,如可支持录像、快照、外部原始YUV/RGB数据接入,或编码后数据集成等,集成难度较低,Windows平台对外提供C++和C#接口,Android端提供JNI接口,iOS平台提供Object C接口调用。

技术特点和优势

  • 全自研框架,易于扩展,自适应算法让延迟更低、采集编码传输效率更高;
  • 所有功能以SDK接口形式提供,所有状态,均有event回调,完美支持断网自动重连;
  • SDK模块化,可和大牛直播播放器SDK组合实现流媒体数据转发、内置轻量级RTSP服务、连麦、一对一互动等场景;
  • Windows推送端SDK以层级模式提供,开发者可以自行组合数据源(如多摄像头/屏幕/水印叠加);
  • 支持外部YUV/RGB/H.264/AAC/SPEEX/PCMA/PCMU数据源接入;
  • 所有参数均可通过SDK接口单独设置,亦可通过默认参数,傻瓜式设置;
  • 推送、录像、内置轻量级RTSP服务模块完全分离,可单独使用亦可组合使用;
  • 业内甚至很难找到效果接近的SDK。

功能支持

如不单独说明,系Windows、Android、iOS全平台支持。

  • [视频采集处理]Windows平台涵盖“Windows视频采集处理SDK”功能;
  • [音频采集处理]Windows平台涵盖“Windows音频采集处理SDK”功能;
  • [本地预览]Windows平台支持摄像头/屏幕/合成数据实时预览功能,Android/iOS平台支持本地前后置摄像头预览;
  • [摄像头反转/旋转]Windows平台支持摄像头水平反转、垂直反转、0°/90°/180°/270°旋转;
  • [摄像头采集]除常规YUV格式外,Windows平台还支持MJPEG格式的摄像头采集;
  • [麦克风/扬声器采集]Windows平台音频输入端支持麦克风、扬声器,或麦克风和扬声器混音输入;
  • [RTMP推流]超低延时的RTMP协议直播推流SDK(Windows/Android/iOS支持RTMP扩展H.265推送);
  • [视频格式]Windows/Android平台支持H.264/H.265编码(Android H.265硬编码),iOS平台支持H.264编码;
  • [音频格式]Windows/Android/iOS平台支持AAC编码,Windows/Android平台支持Speex编码;
  • [音频编码]Windows/Android平台支持Speex推送、Speex编码质量设置;
  • [音量调节]Windows/Android平台采集端支持实时音量调节(其中,Windows平台混音模式下支持单独控制麦克风、扬声器音量);
  • [H.264硬编码]Android/iOS平台支持H.264硬编码;
  • [H.265硬编码]Android/iOS平台支持H.265硬编码;
  • [硬编码自适应]Android/iOS平台支持硬编码自适应,如检测到硬编码不支持,自动切换到软编(iOS如H.265硬编,先切换到H.264硬编码,如不支持再尝试H.264软编);
  • [软硬编码参数配置]支持gop间隔、帧率、bit-rate设置;
  • [软编码参数配置]支持软编码profile、软编码速度、可变码率设置;
  • [多实例推送]支持多实例推送(如同时推送屏幕/摄像头和外部数据);
  • [RTMP扩展H.265]Windows/Android/iOS推送SDK支持RTMP扩展H.265推送,Windows针对摄像头采集软编码,使用H.265可变码率,带宽大幅节省,效果直逼传统H.265编码摄像头,Android/iOS平台支持H.265硬编码;
  • [横竖屏推流]Android/iOS平台支持支持横屏、竖屏推流;
  • [多分辨率支持]支持摄像头或屏幕多种分辨率设置;
  • [Windows推屏]Windows平台支持屏幕裁剪、窗口采集、屏幕/摄像头数据合成等多种模式推送;
  • [移动端推屏]Android平台支持后台service推送屏幕(推送屏幕需要5.0+版本);
  • [移动端推屏]iOS平台支持后台推送屏幕(基于ReplayKit,需要iOS 10.0+版本);
  • [事件回调]支持各种状态实时回调;
  • [水印]Windows平台支持文字水印、png水印、实时遮挡,Android平台支持文字水印、png水印;
  • [RTMP推送模式]支持RTMP推送 live|record模式设置(需服务器支持);
  • [镜像]Android/iOS平台支持前置摄像头实时镜像功能;
  • [前后摄像头实时切换]Android/iOS平台支持采集过程中,前后摄像头切换;
  • [复杂网络处理]支持断网重连等各种网络环境自动适配;
  • [动态码率]支持根据网络情况自动调整推流码率;
  • [实时静音]支持推送过程中,实时静音/取消静音;
  • [实时快照]支持推流过程中,实时快照;
  • [纯音频推流]支持仅采集音频流并发起推流功能;
  • [纯视频推流]支持特殊场景下的纯视频推流功能;
  • [降噪]Windows/Android平台支持环境音、手机干扰等引起的噪音降噪处理、自动增益、VAD检测;
  • [回音消除]Android平台支持实时传递远端PCM数据,方便回音消除处理;
  • [外部编码前视频数据对接]支持YUV数据对接;
  • [外部编码前音频数据对接]支持PCM对接;
  • [外部编码后视频数据对接]支持外部H.264数据对接;
  • [外部编码后音频数据对接]外部AAC/PCMA/PCMU/SPEEX数据对接;
  • [推送端休眠设置]Windows平台支持休眠接口(设置成休眠模式后CPU会适当降低);
  • [编码后数据输出]Android平台支持输出编码后的H264/AAC数据到上层,方便对接第三方平台(如GB28181)对接;
  • [扩展录像功能]完美支持和录像SDK组合使用,录像相关功能,可参见”Windows/Android/iOS录像SDK“;
  • [裁剪模式]Android/iOS平台支持特定分辨率摄像头裁剪模式设置;
  • [服务器兼容]支持自建服务器(如Nginx、SRS)或CDN。

总结

通过以上介绍,大家可以看出,如果是互联网级的,只是需要把屏幕或摄像头数据,推送到公网RTMP服务器或者CDN,对二次开发没有太大要求的化,OBS是个不错的选择,毕竟易用性好,功能强大。

如果是传统行业,比如智慧教室、会议同屏等,需要进行二次开发,对延迟、稳定性要求很高的话,可以考虑用SmartPublisher这种基于接口定制的SDK,以此来降低开发周期,提高开发效率和产品稳定性,腾出更多的精力进行业务逻辑的开发。

Windows平台摄像头或屏幕RTMP推送:OBS还是SmartPublisher相关推荐

  1. Windows平台摄像头或屏幕RTMP推送:OBS VS SmartPublisher

    好多开发者问道,既然有了OBS,你们为什么还要开发SmartPublisher? 的确,在我们进行Windows平台RTMP推送模块开发之前,市面上为数不多的Windows平台RTMP推流工具当属OB ...

  2. Android平台RTSP轻量级服务|RTMP推送摄像头或屏幕之音频接口设计

    好多开发者在做Android平台录像或者RTSP轻量级服务.RTMP推送相关模块时,对需要设计哪些常用接口会心存疑惑,本文主要以大牛直播SDK(官方)为例,简单介绍下Android平台直播推送SDK所 ...

  3. Android平台实现Unity3D下RTMP推送

    像Unity3D下的RTMP或RTSP播放器一样,好多开发者苦于在Unity环境下,如何高效率低延迟的把数据采集并编码实时推送到流媒体服务器,实现Unity场景下的低延迟推拉流方案. 关于屏幕采集,有 ...

  4. Windows平台RTMP推送|轻量级RTSP服务实现本地摄像头|屏幕|叠加数据预览

    背景 大家在做Windows平台RTMP推送或轻量级RTSP服务的时候,不管是采集屏幕还是采集摄像头,亦或屏幕摄像头的叠加模式,总会有这样的诉求,采集到的数据,希望能本地看看具体采集的数据或者图像实际 ...

  5. Windows平台RTMP推送摄像头对接介绍

    背景 好多开发者在对接大牛直播SDK(官方)的Windows平台RTMP推送时,不熟悉摄像头调用,实际上,摄像头调用逻辑并不复杂,以下是大概流程: 首先调用我们sdk接口获取摄像头个数,调用接口是:G ...

  6. Windows平台实现Unity下窗体|摄像头|屏幕采集推送

    技术背景 随着Unity3D的应用范围越来越广,越来越多的行业开始基于Unity3D开发产品,如传统行业中虚拟仿真教育.航空工业.室内设计.城市规划.工业仿真等领域. 基于此,好多开发者苦于在Unit ...

  7. Android平台屏幕/摄像头或外部数据采集及RTMP推送接口设计描述

    好多开发者提到,为什么大牛直播SDK的Android平台RTMP推送接口怎么这么多?不像一些开源或者商业RTMP推送一样,就几个接口,简单明了. 不解释,以Android平台RTMP推送模块常用接口, ...

  8. Windows平台下如何实现Unity3D下的RTMP推送

    好多开发者苦于很难在unity3d下实现RTMP直播推送,本次以大牛直播SDK(Github)的Windows平台RTMP推送模块(以推摄像头为例,如需推屏幕数据,设置相关参数即可)为例,介绍下uni ...

  9. Android平台RTMP推送模块如何对接NV21、YV12、RGB、YUV等编码前数据

    前言 我们在对接Android平台摄像头或者屏幕采集.编码打包推送场景的时候,随着采集设备的不同,出来的数据也是多样化的,比如NV21.YV12.RGB.YUV等,更有图像数据甚至是翻转或者倒置的,如 ...

最新文章

  1. ThinkPad T420更换SSD实录
  2. RDKit | 基于分子指纹可视化化学空间
  3. K8S Runtime CRI OCI contained dockershim 理解(转)
  4. python语言翻译-教你用Python抓取百度翻译
  5. 程序员面试题精选100题(11)-求二元查找树的镜像[数据结构]
  6. Dubbo服务引用原理
  7. Flutter中的提示工具
  8. 关于大家对Swin Transformer的魔改论文模型记录(只关注Swin是如何使用的)
  9. ALLyeSNO 优化版浩方 第二版 Ver 2007 06 15 清除广告 自动挤房间
  10. 计算机网络课制作双绞线实验,《计算机网络》课程实验——网线制作.pdf
  11. Spring,FetchType.LAZY和FetchType.EAGER什么区别?
  12. ssm框架使用resultful_SSM框架整合完整案例
  13. diff测试与流量回放测试
  14. mysql悲观锁优化_MySQL事务及实现、隔离级别及锁与优化
  15. lcd1602驱动程序
  16. php模版推送方法,PHP快速推送微信模板消息
  17. jquery所有版本下载
  18. 模拟退火算法(simulated annealing algorithm)求极值
  19. Linux修改服务器密码
  20. 数据分析案例-基于随机森林算法探索影响人类预期寿命的因素并预测人类预期寿命

热门文章

  1. 迁移学习:《SHARPNESS-AWARE MINIMIZATION FOR EFFICIENTLY IMPROVING GENERALIZATION》
  2. android电影分类布局,活动布局:片段类:vs android:name属性
  3. 排序算法总结及面试题
  4. win7无损分区和调整合并
  5. 查看当前浏览器中的cookies工具---使用chrome插件EditThisCookie
  6. 查看网络计算机端口,怎么查网络端口被占用?如何查看某个端口被谁占用
  7. URI、URL、URN的区别和联系
  8. mysql diff_mysqldiff实现MySQL数据表比较
  9. 锐捷交换机CLI界面下使用命令进行交换机恢复出厂设置
  10. 眼睛的疾病数不清,这些症状不及时处理都有可能致盲!