直播電商原始碼,簡述直播的實現原理
現在直播非常火爆,可以從PC或手機直播,然後從PC或是手機或是 支援HTML5的瀏覽器 收看。但是,你知道直播電商原始碼後面的技術和實現原理碼?
首先,影片有它的播放協議。原則上,RTSP,RTMP,HTTP都可以做直播和點播,但一般做直播用RTSP和RTMP,做點播用HTTP。我們選用的是RTMP協議。
RTMP 協議
RTMP(Real Time Message Protocol/實時資訊傳輸協議)是應用層協議,靠底層傳輸層協議(通常是TCP)來保證資訊傳輸的可靠性的。在TCP連結建立後,RTMP協議也要客戶端和伺服器透過“握手”來建立RTMP Connection,然後在Connection上傳輸控制資訊。RTMP協議傳輸時會對資料格式化,而實際傳輸的時候為了更好地實現多路複用、分包和資訊的公平性,傳送端會把Message劃分為帶有Message ID的Chunk,每個Chunk可能是一個單獨的Message,也可能是Message的一部分,在接受端會根據Chunk中包含的data的長度,message id和message的長度把chunk還原成完整的Message,從而實現資訊的收發。
我們看看兩個常用的影片服務。一個是由直播電商原始碼向伺服器發起請求推流到伺服器,這個就是直播的播放服務,流程如下。
另一個是由直播電商原始碼向伺服器發起請求從伺服器端接受資料,可以多次呼叫,這就是播放服務。流程如下。
RTMP是直播後面的協議,有很多的開源軟體實現了,細節我們不再細說。下面,我們看看怎麼搭建直播電商原始碼後臺服務系統。
安裝和配置 LEMP
LEMP棧是指Linux(L), NGINX(E), MySQL(M), PHP(P),還記得LAMP嗎?LEMP既是將NGINX(E)取代了Apache(A)。
首先,用以下命令安裝和啟動NGINX web server。
# sudo apt-get update # sudo apt-get install nginx # sudo service nginx start
接著,安裝MySQL。
# sudo apt-get install mysql-server mysql php5-mysql
接著,安裝和配置PHP。
# sudo apt-get install php5-fpm
location ~ .php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
最後,重新啟動NGINX web server。
# sudo service nginx restart
這樣,後臺的web server設定好了,可以對外提供網頁和PHP服務了。但是,NGINX並不支援RTMP協議,我們需要下載,編譯,安裝和配置RTMP模組。
安裝和配置nginx-rtmp-module
首先,下載NGINX的原始碼,確保環境下能正確的編譯。
# git clone
然後,下載RTMP模組。
# git clone
然後,cd到NGINX的原始碼目錄,config,make和install 剛才下載的RTMP模組。
# ./configure --add-module=/path/to/nginx-rtmp-module make make install # make # make install
最後,在NGINX的配置檔案中,加上RTMP相關的配置,並且重新啟動NGINX server。
rtmp { server { listen 1935; chunk_size 4000; # HLS application hls { live on; hls on; hls_path /tmp/hls; } # MPEG-DASH is similar to HLS application dash { live on; dash on; dash_path /tmp/dash; } } } # HTTP can be used for accessing RTMP stats http { server { listen 8080; # This URL provides RTMP statistics in XML location /stat { rtmp_stat all; # Use this stylesheet to view XML as web page # in browser rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { # XML stylesheet to view RTMP stats. # Copy stat.xsl wherever you want # and put the full directory path here root /path/to/stat.xsl/; } location /hls { # Serve HLS fragments types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; add_header Cache-Control no-cache; } location /dash { # Serve DASH fragments root /tmp; add_header Cache-Control no-cache; } } }
宣告:本文由雲豹科技轉發自 找個毛線部落格,如有侵權請聯絡作者刪除
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69982461/viewspace-2781126/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 背景透明的實現,直播電商原始碼是怎麼做的原始碼
- 直播帶貨原始碼,Android Studio實現電商引導頁原始碼Android
- 直播電商原始碼,利用Kotlin+RocketMQ 實現延時訊息原始碼KotlinMQ
- 為了直播流暢,實現直播商城原始碼的轉碼原始碼
- 電商直播系統原始碼:電商app的型別都有哪些?原始碼APP型別
- 電商直播系統原始碼該如何突破?原始碼
- 如何實現直播間原始碼重要的簡訊驗證碼功能原始碼
- app直播原始碼如何實現直播間紅包功能APP原始碼
- 直播程式原始碼實現直播業務時必不可少的方面原始碼
- 直播APP原始碼實現直播流程上需要注意的內容APP原始碼
- 手機直播原始碼,Android studio 實現簡單的視訊播放原始碼Android
- 簡述RPC原理實現RPC
- 簡述多使用者電商系統原始碼原始碼
- app直播原始碼,vue2 實現簡易購物車APP原始碼Vue
- 影片直播原始碼實現直播技術曾遇到的那些小問題原始碼
- 最佳化音質是直播電商原始碼不能忽略的原始碼
- 帶貨直播原始碼,淺談直播實現過程和技術原始碼
- 線上直播原始碼實現直播技術曾遇到的那些小問題原始碼
- 直播原始碼網站,直播間小遊戲java遞迴的實現方式原始碼網站遊戲Java遞迴
- app直播原始碼,android AES加密解密實現APP原始碼Android加密解密
- 簡析中國電商直播行業發展現狀行業
- 一對一直播原始碼,實現一個簡單的登入介面原始碼
- 直播原理與web直播實戰Web
- 直播特效的實現原理與難點特效
- 雲擴電商RPA助您實現高效直播覆盤
- 直播電商原始碼,活動開始時間計時器原始碼
- 直播平臺原始碼,FlinkSQL實現行轉列原始碼SQL
- 直播app原始碼,HTML + jQuery 實現輪播圖APP原始碼HTMLjQuery
- 線上直播系統原始碼,簡單實現Android應用的啟動頁原始碼Android
- 手機直播原始碼,當前頁卡指示器的簡單實現方法原始碼
- 直播平臺原始碼開發,簽到功能的實現原始碼
- app直播原始碼,xml實現由上而下的顏色漸變APP原始碼XML
- 直播平臺原始碼,迴圈滾動RecyclerView的實現原始碼View
- 直播原始碼,實現內容列表的豎向滑動原始碼
- 直播原始碼如何進行簡單搭建原始碼
- 直播電商白皮書
- 電商直播路在何方?店寶寶:找到了未來的電商直播模式模式
- 直播 App 原始碼搭建簡易直播平臺及個人開發直播系統的難點APP原始碼