Windows平台摄像头或屏幕RTMP推送:OBS VS SmartPublisher
好多開發者問道,既然有了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 VS SmartPublisher的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【深度学习】保姆级教程,用PyTorch
- 下一篇: 【机器学习】6大监督学习模型:毒蘑菇分类