* RTMP(Real Time Messaging Protocol)

  : 오디오/비디오 등 인터넷 스트리밍. 2009-01-20 어도비 발표

  + RTMPT(RTMP Tunneled)

    : RTMP를 HTTP로 wrapping

  + RTMPS(RTMP Secure)

    : RTMP를 HTTPS로 wrapping

  + RTMPE(RTMP Encrypted)

    : RTMP 를 128 bit 암호화

  + RTMPTE(RTMP Enctypted Tunneled)

    : RTMPT + RTMPE

  + RTMFP(RealTime Media Flow Protocol)

    : UDP 및 암호화 사용


* RTSP(Real Time Streaming Protocol)

  : 오디오/비디오 등 미디어 서버 원격 조작용(play, pause, ...)

  : IFTF 1998년 정의


* RTP(Real Time Transport Protocol)

  : UDP 전송. 헤더에 코덱정보 포함한 동영상/오디오 전송. Server -> Client 단방향 전송.

  

* RTCP(Real Time Control Protocol)

  : TCP/UDP 사용. RTP 데이터의 전송상태 감시 및 세션 관련 정보 전송

  : Server <-> Client 양방향 전송


* HTTP

  1. Progressive download

    : 처음부터 끝가지 다운로드 받으며 전송/재생

  1. Adaptive HTTP Streaming

    : 동영상을 다양한 해상도로 여러 조각으로 저장 및 manifest 파일 작성 후 사용자 네트워크 상황에 따라 선택하여 전송/재생

    + Apple-HLS (HTTP Live Streaming)

      - manifest로 m3u8 사용

      - 사파리에서 html5 video 태그로 HLS 스트리밍 가능

    + MPEG-DASH

      - manifest로 XML 기반인 MPD(Media Presntation Description) 사용

      - MSE(Medis Source Extensions) 와 사용 가능

      - 관련 lib : https://github.com/Dash-Industry-Forum/dash.js

      

  1. 클라이언트 샘플

    + MSE(Medis Source Extensions) : https://www.w3.org/TR/media-source/

      지원 브라우저 : https://caniuse.com/#feat=mediasource

      샘플 : https://gist.github.com/skrater


  1. 서버 샘플

    + html5 video 태그 재생할 경우 서버측 코드 작성 방법

      http://cppstruf.blogspot.kr/2014/07/stream-video-to-html5-enabled-web.html

      https://stackoverflow.com/questions/10328401/html5-how-to-stream-large-mp4-files

  

  





비디오 : MP4(H.264+AAC), mp3

- mp4, mov, mpg, mpeg, wmv, wma, swf, asf, ksg, flv, mkv, tp, ts, rm, mts

- avi, mpeg 같은 파일은 스트리밍 전송을 지원 못 하고 풀 전송을 지원하는데 해

당 동영상 파일을 100% 다 전송받고 재생한다.

출처: http://linuxism.tistory.com/1267 [linuxism]