视频技术基础
目前比較主流的視頻格式有下面這幾種:avi,rmvb,mp4,flv,mkv等等。這里面作為的視頻格式實際上是指視頻的封裝格式,指的是以什么方式把視頻和音頻數據打包成一個文件。
注:有些封裝格式支持的視音頻編碼標準十分廣泛,應該算比較優秀的封裝格式,比如MKV;而有些封裝格式支持的視音頻編碼標準很少,應該屬于落后的封裝格式,比如RMVB。
封裝格式:
| 格式 | 推出機構 | 流媒體 |支持的視頻編碼|支持音頻編碼格式|應用領域|
|MP4|MPEG|支持|MPEG-2、MPEG-4、H.264|AAC,MPEG-1 Layers I, II, III、AC-3等|互聯網視頻|
|TS|MPEG|支持|MPEG-2、MPEG-4、H.264|AAC,MPEG-1 Layers I, II, III|互聯網視頻、IPTV、數字電視|
|FLV|Adobe Inc.|支持|Sorenson、VP6、H264|MP3,ADPCM,Linear PCM、AAC等|互聯網視頻
|MKV|CoreCodec Inc.|支持|幾乎所有|幾乎所有|互聯網視頻|
|RMVB|Real Networks Inc.|支持|RealVideo 8,9,10|AAC、Cook Codec、RealAudio Lossless|下載的視頻文件|
除了AVI之外,幾乎所有的封裝格式都支持流媒體播放,也就是“邊下邊播放”。
視頻編碼:
比如一秒鐘的視頻通常有24幀,這24張圖畫大部分區域可能都比較相近,那么我們是不是可以找到一種方法,只保存一張完整圖片(我們稱為關鍵幀),不保存其他圖片,只保存和這個完整圖片的不同(通過某種數學建模表達),這樣就會節省很多空間,在播放的時候,通過和關鍵幀與每一幀的不同逆向恢復成一張完整的圖片,這樣就得到了24張完整的圖片。(這里只是舉例,實際應用中并不一定是每24幀圖像被設定一個關鍵幀)。
編碼格式就指的一種壓縮視頻圖像的算法。主流的視頻編碼格式一覽表如下:
?
目前主流的視頻都采用H264(AVC)格式進行視頻編碼,H265(HEVC)可能對目前的計算機硬件資源來說計算量還是過大,還沒有普及(只是猜測)。
?
目前主要的音頻編碼格式有AAC、AC-3、MP3、WMA。其中AAC應該是視頻文件中最主流的編碼格式。
視頻播放器的原理:
在網站上看一個視頻的時候,需要經過這幾個步驟:解協議,解封裝,解碼視音頻,視音頻同步。如果播放本地文件則不需要解協議,為以下幾個步驟:解封裝,解碼視音頻,視音頻同步。
?
這張圖表示的是從網絡流媒體下載到播放的整個過程,流媒體的協議有很多種,比如HTTP,RTMP或者MMS等。
?
解封裝的作用,就是將輸入的封裝格式的數據,分離成為音頻流壓縮編碼數據和視頻流壓縮編碼數據。例如,FLV格式的數據,經過解封裝操作后,輸出H.264編碼的視頻碼流和AAC編碼的音頻碼流。
解碼的作用,就是將視頻/音頻壓縮編碼數據,解碼成為非壓縮的視頻/音頻原始數據。
解碼是整個系統中最重要也是最復雜的一個環節。通過解碼,壓縮編碼的視頻數據輸出成為非壓縮的顏色數據,例如YUV420P,RGB等等;壓縮編碼的音頻數據輸出成為非壓縮的音頻抽樣數據,例如PCM數據。
視音頻同步的作用,就是根據解封裝模塊處理過程中獲取到的參數信息,同步解碼出來的視頻和音頻數據,并將視頻音頻數據送至系統的顯卡和聲卡播放出來。
為什么要分封裝格式和視頻編碼格式呢? 這個其實跟網絡分七層模型一個原理。
編碼就只負責將最原始的音頻和視頻數據進行壓縮,而壓縮完的數據要怎么組織就拜托給上層的封裝,封裝接到視頻音頻數據負責給數據編號,指定同步協議,加入字幕等操作。經過封裝后,得到的就是可以播放的上面提到的視頻文件MP4或者MKV等等。
https://www.jianshu.com/p/c905f3ec59c9
流媒體協議,封裝格式,以及視音頻編碼標準
協議數據、封裝格式數據、視頻編碼數據、音頻編碼數據、視頻像素數據、音頻采樣數據
流媒體協議是服務器與客戶端之間通信遵循的規定。當前網絡上主要的流媒體協議如表所示。
封裝格式的主要作用是把視頻碼流和音頻碼流按照一定的格式存儲在一個文件中。現如今流行的封裝格式如下表所示:
視頻編碼的主要作用是將視頻像素數據(RGB,YUV等)壓縮成為視頻碼流,從而降低視頻的數據量。
音頻編碼的主要作用是將音頻采樣數據(PCM等)壓縮成為音頻碼流,從而降低音頻的數據量。
?
現有的網絡視音頻服務主要包括兩種方式:點播和直播。
直播服務普遍采用了RTMP作為流媒體協議,FLV作為封裝格式,H.264作為視頻編碼格式,AAC作為音頻編碼格式。
點播服務普遍采用了HTTP作為流媒體協議,H.264作為視頻編碼格式,AAC作為音頻編碼格式。點播服務采用的封裝格式有多種:MP4,FLV,F4V等,它們之間的區別不是很大。
https://blog.csdn.net/leixiaohua1020/article/details/18893769
?
2K和4K分辨率
720p 1280*720 ?1080p 1920*1080 ?2K 2560*1440(2.5K??)(720*2) ?4K 3840(1920*2)*2160(1080*2)(16:9)
2K分辨率指屏幕橫向像素達到2000以上,主流2K分辨率為2560x1440。國內數字影院放映機主要采用這種分辨率。許多高端手機屏幕也開始使用這種分辨率。其他的2048×1536(QXGA)2560×1600(WQXGA),2560×1440(Quad HD)也可以做為2K的一種。在數字電影制作中,2048×1556 為進入 2K 的門檻。
4K分辨率是指水平方向每行像素值達到或者接近4096個,多數情況下特指4096*2160分辨率。而根據使用范圍的不同,4K分辨率也有各種各樣的衍生分辨率,例如Full Aperture 4K的4096*3112、Academy 4K的3656*2664以及UHDTV標準的3840*2160等,都屬于4K分辨率的范疇。
4K標準用在手機,UHD標準用在電視
8K UHDTV(4320p)的寬高為7680×4320(2160*2)
流暢 360p/240p
標清(SD)480p、高清(HD)720p、全高清/藍光(FHD)1080p、超(高)清(UHD)
?
https://wenku.baidu.com/view/0acae33ad1f34693daef3eb1.html
?
分辨率 1080P 2K等
由于保存完整的一幀一幀圖片的視頻原文件太大,必須要通過某種視頻壓縮算法將視頻中的圖片壓縮,以減小視頻文件大小。壓縮比越大,解壓縮還原后用來播放的視頻就會有越嚴重的失真。
碼率,簡單來說就是指在壓縮視頻的時候給這個視頻指定一個參數,用以告訴壓縮軟件期望的壓縮后視頻的大小。碼率的英文名為bps(bit per second),就是用平均每秒多少bit來衡量一個視頻大小。
比如那個被壓縮的1080P的視頻,假設它的長度為100分鐘,大小為1GB。
100min=100x60S=6000s
1GB=1024MB= 1024X1024KB=1024X1024X1024Byte=1024X1024X1024X8bit=8589934592bit
那么這個視頻的碼率大概就是1.4Mbit/s(8589934592/6000),這個比特率在在線視頻中已經是非常高的了,一般主流視頻平臺的最高碼率在1Mbit/s左右,比如直播網站斗魚的高清選項實際播放的視頻碼率是900Kbit/s(0.9Mbit)。
幀率(Frame rate)是用于測量顯示幀數的量度。所謂的測量單位為每秒顯示幀數(Frames per Second,簡稱:FPS)或“赫茲”(Hz)。此詞多用于影視制作和電子游戲。
由于人類眼睛的特殊生理結構,如果所看畫面之幀率高于24的時候,就會認為是連貫的,此現象稱之為視覺暫留。
對游戲,一般來說,第一人稱射擊游戲比較注重FPS的高低,如果FPS<30的話,游戲會顯得不連貫。
每秒的幀數(fps)或者說幀率表示圖形處理器處理時每秒鐘能夠更新的次數。高的幀率可以得到更流暢、更逼真的動畫。一般來說30fps就是可以接受的,但是將性能提升至60fps則可以明顯提升交互感和逼真感,但是一般來說超過75fps一般就不容易察覺到有明顯的流暢度提升了。
如果幀率超過屏幕刷新率只會浪費圖形處理的能力,因為監視器不能以這么快的速度更新,這樣超過刷新率的幀率就浪費掉了。
總結一下它們的關系,對于視頻來講,碼率應該是最重要的參數。
https://www.jianshu.com/p/028196b8ca14
傳統有線電視 ?運營商IPTV、互聯網OTT、網絡視頻
從傳輸上來看,IPTV使用的是IP城域網,服務穩定,而網絡視頻和OTTTV使用的是廣域互聯網,技術上更為靈活,但也容易收到其他上網活動的干擾,影響收看效果。
從內容上看,IPTV受限于牌照商內容,但擁有電視臺直播和回看資源這一相對獨家的資源;OTT互聯網電視點播內容相對豐富,但仍然受限于牌照和廣電總局監管;網絡視頻內容最為豐富但主要優勢集中在點播內容上。
從屏幕上看,IPTV和OTT互聯網電視主要是電視大屏,網絡視頻則主要以電腦、移動端小屏幕為主。
在政策層面,此前OTT互聯網電視由于牌照限制,多個參與企業被勒令整改甚至暫停運營;而國家對IPTV的政策持續利好。
https://m.sohu.com/n/494724800/?wscrid=95360_2
微信等OTT業務
優酷OTT業務主要指通過互聯網電視機、互聯網機頂盒,在電視平臺播放的優質視頻內容。
總結
- 上一篇: 段错误产生原因及简单的调试方法
- 下一篇: Pacman主题下给Hexo增加简历类型