日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

直播 背景 技术体系 乐视云直播Demo

發布時間:2024/4/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 直播 背景 技术体系 乐视云直播Demo 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

最近工作需要做一款直播APP,恩是的,從RTMP協議的實現開始到處理服務器高并發、負載均衡、客戶端播放器實現等等等.....
估計全部寫完我也到而立之年了吧......BOSS們估計也是發現了我的困惑,所以打算集成第三方sdk開發,現在大部分的直播產品都會借助第三方的直播技術,這樣也可以保證直播的質量。最后著重測試的還是阿里云和樂視云的第三方sdk,阿里云的直播產品剛出不久,感覺文檔以及調試過程還不是很清晰,現在一直沒弄明白為啥推流推出去了但是另外一邊拉流拉不了,也不知道是播放器的問題還是咋的,用戰旗的直播間測試就可以拉到流,希望有大牛可以在評論區告知一二。本文講的是樂視云直播Demo的使用過程,感覺樂視在文檔邏輯上比阿里云還是強很多的至少,條理清晰邏輯嚴謹,能讓新手很快找到方向。那么本文的目的呢,是給出一個最簡單清晰的Demo整理路線,讓各位做到真正的1分鐘看懂實現集成樂視sdk的直播Demo實現過程。

樂視云直播測試案例

  • 登陸注冊,進入后在頂部產品項里選擇移動直播,文檔在這里
  • 進入移動直播頁面后,點擊免費開通(免費使用5G流量)
  • 進入移動直播"應用管理"界面,點擊創建應用,只需輸入名字、類型、平臺就可以了,之后我們會看到幾個很重要的參數:推流域名、播放域名、發布點名稱(live)以及簽名密鑰,有了這幾個東西,我們就可以開始直播測試了。
  • 應用名稱:包晴天直播
  • 推流域名:17546.mpush.live.lecloud.com
  • 播放域名:17546.mpull.live.lecloud.com
  • 發布點名稱:live
  • 簽名密鑰:V86NL7KWKW1SL530F1KN

  • 直播推流與播放地址規則:rtmp://{推流域名}/發布點名稱/{直播流名稱}
  • 直播流名稱可自定義使用,可允許數字或字母的任意字符,但不超過50位。
    • 我們可以進行清晰度選擇、錄制、安全等設置
  • 轉碼后,播放流名稱的生成規則:流名稱+清晰度標識
  • 清晰度標識說明,流暢:"_10",標清:"_13",高清:"_16",原畫:""。
  • 例如:播放地址:rtmp://{域名}/發布點/{直播流名稱}
  • 轉成高清碼率后,高清碼率的播放地址為:rtmp://{域名}/發布點/{直播流名稱_16}
    • 分別下載推流SDK和播放SDK,將內含的Demo運行到手機上。
    • 推流端配置。打開手機的推流端應用,依次輸入推流域名,簽名密鑰,以及流名稱。然后點擊開始直播,就可以直播推流了。
    • 播放端配置。只需設置播放地址即可,rtmp://17546.mpush.live.lecloud.com/live/bqt
    • 直播過程中,可對所有"直播流"進行控制
    以上就是樂視云Demo的全部步驟辣,剩下的開發過程都很簡單,從代碼中探索即可。

    樂視推流端部分代碼(設置自己的參數)

    /**?*?無皮膚版和有皮膚版的區別?*?無皮膚:SDK不去猜測你的業務邏輯。只是提供最基本的接口,比如開始推流、切換濾鏡、切換攝像頭等。?*?有皮膚:SDK提供一種業務邏輯的使用辦法。比如DEMO中展示的,你點擊按鈕就可以開始推流,點擊下方各個圖標就能實現功能切換等?*?*?*?1、所有推流SDK功能和最簡單的DEMO,可以直接查看RecorderTestActivity?*?其中:如果移動直播查看CameraView,云直播查看LeCameraView?*?*?????2、在AndroidManifest.xml?中,我們默認設置MainActivity的啟動方式,MainAcivity提供了漂亮的UI界面。?*?????如果你需要看看?RecorderTestActivity?的運行效果,需要自己在AndroidManifest.xml中進行設置,使用RecorderTestActivity直接啟動就行了?*?*?????3、對于我們提供的UI層,理論不建議修改,但是如果你們確實需要,也可以自己修改,但是出現任何BUG需要自己調試。?*/public?class?MainActivity?extends?Activity?{????//?移動直播【推流域名】,在官網移動直播創建應用后可拿到????private?static?final?String?DEFAULT_DOMAINNAME?=?"17546.mpush.live.lecloud.com";//216.mpush.live.lecloud.com????//?移動直播【推流簽名密鑰】,在官網移動直播創建應用后可拿到????private?static?final?String?DEFAULT_APPKEY?=?"V86NL7KWKW1SL530F1KN";//KIVK8X67PSPU9518B1WA????//?移動直播【推流地址】,?當用戶知道自己需要推流的地址后可以使用????private?static?final?String?DEFAULT_PUSHSTREAM?=?"rtmp://17546.mpush.live.lecloud.com/live/bqt";//rtmp://216.mpush.live.lecloud.com/live/demo????//?樂視云直播推流【用戶ID】,用戶可以在官網用戶中心拿到。另外,我的UUID為yt1jdrioib????private?static?final?String?DEFAULT_LETV_USERID?=?"835278";//800053????//樂視云直播推流【用戶私鑰】,用戶可以在官網用戶中心拿到????private?static?final?String?DEFAULT_LETV_APPKEY?=?"14659a5bf736682623ca3f2f69129a16";//60ca65970dc1a15ad421d46f524b99b7????//樂視【云直播推流ID】,用戶開通云直播功能,可以在創建活動后拿到????private?static?final?String?DEFAULT_LETV_STREAMID?=?"A2016120500000gx";????//默認流名稱使用的是設備的IMEI號????private?String?default_streamid?=?"IMEI";

    技術實現層面

    技術相對都比較成熟,設備也都支持硬編碼。github上有現成的開源實現,推流、美顏、水印、彈幕、點贊動畫、濾鏡、播放都有。技術其實不是很難,而且現在很多云廠商都提供SDK,七牛云、金山云、樂視云、騰訊云、百度云、斗魚直播伴侶推流端,功能幾乎都是一樣的,沒啥亮點,不同的是整個直播平臺服務差異和接入的簡易性。后端現在 RTMP/HTTP-FLV 清一色,App掛個源站直接接入云廠商或CDN就OK。

    直播優化層面

    其實最難的難點是提高首播時間、服務質量Qos(Quality of Service),如何在丟包率20%的情況下還能保障穩定、流暢的直播體驗,需要考慮以下方案:
    • 1.為加快首播時間,收流服務器主動推送 GOP :(Group of Pictures:策略影響編碼質量)。所謂GOP,意思是畫面組,一個GOP就是一組連續的畫面至邊緣節點,邊緣節點緩存 GOP,播放端則可以快速加載,減少回源延遲
    • 2.GOP丟幀,為解決延時,為什么會有延時,網絡抖動、網絡擁塞導致的數據發送不出去,丟完之后所有的時間戳都要修改,切記。要不客戶端就會卡一個 GOP的時間,是由于 PTS(Presentation Time Stamp,PTS主要用于度量解碼后的視頻幀什么時候被顯示出來) 和 DTS 的原因,或者播放器修正 DTS 和 PTS 也行(推流端丟GOD更復雜,丟 p 幀之前的 i 幀會花屏)
    • 3.純音頻丟幀,要解決音視頻不同步的問題,要讓視頻的delta增量到你丟掉音頻的delta之后,再發音頻,要不就會音視頻不同步
    • 4.源站主備切換和斷線重連
    • 5.根據TCP擁塞窗口做智能調度,當擁塞窗口過大說明節點服務質量不佳,需要切換節點和故障排查
    • 6.增加上行、下行帶寬探測接口,當帶寬不滿足時降低視頻質量,即降低碼率
    • 7.定時獲取最優的推流、拉流鏈路IP,盡可能保證提供最好的服務
    • 8.監控必須要,監控各個節點的Qos狀態,來做整個平臺的資源配置優化和調度
    • 9.如果產品從推流端、CDN、播放器都是自家的,保障 Qos 優勢非常大
    • 10.當直播量非常大時,要加入集群管理和調度,保障 Qos
    • 11.播放端通過增加延時來減少網絡抖動,通過快播來減少延時。

    運營成本和客戶體驗

    根據網上的數據,斗魚 TV 為 3 億人民幣,戰旗 TV 為 1.5 億人民幣,龍珠為 1.2 億人民幣,虎牙為 3000 萬 + 人民幣。運營和推廣:這個就比較燒錢了,一些做移動直播、游戲直播、秀場直播的A輪至少得上千萬。用戶體驗:流暢、不卡頓、不花屏、斷線重連、丟包策略、首畫加載速度、豐富的禮物系統,為了提高用戶體驗,可以在后臺加載其他頁面數據,但要在用戶體驗和內存優化方面找到平衡點。

    流媒體傳輸

    • TCP:TCP為點對點的協議,雖然能保證了數據傳輸的可靠性,但是對服務器資源耗費較大,在數據流大的場合難以保證數據流傳輸的實時性
    • UDP:UDP為不可靠傳輸協議,不需要維護連接狀態,也不認為每個數據包都必須到達接受端,因此網絡負荷比TCP小,傳輸速度也要比TCP快;但在網絡越擁擠時,越有更多的數據包丟失
    • RTMP:RTMP一個專門為高效傳輸視頻、音頻和數據而設計的協議,它通過建立一個二進制TCP連接或者連接HTTP隧道實現實時的視頻和聲音傳輸。
    • FFmpeg:FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉換以及流化音視頻的完整解決方案。

    備用服務器

    給沒架設服務器的朋友來一套福利:備用服務器地址(親測可用):
    rtmp://live.hkstv.hk.lxdns.com:1935/live/stream123
    rtmp://live.hkstv.hk.lxdns.com:1935/live/hks(將hks名稱改成其他的,比如aaa)
    rtmp://202.69.69.180:443/live/aaa(rtmp://202.69.69.180:443/webcast/bshdlive-pc)
    rtmp://v1.one-tv.com:1935/live/aaa(rtmp://v1.one-tv.com:1935/live/mpegts.stream)
    rtmp://203.207.99.19:1935/live/aaa(rtmp://203.207.99.19:1935/live/CCTV1)
    rtmp://202.117.80.19:1935/live/aaa(rtmp://202.117.80.19:1935/live/live4)
    rtmp://ams.studytv.cn/live/aaa(rtmp://ams.studytv.cn/livepkgr/264)
    rtmp://60.174.36.89:1935/live/aaa(rtmp://60.174.36.89:1935/live/vod3)

    轉載于:https://www.cnblogs.com/baiqiantao/p/7f23d3e0eaf1f91d60c4c2f296707493.html

    總結

    以上是生活随笔為你收集整理的直播 背景 技术体系 乐视云直播Demo的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。