-
영상 스트리밍 고찰ETC. 2022. 4. 20. 15:15
영상이란 ?
영상은 이미지의 연속이다. 이미지는 현실을 있는 그대로 보여 주거나 혹은 현실이 아닌 상상의 세계를 묘사한 것이다.
영상은 크게 두 개념이 있다.
1. 우리 머릿속, 경험이 신경세포 다발 속에 축적된 이미지로 뇌 속에, 마음속에 존재한다.
2. 카메라가 만들어 낸 이미지 속에 존재한다.
우리는 외부 세계를 시신경을 통해 뇌의 적절한 부분에 기록한다.
그런데 우리에게 뛰어난 능력은 이 시신경의 기억을 상상이라는 독특한 과정을 통해 창의적으로 변형시키고 구체화할 수 있다는 점이다.
뛰어난 영상을 만들고 싶으면 좋은 카메라를 살 것이 아니라 뛰어난 상상력을 가지도록 노력해야 한다는 점 잊지말자!
눈에 보이는 것을 상상력이라는 가공 장치를 통해 변형시킨 것이 카메라를 통해 기록되는 것이다.
따라서, 영상은 상상력의 결과물이다.
- 뉴스, 시사, 다큐 등 사실 프로그램
눈으로 보이는 현실 + 시청자의 이해를 돕기 위한 영상적 상상력 + 영상처리를 위한 예술적 상상력 - 예능 프로그램
재미를 위한 과장된 현실 + 시청자의 재미를 증폭시키기 위한 영상적 상상력 - 드라마
존재하지 않는 가상의 현실 + 스토리와 등장인물에 대한 영상표현적 상상력
스트리밍이란 ?
데이터를 실시간 전송/구현할 수 있게 하는 기술이다. 전송되는 데이터가 마치 물이 끊임없이 흐르는 것처럼 처리된다고 해서 '스트리밍' 이라 불린다.
동영상 파일은 용량이 크기 때문에 한번에 파일 전체를 보내는 것에 많은 시간이 소요되는데, 이를 해결하기 위해 파일의 일부만(실제로 영상이 플레이되는 분량만큼만) 실시간으로 전송해주는 것
스트리밍 동작원리
> 사용자 인터넷 네트워크 속도에 맞춰 비교적 큰 크기의 스트리밍 파일은 아주 작은 크기의 조각들로 나누어지고 이 조각들은 뒤의 조각들과 이어질 수 있는 헤더정보를 가지고 전송된다.
구동 프로그램에서는 이 조각들을 받으면서 동시에 압축을 풀어 동영상이나 음성으로 재생하는 원리로 이루어져 있다.
1995년 리얼네트워크사(구 프로그레시브 네트워크)가 개발한 '리얼오디오'에서 처음 등장했고 이어 MPEG 동영상 플레이어로 유명한 싱테크놀로지스 기업이 '스트림웍스'라는 경쟁제품을 내놓았다.
그리고 마이크로소프트사에서 '윈도우 미디어 플레이어'를 가지고 이 시장에 합세하였다.

스트리밍 기법 스트리밍 기술의 진화
1990년대 인터넷 발전과 함께 시작된 스트리밍의 역사는 데이터를 개인 PC나 기업 서버에만 저장하던 방식에서 인터넷을 통한 데이터 전송의 시대가 열렸습니다.
데이터를 주고받기 위한 여러 규칙과 표준화 작업이 이루어지면서 데이터의 효율적인 전송에 대한 연구가 진행됐습니다.
단순히 텍스트나 이미지 데이터를 주고받는 것에 그치지 않고 비디오나 오디오 파일을 네트워크상에서 바로 재생하려는 아이디어가 등장했습니다.
스트리밍 기술은 별도의 데이터 저장 없이 네트워크상에서 바로 재생 가능한 기술로 많은 관심을 받았고 여러 비디오 스트리밍 프로그램이 등장해 비디오를 별도의 저장 없이 바로 시청할 수 있는 길이 열렸습니다.
2000년대 초반까지만 해도 네트워크 상황이나 데이터 용량 때문에 재생에 시간이 오래 걸리고(버퍼링), 재생이 끊기거나 멈추는 현상도 자주 발생했습니다.
네트워크에서 빠르게 데이터가 이동할 수 있도록 데이터를 작게 쪼개고 전송 후 다시 빠르게 합치는 기술이 등장했고 수많은 사용자가 접속하면 네트워크가 불안정해지기 때문에 이를 방지하고 안정적인 스트리밍을 위해 네트워크를 분산하는 기술 (CDN, Contents Delivery Network)도 함께 발전했습니다.
스트리밍 서비스가 대중화되면서 기술의 고도화가 진행되었고 대표적인 기술이 인공지능입니다.
스트리밍 데이터의 종류와 스트리밍 상태에 따라 기존에 학습한 결과를 토대로 사용자에게 적합한 콘텐츠를 추천하거나 네트워크 이용량을 분산하고 비디오나 오디오의 품질을 조절 할 수 있습니다
스트리밍 네트워크를 통한 데이터는 모두 기계학습의 대상이 될 수 있고 가상세계인 메타버스에서 현실감을 극대화하기 위해서는 높은 풀질이 요구됩니다.
실사와 같은 그래픽 비주얼을 구현한 엄청난 크기의 데이터는 실시간으로 메타버스 공간과 게임 등에서 제공되어야 합니다.
계속해서 규모가 커지는 스트리밍은 전 세계 인터넷과 모바일 네트워크 곳곳에 빠르게 콘텐츠와 데이터가 공급될 수 있는 역할을 합니다.
데이터가 필요한 곳에 빠르게 전달하는 스트리밍 기술은 인터넷 시대 -> 메타버스 시대로 넘어가는 시대적 변화 속에서도 중추적인 역할을 담당할 것입니다.
스트리밍은 UDP(사용자 데이터그램 프로토콜) or TCP(전송 제어 프로토콜) 사용하나요?
일부 스트리밍 방법은 UDP를 사용하고 일부는 TCP를 사용합니다.
네트워크를 통해 데이터 패킷을 이동하는 데 사용되는 프로토콜입니다.
TCP는 데이터를 전송하기 전에 전용 연결을 열어 패킷이 순서대로 도착하도록 하고
반면, UDP는 이러한 작업을 수행하지 않습니다.

tcp vs udp 누군가가 화상 회의에 참가하고 있다면 모든 데이터가 전달될 때까지 앉아서 기다리는 것보다 다른 회의 참석자와 실시간으로 상호작용하는 것을 선호합니다.
따라서 약간의 데이터 패킷손실은 큰 문제가 아니며 UDP를 사용해야 하고 반대의 경우는 안정성이 중요하기 때문에 TCP를 사용해야 합니다.
HTTP 라이브 스트리밍 (HLS) 와 MPEG-DASH 는 모두 TCP 전송을 사용합니다. 많은 주문형 비디오 서비스는 TCP를 사용합니다.
스트리밍 속도를 늦추는 요인은 무엇일까 ?
두가지 측면으로 바라볼 수 있다.
네트워크 측
- 네트워크 대기 시간 : 사용자가 접근하려는 콘텐츠가 저장되는 위치를 포함하여 다양한 요인이 대기 시간에 영향을 준다.
- 네트워크 혼잡 : 네트워크를 통해 너무 많은 데이터가 전송되면 스트리밍 성능이 저하될 수 있습니다.
사용자 측
- WiFi 문제 : LAN 라우터를 다시 시작하거나 WiFi 대신 이더넷으로 전환하면 스트리밍 성능을 개선하는데 도움이 될 수 있습니다.
- 느린 성능의 클라이언트 장치 : 스트리밍하는 장치에 다른 프로세스가 많이 실행 중이거나 일반적으로 느린 경우 스트리밍 성능에 영향을 줄 수 있습니다.
- 대역폭이 충분하지 않음 : 비디오 스트리밍의 경우 홈 네트워크에는 약 4Mbps 의 대역폭이 필요합니다. 고화질 비디오의 경우 더 많이 필요할 것입니다.
MPEF-DASH 무엇일까 ?
스트리밍 방식의 한가지이고 "HTTP 를 통한 동적 적응 스트리밍(Dynamic Adaptive Streaming over HTTP)" 의 약자입니다.
HTTP에 기반하기 때문에 모든 Origin 서버가 MPEG-DASH 스트림을 제공할 수 있도록 설정할 수 있습니다.
비디오를 작은 조각으로 나누고 다양한 품질 수준에서 해당 조각을 인코딩을 한다는 점에서 다른 스트리밍 프로토콜인 HLS와 유사합니다.
MPEG-DASH의 작동 방식
- 인코딩 및 조각화 : Origin 서버가 비디오 파일을 몇 초 길이의 세그먼트로 나눕니다. 서버는 비디오 세그먼트에 대한 목차와 유사한 색인 파일도 생성합니다. 그런 다음 세그먼트를 인코딩하는데, 이는 다양한 장치가 해석할 수 있는 형식으로 변경된다는 말입니다.
- 전송 : 사용자가 스트림을 보기 시작하면 인코딩된 비디오 세그먼트가 인터넷을 통해 클라이언트 장치로 푸시됩니다.
- 디코딩 및 재생 : 사용자 장치가 스트리밍된 데이터를 수신하면 데이터를 디코딩하고 비디오를 재생합니다
사용자의 대역폭이 작다면 비디오는 대역폭을 적게 사용하는 낮은 품질 수준에서 재생됩니다.
HLS 무엇일까 ?
Apple 이 자사 제품에 사용하기 위해 개발했지만, 현재 다양한 장치에서 사용되고 있는 주문형 스트리밍이자 동시에 라이브 스트리밍 입니다.
비디오 파일을 다운로드할 수 있는 HTTP 파일 조각으로 나누고 HTTP 프로토콜을 이용하여 전송합니다.
클라이언트 장치는 HTTP 파일을 로드한 후 비디오로 재생합니다.
HLS의 작동 방식
미디어 파일이 저장된 서버(주문형 스트리밍), 스트리밍이 제작된 서버(라이브 스트리밍) 이 서버에서 두가지 주요 프로세스가 진행됩니다.
- 인코딩 : 비디오 데이터의 포맷을 다시 설정하여 모든 장치가 데이터를 인식하고 해석할 수 있게합니다.
H.264 or H.265 인코딩을 사용해야 합니다. - 조각화 : 비디오는 몇 초 길이의 세그먼트로 나누어집니다. 세그먼트 길이는 다양하지만 기본 길이는 6초입니다. (2016년까지는 10초)
- 비디오를 세그먼트로 나누는 것과 더불어 HLS는 비디오 세그먼트의 인덱스 파일을 만들어 세그먼트의 순서를 기록합니다.
- HLS 는 480p, 720p, 1080p 등의 다양한 품질로 여러 세트의 세그먼트를 복제합니다.
적응 비트 전송률 스트리밍은 무엇일까 ?
네트워크 조건이 변할 때 스트림의 중간에서 비디오 품질을 조정하는 기능입니다.
적응 비트 전송률 스트리밍은 인코딩 및 조각화 과정에서 일어나 재생을 중단하지 않고 품질 수준을 변경할 수 있습니다.
따라서 네트워크 대역폭이 갑자기 줄어드는 경우에도 비디오 자체를 중단하지 않아도 됩니다.
HLS 와 DASH 주요 차이점
- 인코딩 형식 : MPEG-DASH 에서는 어떠한 인코딩 표준도 사용할 수 있지만, HLS 는 H.264 또는 H.265를 사용해야 합니다.
- 장치 지원 : HLS 는 Apple 장치에서 지원하는 유일한 형식입니다. iPhone, MacBook 등 Apple 제품은 MPEG-DASH로 전송되는 비디오를 재생하지 못합니다.
- 세그먼트 길이 : 2016년 이전에는 HLS의 기본 세그먼트 길이가 10초로서 두 프로토콜 간의 큰 차이 요인이었습니다. 현재는 HLS 의 기본 길이가 6초이지만, 기본값을 조정할 수 있습니다. MPEG-DASH 세그먼트는 통상적으로 길이가 2~10초이지만, 최적 길이는 2~4초 입니다.
- 표준화 : MPEG-DASH 는 국제 표준입니다. HLS 는 Apple에 의해 개발되었으며 광범위한 지원을 받고 있지만 국제 표준으로 게시되지는 않았습니다.
비디오 인코딩 형식은 무엇일까 ?
비디오 파일 형식이라고도 하는 비디오 인코딩 형식은 다양한 플랫폼, 프로그램 및 장치에 맞게 디지털 비디오 파일을 최적화하는 방법입니다.
인코딩 형식은 다양하지만 두가지 주요 부분으로 구성됩니다.
코덱과 컨테이너는 압축되지 않은 비디오 입력이 저장, 전송 및 표시되는 방식을 지정합니다.
스트리밍에서는 모든 사용자가 스트림을 사용할 수 있도록 인코딩 형식이 가능한 가장 광범위한 장치와 호환되는 것이 중요합니다.
적절한 비디오 형식을 선택하는 것은 저장소 가용성, 비디오 출력 품질, 다양한 비디오 플레이어 또는 프로그램과의 호환성 세가지 주요 요소에 따라 달라집니다.
비디오 인코딩은 어떻게 작동합니까 ?
압축되지 않은 비디오 입력을 다양한 장치에서 저장하고 재생할 수 있는 형식으로 변환하는 프로세스입니다.
비디오 인코딩에는 압축과 트랜스코딩의 두 가지 주요 프로세스가 포함됩니다.
- 압축 : 적절한 압축이 없으면 대부분의 파일이 너무 커서 사용자 장치에서 쉽게 업로드 하거나 빠르게 로드하거나 원활하게 재생할 수 없습니다.
- 트랜스코딩 : 비디오 파일이 사용 중인 비디오 플레이어 또는 플랫폼과 호환되는지 확인합니다.
트랜스코딩이 없으면 사용자는 비디오 파일을 전혀 볼 수 없습니다.
비디오 스트림은 실시간으로 분할, 압축 및 인코딩 되고 수신받은 장치는 비디오를 재생하기 전에 분할된 비디오를 디코딩 및 압축 해제합니다.
코덱이란 무엇입니까 ?
코덱 = 음성or영상 신호를 디지털 신호로 변환하는 코더 (압축) + 코더와는 반대로 변환시켜 주는 디코더 (압축해제)를 통틀어 부르는 용어
손실 압축 또는 무손실 압축을 사용하여 파일을 인코딩합니다.
- 손실 압축 : 비디오 파일을 단순화하고 필수 부분만 유지합니다.
장미 정원을 생각해보면 모든 장미를 정확하게 표시하지만 꽃잎에 있는 분혹색의 미묘한 변화를 묘사하는 대신 단일 분홍색 음영을 선택할 수 있습니다. - 무손실 압축 : 모든 데이터를 정확하게 복사하여 원본 비디오 파일의 고품질을 유지합니다.
손실 압축은 작은 파일 크기와 낮은 비디오 품질을 제공
무손실 압축은 큰 파일 크기와 함께 제공되는 고품질 파일 복제도 제공
컨테이너란 무엇입니까 ?
인코딩된 오디오 스트림 (오디오 코덱) + 인코딩된 비디오 스트림 (비디오 코덱) + 메타데이터를 단일 비디오 파일에 결합한 것
메타데이터는 비디오 플레이어에게 오디오 및 비디오 코덱을 조정하는 방법을 알려주고 자막 or 대체 오디오 스트림과 같은 추가 요소를 제공할 수 있습니다.
종종 비디오 파일 확장자는 코덱이 아니라 사용하는 컨테이너에 따라 이름이 지정됩니다.
비디오 파일은 코덱과 컨테이너가 모두 비디오 플레이어와 호환되는 경우에만 제대로 재생할 수 있습니다.
방송 기술로 보는 스트리밍 기술의 진화
- 브로드캐스트(broadcast) : 네트워크의 모든 노드가 신호 또는 메시지를 수신하도록 하는 "일대일" 기술입니다.
TV, 라디오, 웹사이트, 팟캐스트와 같은 하나의 소스에서 가능한 모든 대상까지 "일대일" - 유니캐스트(Unicast) : "일대일" 스트리밍입니다.
Neflix, Amazon Prime 과 같은 하나의 소스에서 하나의 대상으로 "일대일" - 멀티캐스트(Multicast) : "일대다" 스트리밍입니다.
IPTV 와 같은 하나의 소스에서 여러 대상으로의 "일대다"

방송 캐스트 종류 'ETC.' 카테고리의 다른 글
웹 비디오/오디오 코덱 가이드 (0) 2022.05.23 Azure Media Services v3 (0) 2022.04.22 오픈소스 프로그래밍 Docker (0) 2022.03.07 SourceTree 사용법 (0) 2021.11.26 Jquery and JavaScript DOM Selector (0) 2021.11.15 - 뉴스, 시사, 다큐 등 사실 프로그램