HTTP(超文本傳輸協議)、RTSP(
Real Time Streaming Protocol實時流傳輸協議)、RTMP(
Routing Table Maintenance Protocol路由選擇表維護協議)是應用層協議,理論上均可以作直播、點播,實際上直播多采用RTMP和RTSP、點播則多用RTSP和HTTP。
1、經常使用領域:
HTTP(HTTPS)全部數據都做爲文本處理,普遍應用於網絡訪問,是公有協議,有專門機構維護。
RTSP流媒體協議,多用在監控領域視頻直播點播;
是公有協議,有專門機構維護。
RTMP流媒體協議,多用在互聯網直播領域(RTMP+CDN)、視頻會議(取代原來SIP),
是Adobe的私有協議,未徹底公開。
RTSP傳輸通常須要2-3個通道,命令和數據通道分離,HTTP和RTMP通常在TCP一個通道上傳輸命令和數據。
RTMP協議通常傳輸的是flv,f4v格式流,RTSP協議通常傳輸的是ts,mp4格式的流。HTTP沒有特定的流。
2、協議實現
RTSP的開源實現
* live.com C/S C++ http://www.live555.com
* darwin S C++ http://www.opensource.apple.com/darwinsource/
* VLC C C http://www.videolan.org
* mplayer C C http://www.mplayerhq.hu
* omsp C/S C http://streaming.polito.it/
* spook S C http://www.litech.org/spook/
RTMP的實現,不源開的FMS,開源的RMTP服務器有:
C++實現的crtmpserver,支持Flash(RTMP,RTMPE,RTMPS,RTMPS,RTMPT,RTMPTE),Linux平臺;
Java實現的Red5,支持Flash(RTMP協議),全平臺Linux,Windows。
C#實現的FluorineFx,支持Flash(RTMP協議),Windows平臺。