라이브 스트리밍 프로토콜
- RTSP(Real-Time Streaming Protocol)
- IETF(Internet Enginnering Task Force)가 개발한 통신 규약
- 스트리밍 데이터를 제어하기 위한 방법 제공
- RTP(Real-time Transport Protocol) : RTSP를 통해 제어되는 미디어 데이터를 전송하는데 사용되는 전송 프로토콜
- 오디오, 비디오 등 멀티 미디어 데이터를 포함하는 미디어 서버를 원격 조작하기 위한 프로토콜
- RTMP(Realtime Transport Streaming Protocol)
- 어도비 시스템즈사의 독점 컴퓨터 통신 규약
- 오디오, 비디오 및 기타 데이터를 인터넷을 통해 스트리밍 할 때 사용
RTSP(Realtime Transport Streaming Protocol)
- RTSP는 실시간 속성을 가진 데이터 전송을 제어하기 위한 응용 프로그램 수준의 프로토콜
- RTSP는 오디오 및 비디오와 같은 실시간 데이터의 제어된 주문형 전송을 가능하게 하는 확장 가능한 프레임워크를 제공
- 데이터 소스에는 실시간 데이터 피드 및 저장된 클립이 모두 포함될 수 있다.
- 이 프로토콜은 여러 데이터 전송 세션을 제어하고, UDP, 멀티캐스트 UDP, TCP와 같은 전송 채널을 선택할 수 있는 수단을 제공하며, RTP에 기반한 전송 메커니즘을 선택하기 위한 수단을 제공하기 위한 것이다.
- RTSP는 주로 IPTV에 사용되는데, UDP를 사용하여 데이터를 전송하고 네트워크 환경이 비교적 안정적일 때, 전송 효율이 상대적으로 높기 때문이다.
RTMP(Real-Time Messaging Protocol)
- RTMP는 Macromedia(현재 Adobe 소유)에서 개발한 지연 시간이 짧은 주문형 콘텐츠를 효율적으로 스트리밍한다.
- RTMP는 인터넷을 통해 멀티미디어 파일을 이동하는 표준화된 방법으로 오늘날의 라이브 스트리밍 콘텐츠에 가장 일반적으로 사용된다.
- RTMP는 주로 TCP 전송을 사용하는데, 인터넷 환경이 상대적으로 열악하기 때문에, RTMP를 사용하면 영상의 전송 품질이 보장되지만 전송 지연이 상대적으로 높고 전송 효율이 상대적으로 낮다.
HLS(HTTP Live Streaming)
- HLS는 애플에 의해 2009년에 제안된 라이브 비디오 스트리밍 프로토콜이다.
- 이전의 별도로 고가의 스트리밍 전용 미디어 서버를 구축해야하는 방식과 달리, HLS는 일반 웹서버에서도 라이브 스트리밍이 가능하다는 특징을 가지고있다.
- 하나의 영상을 쪼개어 재생 목록을 만든 후 이렇게 잘라진 짧은 비디오 조각을 일반적인 다운로드를 해서 재생하는 방식으로 기존의 웹서버에서 그대로 사용할 수 있다는 큰 장점을 가졌다.
- HLS가 가진 장점 중 하나는 적응 비트 전송률인데
- 쉽게말해 네트워크의 상태 변화에 따라 스트리밍 중 비디오 품질을 조정하는 능력이다.
- 네트워크가 느려지면 사용자의 비디오 플레이어가 이를 감지하고 적응 비트 전송률 스트리밍이 비디오 품질을 낮춰 비디오가 멈추지 않고 재생되게 하고
- 네트워크 대역을 더 많이 활용할 수 있게 되면 적응 비트 전송률이 비디오 품질을 높인다.
- 조각화 프로세스 중 HLS가 다양한 품질로 스트리밍 세그먼트를 여러개 복제하기 때문에 가능
스트리밍의 간략한 워크 플로우
HLS Playlist
Media playlist는 재생해야하는 segment가 정보가 연속적으로 등장한다.
Master playlist를 이용하면 더 복잡한 streaming을 구현할 수 있다.
Master playlist는 다양한 bitrate의 video 혹은 다양한 언어에 대한 audio stream에 대한 Media playlist포함 할 수 있다.
Master playlist에서는 Media playlist에 대한 정보를 기술하고 있으며, Media playlist에서는 Media segment에 대한 정보를 가지고 있다
.
참고자료
https://www.wowza.com/blog/converting-rtmp-to-hls
https://jee00609.github.io/assets/files/211228/StreamingMediaGuide.pdf
https://jee00609.github.io/live%20stream/Live-Stream/
'미디어서버(Nginx RTMP)' 카테고리의 다른 글
Nginx.conf의 옵션들 (Nginx RTMP) 및 화질 여러개 송출 (0) | 2024.03.10 |
---|---|
nginx 미디어서버 딜레이 줄이기 (0) | 2024.02.24 |
미디어 서버 구축하기 EC2+RTMP+NginX+FFmpeg (0) | 2024.01.30 |
미디어 서버의 종류 (0) | 2024.01.29 |
미디어 서버를 이해해보자 (0) | 2024.01.29 |