인터넷을 통해 사용자에게 비디오/오디오 미디어를 전달하는 방법.
Progressive Download
= 웹 서버로부터 동영상을 모두 다운로드 한 뒤 파일이 도착하는대로 재생
RTSP, RTMP 스트리밍
= Real-time Streaming Protocol
= 사용자가 현재 시청하고 있는 비디오 프레임만을 전송
(대충 찾아봐서 몰랐는데 요게 스트리밍 프로토콜의 원조? 느낌)
다만 스트리밍 서버가 따로 있어 서로 다른 네트워크로 데이터를 교환해야 하므로 서비스가 원활하지 않다는 문제가 있음 (ex. 방화벽, NAT)
Adaptive HTTP Streaming
= 컨텐츠를 잘개 쪼개어 저장하고 재생할 때 네트워크 상황에 따라 컨텐츠 해상도를 조절
⇒ 아래의 3가지 프로토콜은 Adaptive HTTP Streaming 방식(컨텐츠를 잘개 쪼개 그때 그때 제공)인데, 이는 공급사마다 프로토콜이 달라 표준화가 부족하다.
** 기존과는 2가지 큰 차이가 있다.
동영상 정보를 전달하는 방식
스트림 세그먼트
일정한 시간 간격으로 입력받은 미디어 데이터 분할
→ 그 파일에 접근할 수 있는 메타데이터(m3u8) 생성
→ “잘게 쪼갠 영상 + 다음 동영상 정보”를 클라이언트에게 전달
(안드도 HLS, DASH는 사용 가능)
https://developer.android.com/guide/topics/media/exoplayer/dash?hl=ko
(나중에 읽어보면 좋을 AWS 기술들?)
(Java에서 영상 업로드하고 스트리밍 하는 코드인데 NestJS에 적용해보면 될듯)