본문 바로가기
IT용어 아카이브

동영상 스트리밍 관련 용어

by 언제나일요일 2021. 8. 16.

 코덱, 인코딩, 디코딩

인코딩과 디코딩을 할 수 있는 소프트웨어를 코덱이라고 하며 코덱마다 인코딩, 디코딩 방식이 다르다. 인코딩이랑 미디어 파일을 압축하는 것이고 디코딩이란 미디어 파일의 압축을 해제하는 것이다.

 

 

스트리밍이란?

큰 용량의 오디오나 동영상을 압축기술을 이용하여 여러 개로 쪼개서 전송, 하드디스크에 저장하지 않고 다운과 동시에 재생하는 것이다. 동영상 대기 시간을 크게 줄일 수 있다는 장점을 가지고 있지만 스트리밍을 제공하는 서버는 서비스 제공에 따른 부담이 크다는 단점이 있다.

 

스트리밍 서비스 종류

 

1. 프로그레시브 다운로드(Progressive Download)

웹 서버에 비디오를 올려놓고 사용자가 URL를 통해 플레이어로 접근하면 플레이어는 파일을 다운로드하며, 다운로드 된 부분을 재생한다. 데이터 소비는사용자가 보는 만큼이 아니라 다운로드 된 만큼 소비된다. 라이브 스트리밍이 가능하지 않기 때문에 짧은 비디오 클립 재생에 적합하다.

예시 ) YouTube

 

2. RTSP/RTMP 스트리밍(RTSP/RTMP Streaming)

프로그레시브 방식과는 달리 미리 데이터를 다운받지 않고 사용자가 현재 시청하고 있는 비디오 프레임만을 전송해주며, 이미 시청한 데이터는 버린다. 사용되는 프로토콜에는 RTMP(Real Time Messaging Protocol)과 RTSP(Real Time Streaming Protocal)이 있다. 긴 비디오나 라이브 비디오에 적합하다.
플래시를 위한 스트리밍 프로토콜인 RTMP같은 경우는 FMS, Wowza 및 대부분의 CDN 서버들이 지원하는 프로토콜이다. (HTML5, iphone 지원, Android의 경우에는 버전 3부터 플래쉬를 지원하지 않기 때문에 사용 안함)
안드로이드는 RTSP(Real Time Streaming Protocol)를 지원하지만 RTSP는 스트리밍 서버나 CDN 등에서 많이 사용하지 않는다.

 

3.  적응적 HTTP 스트리밍(Adaptive HTTP Streaming)
프로그래시브와 RTMP/RTSP의 장점을 결합한 방식.

서버에서 몇 초 단위의 비디오를 가지고 스트리밍하게 되며, 사용자는 이 조각들을 연속된 스트림으로 연결시킨다.
플레시와 아이폰은 이를 지원하고, 안드로이드 역시 버전 3의 HTML5에서 지원한다.
이 방식은 표준 웹 서버를 활용할 수 있기 때문에 CDN 업체들에 지원한다.
이를 이용한 대표적 사례에는 애플의 HLS(HTTP Live Streaming)이며, iphone/pad 안드로이드 3.0 이상에서 지원한다.
문제는 정해진 표준화가 없기 때문에 각 업체별로 사용 법이 다르다.

 

* CDN  : 콘텐츠를 캐시하고 제공하는 서버의 분산 네트워크. 지리적 제약 없이 전 세계 사용자에게 빠르게 콘텐츠를 전송하는 기술이다. 원본 서버의 부하를 막고 더 빠른 전송이 가능하다. 전세계 각지에 캐시 서버를 많이 설치하고 사용자와 가장 가까운 캐시 서버에서 정보를 보낸다.

 


스트리밍 종류 참고 :

https://blog.daum.net/weandmedia/19

 

비디오 스트리밍(Video Streaming)의 이해

디지털 비디오 기술에 대하여 많은 기술적인 논의가 있지만, 여기서는 코덱(H264 & VP8)은 제외하고, RTMP, CDN, HLS 같은 비디오 전송 메커니즘에 대해 얘기하고자 한다. 일반적으로 비디오 스트리밍

blog.daum.net

https://m.blog.naver.com/wndrlf2003/220255880762

 

7. [개념]스트리밍이란

> 7. [개념]스트리밍이란 └ 접기

blog.naver.com

 

 

 

HLS 스트리밍 (HTTP LIVE STREAMING)

HLS(HTTP 라이브 스트리밍)은 널리 사용되고 있는 동영상 스트리밍 프로토콜로서 거의 모든 서버에서 작동할 수 있고 대부분의 장치가 지원한다. HLS로 클라이언트 장치는 스트리밍 품질을 높이거나 낮춰서 변화하는 네트워크 상태에 완벽하게 맞출 수 있다.

 

▶ HLS 작동 원리
1. 서버 : HLS 스트리밍은 미디어 파일이 저장된 서버(주문형 스트리밍의 경우)나 스트리밍이 제작된 서버(라이브 스트리밍의 경우)에서 시작된다. HLS는 HTTP에 기반하기 때문에 모든 일반 웹 서버에서 스트리밍을 시작할 수 있다. 서버에서 두 가지 주요 프로세스가 진행된다.


1) 인코딩 : 비디오 데이터의 포맷을 다시 설정하여 모든 장치가 데이터를 인식하고 해석할 수 있게 한다. HLS 은 H.264나 H.265 인코딩을 사용해야 한다.


2) 조각화 : 비디오는 몇 초 길이의 세그먼트로 나뉜다. 세그먼트 길이는 다양하지만 기본 길이는 6초이다. 비디오를 세그먼트로 나누는 것과 더불어 HLS는 비디오 세그먼트의 인덱스 파일을 만들어 세그먼트의 순서를 기록한다.
HLS는 또한 480p, 720p, 1080p 등의 다양한 품질로 여러 세트의 세그먼트를 복제한다.


3) 배포 : 인코딩된 비디오 세그먼트는 클라이언트 장치가 스트리밍을 요청하면 인터넷을 통해 클라이언트 장치로 전송된다. 일반적으로 CDN(콘텐츠 전송 네트워크)이 여러 지역으로 스트리밍을 배포하는 데 도움을 준다. CDN도 스트리밍을 캐시하여 클라이언트에 더 신속히 전송할 수 있다.

2. 클라이언트 장치 : 클라이언트 장치는 스트리밍을 받고 비디오를 재생하는 사용자 스마트폰이나 노트북 같은 장치를 일컫는다. 클라이언트 장치는 인덱스 파일을 참조하여 비디오를 순서대로 조합하고 필요에 따라 품질을 높이거나 낮춘다. 


HLS 참고 :

https://www.cloudflare.com/ko-kr/learning/video/what-is-http-live-streaming/

 

AWS 클라우드 프론트를 통한 스트리밍

CloudFront를 사용하여 HTTP 오리진에서 온디맨드 비디오(VOD) 또는 라이브 스트리밍 비디오를 제공할 수 있다. 클라우드에서 비디오 워크플로를 설정하는 한 가지 방법은 CloudFront와 함께 AWS Media Services를 사용하는 것이다.

1) 온디맨드 스트리밍

비디오 콘텐츠가 Amazon S3에 저장되며 시청자는 언제든 원하는 시간에 이를 시청할 수 있다. 전체 온디맨드 스트리밍 솔루션에서는 일반적으로 스토리지를 위해 Amazon S3를, 파일 기반 비디오 처리를 위해 AWS Elemental MediaConvert를, 전송을 위해 Amazon CloudFront를 사용한다.

 

2) 라이브 스트리밍

AWS Elemental MediaLive를 사용하여 라이브 비디오 스트림을 실시간으로 인코딩하고 대규모 라이브 비디오 소스를 가져와 시청자에게 배포할 수 있는 더 작은 버전으로 압축한다. 그 다음에는 AWS Elemental MediaPackage와 같은 JITP(Just-in-Time Packaging) 오리진을 사용하여 비디오 콘텐츠를 단일 형식에서 여러 형식으로 변환하고 다양한 디바이스 유형에 맞춰 안전하게 패키징한다. MediaPackage 및 MediaStore가 콘텐츠를 Amazon CloudFront로 전송하고 Amazon CloudFront가 라이브 이벤트를 시청하는 시청자에게 이를 라우팅한다.

 

 

* AWS S3 : Amazon Simple Storage Service(Amazon S3)는 인터넷 스토리지 서비스. 웹 규모 컴퓨팅 작업을 보다 쉽게 할 수 있도록 설계되었다.

* AWS S3 버킷 : Amazon S3에 데이터를 저장하려면 버킷 및 객체라는 리소스를 사용한다. 버킷은 객체에 대한 컨테이너로 객체는 파일과 해당 파일을 설명하는 모든 메타데이터이다. Amazon S3에 객체를 저장하려면 버킷을 생성한 다음 버킷에 객체를 업로드한다. 객체가 버킷에 있으면 객체를 열고 다운로드하고 이동할 수 있다. 객체나 버킷이 더 이상 필요하지 않은 경우 리소스를 정리할 수 있다.

 

* AWS 서비스 엔드포인트 : AWS 서비스에 프로그래밍 방식으로 연결하려면 엔드포인트를 사용해야 한다. 엔드포인트는 AWS 웹 서비스를 위한 진입점의 URL로 AWS SDK 및 AWS Command Line Interface(AWS CLI)는 AWS 리전에서 자동으로 각 서비스에 대해 기본 엔드포인트를 사용한다. 그러나 API 요청에 대체 엔드포인트를 지정할 수 있다.

 


참고 : https://aws.amazon.com/ko/cloudfront/streaming/

 

미디어 스트리밍 자습서 | CDN, 비디오 호스팅, 배포 | Amazon CloudFront

온디맨드 스트리밍의 경우 비디오 콘텐츠가 Amazon S3에 저장됩니다. 시청자는 언제든 원하는 시간에 이를 시청할 수 있습니다. 전체 온디맨드 스트리밍 솔루션에서는 일반적으로 스토리지를 위

aws.amazon.com

아마존 클라우드 프론트(CDN) 참고 : https://aws.amazon.com/ko/cloudfront/

 

CDN 서비스 | CloudFront | Amazon Web Services

Amazon CloudFront는 전 세계의 시청자에게 웹 사이트에서 정적 객체(예: 이미지, 스타일 시트, JavaScript 등) 또는 동적 콘텐츠(예: 동영상, 오디오, 모션 그래픽 등)를 빠르게 전송할 수 있습니다. CDN은

aws.amazon.com