1. 程式人生 > >拉流推流伺服器設計

拉流推流伺服器設計

背景

該伺服器也是基於一個客戶的需求產生的。客戶那邊使用的是騰訊的直播sdk, 將不同終端的流推到騰訊雲平臺, 但是又想推到其他平臺, 基於此需求,該產品產生了。

  • 該產品通訊協議使用的是WebSocket, 客戶端可以自己定義
  • 可以拉騰訊雲平臺的直播流並把它推送到其他平臺上
  • 要實現1對多即一個拉流對應多個推流
  • 要實現多對多, 即同時可以多個拉流, 沒個拉流又是1對多

設計主體結構

根據之前的背景,大體的一個框架圖就出來了

Paste_Image.png

  • 通訊server 採用websocket的方式
  • 資料形式採用的json2.0的形式
  • 可以實現多路拉多路推的方式

功能

與客戶溝通過的一個功能表

Paste_Image.png

實現後代碼的一個整體結構

Paste_Image.png

聯絡

點選連結加入群【rtmp直播交流學習合作】:https://jq.qq.com/?_wv=1027&k=4Aqm21F
qq群號:559425694
email:[email protected]/690759587

相關推薦

伺服器設計

背景 該伺服器也是基於一個客戶的需求產生的。客戶那邊使用的是騰訊的直播sdk, 將不同終端的流推到騰訊雲平臺, 但是又想推到其他平臺, 基於此需求,該產品產生了。 該產品通訊協議使用的是WebSocket, 客戶端可以自己定義 可以拉騰訊雲平臺的直播流並把

ffmpeg與Linux搭建伺服器

必要工具 Linux OS[4G記憶體,4核,10Mbps外網] yasm-1.2.0.tar.gz ffmpeg-3.0.2.tar.bz2 安裝步驟 1. 將ffmpeg-3.0.2.tar.bz2與yasm-1.2.0.tar.gz下載到目標伺服器上 2. 處理yasm

nginx+rtmp+livePush實現視訊轉

需要的工具:一臺電腦。一個美美的心情。centos環境nginx(linux下部署)rtmp模組(linux下部署)livePush.war包(windows下部署)OBS(測試轉流工具)VLC(測試拉流工具)-----------------------我的分割線-----

EasyDarwin開源流媒體伺服器Golang版本:功能之實現方法

EasyDarwin開源流媒體伺服器(www.easydarwin.org),拉轉推是一個很有意義的功能,它可將一個獨立的RTSP資料來源“拉”到伺服器,再通過轉發協議轉發給多個客戶端,或者通過EasyDarwin的本地儲存功能進行儲存。國內大多攝像機都支援RTSP協議,通過拉轉推可將第三方

ubuntu下使用nginx和nginx-rtmp-module配置直播伺服器

本來準備在centos伺服器上搭建的,因為筆者工作系統是ubuntu,因此直接在本機上搭建,更方便快捷,配置過程比較簡單,記錄一下。 目錄 配置環境 安裝obs-studio開始第一次推流 安裝vlc播放器開始拉流 配置環境 配置環境 配

使用Nginx+nginx-rtmp-module+OBS搭建媒體伺服器

一、安裝Nginx 下載必備安裝包 建立安裝包存放資料夾 cd mkdir /usr/source #建立原始碼目錄 後面的原始碼都放在這個目錄 cd source yum -y install git #安裝git git clone https://github.

Linux系統配置nginx-rtmp(docker)OBS VLC

centos7配置nginx-rtmp (以下分享配置的前提是:用docker-ce版本不是docker-io) 這裡我直接使用 tiangolo/nginx-rtmp 來搭建 rtmp 伺服器。 sudo docker pull tiangolo/nginx-rtmp

android平臺下基於ffmpeg採集Camera資料編碼成H.264到RTMP伺服器

音視訊實踐學習 android全平臺編譯ffmpeg以及x264與fdk-aac實踐 ubuntu下使用nginx和nginx-rtmp-module配置直播推流伺服器 android全平臺編譯ffmpeg合併為單個庫實踐 android-studio使用c

FFmpeg命令:幾種常見場景下的FFmpeg命令(攝像頭採集,桌面錄製、轉等等)

前提: 再者,推流你得有個流媒體服務,個人測試用小水管:rtmp://eguid.cc:1935/rtmp/test(小水管,請儘量錯開時間使用,另切記推流視訊位元速率不要太高,避免佔用太多頻寬)

Mac搭建nginx+rtmp伺服器,通過ffmpeg實現視訊

最近在研究關於直播方面的技術,中間遇到很多坑,在此記錄一下,以免再次跳坑 1.安裝Homebrew 開啟終端, 檢視是否已經安裝了Homebrew, 直接終端輸入命令 man brew 如果Mac已經安裝了, 會顯示一些命令的幫助資訊. 此時 輸入Q退出即可, 直接進

EasyDarwinGo功能之

拉轉推是一個很有意義的功能,它可將一個獨立的RTSP資料來源“拉”到伺服器,再通過轉發協議轉發給多個客戶端,或者通過EasyDarwin的本地儲存功能進行儲存。國內大多攝像機都支援RTSP協議,通過拉轉推可將第三方攝像機接入到EasyDarwin伺服器。 IP

[媒體伺服器搭建] EasyDarwin伺服器搭建及客戶端完整示例

Windows下環境搭建一、準備工作,需要先下載我們需要的程式1、EasyDarwin  下載地址:https://github.com/EasyDarwin/EasyDarwin2、ffmpeg         下載地址:http://ffmpeg.org/3、nginx

利用Nginx搭建RTMP視訊直播,點播伺服器,ffmpeg,回看

#下面的server是在http的一級配置標籤下的#上面的註釋對懂nginx的人是廢話,但是如果你不熟悉nginx,建議認真看看http{...# 這裡有一些其他的配置 server { listen 80;#埠 server_name rtmp-server;#設定http

視訊直播的實現

序言 最近在研究直播的彈幕,東西有點多,準備記錄一下免得自​​己忘了又要重新研究,也幫助有這方面需要的同學少走點彎路。關於直播的技術細節其實就是兩個方面一個是推流一個是拉流,而彈幕的實現核心在即時聊天,使用聊天室的就能實現,只是訊息的展示方式不同而已。在大多數的

ffmpeg-設定使用的協議型別(TCP/UDP)

如有錯誤,請指正,謝謝。 拉流(設定TCP/UDP) //設定引數 AVDictionary *format_opts = NULL; av_dict_set(&format_opts, "stimeout", std::to_string( 2* 1000000).c_

java封裝FFmpeg命令,支援原生ffmpeg全部命令,實現FFmpeg多程序處理與多執行緒輸出控制(開啟、關閉、查詢),rtsp/rtmp

前言: 之前已經對FFmpeg命令進行了封裝http://blog.csdn.net/eguid_1/article/details/51787646,但是當時沒有考慮到擴充套件性,所以總體設計不是太好,需要改動的地方也比較多,也不支援原生ffmpeg命令,所以本次版本推翻

關於直播類app中的技術

  雖然直播app在2016年的時候就很火了,但是對於我這樣的技術菜逼來說,從來沒有真正的去了解過,而對於這方面的技術,我就更是不瞭解了。由於最近的專案中可能會用到直播之類的功能,所以就趕緊來惡補一下這方面的知識。這邊我總結了一些對我而言比較有用的一些網址:    直播類ap

直播平臺的高併發架構設計3.1-

這是推流端的實現,推流端設計的原則總結下來就是自適應,推流誰都可以做,開源的也很多。但是為什麼有的做得好,有的做得不好呢?就是看自適應做的好不好。 總結下來有三點自適應,一個是幀率和位元速率自適應,這是大家都能想到的。我推流,如果網路卡了,我就降點幀率或者

iOS直播--Nginx伺服器搭建和RTMP,HLS實現

Nginx介紹Nginx ("engine x") 是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx是由Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發的,第一個公開版本0.1.0釋出於2004年10月

網頁顯示直播(監控)視訊 【ubuntu伺服器 (nginx+rtmp+jwplayer) 樹莓派(ffmpeg)】

阿里雲伺服器(ubuntu)搭建nginx-rtmp伺服器 此文章中不再採用windows的obs進行推流,而是採用樹莓派的ffmpeg進行推流 因此,樹莓派需要安裝 ffmpeg 在樹莓派中的 ffmpeg 推流命令(-t 10可以刪除,則一直不斷的進行推流)