音視頻多媒體協議相關資料匯總

未知問題:
  • 編碼,封裝,協議的區別:
    如何將TS源流重新封裝并通過P2P協議傳輸在安卓終端和蘋果終端播放

  • 封裝

介紹完了視頻編碼后,再來介紹一些封裝。沿用前面的比喻,封裝可以理解為采用哪種貨車去運輸,也就是媒體的容器。

所謂容器,就是把編碼器生成的多媒體內容(視頻,音頻,字幕,章節信息等)混合封裝在一起的標準。容器使得不同多媒體內容同步播放變得很簡單,而容器的另一個作用就是為多媒體內容提供索引,也就是說如果沒有容器存在的話一部影片你只能從一開始看到最后,不能拖動進度條(當然這種情況下有的播放器會話比較長的時間臨時創建索引),而且如果你不自己去手動另外載入音頻就沒有聲音。

下面介紹幾種常見的封裝格式和優缺點:

  • AVI 格式(后綴為 .avi):
    它的英文全稱為 Audio Video Interleaved ,即音頻視頻交錯格式。它于 1992 年被 Microsoft 公司推出。這種視頻格式的優點是圖像質量好。由于無損 AVI 可以保存 alpha 通道,經常被我們使用。缺點太多,體積過于龐大,而且更加糟糕的是壓縮標準不統一,最普遍的現象就是高版本 Windows 媒體播放器播放不了采用早期編碼編輯的 AVI 格式視頻,而低版本 Windows 媒體播放器又播放不了采用最新編碼編輯的 AVI 格式視頻,所以我們在進行一些 AVI 格式的視頻播放時常會出現由于視頻編碼問題而造成的視頻不能播放或即使能夠播放,但存在不能調節播放進度和播放時只有聲音沒有圖像等一些莫名其妙的問題。
  • DV-AVI 格式(后綴為 .avi):
    DV 的英文全稱是 Digital Video Format ,是由索尼、松下、JVC 等多家廠商聯合提出的一種家用數字視頻格式。數字攝像機就是使用這種格式記錄視頻數據的。它可以通過電腦的 IEEE 1394 端口傳輸視頻數據到電腦,也可以將電腦中編輯好的的視頻數據回錄到數碼攝像機中。這種視頻格式的文件擴展名也是 AVI。電視臺采用錄像帶記錄模擬信號,通過 EDIUS 由IEEE 1394端口采集卡從錄像帶中采集出來的視頻就是這種格式。
  • QuickTime File Format 格式(后綴為 .mov):
    美國 Apple 公司開發的一種視頻格式,默認的播放器是蘋果的 QuickTime。具有較高的壓縮比率和較完美的視頻清晰度等特點,并可以保存 alpha 通道。
  • MPEG 格式(文件后綴可以是 .mpg .mpeg .mpe .dat .vob .asf .3gp .mp4等) :
    它的英文全稱為 Moving Picture Experts Group,即運動圖像專家組格式,該專家組建于 1988 年,專門負責為 CD 建立視頻和音頻標準,而成員都是為視頻、音頻及系統領域的技術專家。MPEG 文件格式是運動圖像壓縮算法的國際標準。MPEG 格式目前有三個壓縮標準,分別是 MPEG-1、MPEG-2、和 MPEG-4 。MPEG-1、MPEG-2 目前已經使用較少,著重介紹 MPEG-4,其制定于 1998 年,MPEG-4 是為了播放流式媒體的高質量視頻而專門設計的,以求使用最少的數據獲得最佳的圖像質量。目前 MPEG-4 最有吸引力的地方在于它能夠保存接近于 DVD 畫質的小體積視頻文件。
  • WMV 格式(后綴為.wmv .asf):
    它的英文全稱為 Windows Media Video,也是微軟推出的一種采用獨立編碼方式并且可以直接在網上實時觀看視頻節目的文件壓縮格式。WMV 格式的主要優點包括:本地或網絡回放,豐富的流間關系以及擴展性等。WMV 格式需要在網站上播放,需要安裝 Windows Media Player( 簡稱 WMP),很不方便,現在已經幾乎沒有網站采用了。
  • Real Video 格式(后綴為 .rm .rmvb):
    Real Networks 公司所制定的音頻視頻壓縮規范稱為Real Media。用戶可以使用 RealPlayer 根據不同的網絡傳輸速率制定出不同的壓縮比率,從而實現在低速率的網絡上進行影像數據實時傳送和播放。RMVB 格式:這是一種由 RM 視頻格式升級延伸出的新視頻格式,當然性能上有很大的提升。RMVB 視頻也是有著較明顯的優勢,一部大小為 700 MB 左右的 DVD 影片,如果將其轉錄成同樣品質的 RMVB 格式,其個頭最多也就 400 MB 左右。大家可能注意到了,以前在網絡上下載電影和視頻的時候,經常接觸到 RMVB 格式,但是隨著時代的發展這種格式被越來越多的更優秀的格式替代,著名的人人影視字幕組在 2013 年已經宣布不再壓制 RMVB 格式視頻。
  • Flash Video 格式(后綴為 .flv):
    由 Adobe Flash 延伸出來的的一種流行網絡視頻封裝格式。隨著視頻網站的豐富,這個格式已經非常普及。
  • Matroska 格式(后綴為 .mkv):
    是一種新的多媒體封裝格式,這個封裝格式可把多種不同編碼的視頻及 16 條或以上不同格式的音頻和語言不同的字幕封裝到一個 Matroska Media 檔內。它也是其中一種開放源代碼的多媒體封裝格式。Matroska 同時還可以提供非常好的交互功能,而且比 MPEG 的方便、強大。
  • MPEG2-TS 格式 (后綴為 .ts)(Transport Stream「傳輸流」,又稱 MTS、TS):
    是一種傳輸和存儲包含音效、視頻與通信協議各種數據的標準格式,用于數字電視廣播系統,如 DVB、ATSC、IPTV 等等。MPEG2-TS 定義于 MPEG-2 第一部分,系統(即原來之 ISO/IEC 標準 13818-1 或 ITU-T Rec. H.222.0)。Media Player Classic、VLC 多媒體播放器等軟件可以直接播放 MPEG-TS 文件。

目前,我們在流媒體傳輸,尤其是直播中主要采用的就是 FLV 和 MPEG2-TS 格式,分別用于 RTMP/HTTP-FLV 和 HLS 協議。

RTMP協議知識點:
  • RTMP協議是封裝的FLV視頻在互聯網中進行傳輸。
  • RTMP協議基于tcp協議;而TCP協議實時性不如UDP,也非常占用帶寬。目前基于UDP的RTMFP協議能很好的解決這些問題。
RTMP vs HLS vs HTTP FLV:
  • RTMP:Adobe公司的流媒體傳輸協議,端口號1935普通網絡用戶均可使用,包括非IOS平臺用戶,對非80端口(如1935)無限制的網絡環境用戶。優點:防HTTP下載,延時短。
    HLS:IOS平臺下的流媒體傳輸協議 ,端口號80優點:H5瀏覽器支持比較好,IOS,安卓原生支持。缺點:延遲性比較大。樓上說的切片,關鍵幀改變后切片時間可以縮短,而且可以自己設定首次產生多少分片。
    HTTP FLV:是一種將直播流模擬成FLV文件,通過HTTP協議進行下載的模式來實現流媒體傳輸的協議,端口號80 一般建議使用HTTP FLV,實時性和RTMP相等。優點:HTTP相比于RTMP省去了一些協議交互時間,首屏時間更短。HTTP可拓展的功能更多。
    作者:世界與你同在
    鏈接:https://www.zhihu.com/question/47504661/answer/117559809
    來源:知乎
    著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
  • HLS:移動h5瀏覽器支持較好,但是延遲較大。移動端播放前需要產生三個分片,每個分片至少得是一個GOP。一個GOP即使是2秒,也意味著這個環節耗費了6秒的延時。
    RTMP:需要訪問1935端口,支持雙向互動,實時性很好,PC flash原生支持。
    HTTP-FLV:不支持雙向互動,實時性和RTMP協議一致。我們目前用的是HTTP-FLV作為拉流協議。原因如下:1, 國內網絡情況的惡劣程度,并不是每個網絡防火墻都允許1935包通過。2,RTMP協議和HTTP-FLV,實際傳輸的內容都是相同的FLV,實時性也一樣。3,RTMP協議握手方式比HTTP復雜。
    作者:ksy-codefarmer
    鏈接:https://www.zhihu.com/question/47504661/answer/106441080
    來源:知乎
    著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

這里寫圖片描述

  • RTP&RTCP基于UDP協議。
  • RTSP可選擇TCP/UDP協議。
  • RTMP基于TCP協議。
  • 什么是GOP?就是視頻流中兩個I幀的時間距離。
  • 理論上RTSP RTMP HTTP都可以做直播和點播,但一般做直播用RTSP RTMP,做點播用HTTP。做視頻會議的時候原來用SIP協議,現在基本上被RTMP協議取代了。

RTMP特點:

  • Adobe支持得很好:
    RTMP實際上是現在編碼器輸出的工業標準協議,基本上所有的編碼器(攝像頭之類)都支持RTMP輸出。
    原因在于PC市場巨大,PC主要是Windows,Windows的瀏覽器基本上都支持flash,
    Flash又支持RTMP支持得非常好。
  • 適合長時間播放:
    因為RTMP支持的很完善,所以能做到flash播放RTMP流長時間不斷流,
    當時測試是100萬秒,即10天多可以連續播放。
    對于商用流媒體應用,客戶端的穩定性當然也是必須的,否則最終用戶看不了還怎么玩?
    我就知道有個教育客戶,最初使用播放器播放http流,需要播放不同的文件,結果就總出問題,
    如果換成服務器端將不同的文件轉換成RTMP流,客戶端就可以一直播放;
    該客戶走RTMP方案后,經過CDN分發,沒聽說客戶端出問題了。
  • 延遲較低:
    比起YY的那種UDP私有協議,RTMP算延遲大的(延遲在1-3秒),
    比起HTTP流的延時(一般在10秒以上)RTMP算低延時。
    一般的直播應用,只要不是電話類對話的那種要求,RTMP延遲是可以接受的。
    在一般的視頻會議應用中,RTMP延時也能接受,原因是別人在說話的時候我們一般在聽,
    實際上1秒延時沒有關系,我們也要思考(話說有些人的CPU處理速度還沒有這么快)。
  • 有累積延遲:
    技術一定要知道弱點,RTMP有個弱點就是累積誤差,原因是RTMP基于TCP不會丟包。
    所以當網絡狀態差時,服務器會將包緩存起來,導致累積的延遲;
    待網絡狀況好了,就一起發給客戶端。
    這個的對策就是,當客戶端的緩沖區很大,就斷開重連。

HTTP協議/RTSP協議/RTMP協議的區別

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450085.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450085.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450085.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

谷歌地圖VS蘋果地圖:大數據領域競爭

摘要:iOS 6推出之后,爭議最大的是什么?蘋果地圖。蘋果地圖成為人們抨擊iOS 6的首選,而蘋果放棄谷歌地圖選擇自力更生是迫不得已。蘋果和谷歌之間的競爭領域可以用三個字來概括:大數據。谷歌擁有大數據,而蘋…

Shell 參數傳遞、 $* 與 $@ 區別

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 傳遞參數 腳本內獲取參數的格式為: $n。n 代表一個數字,1 為執行腳本的第一個參數, 2 為執行腳本的第…

微軟正在考慮將Windows默認瀏覽器改為Chromium

據外媒報道,微軟正在構建一個基于Chromium的瀏覽器,代號為Anaheim,目標是取代Windows中的Edge。 Microsoft Edge是微軟于2015年推出的瀏覽器,該瀏覽器取代了IE成為Windows 10的默認瀏覽器。盡管如此,Microsoft Edge并沒…

css文本屬性

text-align文本水平對齊屬性 取值 left(默認) right center text-indent 文本縮進屬性 單位可以是px也可以是em(字符) text-decoration 文本裝飾屬性 取值 underline(下劃線) overline(上劃線) line-though(刪除線) 轉載于:https://www.cnblogs.com/c-aha/p/10298422.html

三次握手的第三個ACK包丟了,會發生什么?

轉載自三次握手的第三個ACK包丟了,TCP的處理方式 三次握手的第三個ACK包丟了,客戶端認為連接建立,寫數據時,會觸發RST。 當Client端收到Server的SYNACK應答后,其狀態變為ESTABLISHED,并發送ACK包給Server&a…

運營商與廠商發力 智能機進入700元以下時代

千元智能手機的成功,并沒有讓運營商以及手機廠商感到滿足。繼中國電信宣布重點打造600元智能手機后,近日,中國聯通也表態將發力700元以下智能手機市場。而運營商的表態立刻引來了多家手機廠商的呼應,產品價格的繼續下探&#xff0…

輸入一個數,判斷他是不是質數

思路:先給一個數字x,然后讓這個數字x從2開始除,如果 x 從 2 除到 (x-1) 能被整除,那這就不是質數.如果不能被整除,那就是質數. 當然如果x小于2,那x必然不是質數,也不是合數. #輸入一個數,判斷他是不是質數 x int(input("請輸入一個數字:")) #先輸入一個數字 co…

一分鐘了解四層/七層反向代理

轉自公眾號:架構師之路今天花幾分鐘簡單和大家解釋一下。場景:訪問用戶通過proxy請求被訪問的真實服務器 路徑:用戶 -> proxy -> real-server什么是代理? 回答:[proxy]代表[訪問用戶],此時proxy是代理…

tcp建立連接為什么需要三次握手

這是一個看似很“簡單”的問題,但貌似并沒有一個官方統一的答案。搜索了相關的資料,列舉出一些答案。 以下部分轉載自:tcp建立連接為什么需要三次握手 在《計算機網絡》一書中其中有提到,三次握手的目的是“為了防止已經失效的連…

SFTPUtils工具類及使用

配置maven <dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.54</version> </dependency> 工具類 package com.sftp;import com.jcraft.jsch.*; import com.jcraft.jsch.ChannelSftp.LsE…

國內手機產業混亂:產業一窩蜂 企業撈快錢

對于當前國內手機行業的現狀&#xff0c;本報記者采訪的多位業內人士表示&#xff0c;目前國內手機行業仍是“紅海”格局&#xff0c;多數企業并不了解手機產業規律&#xff0c;看到有錢賺就“一窩蜂”上項目。有行業人士認為&#xff0c;要走出目前行業的現狀&#xff0c;企業…

查看私密文章方法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 我只是記錄下&#xff0c;曾經寫過一次文章&#xff0c;勾選了私密&#xff0c;再后來就找不到了。 下面這個鏈接可以查出那篇文章&…

SDUT-3364_歐拉回路

數據結構實驗之圖論八&#xff1a;歐拉回路 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在哥尼斯堡的一個公園里&#xff0c;有七座橋將普雷格爾河中兩個島及島與河岸連接起來。 能否走過這樣的七座橋&#xff0c;并且每橋只走一次&#xff1f;瑞士數學…

Tcp三次握手和四次揮手狀態圖

三次握手 四次揮手 正常情況下 同時揮手 SYN攻擊&#xff1a; 在三次握手過程中&#xff0c;Server發送SYN-ACK之后&#xff0c;收到Client的ACK之前的TCP連接稱為半連接&#xff08;half-open connect&#xff09;&#xff0c;此時Server處于SYN_RCVD狀態&#xff0c;當…

QEMU 3.0.0 新特性一覽

QEMU 在 2018年8月15發布了版本3.0.0&#xff0c; 正式從 2.12 進入了3.0 時代。 而且到今年位為止&#xff0c;QEMU 已經有15個年頭了&#xff0c;出乎意料的長阿&#xff0c;:) 其主要新特性如下&#xff1a; ARM&#xff1a; 在virt機器中支持SMMUv3 IOMMU 在v8M中支持VLLDM…

OpenCL、OpenGL 同時工作

視頻處理如果能使用OpenCL、OpenGL、omap將大量提高運算速度&#xff0c;簡單介紹OpenCL、OpenGL 同時工作。 OpenCL和OpenGL都能用于操作GPU&#xff0c;但是前者主要用于通用計算&#xff0c;而后者主要用于圖像渲染。在某些情況下&#xff0c;我們希望能用OpenCL計得到算圖像…

財務自由之路——為什么選擇淘寶(下)

接上文~一、淘寶之前的大佬們是怎么試錯的?我們看看在淘寶之前的大佬們是怎么試錯迭代產品的。都知道飛機是萊特兄弟發明的&#xff0c;但很少有人知道為什么是他們。在內燃機發明后的很長一段時間內全球各地發明家都在投入研究飛機&#xff0c;萊特兄弟相對于其他競爭者&…

java參數后面跟三個點是什么意思

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 AVA中類型后面跟三個點是什么來的。 看代碼中那個三點&#xff0c;這樣做起到重載的作用&#xff0c;但這是什么意思&#xff1f; cla…

一只視頻程序猿的移動直播SDK初體驗

本文轉自一只視頻程序猿的移動直播SDK初體驗&#xff0c;此處僅做排版改動。 今早老板召開站會&#xff0c;“移動直播這么火&#xff0c;市面上有一百多個APP&#xff0c;小斌&#xff0c;你下周交個原型APP瞅瞅!” 小弟心中一萬匹草泥馬奔過&#xff0c;這玩意兒哪兒是幾天就…

Xilinx zynq-7000系列FPGA移植Linux操作系統詳細教程

Xilinx zynq-7000系列FPGA移植Linux操作系統詳細教程 一&#xff1a;前言 最近手上壓了一塊米聯客的Miz7035&#xff0c;一塊xilinx zynq-7000系列的開發板&#xff0c;想著正好學習一下linux在ARM9上的移植&#xff0c;網上基本都是ZC702、zed的教程&#xff0c;這對于買了非標…