国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

設(shè)計一個像ESPN一樣的實時視頻流系統(tǒng)

這篇具有很好參考價值的文章主要介紹了設(shè)計一個像ESPN一樣的實時視頻流系統(tǒng)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

功能需求

?直播事件與流之間的最大延遲不超過1分鐘?系統(tǒng)應能夠適應大量用戶(異構(gòu)交付)?系統(tǒng)應能將視頻轉(zhuǎn)換為不同的分辨率和編解碼器?系統(tǒng)應具備容錯性

視頻轉(zhuǎn)換和接收

由于我們正在實時直播整個事件,因此我們不能等待整個視頻結(jié)束后再開始將其轉(zhuǎn)換為不同的格式和編解碼器。為了實現(xiàn)這一點,我們可以使用一種名為RTMP(Real-Time Messaging Protocol)的協(xié)議。

?RTMP代表實時消息傳輸協(xié)議(Real-Time Messaging Protocol)?我們使用RTMP是因為它是基于TCP的,因此不會丟失數(shù)據(jù),更加可靠。我們需要使用TCP,因為我們不希望在傳輸過程中丟失數(shù)據(jù)包。如果我們使用UDP之類的協(xié)議,雖然傳輸速度會更快,但在每個階段丟失數(shù)據(jù)將導致視頻質(zhì)量下降。

所需組件

?轉(zhuǎn)換服務:RTMP提供視頻流,轉(zhuǎn)換服務將該視頻流轉(zhuǎn)換為不同的編解碼器和分辨率。它還具有作業(yè)調(diào)度器,以原始視頻流為輸入,將其轉(zhuǎn)換為所有的分辨率和編解碼器。多個工作節(jié)點執(zhí)行這些任務。當有新的原始視頻流時,轉(zhuǎn)換服務將其推送到消息隊列。工作節(jié)點訂閱此消息隊列。它們接受輸入,并在視頻轉(zhuǎn)換完成后將其推送到另一個消息隊列。?數(shù)據(jù)庫:為了在發(fā)生災難時不丟失視頻數(shù)據(jù)(我們需要容錯性),我們將使用數(shù)據(jù)庫存儲原始視頻數(shù)據(jù)。?分布式文件服務:在工作節(jié)點處理視頻后,還需要將結(jié)果存儲在文件服務中以實現(xiàn)容錯性。?消息隊列

架構(gòu)圖

設(shè)計一個像ESPN一樣的實時視頻流系統(tǒng)

向終端用戶傳輸視頻

我們將使用內(nèi)容交付網(wǎng)絡(luò)(CDN)將視頻傳輸給終端用戶。CDN或邊緣服務器在地理上更接近終端用戶。

由于用戶將通過HTTP連接,因此我們可以使用諸如HLS(HTTP Live Streaming)(用于iPhone)或DASH(Dynamic Adaptive Streaming over HTTP)(用于其他操作系統(tǒng))的協(xié)議。

但是,為什么我們要使用HLS/DASH?

HLS/DASH具有自適應比特率。這意味著我們將根據(jù)以下因素調(diào)整比特率:

?可提供的視頻質(zhì)量?網(wǎng)絡(luò)速度?客戶設(shè)備支持的分辨率和格式

由于它是一種流媒體協(xié)

議,它可以根據(jù)帶寬的使用情況和實時需求來合理地進行調(diào)整。

注意:與RTMP相比,HLS/DASH是較低質(zhì)量的連接,因此我們在實時性和質(zhì)量之間進行了權(quán)衡。

為了將視頻發(fā)送到CDN,我們可以在全球范圍內(nèi)部署服務器。我們將處理后的視頻發(fā)送到這些服務器,然后服務器將其發(fā)送到CDN。

我們將使用RTMP將視頻發(fā)送到服務器。

但是,為什么我們不直接將處理后的視頻發(fā)送到CDN?

跨內(nèi)容交付網(wǎng)絡(luò)的傳播速度可能不太高。因此,如果我們將處理后的視頻發(fā)送到CDN,而它們在不同位置擁有服務器,則SLA保證可能無法與實時直播保證相匹配。

每當客戶端請求視頻時,其中一個服務器將客戶端引導到CDN上的一個端點。客戶端可以使用此端點來獲取視頻。

緩存

我們將讓CDN負責緩存視頻。盡管您可以將熱門視頻片段緩存在內(nèi)存中,但為了減輕服務器負載,我們可以緩存客戶端 <-> 終點的映射。這樣,我們可以直接獲取終點,而無需每次重新路由。

設(shè)計一個像ESPN一樣的實時視頻流系統(tǒng)

容錯性

為了使我們的系統(tǒng)更具容錯性,我們可以使用負載均衡器。如果其中一個服務器離線,我們可以將請求重定向到其他服務器。

折衷方案

?使用WebRTC與使用HLS/DASH進行視頻傳輸。HLS/DASH是基于HTTP并通過TCP工作的。它們保持有序傳輸。另一方面,WebRTC基于點對點,并通過UDP工作。它可能還會發(fā)送無序的數(shù)據(jù)塊。由于我們希望保持視頻質(zhì)量,因此我們將使用HLS/DASH。

所需組件

?內(nèi)容交付網(wǎng)絡(luò)(CDN)?在不同位置的服務器

架構(gòu)圖

設(shè)計一個像ESPN一樣的實時視頻流系統(tǒng)

容量估算

每個直播流需要處理多少個視頻?

假設(shè):

?捕捉的視頻為8k。?我們要提供的分辨率:1080p、720p、480p和360p。?編解碼器數(shù)量:4?板球比賽持續(xù)時間:10小時?視頻大?。?0GB

720p視頻大?。?0/2 = 5GB

480p視頻大小:10/4 = 2.5GB

360p視頻大?。?0/8 = 1.25GB

所有分辨率所需的總存儲空間:18.75GB

所有分辨率和編解碼器所

需的總存儲空間:18.75 * 4 = 75GB

在單個直播流中需要向CDN傳輸多少數(shù)據(jù)?

假設(shè):

?用戶數(shù)量:10,000,000?使用高清分辨率的用戶比例:50%?觀看直播流的用戶比例:50%

標準分辨率下的視頻大?。?0/4 = 2.5GB

因此,總數(shù)據(jù)傳輸量 = SUM(視頻類型的大小 * 類型的用戶數(shù)量) * 平均觀看百分比

= (10 GB * 50/100 * 10? + 2.5 GB * 50/100 * 10?) * 50/100 = 3.125 * 1000000GB = 3.125 PB

從事件到用戶設(shè)備傳輸數(shù)據(jù)需要多長時間?

假設(shè):

?用戶每秒消耗的數(shù)據(jù)量 = 10GB / 10小時 =?300?kB/sec?將300kB數(shù)據(jù)傳輸?shù)阶罱腃DN所需時間 =?1秒?從CDN向用戶傳輸300kB數(shù)據(jù)所需時間 =?150毫秒

總傳輸時間 = 1秒 + 0.15秒 + 0.15秒 =?1.3秒

假設(shè)ffmpeg運行速度為視頻速度的2倍,處理時間為1 / 2 =?0.5秒

總延遲時間 = 1.3秒 + 0.5秒 =?1.8秒

通過以上內(nèi)容,我們設(shè)計了一個類似ESPN的實時視頻流系統(tǒng),該系統(tǒng)具備容錯性、支持不同分辨率和編解碼器的視頻轉(zhuǎn)換,以及使用CDN進行視頻傳輸。我們還進行了容量估算,估計了處理視頻、傳輸數(shù)據(jù)和傳輸延遲所需的時間。文章來源地址http://www.zghlxwxcb.cn/news/detail-469756.html

到了這里,關(guān)于設(shè)計一個像ESPN一樣的實時視頻流系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 【精選】基于OpenCV的實時視頻流車牌識別(源碼&教程)

    【精選】基于OpenCV的實時視頻流車牌識別(源碼&教程)

    近年來,智能交通系統(tǒng)(ITS)在我國應用日益廣泛。作為ITS重要組成部分的自動車牌識別系統(tǒng)在交通流量檢測、交通誘導控制、違章車輛監(jiān)控等方面有著廣泛的應用,是確保道路安全暢通的重要手段,也為統(tǒng)計有關(guān)資料,為管理者決策提供有效數(shù)字依據(jù)的重要途徑。由于一般的識別系

    2024年01月23日
    瀏覽(94)
  • FFmpeg+SDL實時解碼和渲染H264視頻流

    之前實現(xiàn)了Android手機攝像頭數(shù)據(jù)的TCP實時傳輸,今天接著聊聊,如何在PC端把接收到的H264視頻流實時解碼并渲染出來。這次使用的語言是C++,框架有FFmpeg和SDL2。 解碼部分使用FFmpeg,首先,需要初始化H264解碼器: 然后,使用創(chuàng)建TCP連接到我們的Android端,讀取數(shù)據(jù)包: 再把每

    2024年02月13日
    瀏覽(28)
  • Qt推流程序自動生成網(wǎng)頁遠程查看實時視頻流(視頻文件/視頻流/攝像頭/桌面轉(zhuǎn)成流媒體rtmp+hls+webrtc)

    Qt推流程序自動生成網(wǎng)頁遠程查看實時視頻流(視頻文件/視頻流/攝像頭/桌面轉(zhuǎn)成流媒體rtmp+hls+webrtc)

    推流程序?qū)⒁曨l流推送到流媒體服務器后,此時就等待驗證拉流播放,一般可以選擇ffplay命令行播放或者vlc等播放器打開播放,也可以選擇網(wǎng)頁直接打開拉流地址播放,一般主流的瀏覽器都支持網(wǎng)頁直接播放hls/m3u8/webrtc類型的視頻流,而且推流的主要目的可能就是為了能夠在

    2024年02月05日
    瀏覽(104)
  • [chatGPT] 如何通過JNI在Android上顯示實時視頻流

    [chatGPT] 如何通過JNI在Android上顯示實時視頻流

    相機拍攝的畫面通過local socket 獲取,所以C++的代碼可以輕易的獲取到每一幀視頻數(shù)據(jù),需要通過JNI 讓 Android顯示出來,方法有兩種,一種是在Android內(nèi)創(chuàng)建回調(diào)函數(shù)使用Bitmap 和ImageView 進行賦值顯示,另一種也就是ChatGPT完成的,Android將surface 傳遞到JNI層內(nèi),C++來完成賦值和渲

    2023年04月26日
    瀏覽(19)
  • 基于OpenCv+Django的網(wǎng)絡(luò)實時視頻流傳輸(前后端分離)

    基于OpenCv+Django的網(wǎng)絡(luò)實時視頻流傳輸(前后端分離)

    秋風閣——北溪入江流:https://focus-wind.com/ 秋風閣——基于OpenCv+Django的網(wǎng)絡(luò)實時視頻流傳輸(前后端分離) 使用OpenCv捕獲攝像機畫面后,我們有時候需要將畫面顯示在界面上。本博客基于Django的前后端分離模式,將視頻流從后端讀取,傳送給前端顯示。 在使用Django進行視頻

    2024年02月08日
    瀏覽(93)
  • VUE3 播放RTSP實時、回放(NVR錄像機)視頻流(使用WebRTC)

    VUE3 播放RTSP實時、回放(NVR錄像機)視頻流(使用WebRTC)

    1、下載webrtc-streamer,下載的最新window版本 Releases · mpromonet/webrtc-streamer · GitHub ?2、解壓下載包 ?3、webrtc-streamer.exe啟動服務 (注意:這里可以通過當前文件夾下用cmd命令webrtc-streamer.exe -o這樣占用cpu會很少,直接雙擊exe文件會占用cpu) cmd? webrtc-streamer.exe -o 啟動如下圖所示,

    2024年04月12日
    瀏覽(23)
  • 記錄對接??低晹z像頭web端實時預覽:Linux+ffmpeg+nginx轉(zhuǎn)換RTSP視頻流(完整版實現(xiàn))

    ????????需求:web端實現(xiàn)海康攝像頭實時預覽效果 ????????由于市面上大部分網(wǎng)絡(luò)攝像頭都支持RTSP協(xié)議視頻流,web端一般無法直接使用RTSP實現(xiàn)視頻預覽,本篇使用ffmpeg對視頻流進行轉(zhuǎn)換,最終實現(xiàn)web端實時預覽。 ????????工具介紹:ffmpeg、nginx、vue ????????介

    2024年01月25日
    瀏覽(25)
  • Android MediaCodec將h264實時視頻流數(shù)據(jù)解碼為yuv,并轉(zhuǎn)換yuv的顏色格式為nv21

    初始化mediacodec 處理數(shù)據(jù),解碼h264數(shù)據(jù)為yuv格式 這里傳入的是h264格式的實時視頻流數(shù)據(jù)。 處理獲取到的nv21顏色格式的yuv數(shù)據(jù) ?yuv視頻數(shù)據(jù)顏色格式轉(zhuǎn)換 h264實時視頻流的數(shù)據(jù)來源 寫入h264視頻流到sdcard中 rtsp獲取h264實時視頻流數(shù)據(jù) ?編寫C代碼加載ffmpeg庫 源碼地址 https://gi

    2024年01月17日
    瀏覽(31)
  • Python 實現(xiàn)??禉C器人工業(yè)相機 MV-CU060-10GM 的實時顯示視頻流及拍照功能

    Python 實現(xiàn)??禉C器人工業(yè)相機 MV-CU060-10GM 的實時顯示視頻流及拍照功能

    一、背景介紹 1、最近項目中需要給客戶對接??禉C器人工業(yè)相機 MV-CU060-10GM; 2、客戶要求通過部署的管理平臺,可以在頁面上實現(xiàn)如下功能: 1)相機視頻流開始預覽; 2)相機視頻流停止預覽; 3)相機拍照功能。 需求背景:客戶需要對生產(chǎn)的產(chǎn)品進行定期抽樣質(zhì)檢,其中

    2024年02月08日
    瀏覽(24)
  • Qt編寫視頻監(jiān)控系統(tǒng)73-不同視頻流不同類型的判斷和解析(http/m3u8/rtsp/rtmp等)

    Qt編寫視頻監(jiān)控系統(tǒng)73-不同視頻流不同類型的判斷和解析(http/m3u8/rtsp/rtmp等)

    這套視頻監(jiān)控系統(tǒng)大概從2018年起步整體框架,一步步積累到現(xiàn)在,中間經(jīng)歷了無數(shù)次的各種視頻文件、視頻流、視頻設(shè)備的播放測試,比如光視頻文件就有mp4/wmv/rmvb/mkv/avi等格式,視頻設(shè)備有本地USB攝像頭、桌面等,視頻流有rtmp/rtsp/rtp/http等,其中http開頭的就有視頻文件和視

    2024年02月05日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包