들어기기 전
드디어 부스트캠프 마지막 스텝인 그룹 프로젝트가 시작됐다.
저번 주는 기획하는 일정이었지만 .. 역시 기획은 내 분야가 아닌 것 같다.
우리는 도전적인 주제보다는 안정적인 주제를 많이 기획했고
멘토님께 최종적으로 안정적인 주제 3가지를 가져갔다.
멘토님께서는 좋게 얘기를 해주셨지만 마지막에 "이 주제로 결정한 것에대해 두근거림이나 설렘이 있냐?"
는 질문을 하셨는데 우리는 모두 대답을 하지 못했다.
다음 날 우리는 다시 기획을 갈아 엎었고 그 과정에서 꼭 해보고 싶었던 라이브 스트리밍 주제를 꺼내봤는데
팀원들의 반응이 너무 좋았다.. 이럴꺼면 빨리 꺼낼껄 ..
이번 학습부터는 라이브 스트리밍에 필요한 여러가지 CS 개념을 정리해보자.
라이브 스트리밍이란?
일단 라이브는 일반적으로 이해가 바로가는 단어라 스트리밍에 집중해서 정리해보자.
스트리밍은 음성이나 동영상 등의 다중매체 파일을 전송하고 재생하는 방식의 하나이다.
보통 파일은 다운받고 난 뒤에 여는 작업을 하지만, 동영상과 같이 크기가 큰 파일을 재생할 때에는
다운 받는 시간이 오래 걸릴 수 있다.
정리하면 스트리밍이란 파일을 다운로드하는 것과 더불어 재생을하는 방식이다.
라이브 + 스트리밍 = 실시간으로 다운받으며 재생하는 방식이라고 유추할 수 있다.
송출
먼저 영상을 보내는 과정을 학습해보자.
1. 카메라
- 현재 PC 화면 또는 모바일 기기를 통한 영상 등 송출할 데이터의 원본 소스를 뜻한다.
- 시각 또는 청각 원본 데이터
2. 인코더
💡 인코딩이란?
카메라로부터 넘어온 원본 데이터는 데이터 용량이 너무 커 압축하는 과정이 필요함
그렇기 때문에 원본 데이터를 특정 규칙에 따라 0과1로 변환하여 용량을 줄이는 과정
💡 코덱이란?
인코더 + 디코더가 결홥된 소프트웨어
데이터를 압축하여 인코딩할 뿐만 아니라, 다시 원본 데이터에 가까운 형태로 복원하는 역할을함
3. Media Server
- 인코더로부터 RTMP 프로토콜을 통해 데이터를 받는다.
- 트랜스코딩 진행
- 트랜스먹싱 or 패킷타이징 진행
- HLS 형식의 동영상 파일을 작은 단위인 ts 청크파일로 분할한다.
- CDN에게 트랜스코딩된 데이터를 HLS 형식으로 전달
💡 트랜스코딩
인코더로부터 받은 데이터를 여러 가지 화질 및 비트레이트 로 변환하는 작업
💡 트랜스 먹싱 또는 패킷타이징
트랜스코딩된 영상을 HLS 형식으로 변환하는 작업
4. CDN
- CDN(Content Delivery Network)은 전 세계에 분산된 서버 네트워크
- 콘텐츠를 효율적으로 전달하기위해 설계되어 , 원본서버에서 콘텐츠를 캐싱하여 제공한다.
- 시청자와 서버 간의 물리적 거리를 줄여 지연 시간을 최소화 할 수 있다.
- 일반적인 미디어서버는 전송서버의 역할까지 수행하지만 동시 시청자 수가 많으면 불안정한 퍼포먼스를 보여준다.
- 이 때 CDN통해 캐싱하면 지연시간을 줄이는 효과가 있다.
수신
CDN으로 부터. 이번에는 수신쪽쪽에 들어가는 기술들을 알아보자.
5. Player
- 사용자 단말기기에서 재생하는 역할
- HLS 형식으로 받기 때문에 모바일 단말 기기는 별도의 플레이어 없이 내장된 플레이어로도 재생가능
- 특히 , HLS 역시 Apple에서 만들었기 때문에 Apple에서 만든 iOS, MAC OS도 내장 플레이어로 지원
- 하지만 Window PC는 HLS을 지원하는 외장 플레이어가 있어야함
- .m3u8을 순차적으로 실행
참고
'CS > LiveStreaming' 카테고리의 다른 글
RTMP 와 HLS (1) | 2024.11.05 |
---|