1. 程式人生 > >Android直播入門實踐:動手搭建一套簡單的直播系統

Android直播入門實踐:動手搭建一套簡單的直播系統

轉載自:http://www.52im.net/thread-1154-1-1.html

1、前言


實時視訊直播是這兩年非常火的技術形態,已經滲透到教育、線上互娛等各種業務場景中。但要搭建一套實時視訊直播系統,並非易事,當然相關的直播技術理論在論壇的其它文章裡已經寫的非常詳細,本文不再展開。

通常的直播系統的技術模型大致如下圖:
Android直播入門實踐:動手搭建一套簡單的直播系統_a.png 

基於對新技術的好奇心,我立馬實踐了下,所以首先給大家分享下整個搭建的流程。本人的作業系統為mac,其他系統的同學可以根據提示,自行安裝軟體。

一個簡易的直播系統,大致可以由三部分組成:

  • 搭建一個rtmp媒體伺服器;
  • 推流端;
  • 拉流端。

現在目標是快速搭建起來,所以當然是藉助開源專案和一些軟體:

  • rtmp媒體伺服器:這裡使用srs;
  • 推流端:這裡使用obs;
  • 拉流端:這裡使用播放器vlc。

2、參考資料


[1] 開源實時音視訊技術WebRTC的文章:
開源實時音視訊技術WebRTC的現狀
簡述開源實時音視訊技術WebRTC的優缺點
訪談WebRTC標準之父:WebRTC的過去、現在和未來
良心分享:WebRTC 零基礎開發者教程(中文)[附件下載]
WebRTC實時音視訊技術的整體架構介紹

新手入門:到底什麼是WebRTC伺服器,以及它是如何聯接通話的?
WebRTC實時音視訊技術基礎:基本架構和協議棧
淺談開發實時視訊直播平臺的技術要點
[觀點] WebRTC應該選擇H.264視訊編碼的四大理由
基於開源WebRTC開發實時音視訊靠譜嗎?第3方SDK有哪些?
開源實時音視訊技術WebRTC中RTP/RTCP資料傳輸協議的應用
簡述實時音視訊聊天中端到端加密(E2EE)的工作原理
實時通訊RTC技術棧之:視訊編解碼
開源實時音視訊技術WebRTC在Windows下的簡明編譯教程

網頁端實時音視訊技術WebRTC:看起來很美,但離生產應用還有多少坑要填?
>>  更多同類文章 ……

[2] 實時音視訊開發的其它精華資料:
專訪微信視訊技術負責人:微信實時視訊聊天技術的演進
實時語音聊天中的音訊處理與編碼壓縮技術簡述
網易視訊雲技術分享:音訊處理與壓縮技術快速入門
學習RFC3550:RTP/RTCP實時傳輸協議基礎知識
基於RTMP資料傳輸協議的實時流媒體技術研究(論文全文)
聲網架構師談實時音視訊雲的實現難點(視訊採訪)
淺談開發實時視訊直播平臺的技術要點
還在靠“喂喂喂”測試實時語音通話質量?本文教你科學的評測方法!
實現延遲低於500毫秒的1080P實時音視訊直播的實踐分享
移動端實時視訊直播技術實踐:如何做到實時秒開、流暢不卡
如何用最簡單的方法測試你的實時音視訊方案
技術揭祕:支援百萬級粉絲互動的Facebook實時視訊直播
簡述實時音視訊聊天中端到端加密(E2EE)的工作原理
移動端實時音視訊直播技術詳解(一):開篇
移動端實時音視訊直播技術詳解(二):採集
移動端實時音視訊直播技術詳解(三):處理
移動端實時音視訊直播技術詳解(四):編碼和封裝
移動端實時音視訊直播技術詳解(五):推流和傳輸
移動端實時音視訊直播技術詳解(六):延遲優化
理論聯絡實際:實現一個簡單地基於HTML5的實時視訊直播
IM實時音視訊聊天時的回聲消除技術詳解
淺談實時音視訊直播中直接影響使用者體驗的幾項關鍵技術指標
如何優化傳輸機制來實現實時音視訊的超低延遲?
首次披露:快手是如何做到百萬觀眾同場看直播仍能秒開且不卡頓的?
Android直播入門實踐:動手搭建一套簡單的直播系統
網易雲信實時視訊直播在TCP資料傳輸層的一些優化思路
實時音視訊聊天技術分享:面向不可靠網路的抗丟包編解碼器
>>  更多同類文章 ……

3、rtmp媒體伺服器的搭建


這裡使用srs,srs的連結為: https://github.com/ossrs/srs

首先clone到本地,進入到trunk目錄:
1 2 git clone [url=https: //github .com /ossrs/srs .git]https: //github .com /ossrs/srs .git[ /url cd srs /trunk

然後執行:
1 . /configure --osx
注意:  Centos6.x/Ubuntu12 32/64bits使用者僅需要執行./configure。

最後執行:
1 make

執行成功後,就可以開啟我們的服務了:
1 . /etc/init .d /srs start
如果是mac系統,此時會失敗,原因是srs.conf中max_connections太大,目錄為srs/trunk/conf/srs.conf,可以修改為248(其他作業系統可能無此問題)。

再次回到trunk目錄:
1 . /etc/init .d /srs start
到此我們的srs伺服器就搭建起來了。

補充說明:
Centos、Ubuntu可以參考官網搭建,比較簡單。

如果你啟動過程中還遇到了其他錯誤,可以檢視log資訊:
1 srs /trunk/objs/srs .log

其他指令:
1 2 停止 . /etc/init

相關推薦

Android直播入門實踐動手搭建簡單直播系統

轉載自:http://www.52im.net/thread-1154-1-1.html 1、前言 實時視訊直播是這兩年非常火的技術形態,已經滲透到教育、線上互娛等各種業務場景中。但要搭建一套實時視訊直播系統,並非易事,當然相關的直播技術理論在論壇的其它文章裡已經寫的非常詳細,本文不再展開。

親手搭建簡單直播系統

親手搭建一套簡單的直播系統 原始碼安裝ffmpeg(帶libx264) ffmpeg編譯參考官網文件:http://trac.ffmpeg.org/wiki/CompilationGuide/Centos 環境:CentOS6.2_64 1、下載原始碼包 wget ftp://ft

Python程式設計入門實踐動手試答案(第三章)

#3-1 姓名 names = ['Qiqi','Danliang','Mingliang','Peng'] for x in range(0,4): print(names[x]) #3

Python程式設計入門實踐動手試答案(第十章)

#10-1 Python學習筆記 with open('learning_python.txt') as file_object: contents = file_object.read() print(contents) ----------------

Python程式設計入門實踐動手試答案(第四章)

#4-1 比薩 pizzas = ['apple pizza','banana pizza','chili pizza'] for pizza in pizzas: print('I like

Python程式設計入門實踐動手試答案(第五章)

#5-1 條件測試 car = 'subaru' print("Is car == 'subaru'? I predict True.") if car == 'subaru': print(c

函數動手試2

class log if語句 clas str break 結合 pos 語句 練一練:函數返回值結合循環以及if語句的判斷條件 def full(xing,ming):#定義一個姓名的函數 xingming=xing+‘ ‘+ming return

ElasticSearch最佳入門實踐(四十)query string 的分詞以及 mapping 引入案例遺留問題的大揭祕

1、query string分詞 query string必須以和index建立時相同的analyzer進行分詞 query string對exact value和full text的區別對待 date:exact value _all:full text

ElasticSearch最佳入門實踐(三十)document查詢內部原理揭祕

1、客戶端傳送請求到任意一個node,成為coordinate node 對於讀請求,不一定所有的請求都發送的primary shard 上去,也可以轉發到replied shard 上去,因為replied shard 也是可以服務所有讀請求的 2、coordin

Android效能最佳實踐為您的APK進行瘦身

大家都知道開發中應用程式的效能是非常重要的,但是這也是優化提升的難點,本章針對 Android效能實踐——從減少APK的大小開始,提升使用者的體驗。 原文地址 https://developer.android.com/topic/performance/reduce-apk-

ElasticSearch最佳入門實踐(六十)修改分詞器以及定製自己的分詞器

1、預設的分詞器 standard 其餘: standard tokenizer:以單詞邊界進行切分 standard token filter:什麼都不做 lowercase token filter:將所有字母轉換為小寫 stop token filer

》MyBatise 入門案例 環境搭建入門的案 --- 最原始 main方法的測試

封紅衛 — 友情提示: 使用 mybatis 是非常容易的一件事情,因為只需要編寫 Dao 介面並且按照 mybatis 要求編寫兩個配置檔案,就可以實現功能。遠比我們之前的 jdbc 方便多了。(我們使用註解之後,將變得 更為簡單,只需要編寫一個 my

ChainDesk動手編碼鏈碼實現資產管理

作者:ChainDesk韓小東,ChainDesk區塊鏈行業分析師, ChainDesk區塊鏈工程師 目標 簡單的分析鏈碼的設計與開發 使用鏈碼相關的API實現一個簡單的資產管理應用 使用開發測試模式測試簡單的資產鏈碼應用 任務實現 下面我們來實現一個簡單

WebRTC直播課堂實踐實時互動是核心

隨著低延時流媒體技術的不斷進步,線上教育行業持續升溫。本文來自七牛雲線上教育行業解決方案專家 徐晶在LiveVideoStackCon2018大會中的演講。在演講中他闡述了基於WebRTC架構的低延時直播技術突破以及其在教育行業中的實踐與思考。本文由LiveVideo

從原理到程式碼大牛教你如何用 TensorFlow 親手搭建影象識別模組 | AI 研習社

自 2015 年 11 月首次釋出以來,TensorFlow 憑藉谷歌的強力支援,快速的更新和迭代,齊全的文件和教程,以及上手快且簡單易用等諸多的優點,已經在影象識別、語音識別、自然語言處理、資料探勘和預測等 AI 場景中得到了十分廣泛的應用。 在所有這些 AI 應用場景中

零基礎秒懂手把手教你搭建微服務框架!

這套微服務框架能幹啥?這套系統搭建完之後,可以實現:微服務架構,你的整個應用程式將會被拆分成一個個功能獨立的子系統,獨立執行,系統與系統之間通過 RPC 介面通訊。這樣系統之間的耦合度大大降低,你的系統

pythonocc入門指導1.搭建pythonocc的虛擬開發環境

已經更新的入門指導 PythonOCC入門指導:1.建立pythonocc虛擬環境 PythonOCC入門指導:2.執行一個簡單例項 PythonOCC入門指導:3.建立屬於自己的主介面及對話方塊及安裝qtdesigner pythonocc基礎使用:1.讀入iges,step,stl檔

PyTorch基礎入門PyTorch搭建卷積神經網路實現MNIST手寫數字識別

1)卷積神經網路(CNN)簡介 關於什麼是卷積神經網路(CNN),請自行查閱資料進行學習。如果是初學者,這裡推薦一下臺灣的李巨集毅的深度學習課程。連結就不給了,這些資料網站上隨處可見。 值得一提的是,CNN雖然在影象處理的領域具有不可阻擋的勢頭,但是它絕對不僅僅只能用來影

人工智慧實踐Tensorflow筆記()

import tensorflow as tf a=tf.constant([1.0,2.0]) b=tf.constant([3.0,4.0]) result=a+b print(result) #Tensor("add:0", shape=(2,), dtype=floa

搭建直播平臺需要多少錢

視訊直播,確實不是你想做,想做就能做。這是需要一個強大的技術團隊!運營的工作,非常消耗資源,需要部分頻寬成本和專業的技術人才。所以你得專業的技術團隊或者找個專業的軟體開發公司給維護者,那麼剩下的你就可以專門搞運營了。 作為一個想速成的公司來說,能買的服務就儘量買吧(不要問我