1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          視頻直播方案

          來源:互聯網轉載 時間:2024-01-29 08:09:11

          首先是主播方,它是產生視頻流的源頭,通過一定的設備來采集數據。比如我們的是通過車載終端來獲取視頻流數據的。

          其次是播放端,播放端功能有兩個層面,第一個層面是關鍵性的需求;另一層面是業務層面的。先看第一個層面,它涉及到一些非常關鍵的指標,比如秒開,在很多場景當中都有這樣的要求,然后是對于一些重要內容的版權保護。為了達到更好的效果,我們還需要配合服務端做智能解析,這在某些場景下也是關鍵性需求。再來看第二個層面也即業務層面的功能,對于一個社交直播產品來說,在播放端,觀眾希望能夠實時的看到主播端推過來的視頻流,并且和主播以及其他觀眾產生一定的互動,因此它可能包含一些像點贊、聊天和彈幕這樣的功能,以及禮物這樣更高級的道具。

          直播服務器端提供的最核心功能是收集主播端的視頻推流,并將其放大后推送給所有觀眾端。除了這個核心功能,還有很多運營級別的訴求,比如鑒權認證,視頻連線和實時轉碼,自動鑒黃,多屏合一,以及云端錄制存儲等功能。另外,對于一個主播端推出的視頻流,中間需要經過一些環節才能到達播放端,因此對中間環節的質量進行監控,以及根據這些監控來進行智能調度,也是非常重要的訴求。實際上無論是主播端還是播放端,他們的訴求都不會僅僅是拍攝視頻和播放視頻這么簡單。在這個核心訴求被滿足之后,還有很多關鍵訴求需要被滿足。比如,對于一個消費級的直播產品來說,除了這三大模塊之外,還需要實現一個業務服務端來進行推流和播放控制,以及所有用戶狀態的維持。如此,就構成了一個消費級可用的直播產品。

          視頻直播方案(包括APP在內)

          錄制->編碼->網絡傳輸->解碼->播放

          以上為直播的整體流程,根據該流程分為以下技術點:

          怎樣錄制直播視頻(流媒體源/編碼/封裝)怎樣實時上傳直播視頻(視頻推流:

          如何推/往哪里推/推流服務器)怎樣播放直播視頻(如何看: HLS/rtmp/flv)直播間的用戶是如何交互

          如何搭建一個完整的視頻直播系統?一個完整的直播系統大致包含這幾個環節:采集、前處理、編碼、傳輸、解碼和渲染。在兩端傳輸的過程中再加上一個服務端處理。大致的模型如下:

          推流,指的是把采集階段封包好的內容傳輸到服務器的過程。

          流程如下:

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

          使用硬編碼(對應系統的API)或軟編碼(FFMpeg)來編碼壓縮音視頻數據;分別得到已編碼的H.264視頻數據和AAC音頻數據;

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

          使用HLS協議的時候加上這一步(HLS分段生成策略及m3u8索引文件)通過流上傳到服務器;

          服務器進行相關協議的分發目前主流的推送協議,以及各自的優缺點如下:

          RTMP

          RTMP是Real Time Messaging Protocol(實時消息傳輸協議)的縮寫,是Adobe公司為Flash/AIR平臺和服務器之間音、視頻及數據傳輸開發的實時消息傳送協議。

          RTMP協議基于TCP,包括RTMP基本協議及RTMPT/RTMPS/RTMPE等多種變種。RTMP協議中,視頻必須是H264編碼,音頻必須是AAC或MP3編碼,且多以flv格式封包。RTMP是目前最主流的流媒體傳輸協議,對CDN支持良好,實現難度較低,是大多數的直播平臺的選擇。

          不過RTMP有著一個最大的不足——不支持瀏覽器,且Adobe已不再更新。因此直播服務要支持瀏覽器的話,需要另外的推送協議支持。

          HLS

          Http Live Streaming是由Apple公司定義的基于HTTP的流媒體實時傳輸協議。它的原理是將整個流分為多個小的文件來下載,每次只下載若干個。服務器端會將最新的直播數據生成新的小文件,客戶端只要不停的按順序播放從服務器獲取到的文件,就實現了直播?;旧?HLS是以點播的技術實現了直播的體驗。因為每個小文件的時長很短,客戶端可以很快地切換碼率,以適應不同帶寬條件下的播放。

          分段推送的技術特點,決定了HLS的延遲一般會高于普通的流媒體直播協議。

          傳輸內容包括兩部分:一是M3U8描述文件,二是TS媒體文件。TS媒體文件中的視頻必須是H264編碼,音頻必須是AAC或MP3編碼。

          由于數據通過HTTP協議傳輸,所以完全不用考慮防火墻或者代理的問題,而且分段文件的時長很短,不過HLS的

          WebRTC

          WebRTC(Web Real-Time Communication),即“源自網頁即時通信”。

          WebRTC是一個支持瀏覽器進行實時語音、視頻對話的開源協議。

          WebRTC的支持者甚多,Google、Mozilla、Opera推動其成為W3C推薦標準。

          WebRTC支持目前的主流瀏覽器,并且基于SRTP和UDP,即便在網絡信號一般的情況下也具備較好的穩定性。

          此外,WebRTC可以實現點對點通信,通信雙方延時低,是實現“連麥”功能比較好的選擇。

          拉流,指服務器已有直播內容,用指定地址進行拉取的過程。根據協議類型(如RTMP、RTP、RTSP、HTTP等),與服務器建立連接并接收數據;流程如下:

          解析二進制數據,從中找到相關流信息;根據不同的封裝格式(如FLV、TS)解復用(demux);

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

          使用硬解碼(對應系統的API)或軟解碼(FFMpeg)來解壓音視頻數據;經過解碼后得到原始的視頻數據(YUV)和音頻數據(AAC);

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

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

          直播架構(包括APP)

          1. 采集端流程

          (1)音視頻采集

          (2)視頻處理

          (3)音視頻編碼壓縮

          (4)把音視頻封裝成FLV.TS

          采集端;(常用框架)

          AVFoundation框架 數據

          FFmpeg 框架 音頻壓縮

          X264 框架 視頻壓縮

          Libremp 框架 推流

          1. 服務器流程

          (1)數據分發 (SDN)

          (2)展示畫面

          (3)錄制視頻

          (4)實時轉碼

          常用服務器;

          SNS、BMS、nginx

          1. 播放端流程

          (1)從FLV.TS中獲取音視頻數據

          (2)音視頻編碼

          (3)播放

          RTSP;實時流傳輸協議,是TCP/IP協議體系中的一個應用層協議.RTSP在體系結構上位于RTP和RTCP之上,它使用TCP或UDP完成數據傳輸。

          RTMP;實時消息傳輸協議)的首字母縮寫。該協議基于TCP,是一個協議族,包括RTMP基本協議及RTMPT/RTMPS/RTMPE等多種變種。

          FLV中的TS;首先引入dts(decode time-stamp)的概念,解碼時間戳,標識數據送入解碼器的時間,就是開始解碼的時間,應該按時隨著解碼順序而遞增的。 flv格式在碼流里有time-stamp位。由Timestamp和TimestampExtended組合得出TS(time-stamp),單位是毫秒。

          可見TS是遞增的,又知道此碼流有B幀,所以播放順序一定是和解碼順序不同的。所以flv中的TS應該是DTS。

          HLS;Http Live Streaming是由Apple公司定義的基于HTTP的流媒體實時傳輸協議。它的原理是將整個流分為多個小的文件來下載,每次只下載若干個。服務器端會將最新的直播數據生成新的小文件,客戶端只要不停的按順序播放從服務器獲取到的文件,就實現了直播?;旧?HLS是以點播的技術實現了直播的體驗。因為每個小文件的時長很短,客戶端可以很快地切換碼率,以適應不同帶寬條件下的播放。

          簡單講就是把整個流分成一個個小的,基于HTTP的文件來下載,每次只下載一些,前面提到了用于H5播放直播視頻時引入的一個.m3u8(extended M3U playlist)的文件,這個文件就是基于HLS協議,存放視頻流元數據的文件。

          分段推送的技術特點,決定了HLS的延遲一般會高于普通的流媒體直播協議。

          傳輸內容包括兩部分:一是M3U8描述文件,二是TS媒體文件。TS媒體文件中的視頻必須是H264編碼,音頻必須是AAC或MP3編碼。

          由于數據通過HTTP協議傳輸,所以完全不用考慮防火墻或者代理的問題,而且分段文件的時長很短,不過HLS的WebRTCWebRTC(Web Real-Time Communication),即“源自網頁即時通信”。

          WebRTC是一個支持瀏覽器進行實時語音、視頻對話的開源協議。WebRTC的支持者甚多,Google、Mozilla、Opera推動其成為W3C推薦標準。WebRTC支持目前的主流瀏覽器,并且基于SRTP和UDP,即便在網絡信號一般的情況下也具備較好的穩定性。

          標簽:直播視頻sdk-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          airdrop是什么?空投是蘋果Lion系統的獨特新功能。它用于在多個設備之間共享文件。只要你把文件拖到使用空投的朋友的化身上,你就可以進行一對一的文件傳輸(類似于藍牙傳輸)。在2013年WWDC大會上,airdrop來到了IOS設備上。iPhone5以下的設備不支持空投應用。airdrop共享是什么意思?Airdrop是蘋果IOS和Mac OS系統的一項新功能。它用于在多個設備之間共享文件。只要...

          成都有哪些大超市?家樂福、伊藤洋華堂、北京華聯、沃爾瑪、麥德龍、歐尚等。排名靠前的公司有家樂福、沃爾瑪和麥德龍。成都規模最大,比連鎖店方便?肯定是本地超市:紅旗連鎖!成都最大的超市是什么超市?成都最大的超市是位于武侯區八寶街1號的家樂福超市。全國最大的超市?國內最大的單店超市是成都的迪卡儂天府商場。最大是華潤萬家。成都永輝超市最大是哪家?339電視塔附近的永輝超市應該算是目前最大的了。永輝超市很多...

          Y閱:我愿意為你用一生去闖蕩是什么歌?《我愿意為你用一生去闖蕩》在哪里。專輯:Where歌手:杜歌杜歌-Where作詞:AG作曲:AG編曲:蘇宏亮曲鵬濤心里有淚,但從來沒有心里的痛。一個人躲起來挺直腰板執拗地假裝走在前面很久,卻忘不了一個溫暖卻發紅的眼神。即使在世界上做一個愛人也沒有壞處。我愿意用我的一生為你旅行,我的朋友。再難,我也不怕只是一個男人的謊言。我的朋友,你現在在哪里?我愿意為你流浪一...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>