多媒體播放基礎

縮寫:
MSE:media source extensions
EME:encrypted media extensions,加密媒體擴展協議(EME)
DASH:dynamic adaptive streaming over http,基於HTTP的動態自適應流技術(DASH) 

defination :
MSE is a W3C HTML Working Group specification for a JavaScript interface to play back media data within a browser.
DASH is a standardized file format, much like Apple’s HTTP Live Streaming (HLS) or Microsoft’s Smooth Streaming.
EME is another JavaScript API that enables HTML5-based DRM by extending MSE with application programming interfaces (APIs)
to control the playback of protected content. 

DRM:digital rights management

HLS:HTTP Live Streaming

VOD:視屏點播內容

CDN:content delivery network

IR sensor:紅外傳感器

RC:remote control 遙控器

armeb是大端字節序的arm
armdirectfb是支持directfb硬件圖像加速的arm

FHD:full high definition

mux、demux:複用,解複用

'video/mp4; codecs="avc1.42E01E, mp4a.40.2"'解析:
 video/mp4 代表這是一段 mp4 格式封裝的視頻,'avc1' 代表視頻採用 H.264 編碼,隨後是一個分隔點,之後是 3 個兩位的十六進制的數
,這 3 個十六進制數分別代表:
AVCProfileIndication(42)
profile_compability(E0)
AVCLevelIndication(1E)
第一個用於標識 H.264 的 profile,後兩個用於標識視頻對於解碼器的要求
'mp4a' 代表此視頻的音頻部分採用 MPEG-4 壓縮編碼。
隨後是一個分隔點,和一個十六進制數(40),這是 ObjectTypeIndication,40 對應的是 Audio ISO/IEC 14496-3 標準。(不同的值具有
不同的含義,詳細可以參考官方文檔)
然後又是一個分隔點,和一個十進制數(2),這是 MPEG-4 Audio Object Type,維基百科中的解釋是 "MPEG-4 AAC LC Audio Object Type
is based on the MPEG-2 Part 7 Low Complexity profile (LC) combined with Perceptual Noise Substitution (PNS) (defined in
MPEG-4 Part 3 Subpart 4)",具體是什麼意思就不翻譯了,其實就是一種 H.264 視頻中常用的音頻編碼規範。


關於<video>標籤所支持的視頻格式和編碼:


MP4 = MPEG 4文件使用 H264 視頻編解碼器和AAC音頻編解碼器


WebM = WebM 文件使用 VP8 視頻編解碼器和 Vorbis 音頻編解碼器


Ogg = Ogg 文件使用 Theora 視頻編解碼器和 Vorbis音頻編解碼器
--------------------- 
vedio多個源,匹配第一個適配的源
<video width="500" height="250" controls="controls">

<source src="movie.ogg" type="video/ogg">


<source src="movie.mp4" type="video/mp4">

您的瀏覽器不支持此種視頻格式。

</video>
--------------------- 


muted:muted  音頻輸出應該靜音
poster:    URL    規定視頻下載時顯示的圖像,或者在用戶點擊播放按鈕前顯示的圖像。
preload    preload    如果出現該屬性,則視頻在頁面加載時進行加載,並預備播放。
    如果使用 "autoplay",則忽略該屬性。

流媒體文件解釋:
1:流媒體= 流(流動的)+媒體(音視頻)可以是 yuv/pcm h264 aac mp4 flv ts任意一種
2:媒體文件 = 原始流(yuv/pcm)等未壓縮的格式(排除光感壓縮和RGB壓縮) || h264/aac這種裸流(沒有時間戳的流文件)||          
mp4/flv/ts這種封裝格式文件(裏面包含音視頻字幕等)。
要支持流式播放可以有兩種方式:1,文件本身支持,如flv格式 2,服務器支持,使用rtp/rtcp等流服務器

MSE流程解釋:
MPEG-DASH是MSEs的一種媒體傳輸格式的實現。那讓我們瞭解一下基於HTML5 MSE的視頻播放器的工作步驟:

下載並解析配置文件,MPEG-DASH中使用MPD文件(HLS中使用m3u8文件),配置文件中提供了視頻流的詳細信息,諸如視頻流的碼率質量種類
,分辨率數量,音頻數據數量,字幕數量等,以及媒體文件數據塊的名字,源服務器或者CDN的信息。
評估客戶端設備上的可用帶寬,選擇適當的視頻質量以實現無緩衝流,截止在用JavaScript來下載後續的媒體片段。
JavaScript代碼將下載的媒體片段移交到MSE的緩存中處理。
底層硬件拿到了這部分緩存,就開始進行解碼以及渲染視頻,把結果返回給video標籤。
這就是一種Netflix和Youtube都在使用的基於HTML5的自適應媒體播放。像dash.js 和 Bitdash HTML5 player都是現今相當成熟的解決方案
,這就讓開發者和視頻內容商很輕鬆的切換到HTML5的自適應碼率播放方案,同時DASH-IF項目是開源的。


DRM發展:
對許多視頻服務商來說,MPEG-DASH已經是最好的技術選型。DASH項目以越來越快的速度推出,使用Widevine DRM的MES和EME看起來是最可行
的替代方案。此外,MPEG-CENC可以支持不同的DRM系統都只支持同一版本的加密內容,並且,EME的內容是基於MSE的MPEG-DASH內容格式。

因此,不同的DRM系統組合,如用於Chrome和安卓的Widevine Modular,用於IE和Edge的Microsoft PlayReady,還有用於Firefox的Adobe
Primetime。由於每一個平臺都要有一個版本,這使得內容供應商有了更多的動機去轉向MPEG-DASH作爲國際標準,因爲它對流媒體、DRM以及
CDN都具有更好的靈活性。

目前主流瀏覽器支持MSE和EME現狀
Environment    Player Technology    Media    DRM
Chrome    HTML5 MSE    MPEG-DASH    Widevine Modular
Internet Explorer 11 Windows 8.1    HTML5 MSE    MPEG-DASH    PlayReady
Internet Explorer (other)    Flash, Silverlight    MPEG-DASH    ClearKey, PlayReady
Edge    HTML5 MSE, HTML5 HLS    MPEG-DASH, HLS    PlayReady, AES HLS
Firefox    HTML5 MSE    MPEG-DASH    Adobe
Safari    HTML5 MSE, HTML5 HLS    MPEG-DASH, HLS    Fairplay, AES
Android: Web > v4.1    HTML5 MSE, HTML5 HLS    MPEG-DASH, HLS    Widevine Modular
Android: app    Google’s Exoplayer    MPEG-DASH, HLS    Widevine Modular
iOS: web    HTML5 HLS    HLS    AES
iOS: app    native HLS support    HLS    Fairplay, AES
smart TV    Native MPEG-DASH support or HTML5 MSE (e.g. Tizen)    MPEG-DASH or HLS    Device-dependent
HbbTV (1.5)    native MPEG-DASH support    MPEG-DASH    device-dependent

我的tv module group:153

codec:編解碼器

視頻播放中的點播,廣播,組播(多播)

數字信號傳輸的數據流包含以下幾種:
    ES流:基本碼流(elementary stream),包含視頻、音頻或者數據的連續碼流。
    PES流:打包的基本碼流(packet elementary stream),將ES分包,再加上包頭。
    TS流:傳輸流(transport stream)固定長度的包

PID:packet ID
PCR:program clock reference(system clock sample)
PSI:program specific information節目專用信息,由節目關聯表(PAT)、條件接受表(CAT)、節目映射表(PMT)和網絡信息表(NIT)組

CA卡:CMMB(China Mobile Multimedia Broadcasting)移動電視解密卡

EPG:電子節目指南(Electrical Program Guideline)

視頻播放原理:
解協議-》解封裝-》解碼-》同步-》播放

流媒體協議技術:
名稱    推出機構    傳輸層協議    客戶端    目前使用領域
RTSP+RTP    IETF    TCP+UDP    VLC, WMP    IPTV
RTMP    Adobe Inc.    TCP    Flash    互聯網直播
RTMFP    Adobe Inc.    UDP    Flash    互聯網直播
MMS    Microsoft Inc.    TCP/UDP    WMP    互聯網直播+點播
HTTP    WWW+IETF    TCP    Flash    互聯網點播

視頻封裝技術:
名稱    推出機構    流媒體    支持的視頻編碼    支持的音頻編碼    目前使用領域
AVI    Microsoft Inc.    不支持    幾乎所有格式    幾乎所有格式    BT下載影視
MP4    MPEG    支持    MPEG-2, MPEG-4, H.264, H.263等    AAC, MPEG-1 Layers I, II, III, AC-3等    互聯網視頻網站
TS    MPEG    支持    MPEG-1, MPEG-2, MPEG-4, H.264    MPEG-1 Layers I, II, III, AAC,    IPTV,數字電視
FLV    Adobe Inc.    支持    Sorenson, VP6, H.264    MP3, ADPCM, Linear PCM, AAC等    互聯網視頻網站
MKV    CoreCodec Inc.    支持    幾乎所有格式    幾乎所有格式    互聯網視頻網站
RMVB    Real Networks Inc.    支持    RealVideo 8, 9, 10    AAC, Cook Codec, RealAudio Lossless    BT下載影視


視頻編碼技術:
名稱    推出機構    推出時間    目前使用領域
HEVC(H.265)    MPEG/ITU-T    2013    研發中
H.264    MPEG/ITU-T    2003    各個領域
MPEG4    MPEG    2001    不溫不火
MPEG2    MPEG    1994    數字電視
VP9    Google    2013    研發中
VP8    Google    2008    不普及
VC-1    Microsoft Inc.    2006    微軟平臺

音頻編碼技術:
名稱    推出機構    推出時間    目前使用領域
AAC    MPEG    1997    各個領域(新)
AC-3    Dolby Inc.    1992    電影
MP3    MPEG    1993    各個領域(舊)
WMA    Microsoft Inc.    1999    微軟平臺

直播平臺使用技術:
名稱    協議    封裝    視頻編碼    音頻編碼    播放器
CNTV    私有                
華數TV    RTMP    FLV    H.264    AAC    Flash
六間房    RTMP    FLV    H.264    AAC    Flash
中國教育電視臺    RTMP    FLV    H.264    AAC    Flash
北廣傳媒移動電視    RTMP    FLV    H.264    AAC    Flash
上海IPTV    RTSP+RTP    TS    H.264    MP2    機頂盒

點播平臺使用技術:
名稱    協議    封裝    視頻編碼    音頻編碼    播放器
CNTV    HTTP    MP4    H.264    AAC    Flash
CNTV(部分)    RTMP    FLV    H.264    AAC    Flash
華數TV    HTTP    MP4    H.264    AAC    Flash
優酷網    HTTP    FLV    H.264    AAC    Flash
土豆網    HTTP    F4V    H.264    AAC    Flash
56網    HTTP    FLV    H.264    AAC    Flash
音悅臺    HTTP    MP4    H.264    AAC    Flash
樂視網    HTTP    FLV    H.264    AAC    Flash
新浪視頻    HTTP    FLV    H.264    AAC    Flash


webm:google提出的一種媒體文件格式,其實就是一種一MKV容器格式爲基礎的視頻封裝技術,封裝了VP8視頻軌道和ogg音頻軌道

blob:二進制大對象(binary large object),表示一個存儲二進制文件的容器,例如圖片或者聲音文件。

SPS:sequence parameter set

Porting an application program includes using the Linux standard compiler GCC and some associated tools. 
移植應用程序涉及到使用Linux標準編譯器GCC和其他一些相關的工具。

ALSA是Advanced Linux Sound Architecture,高級Linux聲音架構

1、視頻信號格式:連續的圖像,圖像的個數以幀爲單位,每個圖像有排列的像素組成,每個像素有顏色的三基色取不同的分量構成。每個像
素的每個顏色分量用一個字節表示。一個像素由3個字節表示。
YUV格式:一個像素由一個亮度分量Y和兩個色度分量U/V表示,一般一個像素由1.5個像素表示。

2、H264協議定義了三種幀,完整編碼的幀叫I幀(關鍵幀),只包含差異部分編碼的幀叫P幀(前向預測編碼幀),參考前後的幀編碼的幀叫
B幀(雙向預測內插編碼幀)。
    幀內壓縮算法:生產I幀的算法。
    幀間壓縮算法:生產B幀和P幀的算法。
    H264中圖像以序列爲單位進行組織,一個序列是一段圖像編碼後的數據流,以I幀開始,到下一個I幀結束。一個序列的第一個圖像叫做
IDR圖像(立即刷新圖像),IDR都是I幀圖像。

3、DTS:decoding time stamp,解碼時間戳
   PTS:presentation time stamp,顯示時間戳
   可以保持顯示時序解碼時序一致

   STC:System Time Clock
   PCR:Program Clock Reference

tts:text to speech

mime:Multipurpose Internet Mail Extensions

Port Layer 是位於操作系統 API 和應用程序之間的函數庫。在 Port Layer 內部,不同平臺擁有 Port Layer 的不同實現,在這些實現中

 

 

類型    網絡傳輸    質量    終端    視頻編碼技術    業務運營商    政策

IPTV    電信運營商的專用網絡    網絡帶寬和視頻質量有保證    非智能機頂盒+普通家庭電視    H.264視頻編碼技術    電信    可直播

DVB    HFC(光纖和同軸電纜混合)    信號穩定,質量有保證    天線、非智能機頂盒等    數字編碼技術    各個衛視    可直播

OTT    internet公網    需要一定的帶寬才保證質量    智能機頂盒+顯示器(電視、電腦、Pad、手機等)    支持多種視頻編解碼技術    牌照商    不能直播
 

使用了實際平臺的系統調用。而對外,Port Layer 提供了一套統一的 API,屏蔽了底層系統的差異,從而使得開發者既不必關心軟件究竟在
何種平臺上開發,也不用關心在何種平臺上運行。在當今的軟件世界裏,許多需要在不同平臺上開發、運行的軟件,比如 HTTP 服務器,數
據庫等等,都可能需要 Port Layer。比如 Apache Http Server,就使用了 APR(Apache Portable Runtime),使它在不同平臺上都可以運行。

 

qHD(quater High Definition):540P(960X540)

HD(High Definition):720P(1280X720)

FHD(Full High Definition):1080P (1920X1080)

QHD(Quad High Definition):1440P(2560X1440)

UHD(Ultra High Definition):2160P(3840X2160)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章