A lot of developers ask, why do you want to develop SmartPublisher when you have OBS?

Indeed, before the development of Windows platform RTMP push module, one of the few Windows platform RTMP push stream tools on the market should be OBS. It has to be said that OBS is a very useful live broadcast software. Its advantage is that it can broadcast almost all live broadcast platforms. There is no need for each live broadcast platform to download the special live broadcast software of the relevant platform. It can live broadcast games, monitors, Word, browsers and so on.

Today, we take SmartPublisher developed by OBS and DANIu Live SDK as an example, and make a simple comparison on the Windows platform RTMP stream push tool:

OBS is introduced

The advantage of OBS is that it’s so powerful, it’s got almost any scenario you want, it’s got off-the-shelf software, it’s easy to use. Of course, if you are a developer, want to do secondary development based on OBS, to achieve secondary production, relatively difficult, OBS code volume is very large, it is very difficult to control, if there are bugs, tracking up is very tired.

Given the mix-up out there, we quote the official:

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: obsproject.com
  • Help/Documentation/Guides: github.com/obsproject/…
  • Forums: obsproject.com/forum/
  • The Build Instructions: github.com/obsproject/…
  • Developer/API Documentation: obsproject.com/docs
  • Donating/backing/sponsoring: obsproject.com/contribute
  • Bug Tracker: github.com/obsproject/…

SmartPublisher

SmartPublisher is the RTMP push stream SDK of Daniu Live SDK (Github). It is cross-platform and supports Windows, Android and iOS platforms. It is especially developed for traditional scenes such as online education and conference with the same screen. For example, it supports video recording, snapshot, external original YUV/RGB data access, or post-coded data integration, which is relatively easy to integrate. Windows platform provides C++ and C# interface externally, Android provides JNI interface, and iOS platform provides Object C interface call.

Technical features and advantages

  • Self-developed framework, easy to expand, adaptive algorithm to lower latency, higher transmission efficiency of acquisition code;
  • All functions are provided in the form of SDK interface. All states have event callback, which perfectly supports automatic reconnection when the network is disconnected.
  • Modular SDK, which can be combined with DANniu Live Player SDK to realize streaming media data forwarding, built-in lightweight RTSP service, mimai, one-to-one interaction and other scenes;
  • Windows push SDK is provided in hierarchical mode, and developers can combine data sources (such as multiple cameras/screens/watermarks) by themselves.
  • Supports external YUV/RGB/h. 264 / AAC/SPEEX/PCMA/PCMU data access;
  • All parameters can be set separately through the SDK interface, or through the default parameters, fool setting;
  • Push, video, built-in lightweight RTSP service module completely separated, can be used alone or combined;
  • It’s hard to find an SDK that even comes close.

Function support

If not specified separately, it is supported by Windows, Android and iOS platforms.

  • [Video collection and processing] The Windows platform includes the Windows VIDEO collection and processing SDK.
  • [Audio collection and processing] The Windows platform includes the Windows Audio collection and processing SDK.
  • [Local preview]Windows supports real-time preview of camera, screen, and composite data. Android and iOS support local front and rear camera preview.
  • [Camera inversion/rotation]Windows platform supports camera horizontal reversal, vertical reversal, 0°/90°/180°/270° rotation;
  • [Camera capture] In addition to the conventional YUV format, Windows platform also supports MJPEG format camera capture;
  • [Microphone/speaker acquisition]Windows platform audio input side supports microphone, speaker, or microphone and speaker mix input;
  • [RTMP push stream] Ultra-low latency RTMP protocol live push stream SDK (Windows/Android/iOS support RTMP extension H.265 push);
  • Windows/Android platforms support H.264/H.265 encoding (Hard coding Android H.265), iOS platforms support H.264 encoding;
  • Windows/Android/iOS platforms support AAC encoding, Windows/Android platforms support Speex encoding;
  • [Audio encoding]Windows/Android platform support Speex push, Speex coding quality Settings;
  • [Volume adjustment] On Windows and Android platforms, the acquisition terminal supports real-time volume adjustment (in the Mixing mode of Windows platform, the volume of microphone and speaker can be controlled separately).
  • H.264 hard coding is supported on Android/iOS platforms;
  • [H.265 hard coding]Android/iOS platforms support H.265 hard coding;
  • [Hardcoding adaptive]Android/iOS platform supports hardcoding adaptive. If it detects that hard coding is not supported, the system automatically switches to soft coding (for iOS, if H.265 hard coding is not supported, the system switches to H.264 hard coding first; if h. 264 soft coding is not supported, the system tries to h. 264 soft coding again).
  • [Hard and soft coding parameter configuration] Support GOP interval, frame rate and bit-rate Settings;
  • [Soft coding parameter Configuration] Supports soft coding profile, soft coding speed and variable bit rate Settings.
  • [Multi-instance push] Supports multi-instance push (for example, push screen/camera and external data simultaneously);
  • [RTMP extension H.265]Windows/Android/iOS push SDK supports THE RTMP extension H.265 push, Windows for camera acquisition soft coding, using variable bit rate H.265, bandwidth saving, the effect is close to the traditional H.265 encoding camera, H.265 hard coding is supported on Android and iOS platforms.
  • [Horizontal and vertical pushing] Supported on Android/iOS platforms, horizontal and vertical pushing is supported.
  • [Multi-resolution support] Supports multiple camera or screen resolution Settings;
  • [Windows Screen Push]Windows platform supports screen clipping, window collection, screen/camera data synthesis and other modes of push;
  • [Screen push on mobile terminal]Android platform supports background Service push screen (5.0+ version);
  • IOS platform support background push screen (based on ReplayKit, requires iOS 10.0+ version);
  • [Event callback] Supports real-time callback of various states;
  • Windows platform supports text watermarking, PNG watermarking, real-time occlusion, Android platform supports text watermarking, PNG watermarking;
  • [RTMP push mode] supports RTMP push live | record mode setting (server support required);
  • [Mirroring]Android and iOS platforms support the real-time mirroring function of the front camera.
  • [Real-time switching between front and rear cameras]Android and iOS platforms support switching between front and rear cameras during collection.
  • [Complex network processing] Automatic adaptation of various network environments such as disconnection and reconnection;
  • [Dynamic bit rate] Supports automatic adjustment of stream bit rate according to network conditions.
  • [Real-time mute] Supports real-time mute/unmute during push.
  • [Real-time snapshot] Supports real-time snapshot in the process of pushing flow.
  • [Pure audio push stream] support only to collect audio stream and push stream function;
  • [Pure video Streaming] Supports pure video streaming in special scenarios;
  • [Noise reduction]Windows/Android platform supports noise reduction, automatic gain and VAD detection caused by ambient sound and mobile phone interference.
  • Echo cancellation Android platform supports real-time transmission of remote PCM data, convenient echo cancellation processing;
  • [Video data interconnection before external coding] YUV data interconnection;
  • [Audio data docking before external coding] support PCM docking;
  • [Video data docking after external encoding] Supports external H.264 data docking;
  • External AAC/PCMA/PCMU/SPEEX data connection;
  • [Hibernation setting of push side]Windows platform supports hibernation interface (CPU will be lowered properly after hibernation mode is set).
  • [Encoded data output] The Android platform supports the output of encoded H264/AAC data to the upper layer for easy interconnection with third-party platforms (such as GB28181).
  • [Extended video function] Perfectly supports combined use of video SDK, video related functions, see “Windows/Android/iOS video SDK”;
  • [Clipping mode]Android/iOS platforms support camera clipping mode setting with specific resolution;
  • [Server compatibility] Supports self-built servers (such as Nginx and SRS) or CDN.

conclusion

From the above introduction, we can see that, if it is Internet level, it only needs to push the screen or camera data to the PUBLIC network RTMP server or CDN, which has no great requirements for secondary development. OBS is a good choice, because it is easy to use and powerful.

If is a traditional industry, such as intelligent classroom, meeting with screen, such as the need for secondary development, stability of delay, demanding, can consider to use SmartPublisher this based on the SDK interface customization, in order to reduce the development cycle, improve the development efficiency and stability of products, make more effort to the development of the business logic.