一、概述
本系列文章主要是收集與整理音視頻直播、點播、監控等技術開發及應用,狹義上可特指流媒體的技術應用。
1. 應用場景
- 直播
- 點播
- 語音、視頻通話
- 監控
- 結合應用,如多媒體音視頻會議系統
2. 相關技術
- 網絡通訊
- 編碼、解碼
- 推流、拉流
3. 一些概念
(1) 編解碼 codec
對數據或信號進行變化的設備或程序。
(2) 容器
對多種媒體資源或字幕等進行包裝。對數據進行容器化包裝就稱為封裝,常見的封裝格式是與文件擴展名相關的,如:*.mpg, *.avi, *.mov, *.mp4, *.rm, *.ogg or *.tta
(3) 采樣率
物理和數學概念,以一種速度提取數字信號,單位是赫茲Hz。
(4) 分辨率
通常指圖像或視頻的尺寸。
(5) 幀率 fps
視頻格式每秒鐘播放的靜態畫面數量。
(6) 壓縮
對數字信號壓縮體積,分為兩種:
- 無損格式,例如WAV,PCM,TTA,FLAC,AU,APE,TAK,WavPack(WV)
- 有損格式,例如MP3,windows Media Audio(WMA),Ogg Vorbis(OGG),AAC
二、算法與協議
1. 視頻編碼標準
主要有:MPEG-n和 H.n 兩種技術:
標準年份組織說明H.1201984ITU-T組織H.2611990ITU-T主要應用于視頻會議、視頻通話MPEG11993ISO /IECVCD使用這個壓縮算法H.262/MPEG-2 第二部份1995ISO / IEC 、ITU-TDVD影碟(DVD-Video )、藍光(Blu-Ray )影碟、數位視訊廣播(DVB )、SVCDH.2631996ITU-T視訊會議、視訊通話、3G 手機視訊(3GP )MPEG41999ISO /IECMPEG的第4個版本H.264/MPEG-4 AVC2003ISO / IEC 、ITU-T藍光(Blu-Ray )影碟、數位視訊廣播(DVB )、iPod 視訊、高畫質DVD(HD DVD )H.2652013ITU
2. 主要流媒體協議
名稱推出機構傳輸層協議客戶端目前使用領域劣勢RTSP+RTPIETFTCP+UDPVLC, WMPIPTVRTMPAdobe Inc.TCPFlash互聯網直播蘋果設備不提供原生支持RTMFPAdobe Inc.UDPFlash互聯網直播MMSMicrosoft Inc.TCP/UDPWMP互聯網直播+點播HTTPWWW+IETFTCPFlash互聯網點播實時性差、原生支持不好hls(m3u8)Applehttp瀏覽器直播實時性差,延遲在10秒以上,分發HLS碼流低,小文件分發不是很友好
總結:
- PC/Phone+直播+實時性要求高:使用flash播放RTMP。
- PC/Phone+直播+沒有實時性要求:使用RTMP或者HLS均可。
- PC/Phone+點播:使用HTTP或者HLS。
- Phone+WEB+直播:HLS。
其它協議:
- H.323:是ITU-T第16工作組的建議,由一組協議構成,其中有負責音頻與視頻信號的編碼、解碼和包裝;
三、網頁播放音視頻方案
1. rtmp + 插件(非Flash)
- ckplayer
- vlc 插件
- quicktime
- kurento
- vgx
2. rtsp+插件
- streamedia(支持Chrome無插件播放)
- vlc player(不支持RTP/AVP傳輸的NAT穿孔)
- quicktime
- Realplayer(本身不支持H.264)
3. Flash插件(jwplayer)
- Server(Red5) + 使用RTMP直播協議
- ffmpeg + xuggle => rtsp轉rtmp => flash插件
- ffmpeg + jwplayer
4. 流媒體轉為websocket
- ffmpeg + stream-server(nodejs腳本) + h5 Canvas顯示
- ffmpeg + jsmpeg
- ffmpeg + xuggle + h5 video
- ffmpeg + websocket(server) + streamedian.js(開源)
5. webRtc
目前大部分移動端瀏覽器還不支持。






