阿里雲(二)《2017雲棲大會》基於阿里雲搭建本身的視頻直播系統

感謝雲棲大會,親眼見到Redis做者:Salvatore Sanfilippohtml

前言

  本文講述經過參與阿里雲【2017雲棲大會】 視頻直播服務單間一套基於阿里雲的視頻直播系統,主要談及到推流、流分發、四層負載、七層負載、反向代理等內容,其中涉及到OpenResty 、Lua小語言、阿里雲OSS、Redis等相關知識內容會做簡單介紹。node

系統設計

一、推流部分(動態負載均衡)shell

二、播流部分(動態反向代理)數據庫

三、直播系統架構圖:api

這一節是本文的核心內容,重點講述直播系統的架構設計。先看圖:服務器

步驟1:經過openapi 獲取推流地址和播流地址架構

步驟2:客戶開始推流,推流到分發服務器(URL_STREAM)app

步驟3:分發服務器(livenode)會執行一個shell腳本,分發本地數據流到節點負載均衡服務器,主要代碼:負載均衡

events { worker_connections 65535; } #TCP 負載均衡 stream { upstream backend { hash $remote_addr consistent; server 192.168.1.10:1935 weight=2 max_fails=3 fail_timeout=30s; server 192.168.1.11:1935 weight=5 max_fails=3 fail_timeout=30s; server 192.168.1.12.155:1935 weight=1 max_fails=3 fail_timeout=30s; } server { listen 1935; proxy_connect_timeout 1s; proxy_timeout 20s; proxy_pass backend; } } http { include mime.types; default_type application/octet-stream; log_format main '[$time_local][$remote_addr][$http_x_forwarded_for] $status "$request" "$http_referer" "$http_user_agent"'; access_log logs/access.log  main; sendfile on; keepalive_timeout 65; }

步驟5:直播節點服務器會自動生成HLs格式的ts文件保存下來,同時定時清理已通過期的ts切片curl

步驟6:直播地址的回源,這裏使用Lua腳本配合Redis去實現。

阿里雲OSS存儲使用

一、阿里云云存儲OSS的命令行osscmd的安裝和使用,請參照個人另一篇博客:阿里雲(一)雲存儲OSS的命令行osscmd的安裝和使用

二、自動錄像上傳OSS目錄結構

三、關於更多的OSS相關知識,後續會慢慢介紹

視頻系統模塊詳解

一、直播模塊

二、點播模塊

三、錄像模塊

四、視頻編輯模塊

直播模塊

  • 推流地址
    rtmp://live.aliyun.com/live/123456
  • RTMP播放地址:
    rtmp://live.aliyun.com/live/123456
  • HLS播放地址:
    https://live.aliyun.com/hls/123456.m3u8
  • DASH播放地址:
    https://live.aliyun.com/dash/123456.mpd
  • 實時流狀態查看:
    https://live.aliyun.com/stat

  

錄像控制

  • 開始錄像:curl "https://live.aliyun.com/control/record/start?app=live&name=123456&rec=rec1"
    返回值:/home/www/videos/123456-150632348720170925151127.flv
  • 中止錄像:curl "https://live.aliyun.com/control/record/stop?app=live&name=123456&rec=rec1"
    返回值:/home/www/videos/123456-150632348720170925151127.flv
  • 錄像信息自動存儲數據庫,而且郵件自動通知客戶
  • 錄製文件.flv格式自動完成截圖、切片、轉碼功能(格式:TS、MP4)
  • 錄製文件自動上傳阿里雲OSS存儲

點播模塊

  • HLS點播地址:
    https://vod.aliyun.com/vod/123456-150632523520170925154035/index.m3u8
  • MP4點播地址:
    https://vod.aliyun.com/vod/123456-150632523520170925154035.mp4
  • 視頻截圖地址:
    https://vod.aliyun.com/vod/123456-150632523520170925154035.jpg
  • OSS點播地址:
    http://oss.aliyun.com/data/201710002/video/20171000959120171007092631.mp4

視頻編輯模塊

一個簡單的小demo

 

 

相關文章
相關標籤/搜索