Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 코틀린
- 알고리즘
- RxAndroid
- 프로그래머스
- dart
- Django REST Android
- flutter firestore
- C/C++
- UWP
- Android
- Java
- Django REST framework
- C++
- RxJava
- Django REST
- Android P
- Flutter TextField
- Kotlin
- FLUTTER
- mfc
- NDK
- 안드로이드 구글맵
- android architecture component
- 안드로이드
- C
- livedata
- android push
- Rxjava2
- kodility
- Python
Archives
- Today
- Total
개발하는 두더지
실시간 동영상 스트리밍 프로토콜 종류 본문
실시간 동영상 스트리밍 프로토콜 종류
Progressive Download
- HTTP 프로토콜을 사용하여 미디어 파일을 서버에서 클라이언트로 보내며 재생하는 스트리밍 방식
- 현재 사내 스트리밍 DRM 서비스는 Progressive Download 방식을 이용함
- 미디어 플레이어는 동영상 파일의 헤더에 위치한 메타데이터에 의존하여 재생을 하므로 moov의 영향을 받음
moov 헤더 이동방법(http://duzi077.tistory.com/118) 구현이 쉽지만 파일을 네트워크 사용량이 크다. 시청한 만큼의 데이터가 나가는 것이 아니고 한번의 요청으로 전체 파일을 받기때문에 데이터를 받은 만큼 나간다.
Youtube에서 Progressive Download 방식을 사용하다가 Adaptive HTTP Streaming 방식으로 교체했다.
20초에 한번씩 Chunk를 요청하여 재생시켜주며 실제 시청한만큼의 데이터만 나가기때문에 서버의 부하도 줄일 수 있다.한가지 해상도의 동영상 소스가 선택되어 다운로드되는 방식이므로 네트워크 상황에 따라 사용자는 버퍼링이 발생한다.
RTSP ( Real Time Streaming Protocol ) / RTMP (Real Time Messaging Protocol ) 스트리밍
- 사용자가 현재 시청하고 있는 비디오 프레임만을 전송해 주는 별도 웹서버를 사용하는데 서버 측에서 많이 지원하지 않는다.
왜나하면 대부분 비디오 제공자들은 스트리밍하는데 비싼 전용 서버를 사용하는걸 원하지 않는다. - 효율성은 좋지만 Progressive Download보다 복잡하며 비용이 비싸고 제약이 많다.
Adaptive HTTP Streaming
- RTMP/RTSP (대역폭 효율성, 품질 전환)과 Progressive Download( 전용서버와 프로토콜 불필요) 의 장점을 결합한 방식이다
- 서버의 작은 조각 단위( 몇초단위)의 비디오를 가지고 스트리밍하게 되며, 플레이어는 이 미디오 조각을 연속된 스트림으로 연결한다.
- 대중적인 사례는 애플의 HLS(HTTP Live Streaming)이고 HLS 프로토콜은 표준으로 지정되었다.
- 동영상 컨텐츠를 다양한 해상도로 인코딩해 저장해두고 데이터 단위도 동영상 컨텐츠 하나로 저장하는게 아니라 잘게 쪼개서 저장한다.
- 사용자가 동영상을 플레이할 때 네트워크 상황에 따라서 적절하게 컨텐츠 해상도를 조절하여 최적의 스트리밍 서비스를 제공한다.
유튜브 볼때 네트워크 상황에따라 해상도가 자동으로 변경되어 출력되는 상황을 기억해보면 될것 같다.
'공유' 카테고리의 다른 글
구글 Widevine L3 DRM이 깨졌다는 소식 (1) | 2019.01.07 |
---|---|
Packriding 개인정보처리방침 (0) | 2018.04.09 |
파워목업 PowerMockup 사용하여 스토리보드 만들기 (0) | 2017.11.18 |
[C#] .NET 표준 2.0에서 UWP의 미래 (0) | 2017.09.27 |
[정치] 사드 배치 쟁점 요약 (0) | 2016.07.22 |
Comments