一種微信直播H5直播與存儲回放的HLS攝像機方案


接上篇

在上一篇博客《一種流量成本節省60%以上的手機直播微信直播H5直播幼兒園直播方案》中,我們一共介紹了兩種省錢的HLS直播途徑:

  • 方案一:編碼器或者內網推流直接對接雲存儲的場景

    如果我們是一個做編碼器或者我們在內網有個直播主機,而且可以對編碼器、主機做定制,那么我們可以直接將直播流切片成HLS數據源源不斷寫入到雲存儲中,再通過雲存儲提供的Public或者Private的http地址,就可以直接觀看HLS直播,與我們在直播服務器中切片的HLS m3u8地址訪問方法一樣;

  • 方案二:推流到公網的服務器再做切片

    如果我們沒有辦法或者技術方法改變內網推流端,而是直接購買的直播設備,我們也是可以做到的:購買一台雲主機,部署上RTMP服務器(例如EasyDSS),再通過RTMP服務器將切片的HLS直播數據源源不斷通過內網的形式寫入到雲存儲中,阿里雲也出了一個叫做cloudfs的產品,就是能夠直接將OSS雲存儲掛在到服務器上做為一個磁盤,這樣就能想寫本地磁盤目錄一樣,寫m3u8+ts文件了,這里的費用也是極低的,首先內網上行到服務器主機的流量是免費的,服務器主機寫入到雲存儲走內網流量也是免費的,流量費用與第一種方式是相似的!

我們今天着重要描述的就是場景一的實現方案,直接在攝像機或者編碼器中將直播/存儲的HLS數據寫入到OSS/七牛雲存儲這樣的雲存儲中,注意,這里不論是直播類型的HLS,還是點播類型的HLS,都可以寫入到雲存儲中,而且都能夠跟正常的直播型HLS或者點播型存儲效果是一致的!

實現方法

確定了方向,那么下一步就是應該如何實現呢,我總結了幾個層次的需求,按順序:

  1. Step1:有攝像機/編碼器的二次開發權限,能直接在攝像機/編碼器的arm系統中植入我們對接雲存儲的程序;

  2. Step2:對接攝像機/編碼器SDK或者協議獲取到實時的音視頻流,並轉換為標准的H.264+AAC(如果有音頻);

  3. Step3:將H.264+AAC切片成HLS實時流數據/點播流數據;

  4. Step4:將Step3中的數據通過雲存儲的SDK寫入到雲存儲的Bucket中;

開發計划

我本身是海康螢石的用戶,每個月需要自己付款12元保存7天的錄像,我的計划是自己基於廠家的攝像機開發一款雲存儲攝像機,具備幾個功能:

  1. 根據攝像機的SDK二次開發,當有移動偵測回調的時候,才啟動雲存儲錄像;

  2. 存儲錄像到雲存儲中保存7/30天;

  3. 攝像機原生需要支持H.264,音頻轉碼通過EasyAACEncoder:https://github.com/EasyDarwin/EasyAACEncoder來實現;

  4. HLS切片采用EasyHLS:https://github.com/EasyDarwin/EasyHLS來實現;

  5. 雲存儲當然就用雲存儲平台提供的SDK二次開發了,例如OSS:https://help.aliyun.com/document_detail/32131.html?spm=5176.87240.400427.51.01eGWx,七牛雲:https://developer.qiniu.com/kodo/sdk/1255/cpp

  6. 當然阿里雲的OSS有直接將4、5兩步合並的SDK:https://help.aliyun.com/document_detail/32159.html?spm=5176.87240.400427.55.01eGWx

獲取更多信息

郵件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

EasyDarwin

#20171028於北京#


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM