音視頻流媒體開發(fā)【四十六】RTMP流媒體2-直播推流1

音視頻流媒體開發(fā)-目錄
iOS知識點-目錄
Android-目錄
Flutter-目錄
數(shù)據(jù)結(jié)構(gòu)與算法-目錄
uni-pp-目錄

RTMP流媒體Demo

  1. 直播框架分析
  2. 直播具體技術(shù)細節(jié)分析
  3. 直播推流源碼實戰(zhàn)

第一章 直播框架分析

直播應(yīng)用場景

常用直播功能項

直播框架示例1:常用直播功能項

直播框架示例2:某直播學(xué)院框架

直播架構(gòu)-基本邏輯

直播架構(gòu)-基本流程

直播常用工具

流媒體服務(wù)器

SRS :一款國人開發(fā)的優(yōu)秀開源流媒體服務(wù)器系統(tǒng)

BMS :也是一款流媒體服務(wù)器系統(tǒng),但不開源,是SRS的商業(yè)版,比SRS功能更多

nginx :免費開源web服務(wù)器,也常用來配置流媒體服務(wù)器。
集成Rtmp_module即可。

Red5:是java寫的一款穩(wěn)定的開源的rtmp服務(wù)器。

直播框架之CDN

基礎(chǔ)知識補充 流媒體開發(fā)

  1. 名詞術(shù)語:YUV 、PCM、AAC、H264、FLV、RTMP、音視頻同步:《1-快速掌握音視頻開發(fā)基礎(chǔ)知識.pdf》
  2. FFmpeg命令行測試環(huán)境:《2-Windows FFmpeg命令行環(huán)境搭建.docx》
  3. QT-FFmpeg開發(fā)環(huán)境:《3-QT+FFmpeg4.0 Windows開發(fā)環(huán)境搭建.docx》
  4. SRS服務(wù)器搭建:《4-RTMP流媒體服務(wù)器搭建.pdf》
  5. AAC ADTS格式分析:《5-AAC ADTS格式分析.pdf》
  6. H264 NALU分析:《6-H264 NALU分析.pdf》
  7. FLV格式分析:《 7-FLV格式分析.pdf》
  8. RTMP協(xié)議詳解:《8-RTMP協(xié)議詳解.pdf》

RTMP文檔: rtmp_specification.pdf

采集端邏輯

播放端邏輯

第二章 技術(shù)細節(jié)

推流拉流技術(shù)點

緩沖控制

  • 延時:實時采集畫面與播放展示畫面的時間差
    一般主要是節(jié)點網(wǎng)絡(luò)抖動,數(shù)據(jù)堆積導(dǎo)致GOP緩存過多
    X264編碼:無延時編碼zerolatency,控制碼率波動
  • 首屏:從點擊播放到出圖的時間
    節(jié)點級數(shù)越多耗時越長
    首屏打開考驗的是直播CDN的組網(wǎng)方式、網(wǎng)絡(luò)覆蓋率和傳輸協(xié)議的優(yōu)化程度
  • 卡頓:播放過程中出現(xiàn)卡頓次數(shù)或時長
    主播推流卡頓、CDN內(nèi)部網(wǎng)絡(luò)卡頓,客戶終端網(wǎng)絡(luò)
  • 策略方面
    預(yù)熱:提前拉取熱門直播
    集群:就近共享數(shù)據(jù)

延時

全網(wǎng)延時控制
? 延時控制:在網(wǎng)絡(luò)擁塞嚴(yán)重時采用丟幀策略,保障實時播放
? 參數(shù)更新:meta/video codec/audio codec
? 時間戳:遞增

質(zhì)量監(jiān)控

質(zhì)量指標(biāo)

CDN監(jiān)控
? 建連時間
? 首幀時間
? 緩存
? 幀率
? 碼率
? 丟幀

端監(jiān)控
? DNS解析時間
? 建連時間
? 首幀時間
? 緩存
? 幀率
? 碼率
? 丟幀
? 碼率
? 卡頓率
? 失敗率

卡頓

故障排查-黑屏

? metadata是否正常
? 是否有視頻sequence header
? 是否有視頻幀數(shù)據(jù)
? 音視頻時間戳是否單增
? 是否視頻數(shù)據(jù)大小一致(本身就是黑屏數(shù)據(jù))

故障排查-卡頓

? 看卡頓分布:
? 全網(wǎng)卡頓,還是局部卡頓;
? 全網(wǎng)卡查上行,局部卡查下行
? 另外,全網(wǎng)卡頓也可能是流異常,比如碼率過大
? 主要受觀眾帶寬限制
? 一般2M以上就會出現(xiàn)卡頓上升,3M就要開始吐槽了

故障排查-推流卡頓

? 查看推流路徑監(jiān)控
? 是否頻繁斷開
? 主播推流是否欠速(速率明顯偏低)
? 內(nèi)部上行是否欠速
? 常見原因
? 主播網(wǎng)絡(luò)問題。ping推流點,speedtest測速
? 連接的推流點不合理??赡苁钦{(diào)度問題,也可能是dns配置不對或localdns不對
? 內(nèi)部鏈路問題。查丟包
? 節(jié)點高負(fù)載(cpu、內(nèi)存、io、帶寬、機房帶寬)

故障排查-下行拉流卡頓

? 部分區(qū)域卡頓高
? 常見原因:
? 丟包
? 高負(fù)載(cpu、內(nèi)存、io、帶寬、機房帶寬)
? 節(jié)點覆蓋

故障排查-播放異常

? 時間戳問題
? 時間戳跳變
? 音視頻差距大
? 可以調(diào)節(jié)選項拉原流驗證
? 聲音異常
? 網(wǎng)絡(luò)抖動導(dǎo)致沒有聲音進行播放

第三章 直播推流源碼實戰(zhàn)

? 推流實戰(zhàn)-見源碼演示
? 拉流實戰(zhàn)-見源碼演示

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容