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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

直播系统开发之推流及拉流概述

發布時間:2024/6/21 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 直播系统开发之推流及拉流概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

拉流(播放):

根據直播系統開發協議類型(如RTMP、RTP、RTSP、HTTP等),與服務器建立連接并接收數據;

解析二進制數據,從中找到相關流信息;

根據不同的封裝格式(如FLV、TS)解復用(demux);

分別得到已編碼的H.264視頻數據和AAC音頻數據;

使用硬解碼(對應系統的API)或軟解碼(FFMpeg)來解壓音視頻數據;

經過解碼后得到原始的視頻數據(YUV)和音頻數據(AAC);

因為音頻和視頻解碼是分開的,所以我們得把它們同步起來,否則會出現音視頻不同步的現象,比如別人說話會跟口型對不上;

最后把同步的音頻數據送到耳機或外放,視頻數據送到屏幕上顯示。

了解了直播系統開發播放器的播放流程后,我們可以優化以下幾點:

首屏時間優化

從步驟2入手,通過預設解碼器類型,省去探測文件類型時間;

從步驟5入手,縮小視頻數據探測范圍,同時也意味著減少了需要下載的數據量,特別是在網絡不好的時候,減少下載的數據量能為啟動播放節省大量的時間,當檢測到I幀數據后就立馬返回并進入解碼環節。

推流:

?

推流.jpg

經過輸出設備(AVCaptureVideoDataOutput)得到原始的采樣數據--視頻數據(YUV)和音頻數據(AAC);

使用硬編碼(對應系統的API)或軟編碼(FFMpeg)來編碼壓縮音視頻數據;

分別得到已編碼的H.264視頻數據和AAC音頻數據;

根據不同的封裝格式(如FLV、TS、MPEG-TS);

使用HLS協議的時候加上這一步(HLS分段生成策略及m3u8索引文件)

通過流上傳到服務器;

服務器進行相關協議的分發

推流步驟說明:很容易看出推流跟播放其實是逆向的,具體流程就不多說了。

優化一:適當的Qos(Quality of Service,服務質量)策略。

直播系統開發推流端會根據當前上行網絡情況控制音視頻數據發包和編碼,在網絡較差的情況下,音視頻數據發送不出去,造成數據滯留在本地,這時,會停掉編碼器防止發送數據進一步滯留,同時會根據網絡情況選擇合適的策略控制音視頻發送。

比如網絡很差的情況下,推流端會優先發送音頻數據,保證用戶能聽到聲音,并在一定間隔內發關鍵幀數據,保證用戶在一定時間間隔之后能看到一些畫面的變化。

優化二:合理的關鍵幀配置。

合理控制直播系統開發關鍵幀發送間隔(建議2秒或1秒一個),這樣可以減少后端處理過程,為后端的緩沖區設置更小創造條件。

軟硬編解選擇

網上有不少關于選擇軟解還是硬解的分析文章,這里也介紹一些經驗,但根本問題是,沒有一個通用方案能最優適配所有操作系統和機型。

推流編碼: 推薦Andorid4.3(API18)或以上使用硬編,以下版本使用軟編;iOS使用全硬編方案;

播放解碼:Andorid、iOS播放器都使用軟解碼方案,經過我們和大量客戶的測試以及總結,雖然犧牲了功耗,但是在部分細節方面表現會較優,且可控性強,兼容性也強,出錯情況少,推薦使用。

附軟硬編解碼優缺點對比:

?

硬編碼軟編碼優缺點.jpg

采集

采集的步驟:

創建AVCaptureSession
輸入對象AVCaptureDeviceInput
輸出對象AVCaptureVideoDataOutput
輸出代理方法captureOutput(_:didOutputSampleBuffer:fromConnection:)

相關內容

采集數據:iOS平臺上采集直播系統開發音視頻數據,需要使用AVFoundation.Framework框架,從captureSession會話的回調中獲取音頻,視頻數據。
傳輸層協議:主要采用RTMP協議居多(默認端口1935,采用TCP協議),也有部分使用HLS協議
音/視頻編碼解碼:FFMpege編碼解碼
視頻編碼格式:H.265、H.264、MPEG-4等,封裝容器有TS、MKV、AVI、MP4等
音頻編碼格式:G.711μ、AAC、Opus等,封裝有MP3、OGG、AAC等
渲染工具:采用OpenGL渲染YUV數據,呈現視頻畫面。將PCM送入設備的硬件資源播放,產生聲音。iOS播放流式音頻,使用Audio Queue 的方式,即,利用AudioToolbox.Framework 框架。

本文轉自https://blog.csdn.net/yanceyxin/article/details/82750686?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160067980719724848356004%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160067980719724848356004&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v28-1-82750686.pc_first_rank_v2_rank_v28&utm_term=%E6%8E%A8%E6%B5%81&spm=1018.2118.3001.4187

僅作分享用。

總結

以上是生活随笔為你收集整理的直播系统开发之推流及拉流概述的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 黄色毛毛片 | 无码人妻精品一区二区蜜桃视频 | 亚洲成人黄色小说 | 麻豆传谋在线观看免费mv | 日韩偷拍一区 | 色干网| 国产色无码精品视频 | wwxx日本 | 亚洲va中文字幕 | 亚洲视频国产视频 | 中文字幕第22页 | 99福利影院 | 成人午夜一区 | 大色av| 37p粉嫩大胆色噜噜噜 | 日韩精品 欧美 | 久久窝窝 | 卡通动漫精品一区二区三区 | 欧美v亚洲| www国产精品内射老熟女 | 亚洲成人黄色在线 | 日韩乱码一区二区 | jizzjizz国产| 欧美成人精品欧美一级乱黄 | 第一色网站| 一区二区三区在线看 | 黄网站免费在线观看 | 亚洲欧美另类一区 | 成人在线观看视频网站 | 成人亚洲免费 | 91精品一区二区三 | 国产亚洲精品一区二区三区 | 成人深夜福利在线观看 | 自拍偷拍精品 | 女生扒开尿口给男生捅 | 久久免费在线视频 | 久久久久久美女 | 国产精品嫩草影院av蜜臀 | 伊人成人久久 | 在线免费观看成人 | 夏晴子在线| 国产尻逼 | 国产毛片电影 | 久久久久久久久久久久久女过产乱 | 高跟肉丝丝袜呻吟啪啪网站av | 日韩欧美国产成人精品免费 | 亚洲精品中文字幕 | 亚洲天堂色 | av动漫网| 9色在线视频 | 欧美精品三区 | 国产成人精品二区三区亚瑟 | 久久av喷吹av高潮av萌白 | 亚洲国产精选 | 国产三极片 | 精品无码av一区二区三区不卡 | 欧美日韩国产在线观看 | 91禁蘑菇在线看 | 亚洲黄色片在线观看 | 少妇淫片 | 久久久精品在线 | 中文字幕女同 | 成人免费看高清电影在线观看 | 国产免费黄色网址 | free国产hd露脸性开放 | 欣赏asian国模裸体pics | 国产日产欧美 | 麻豆精品久久 | 公侵犯一区二区三区四区中文字幕 | 91漂亮少妇露脸在线播放 | 自拍偷拍第3页 | 奇米影视播放器 | 韩国av不卡 | 男人女人拔萝卜视频 | 嫩草视频一区二区三区 | 在线观看一区二区三区视频 | 亚洲激情av | 久久久亚洲国产精品 | 经典杯子蛋糕日剧在线观看免费 | 日韩你懂的 | 国产中文字幕精品 | 日韩不卡一二三区 | 91在线观 | 多毛的亚洲人毛茸茸 | 亚州国产 | 国产在线中文 | 日本一区二区三区免费看 | 蜜臀视频在线播放 | 永久精品网站 | 人人亚洲 | 日韩精品无码一本二本三本色 | 午夜小视频在线观看 | 国产一级av毛片 | 毛茸茸毛片| 天堂av2014| 老妇裸体性猛交视频 | 国内精久久久久久久久久人 | av在线播放中文字幕 | 国产性猛交xxxⅹ交酡全过程 |