KR101748382B1 - 비디오 스트리밍 제공 방법 및 시스템 - Google Patents

비디오 스트리밍 제공 방법 및 시스템 Download PDF

Info

Publication number
KR101748382B1
KR101748382B1 KR1020170015320A KR20170015320A KR101748382B1 KR 101748382 B1 KR101748382 B1 KR 101748382B1 KR 1020170015320 A KR1020170015320 A KR 1020170015320A KR 20170015320 A KR20170015320 A KR 20170015320A KR 101748382 B1 KR101748382 B1 KR 101748382B1
Authority
KR
South Korea
Prior art keywords
information
delay
unit
video streaming
sources
Prior art date
Application number
KR1020170015320A
Other languages
English (en)
Inventor
양진홍
전규영
Original Assignee
주식회사 헤카스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 헤카스 filed Critical 주식회사 헤카스
Priority to KR1020170015320A priority Critical patent/KR101748382B1/ko
Application granted granted Critical
Publication of KR101748382B1 publication Critical patent/KR101748382B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23605Creation or processing of packetized elementary streams [PES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

비디오 스트리밍 제공 방법 및 시스템이 개시된다. 비디오 스트리밍 제공 방법은, 서로 다른 복수의 촬영 장치들 각각의 하드웨어 특성 차이 및 코덱(codec) 특성 차이에 따른 촬영 장치 별 지연 정보와 인코딩 정보를 등록받는 단계, 상기 지연 정보 및 인코딩 정보에 기초하여, 상기 서로 다른 복수의 촬영 장치들에서 촬영된 영상을 기반으로 하는 멀티 소스(multi source) 간의 시간 동기화를 수행하는 단계, 및 상기 시간 동기화가 수행된 멀티 소스 각각에 해당하는 비디오 스트리밍을 사용자 단말로 제공하는 단계를 포함할 수 있다.

Description

비디오 스트리밍 제공 방법 및 시스템{METHOD AND SYSTEM FOR PROVIDING VIDEO STREAMING}
아래의 설명은 방송 환경에서 다양한 콘텐츠 소스(content source)를 사용자단말로 실시간으로 제공하는 비디오 스트리밍 제공 방법 시스템에 관한 것이다.
방송 환경이 고도화되고 다변화됨에 따라 다양한 콘텐츠 소스를 사용자 단말은 실시간으로 제공받게 되었다.
예를 들어, 스마트 폰 등에 장착된 카메라, 드론(drone) 캠, 방송국 카메라, 또는 HD 카메라 등의 다양한 촬영 장치에서 동일 촬영 대상을 다시점에서 촬영한 다양한 콘텐츠 소스(content source)를 사용자 단말로 실시간으로 제공 가능해졌다. 그러면, 스마트폰, 태블릿 등의 사용자 단말은 다양한 콘텐츠 소스를 PIP(Picture in Picture), 다시점 보기 등 여러 응용 형태로 재생한다.
도 1은 비디오 스트리밍을 제공하는 방송 환경을 도시한 네트워크 구성도이다.
도 1을 참고하면, 드론 캠(101), 스마트폰에 장착된 카메라(102), 방송국 차량의 카메라(103) 등에서 동일 촬영 대상(104, 예컨대, 봄 등산객 등)을 촬영할 수 있다. 그리고, 각 촬영 장치(101, 102, 103)에서 촬영된 영상을 비디오 시스템(video Headend, 110)로 전송할 수 있다.
이때, 각 촬영 장치(101, 102, 103) 별 하드웨어적 특성 차이(즉, 하드웨어 스펙 차이)와 각 촬영 장치에서 이용하는 코덱(codec)에 따라, 각 촬영 장치(101, 102, 103)에서 촬영된 영상 각각은 서로 다른 시간 차(즉, 지연(delay))를 가질 수 있다. 그리고, 촬영 장치들(101, 102, 103) 각각에서 촬영된 영상을 비디오 시스템(110)으로 전송하는 전송 방식의 차이로 인한 시간 차(즉, 지연(delay))가 발생할 수 있다. 그리고, 비디오 시스템(110)에서 촬영 장치들(101, 102, 103) 각각으로부터 수신된 영상을 기반으로 하는 멀티 소스(multi source)를 엔드 유저(즉, 사용자 단말, 120)로 전달하는 과정에서 네트워크 상의 시간차(delay)가 발생할 수 있다.
이에 따라, 촬영 장치들 각각의 하드웨어적 특성 차이, 코덱 특성 차이로 인한 지연, 촬영 장치들(101, 102, 103) 각각에서 비디오 시스템(110)으로 영상 데이터를 전송하는 과정에서 발생하는 지연, 및 비디오 시스템(110)에서 엔드 유저(즉, 사용자 단말, 120)로 비디오 스트리밍을 실시간으로 전달하는 과정에서 발생하는 지연을 모두 고려하여 비디오 스트리밍을 제공하는 기술이 요구된다. 한국공개특허 제10-2006-0105449호는 다시점 영상의 스케일러블 부호화, 복호화 및 장치에 관한 것으로, 복수개의 카메라로부터 입력되는 영상들에 대해 공간적-시간적으로 필터링하여 공간적-시간적 스케일러빌리티(scalability)를 지원함으로써, 동시에 한 개체 혹은 한 장면에 대해 촬영된 카메라의 위치에 따른 여러 장면을 사용자에게 제공하는 구성을 개시하고 있다.
일 실시예에 따른 비디오 스트리밍 제공 방법 시스템은 서로 다른 종류의 복수의 촬영 장치들 각각에서 동일한 촬영 대상(예컨대, 객체 또는 장면)을 촬영하여 사용자 단말로 제공하는 경우에, 촬영 장치 별 하드웨어적 특성 차이, 코덱 특성 차이로 인한 지연, 촬영 장치들 각각에서 서버로 영상 데이터(예컨대, Element Stream)를 전송하는 과정에서 발생하는 지연, 및 서버에서 사용자 단말로 비디오 스트리밍(예컨대, Packetized Element Stream)을 전달하는 과정에서 발생하는 지연을 고려하여 동기가 맞춰진 비디오 스트리밍을 제공하기 위한 것이다.
비디오 스트리밍 제공 방법은, 서로 다른 복수의 촬영 장치들 각각의 하드웨어 특성 차이 및 코덱(codec) 특성 차이에 따른 촬영 장치 별 지연 정보와 인코딩 정보를 등록받는 단계, 상기 지연 정보 및 인코딩 정보에 기초하여, 상기 서로 다른 복수의 촬영 장치들에서 촬영된 영상을 기반으로 하는 멀티 소스(multi source) 간의 시간 동기화를 수행하는 단계, 및 상기 시간 동기화가 수행된 멀티 소스 각각에 해당하는 비디오 스트리밍을 사용자 단말로 제공하는 단계를 포함할 수 있다.
일측면에 따르면, 상기 멀티 소스 각각에 해당하는 비디오 스트리밍을 전송하고자 하는 전송 방식 차이에 따른 지연(delay)에 기초하여 네트워크 상의 시간 동기화를 수행하는 단계를 더 포함할 수 있다. 그리고, 상기 비디오 스트리밍을 사용자 단말로 제공하는 단계는, 상기 멀티 소스 간의 시간 동기화 및 상기 네트워크 상의 시간 동기화가 수행된 비디오 스트리밍을 사용자 단말로 제공할 수 있다.
다른 측면에 따르면, 상기 네트워크 상의 시간 동기화를 수행하는 단계는, 상기 사용자 단말로부터 단말의 시간 정보(time clock)를 수신하는 단계, 상기 전송 방식 차이에 따른 지연(delay)과 상기 단말의 시간 정보에 기초하여 지연 설정 정보를 생성하는 단계, 및 생성된 상기 지연 설정 정보를 상기 멀티 소스 각각에 삽입하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 네트워크 상의 시간 동기화를 수행하는 단계는, 상기 멀티 소스(multi source) 각각에 해당하는 채널 별 지연(delay)를 측정하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 네트워크 상의 시간 동기화를 수행하는 단계는, 상기 전송 방식에 따라 서로 다른 상기 채널 별 지연(delay)에 기초하여 상기 멀티 소스 간의 시간 동기화를 수행할 수 있다.
또 다른 측면에 따르면, 상기 촬영 장치 별 지연 정보와 인코딩 정보를 등록받는 단계는, 상기 촬영 장치 별로 기정의된 하드웨어 스펙(spec) 정보 및 해당 촬영 장치의 제품 모델 정보를 포함하는 디바이스 프로파일(device profile) 정보 또는 메니페스트(Manifest) 정보를 등록받고, 상기 하드웨어 스펙(spec) 정보는, 상기 지연 정보(admin define delay value), 프로세서/칩셋(processer/chipset) 정보, OS 정보, 및 출력 인터페이스 정보를 포함할 수 있다.
또 다른 측면에 따르면, 상기 멀티 소스(multi source) 간의 시간 동기화를 수행하는 단계는, 상기 멀티 소스 각각을 업로드하는 장치로부터 비디오 스트리밍 제공 시스템까지 상기 멀티 소스 각각이 업로드되는 지연 시간과 기정의된 프레임율(frame rate)에 기초하여 해당 촬영 장치관련 프레임 제어율(frame control rate)을 설정하는 단계, 및 상기 프레임 제어율을 기반으로 해당 촬영 장치로부터 수신된 영상의 프레임을 스킵(skip)하고 패킷화(packetizing)하는 단계를 포함할 수 있다.
비디오 스트리밍 제공 시스템은, 서로 다른 복수의 촬영 장치들 각각의 하드웨어 특성 차이 및 코덱(codec) 특성 차이에 따른 촬영 장치 별 지연 정보와 인코딩 정보를 등록받는 정보 등록부, 상기 지연 정보 및 인코딩 정보에 기초하여, 상기 서로 다른 복수의 촬영 장치들에서 촬영된 영상을 기반으로 하는 멀티 소스(multi source) 간의 시간 동기화를 수행하는 소스 동기화부, 및 상기 시간 동기화가 수행된 멀티 소스 각각에 해당하는 비디오 스트리밍을 사용자 단말로 제공하는 스트리밍 제공부를 포함할 수 있다.
일측면에 따르면, 상기 멀티 소스 각각에 해당하는 비디오 스트리밍을 전송하고자 하는 전송 방식 차이에 따른 지연(delay)에 기초하여 네트워크 상의 시간 동기화를 수행하는 네트워크 딜레이 동기화부를 더 포함할 수 있다. 상기 스트리밍 제공부는, 상기 멀티 소스 간의 시간 동기화 및 상기 네트워크 상의 시간 동기화가 수행된 비디오 스트리밍을 사용자 단말로 제공할 수 있다.
다른 측면에 따르면, 상기 네트워크 딜레이 동기화부는, 상기 사용자 단말로부터 단말의 시간 정보(time clock)를 수신하고, 상기 전송 방식 차이에 따른 지연(delay)과 상기 단말의 시간 정보에 기초하여 지연 설정 정보를 생성하고, 생성된 상기 지연 설정 정보를 상기 멀티 소스 각각에 삽입함으로써 상기 네트워크 상의 시간 동기화를 수행할 수 있다.
또 다른 측면에 따르면, 상기 네트워크 딜레이 동기화부는, 상기 멀티 소스(multi source) 각각에 해당하는 채널 별 지연(delay)를 측정할 수 있다.
또 다른 측면에 따르면, 상기 네트워크 딜레이 동기화부는, 상기 전송 방식에 따라 서로 상이한 상기 채널 별 지연(delay)에 기초하여 상기 멀티 소스 간의 시간 동기화를 수행할 수 있다.
또 다른 측면에 따르면, 상기 정보 등록부는, 상기 촬영 장치 별로 기정의된 하드웨어 스펙(spec) 정보 및 해당 촬영 장치의 제품 모델 정보를 포함하는 디바이스 프로파일(device profile) 정보 또는 메니페스트(Manifest) 정보를 등록받고, 상기 하드웨어 스펙(spec) 정보는, 상기 지연 정보(admin define delay value), 프로세서/칩셋(processer/chipset) 정보, OS 정보, 및 출력 인터페이스 정보를 포함할 수 있다.
또 다른 측면에 따르면, 상기 소스 동기화부는, 값의 차이와 기정의된 프레임율(frame rate)에 기초하여 해당 촬영 장치관련 프레임 제어율(frame control rate)을 설정하고, 설정된 상기 프레임 제어율을 기반으로 해당 촬영 장치로부터 수신된 영상의 프레임을 스킵(skip)하고 패킷화(packetizing)할 수 있다.
일 실시예에 따른 비디오 스트리밍 제공 방법 시스템은 서로 다른 종류의 복수의 촬영 장치들 각각에서 동일한 촬영 대상(예컨대, 객체 또는 장면)을 촬영하여 사용자 단말로 제공하는 경우에, 촬영 장치 별 하드웨어적 특성 차이, 코덱 특성 차이로 인한 지연, 촬영 장치들 각각에서 서버로 영상 데이터(예컨대, Element Stream)를 전송하는 과정에서 발생하는 지연, 및 서버에서 사용자 단말로 비디오 스트리밍(예컨대, Packetized Element Stream)을 전달하는 과정에서 발생하는 지연을 고려하여 시간 동기를 맞춤으로써, 방송 환경의 고도화 및 다변화에 따라 생성된 다양한 형태의 멀티 소스(즉, 멀티 콘텐츠 소스)를 다시점 보기, PIP 등의 형태로 실시간 제공할 수 있다.
도 1은 비디오 스트리밍을 제공하는 방송 환경을 도시한 네트워크 구성도이다.
도 2는 본 발명의 일실시예에 있어서, 비디오 스트리밍을 제공하는 네트워크 환경을 도시한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 촬영 장치, 비디오 스트리밍 제공 시스템 및 사용자 단말이 연동하여 시간 동기가 맞춰진 비디오 스트리밍을 제공하는 동작을 도시한 흐름도이다.
도 4는 본 발명의 일실시예에 있어서, 비디오 스트리밍 제공 시스템에서 시간 동기를 맞추어 비디오 스트리밍을 제공하는 동작을 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 있어서, 비디오 스트리밍 제공 시스템의 내부구성을 도시한 블록도이다.
도 6은 본 발명의 일실시예에 있어서, 네트워크 상의 시간 동기화를 수행하는 동작을 도시한 흐름도이다.
도 7은 본 발명의 일실시예에 있어서, 시간 동기화가 수행된 비디오 스트리밍을 제공받는 사용자 단말의 동작을 도시한 흐름도이다.
도 8은 본 발명의 일실시예에 있어서, 사용자 단말의 내부 구성을 도시한 블록도이다.
도 9는 본 발명의 일실시예에 있어서, 다시점 영상으로 방송 화면이 제공되는 사용자 단말의 화면을 도시한 도면이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
본 실시예들은, 복수개의 촬영 장치들에서 촬영된 영상을 제공하는 방송 환경에서, 복수의 촬영 장치들에서 촬영된 다양한 형태의 콘텐츠 소스들(즉, 미디어 소스들) 간의 지연(delay)을 고려하여 소스 간 시간 동기를 맞추고, 네트워크 상의 지연(delay)을 고려하여 시간 동기를 맞추어 사용자 단말로 비디오 스트리밍을 제공하는 기술에 관한 것으로서, 특히, 시간 동기를 맞추어 다시점 보기, PIP(Picture In Picture) 형태로 멀티 소스(multi source)를 제공하는 기술에 관한 것이다. 즉, 각각의 콘텐츠 소스 별 해당 장치의 하드웨어적 특성, 코덱(codec)의 특성, 전송 방식의 특성에 따른 지연(delay)을 고려하여 양방향성 또는 실시간성으로 여러 콘텐츠 소스들(즉, 멀티 소스)를 제공 시 동기를 맞추어 제공하는 기술에 관한 것이다.
본 실시예들에서, '멀티 소스(multi source)'는 동일한 촬영 대상(예컨대, 동일 객체 또는 동일 장면)을 서로 다른 종류의 촬영 장치에서 촬영되어 인코딩된 영상 데이터들을 나타낼 수 있다. 예를 들어, '멀티 소스(multi source)'는 상기 촬영 대상을 촬영장치 1(예컨대, 드론캠)에서 촬영 및 인코딩되어 서버로 업로드된 ES 1(Element Stream 1), 상기 촬영 대상을 촬영 장치 2(예컨대, HD급 방송촬영 카메라)에서 촬영 및 인코딩되어 서버로 업로드된 ES 2(Element Stream 2), 상기 촬영 대상을 스마트폰의 카메라에서 촬영 및 인코딩되어 서버로 업로드된 ES 3(Element Stream 3) 등을 포함할 수 있다.
본 실시예들에서, '시간 동기화'는 멀티 소스 간의 시간 동기화 및 네트워크 상의 시간 동기화를 포함할 수 있다. 그리고, '멀티 소스 간의 시간 동기화'는 촬영 장치 별 하드웨어적 특성 및 코덱(codec)의 특성에 따른 지연과 스트림 업로드(stream uploader)에서 서버로 전송하는 과정에서 발생하는 지연을 고려한 시간 동기화를 나타낼 수 있다. '네트워크 상의 시간 동기화'는 서버에서 패킷화된 영상 데이터(예컨대, packetized element stream)를 사용자 단말(즉, end user)로 전송하는 과정에서 발생하는 네트워크 지연을 고려한 시간 동기화를 나타낼 수 있다.
본 실시예들에서, '비디오 스트리밍 제공 시스템'은 멀티 소스를 구성하는 각 콘텐츠 소스를 업로드(upload)받고, 멀티 소스 각각에 해당하는 비디오 스트리밍(즉, packetized element stream)을 사용자 단말로 제공하는 서버(즉, 미디어 스트림 서버(media stream server))를 나타낼 수 있다.
본 실시예들에서, '사용자 단말'은 IP TV, VR(Virtual Reality) 장치, PC, 스마트폰(smartphone), 태블릿(tablet) 등을 나타낼 수 있다.
도 2는 본 발명의 일실시예에 있어서, 비디오 스트리밍을 제공하는 네트워크 환경을 도시한 도면이다.
도 2에 따르면, 비디오 스트리밍을 제공하는 네트워크(200)는 복수의 비디오 캡쳐 장치(210), 복수의 스트림 업로더(220), 비디오 스트리밍 제공 시스템(230), 및 적어도 하나의 사용자 단말(240)을 포함할 수 있다.
도 2에서는 비디오 캡쳐 장치(210), 스트림 업로더(220)가 하나의 시스템 또는 장치로 구현되는 경우를 예로 들어 설명하나, 이는 실시예에 해당되며, 비디오 캡쳐 장치(210), 스트림 업로더(220) 및 서버인 비디오 스트리밍 제공 시스템(230)이 하나의 시스템 또는 장치로 구성될 수도 있다. 예컨대, 스마트폰 등과 같이 어플리케이션을 이용하여 소프트웨어적으로 비디오 캡쳐 장치(210), 스트림 업로더(220) 및 비디오 스트리밍 제공 시스템(230)이 구현될 수도 있다.
도 2를 참고하면, 비디오 캡쳐 장치(video capture, 210)는 촬영 장치로서, 카메라, 마이크(mic), 드론 카메라, 스마트폰의 카메라 등의 미디어 캡쳐 장치(original media capture device)와 코덱(coded media)을 포함할 수 있다.
복수의 미디어 캡쳐 장치(original media capture device) 각각에서 캡쳐된 오리지널 미디어 소스(original media source) 별로 해당 장치의 하드웨어적 특성 및 코덱(codec)의 특성에 따른 지연(즉, H/W 지연)이 상이하게 발생할 수 있다. 그리고, 코덱(coded media)에서 상기 오리지널 미디어 소스(original media source)를 I/P/B 프레임(frame)으로 압축하는 과정에서 지연이 발생할 수 있으며, 코덱의 종류에 따라 서로 다른 H/W 지연 및 S/W 지연이 발생할 수 있다. 그러면, 서로 다른 H/W 지연 및 S/W 지연을 갖는 압축된 영상 스트림이 스트림 업로더(220)를 통해 비디오 스트림 제공 시스템(230)으로 전달될 수 있다.
스트림 업로더(stream uploader, 220)는 비디오 캡쳐 장치(210)의 코덱에서 인코딩된(encoding) 데이터를 서버(server)인 비디오 스트리밍 제공 시스템(230)으로 업로드(upload)할 수 있다. 예를 들어, 스트림 업로더(220)와 비디오 캡쳐 장치(210)는 하나의 촬영 시스템 또는 촬영 장치로 구현될 수 있으며, 하나의 촬영 시스템 또는 촬영 장치로 구현된 경우, 상기 스트림 업로더는 어플리케이션(application) 형태로 구현되어 촬영 시스템 또는 촬영 장치에 설치될 수 있다. 상기 촬영 시스템 또는 장치에서 상기 어플리케이션을 실행함으로써, 상기 어플리케이션(즉, 스트림 업로더)을 통해 촬영 및 인코딩된 데이터가 비디오 스트리밍 제공 시스템(230)으로 업로드(upload)될 수 있다.
여기서, 인코딩된 데이터는 아날로그 비디오와 오디오 콘텐츠가 MPEG-2 등의 인코더에서 부호화 및 압축됨에 따라 생성되는 디지털 데이터의 기본 스트림(Element Stream, ES)을 나타낼 수 있다. 예를 들어, MPEG-2 등의 인코더에서 오디오, 비디오 및 텍스트 데이터의 각 콘텐츠에 대해 각각 하나의 기본 스트림(ES)을 생성할 수 있다. 즉, 오디오 데이터에 해당하는 기본 스트림, 비디오 데이터에 해당하는 기본 스트림과 같이 각각 하나의 기본 스트림이 생성될 수 있다.
비디오 스트리밍 제공 시스템(230)은 클라우드(cloud)에 위치할 수 있으며, 에지 캐시 서버(edge cache server)를 포함할 수 있다. 그리고, 비디오 스트리밍 제공 시스템(230)은 각 비디오 캡쳐 장치(210)에 어플리케이션 형태로 설치된 스트림 업로더(220)를 통해 업로드된 기본 스트림(ES)을 대상으로 패킷화(packetizing)를 수행할 수 있다. 이때, 비디오 스트리밍 제공 시스템(230)은 기본 스트림 별 H/W 지연 및 S/W 지연을 고려하여 시간 동기를 맞추어 패킷화를 수행할 수 있으며, 패킷화된 기본 스트림(packetized element stream)을 사용자 단말(240)로 제공할 수 있다. 즉, 비디오 스트리밍 제공 시스템(230)은 멀티 소스(multi source) 각각에 해당하는 비디오 스트리밍을 사용자 단말(240)로 제공할 수 있다. 이때, 비디오 스트리밍을 사용자 단말(media client, 240)로 제공하는 과정에서 지터(jitter), 지연(delay), 에러(error) 등으로 인한 네트워크 상의 지연이 발생할 수 있다. 예를 들어, 비디오 스트리밍 제공 시스템(230)에서 패킷화된 비디오 스트리밍을IP, TCP, 또는 UDP 등으로 사용자 단말(540)로 제공하는지 여부에 따라, 서로 다른 S/W 지연이 발생할 수 있다.
이에 따라, 비디오 스트리밍 제공 시스템(230)는 네트워크 상의 지연을 고려하여 동기를 맞추는 네트워크 상의 시간 동기화를 수행한 후 비디오 스트리밍을 사용자 단말(media client, 240)로 제공할 수 있다.
도 3은 본 발명의 일실시예에 있어서, 촬영 장치, 비디오 스트리밍 제공 시스템 및 사용자 단말이 연동하여 시간 동기가 맞춰진 비디오 스트리밍을 제공하는 동작을 도시한 흐름도이다.
도 3에 따르면, 310 단계에서, 비디오 스트리밍 제공 시스템(즉, media stream server, 303)은 비디오 캡쳐 장치(301)와 비디오 스트리밍 제공 시스템(303) 간의 지연(delay) 중 비디오 캡쳐 장치(301)의 하드웨어적 특성 차이로 인해 발생하는 지연 정보 및 인코딩 정보를 기반으로 각 비디오 캡쳐 장치(301) 별 기본 스트림(ES)의 시간 동기를 맞출 수 있다.
320단계에서, 비디오 스트리밍 제공 시스템(303)은 각 스트림 업로더(302) 별로 형성된 채널의 지연(delay)을 모니터링하고, 채널 별 지연에 기초하여 버퍼(buffer)를 이용하여 액세스 단위(access unit)로 패킷화하는 과정을 제어함으로써, 멀티 소스 간의 시간 동기를 맞출 수 있다. 즉, 복수의 스트림 업로더들 각각에 해당하는 기본 스트림의 시간 동기를 맞추어 패킷화를 수행할 수 있다. 예를 들어, 스트림 업로더(302)에서 해당 기본 스트림(ES)을 비디오 스트리밍 제공 시스템(303)으로 업로드하는 과정에서, 기본 스트림 별로 서로 다른 채널 지연이 발생할 수 있으며, 비디오 스트리밍 제공 시스템(303)은 채널 별 지연을 측정하고, 측정된 채널 지연에 기초하여 패킷화(packetizing) 시 버퍼에서 액세스(access)하는 프레임을 제어하여 패킷화를 수행함으로써 시간 동기를 맞출 수 있다. 예컨대, 소스 간의 지연 차이가 클수록 버퍼에서 버퍼링되는 프레임을 많이 스킵(skip)하고 패킷화를 수행할 수 있다.
330 단계에서, 비디오 스트리밍 제공 시스템(303)은 네트워크 상의 지연을 고려하여 비디오 스트리밍 제공 시스템(303)과 사용자 단말(304) 간의 시간 동기화를 수행할 수 있다. 그리고, 비디오 스트리밍 제공 시스템(303)은 네트워크 상의 시간 동기화 및 멀티 소스 간 시간 동기화가 완료됨에 따라, 시간 동기가 맞춰진 패킷화된 비디오 스트리밍을 사용자 단말(304)로 제공할 수 있다. 예를 들어, 비디오 스트리밍 제공 시스템(303)은 UTC(Universal Time Clock)을 이용하여 네트워크 상의 지연을 고려하여 시간 동기를 맞출 수 있다.
도 4는 본 발명의 일실시예에 있어서, 비디오 스트리밍 제공 시스템에서 시간 동기를 맞추어 비디오 스트리밍을 제공하는 동작을 도시한 흐름도이고, 도 5는 본 발명의 일실시예에 있어서, 비디오 스트리밍 제공 시스템의 내부구성을 도시한 블록도이다.
도 5에서, 비디오 스트리밍 제공 시스템(500)은 정보 등록부(510), 소스 동기화부(520), 네트워크 딜레이 동기화부(530) 및 스트리밍 제공부(540)를 포함할 수 있다. 비디오 스트리밍 제공 시스템(500)은 유/무선 네트워크를 통해 복수의 촬영 장치들(501)과 사용자 단말(502)과 연결되어 소스(source)에 해당하는 기본 스트림(ES)을 제공받아 멀티 소스를 사용자 단말(502)로 제공할 수 있다.
도 4의 각 단계들(410 내지 420)은 비디오 스트리밍 제공 시스템(500)의 구성 요소인 정보 등록부(510), 소스 동기화부(520), 네트워크 딜레이 동기화부(530) 및 스트리밍 제공부(540)에 의해 수행될 수 있다.
410 단계에서, 정보 등록부(510)는 소스의 연결 정보를 파악할 수 있다.
예를 들어, 서버측인 비디오 스트림 제공 시스템(500)에서 소스 연결을 인지하기 위해서는 먼저 소스 측(즉, 스트림 업로더)에서 스트리밍(streaming) 하고자 하는 정보에 대해(채널 생성, 스트리밍 정보 등을) 서버 측으로 시그널링(signaling)의 형태로 전달할 수 있다. 그러면, 서버측인 비디오 스트림 제공 시스템(500)은 해당 시그널링(signaling) 정보를 기반으로 미디어 스트림(Media Stream), 즉, 소스를 수신하기 위한 소켓(socket)을 개방하고(즉, 동작 상태를 리슨(listen)상태로 설정하고), 소스(스트림 업로더)로부터 해당 스트림(stream)을 전달 받을 수 있다. 이때, 소스 측인 스트림 업로더에서 서버측인 비디오 스트림 제공 시스템(500)으로 시그널링(signaling) 하기 위한 프로토콜들로는 RTP, HTTP, SIP등이 이용될 수 있다.
420 단계에서, 정보 등록부(510)는 복수의 촬영 장치들(501) 각각의 H/W 특성 차이 및 코덱(codec)의 특성 차이에 따라 발생하는 지연 정보와 인코딩 정보를 등록받아 로딩(loading)할 수 있다.
예를 들어, 촬영 장치 별 H/W 특성 차이 및 코덱 특성 차이에 따른 지연 정보와 인코딩 정보를 포함하는 디바이스 프로파일(device profile) 정보 또는 메니페스트(Manifest) 정보를 해당 촬영 장치에 설치된 어플리케이션을 통해 등록받을 수 있다. 그러면, 정보 등록부(510)는 해당 촬영 장치의 식별자 정보와 등록받은 디바이스 프로파일 정보 또는 메니페스트 정보를 매칭하여 데이터베이스(미도시)에 저장 및 유지할 수 있다. 여기서, 디바이스 프로파일 정보 또는 메니페스트 정보는 해당 촬영 장치와 관련하여 기정의된 하드웨어 스펙(spec) 정보 및 해당 촬영 장치의 제품 모델 정보(device product model)를 포함할 수 있으며, 예컨대, 하드웨어 스펙(spec) 정보는 해당 촬영 장치의 하드웨어적 지연 정보(Admin define delay value (ms)), 프로세서/칩셋(processor/chipset) 정보, Os 정보, 및 출력 인터페이스(output interface) 정보를 포함할 수 있다.
430 단계에서, 소스 동기화부(530)는 촬영 장치 별 스트림 업로더와 비디오 스트리밍 제공 시스템 간의 시간 동기화를 수행하여 멀티 소스(multi source) 간의 시간 동기를 맞출 수 있다.
431 단계에서, 소스 동기화부(530)는 촬영 장치 별로 등록된 디바이스 프로파일 정보에 기초하여 시간 동기 테이블(source_time_sync_table)을 생성할 수 있다. 즉, 소스 동기화부(530)는 촬영 장치 별 상기 디바이스 프로파일 정보에 기초하여 개별 기본 스트림(ES)에 대한 시간 동기 테이블을 생성할 수 있다. 이때, 소스 동기화부(530)는 시간 동기 테이블을 생성하고, 촬영 장치 별 스트림 업로더와 비디오 스트리밍 제공 시스템 간의 시간 동기화를 수행하는 동작을 기정의된 시간에 따라 주기적으로 수행할 수 있다.
예를 들어, 시간 동기 테이블(source_time_sync_table)은 소스 측인 비디오 캡쳐 장치의 물리적 특성에 대한 정보를 가진 디바이스 프로파일(device profile) 또는 메니페스트(manifest) 정보와, 엘리먼트 스트림 장치(예컨대, 스트림 업로더)의 지연 정보를 더하는 형태로 구성될 수 있다. 그리고, 비디오 캡쳐(video capture) 장치와 엘리먼트 스트림(element stream) 장치(예컨대, 스트림 업로더)가 일반적으로 구분/분리 되어 구성되므로 시간 동기 테이블 각각이 분리되어 생성될 수 있으며, 비디오 캡쳐 장치와 상기 스트림 업로더가 하나의 장치로 구현된 경우, 상기 시간 동기 테이블 역시 하나로 구성될 수 있다.
먼저, 디바이스 프로파일(device profile) 또는 메니페스트(manifest) 정보를 이용하는 경우, 장치가 가진 물리적인 지연 정보에 대해 제조사가 제공하는 장치의 물리인터페이스 특성에 따라 지연 정보가 ms 수준으로 제공될 수 있다,
엘리먼트 스트림 장치(예컨대, 스트림 업로더)의 지연 정보를 이용하는 경우, 장치의 성능 및 codec의 성능에 따른 부호화된 미디어(coded media) 생성에 따른 지연 정보가 제공될 수 있으며, 이는 비디오 품질 등에 따라 영향을 받을 수 있다. 이때, 상기 지연 정보도 ms 형태로 제공될 수 있다.
그러면, 시간 동기 테이블(source_time_sync_table)은 상기 디바이스 프로파일(device profile) 또는 메니페스트(manifest) 정보에 기반한 지연 정보와 상기 엘리먼트 스트림 장치(예컨대, 스트림 업로더)의 지연 정보를 합쳐서 구성될 수 있으며, 비디오 캡쳐 장치(video capture device)와 엘리먼트 스트림 장치가 원격으로 떨어져 있는 경우 해당 네트워크 구간의 지연 또한 함께 고려될 수 있다
432 단계에서, 소스 동기화부(530)는 값의 차이와 기정의된 프레임율(frame rate)에 기초하여 해당 촬영 장치 관련 프레임 제어율(frame control)을 설정할 수 있다.
여기서, 값의 차이는 각 스트림 업로더로부터 서버까지의 지연 시간을 나타낼 수 있다, 예컨대, 멀티 소스 각각을 업로드하는 스트림 업로더들 각각으로부터 비디오 스트리밍 제공 시스템까지 상기 멀티 소스 각각이 업로드되는 지연 시간을 나타낼 수 있다. 이때, 각 소스 별 지연 값의 차이가 비디오(frame rate) 또는 오디오(sampling rate)를 기준으로 최소 단위의 값 (frame or sampling rate)를 초과 하는 경우(e.g., 두 소스 모두 각각 30fps의 video frame rate을 가지며 소스 1의 지연이 100ms, 소스 2의 지연이 20ms인 경우, 60ms의 시간차가 발생할 수 있음), 초과되는 소스(source)의 프레임/샘플링 데이터(frame/sampling data)를 스킵(skip)하거나 프레임율 또는 샘플링율(rate)을 조절하여 시간 동기화가 수행될 수 있다.
일례로, 코덱(codec)별 설정을 통해 초당 프레임율(frame rate) 또는 주파수당 샘플링율(sampling rate)을 설정하여 프레임 제어율이 설정될 수 있다. 예컨대, 비디오(Video)의 경우 1초당 24frame, 또는 30frame 과 같은 정보(프레임율)가 프레임 제어율로서 인코더(encoder)상에서 설정될 수 있다.
433 단계에서, 소스 동기화부(530)는 설정된 프레임 제어율에 기초하여 해당 영상의 프레임을 스킵(skip)하면서 패킷화를 수행할 수 있다. 즉, 기본 스트림에 해당하는 프레임들을 대상으로 패킷화를 수행 시, 소스 동기화부(530)는 프레임 제어율에 따라 적어도 하나의 프레임을 스킵(skip)하면서 패킷화(packetizing)할 수 있다.
일례로, 촬영 장치 1은 HD급 촬영 장치이고, 촬영 장치 2는 드론(drone) 캡인 경우, 정보 등록부(510)는 촬영 장치 1과 촬영 장치 2 각각으로부터 해당 장치의 디바이스 프로파일 정보 또는 메니페스트 정보를 등록받아 로딩할 수 있다. 그리고, 촬영 장치 1은 자신이 촬영 및 압축한 영상(예컨대, HD스트림)을 스트림 업로더를 통해 비디오 스트리밍 제공 시스템(500)으로 업로드하고, 촬영 장치 2는 자신이 촬영 및 압축한 영상(예컨대, 드론 스트림)을 스트림 업로더를 통해 비디오 스트리밍 제공 시스템(500)으로 업로드할 수 있다. 이때, HD 스트림과 드론 스트림 간의 코덱 특성 차이 및 촬영 장치의 H/W 특성 차이로 인해 프레임율(frame rate)이 상이할 수 있다. 그러면, 촬영 장치 1 및 촬영 장치 2의 프레임율의 차이가 1/n 프레임율을 초과하는 경우, 소스 동기화부(520)는 해당 촬영 장치의 프레임 제어율을 설정하고, 패킷타이저(packetizer)의 읽기 버퍼 제어값(readbuffer control value)이 적용하여 패킷화를 수행할 수 있다. 예컨대, HD 스트림과 드론 스트림의 프레임율 차이로 인해, HD 스트림은 프레임 1을 버퍼링하고 있는데, 드론 스트림은 프레임 3을 버퍼링하고 있는 경우, 소스 동기화부(520)는 HD 스트림에 해당하는 버퍼에서 프레임 2와 프레임 3은 스킵(skip)하고 프레임 4를 버퍼링하도록 제어함으로써, 다음 타임에서 드론 스트림의 프레임 4와 시간 동기를 맞출 수 있다.
440 단계에서, 네트워크 딜레이 동기화부(530)는 전송 방식의 차이에 따른 네트워크 상의 시간 동기화를 수행할 수 있다.
네트워크 딜레이 동기화부(530)는 멀티 소스 각각에 해당하는 비디오 스트리밍을 제공하기 위해 형성된 적어도 하나의 사용자 단말(502)과의 채널 지연(delay)를 측정할 수 있다. 그리고, 네트워크 딜레이 동기화부(530)는 측정된 채널 지연에 기초하여 네트워크 상의 시간 동기화를 수행할 수 있다. 여기서, 네트워크 상의 시간 동기화를 수행하는 자세한 동작은 아래의 도 6을 참조하여 후술하기로 한다.
450 단계에서, 스트리밍 제공부(540)는 시간 동기화가 수행된 비디오 스트리밍을 사용자 단말(502)로 제공할 수 있다.
즉, 스트리밍 제공부(540)는 장치 별 H/W 특성 및 코덱의 특성 차이로 인한 지연을 고려하여 동기를 맞춘 멀티 소스 간 동기화와, 전송 방식의 차이로 인한 네트워크 지연을 고려하여 동기를 맞춘 네트워크 상의 시간 동기화가 수행된 비디오 스트리밍을 사용자 단말(502)로 제공할 수 있다.
도 6은 본 발명의 일실시예에 있어서, 네트워크 상의 시간 동기화를 수행하는 동작을 도시한 흐름도이다.
도 6에서 각 단계들(441 내지 443 단계)은 도 5의 네트워크 딜레이 동기화부(530) 및 스트리밍 제공부(540)에 의해 수행될 수 있다.
441 단계에서, 네트워크 딜레이 동기화부(530)는 비디오 스트리밍을 제공하기 위해 형성된 사용자 단말(502)과의 단말의 시간 정보(time clock)을 수신할 수 있다. 이때, 복수의 사용자 단말들이 연결된 경우, 네트워크 딜레이 동기화부(530)는 복수의 사용자 단말들 각각으로부터 해당 단말의 시간 정보를 수신할 수 있다. 도 6에서는 하나의 사용자 단말(502)로 비디오 스트리밍을 제공하는 경우를 예로 들어 설명하나, 이는 실시예에 해당되며, 복수의 사용자 단말(502)로 비디오 스트리밍을 제공할 수 있다.
442 단계에서, 네트워크 딜레이 동기화부(530)는 비디오 스트리밍을 제공하기 위해 형성된 사용자 단말(502)과의 채널 지연(delay)를 측정할 수 있다.
예를 들어, 복수의 사용자 단말들로 비디오 스트리밍을 제공하는 경우, 네트워크 딜레이 동기화부(530)는 복수의 사용자 단말들 각각과 형성된 해당 채널의 채널 지연을 주기적으로 측정할 수 있다. 그리고, 하나의 사용자 단말(502)을 대상으로, 사용자 단말(502)로 다시점 보기에 해당하는 멀티 소스를 제공하는 경우, 네트워크 딜레이 동기화부(530)는 멀티 소스 각각에 해당하는 비디오 스트리밍 별 채널 지연을 측정할 수 있다.
443 단계에서, 네트워크 딜레이 동기화부(530)는 측정된 상기 채널 지연과수신된 상기 단말의 시간 정보에 기초하여 비디오 스트리밍 제공 시스템(500)과 사용자 단말(502) 간의 시간 동기화를 위한 지연 설정 정보를 생성(또는 설정)하고, 지연 설정 정보를 단말로 제공할 수 있다.
예를 들어, 비디오 스트리밍 제공 시스템(500)과 사용자 단말(502) 가 동일한 시간 정보를 획득하기 위해 네트워크 시간 프로토콜(Network time protocol) 또는 별도의 시간 서버(time server)를 이용하여, 각 장치 별로 해당 특정 시간 서버(time server)의 시각을 수신해 초기 동기화를 맞출 수 있다. 이후, 비디오 스트리밍 제공 시스템(500)은 사용자 단말(502)로 테스트 미디어 전송을 통해 수신시점-전송시점 값을 통해 해당 네트워크 구간의 지연(delay)을 측정할 수 있다. 그러면, 네트워크 딜레이 동기화부(530)는 측정된 채널 지연에 기초하여 비디오 스트리밍 제공 시스템(500)과 사용자 단말(502) 간의 시간 동기화를 위한 최소 지연값을 상기 지연 설정 정보로 생성(또는 설정)할 수 있다. 그리고, 네트워크 딜레이 동기화부(530)는 상기 지연 설정 정보로 전송하여, 사용자 단말(502) 상의 지연 설정 정보가 업데이트되도록 제어할 수 있다. 네트워크 딜레이 동기화부(530)는 지연 설정 정보를 멀티 소스 각각에 해당하는 비디오 스트림(즉, 패킷화된 ES)에 삽입할 수 있다. 그러면, 스트리밍 제공부(540)는 지연 설정 정보가 삽입된 멀티 소스 각각에 해당하는 비디오 스트리밍을 사용자 단말(502)로 제공할 수 있다.
도 7은 본 발명의 일실시예에 있어서, 시간 동기화가 수행된 비디오 스트리밍을 제공받는 사용자 단말의 동작을 도시한 흐름도이고, 도 8은 본 발명의 일실시예에 있어서, 사용자 단말의 내부 구성을 도시한 블록도이다.
도 8을 참고하면, 사용자 단말(800)은 정보 전달부(810), 정보 업데이트부(820), 패킷 수신부(830), 및 렌더링부(840)를 포함할 수 있다. 그리고, 도 7의 각 단계들(710 내지 740 단계)은 도 8의 구성 요소인 정보 전달부(810), 정보 업데이트부(820), 패킷 수신부(830), 및 렌더링부(840)에 의해 수행될 수 있다.
먼저, 사용자 단말(800)의 화면 상에서 PIP 보기, 다시점 보기 등의 표시 정보가 사용자에 의해 선택됨에 따라, 정보 전달부(810)는 선택된 표시 정보에 해당하는 지시자(indicator)를 비디오 스트리밍 제공 시스템(500)으로 전달할 수 있다. 그러면, 비디오 스트리밍 제공 시스템(500)는 상기 지시자(indicator) 및 사용자 단말(800)의 식별자 정보를 수신하고, 지시자(indicator)에 기초하여 매칭하는 멀티 소스들을 대상으로, 멀티 소스간 시간 동기화 및 네트워크 상의 시간 동기화가 수행된 비디오 스트리밍 사용자 단말(800)로 제공할 수 있다. 이때, 네트워크 상의 시간 동기화를 위해 아래의 710 내지 740 단계와 같이, 사용자 단말(800)가 연동할 수 있다.
710 단계에서, 정보 전달부(810)는 단말의 시간 정보(time clock)을 비디오 스트리밍 제공 시스템(500)으로 전달할 수 있다.
720 단계에서, 정보 업데이트부(820)는 비디오 스트리밍 제공 시스템(500)으로부터 지연 설정 정보를 수신하여 업데이트할 수 있다. 여기서, 지연 설정 정보는, 비디오 스트리밍 제공 시스템(500)에서 사용자 단말(800)과 비디오 스트리밍 제공 시스템(500) 간의 측정된 채널 지연에 기초하여 지연을 최소화하는 값으로 설정된 정보를 나타낼 수 있다.
730 단계에서, 패킷 수신부(830)는 비디오 스트리밍 제공 시스템(500)으로부터 패킷화된 비디오 스트리밍을 수신하여 버퍼(buffer)에 저장할 수 있다. 예컨대, 멀티 소스 각각에 해당하는 비디오 스트리밍을 수신한 경우, 패킷 수신부(830)는 소스 별로 해당 버퍼에 비디오 스트리밍을 각각 버퍼링할 수 있다. 이때, 복수의 사용자 단말들로 상기 비디오 스트리밍이 제공된 경우, 해당 단말에서의 지연 차가 기정의된 기준값 이상으로 큰 경우, 지연이 높은 사용자 단말은 프레임을 스킵(skip)할 수 있다.
740 단계에서, 버퍼로부터 비디오 스트리밍 리딩(reading) 시 디코드 타임 스탬프(decode time stamp)에 포함된 지연 설정 정보를 업데이트할 수 있다.
예를 들어, 네트워크 환경에 따라 사용자 단말(800)과의 채널 지연(delay)에 대한 변동(fluctuation)이 발생할 수 있으며, 사용자 단말(800)은 상기 지연 설정 정보를 업데이트할 수 있다. 이때, 각 미디어 어셋 별(소스 별) 지연 및 타임스탬프(time stamp) 형식에 맞춰, 상기 지연 설정 정보에 설정된 시간값을 변환해 시간 값을 업데이트함으로써, 지연 설정 정보는 업데이트될 수 있다.
여기서, 디코드 타임 스탬프(decode time stamp)의 값의 경우, 렌더링 엔진(rendering engine) 등에서 프레임 버퍼(frame buffer)를 읽어 들여 재생 시점을 조절하기 위한 타임스탬프(time stamp) 값을 나타낼 수 있으며, 지연을 적용하기 위한 다양한 방법이 이용될 수 있다. 예컨대, 렌더 또는 코덱 엔진 모듈(render or codec engine module)에서 DTS 값을 이용하여 시간을 설정하는 방식을 기반으로 재생 시간(즉, 재생 시점)이 결정될 수 있다.
750 단계에서, 렌더링부(840)는 버퍼 렌더링(rendering)을 수행하여 영상을 사용자 단말(800)의 화면 상에 표시할 수 있다.
이처럼, 멀티 소스 간의 동기가 맞춰지고, 네트워크 상의 지연을 고려하여 동기가 맞춰진 비디오 스트리밍이 사용자 단말(800)로 제공됨에 따라, 사용자 단말(800)에서 PIP로 영상 제공을 요청한 경우, 사용자 단말(800)의 화면(예컨대, IP TV 화면)에서 촬영 장치 1(예컨대, HD급 촬영 장치)에서 촬영된 영상이 메인(main)으로 표시되고, 촬영 장치 2(예컨대, 드론 캠)에서 촬영된 영상이 표시될 수 있다. 이외에, 도 9와 같이, 스포츠 경기 중 특정 시점을 확대하여 고품질로 제공하는 형태나, 여러 시점에서 촬영된 형태 등의 다시점으로 영상이 사용자 단말(900)의 화면에 표시될 수 있다.
한편, 다시 730 단계에서, 패킷화된 비디오 스트리밍을 수신하여 버퍼에 저장한 이후, 지연 설정 정보를 업데이트하지 않고, 재생 속도를 제어할 수도 있다. 즉, 도 7에서 740 단계가 생략되고, 렌더링 이후에, 렌더링부(840)는 사용자 단말(800)의 화면에 표시되는 비디오 스트리밍의 재생 속도를 제어함으로써, 네트워크 환경에 따라 단말의 채널 지연에 대한 변동(fluctuation)이 발생한 경우에도 동기를 맞출 수 있다. 예컨대, 1.05배속, 0.97 배속 등으로 재생 속도가 제어될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (10)

  1. 정보 등록부, 소스 동기화부, 네트워크 딜레이 동기화부 및 스트리밍 제공부를 포함하는 비디오 스트리밍 제공 시스템이 수행하는 비디오 스트리밍 제공 방법에 있어서,
    상기 정보 등록부에서, 서로 다른 복수의 촬영 장치들 각각의 하드웨어 특성 차이 및 코덱(codec) 특성 차이에 따른 촬영 장치 별 지연 정보와 인코딩 정보를 등록받는 단계;
    상기 소스 동기화부에서, 상기 지연 정보 및 인코딩 정보에 기초하여, 상기 서로 다른 복수의 촬영 장치들에서 촬영된 영상을 기반으로 하는 멀티 소스(multi source) 간의 시간 동기화를 수행하는 단계;
    상기 네트워크 딜레이 동기화부에서, 상기 멀티 소스 각각에 해당하는 비디오 스트리밍을 전송하고자 하는 전송 방식의 차이에 따른 지연(delay)에 기초하여 네트워크 상의 시간 동기화를 수행하는 단계; 및
    상기 스트리밍 제공부에서, 상기 시간 동기화가 수행된 멀티 소스 각각에 해당하는 비디오 스트리밍을 사용자 단말로 제공하는 단계
    를 포함하고,
    상기 비디오 스트리밍을 사용자 단말로 제공하는 단계는,
    상기 멀티 소스 간의 시간 동기화 및 상기 네트워크 상의 시간 동기화가 수행된 비디오 스트리밍을 사용자 단말로 제공하고,
    상기 네트워크 상의 시간 동기화를 수행하는 단계는,
    상기 사용자 단말로부터 단말의 시간 정보(time clock)를 수신하는 단계;
    상기 전송 방식의 차이에 따른 지연(delay)과 상기 단말의 시간 정보에 기초하여 지연 설정 정보를 생성하는 단계; 및
    생성된 상기 지연 설정 정보를 상기 멀티 소스 각각에 삽입하는 단계
    를 포함하는 비디오 스트리밍 제공 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 네트워크 상의 시간 동기화를 수행하는 단계는,
    상기 멀티 소스(multi source) 각각에 해당하는 채널 별 지연(delay)를 측정하는 단계
    를 포함하는 비디오 스트리밍 제공 방법.
  5. 제4항에 있어서,
    상기 네트워크 상의 시간 동기화를 수행하는 단계는,
    상기 전송 방식에 따라 서로 다른 상기 채널 별 지연(delay)에 기초하여 상기 멀티 소스 간의 시간 동기화를 수행하는 것
    을 특징으로 하는 비디오 스트리밍 제공 방법.
  6. 정보 등록부, 소스 동기화부 및 스트리밍 제공부를 포함하는 비디오 스트리밍 제공 시스템이 수행하는 비디오 스트리밍 제공 방법에 있어서,
    상기 정보 등록부에서, 서로 다른 복수의 촬영 장치들 각각의 하드웨어 특성 차이 및 코덱(codec) 특성 차이에 따른 촬영 장치 별 지연 정보와 인코딩 정보를 등록받는 단계;
    상기 소스 동기화부에서, 상기 지연 정보 및 인코딩 정보에 기초하여, 상기 서로 다른 복수의 촬영 장치들에서 촬영된 영상을 기반으로 하는 멀티 소스(multi source) 간의 시간 동기화를 수행하는 단계; 및
    상기 스트리밍 제공부에서, 상기 시간 동기화가 수행된 멀티 소스 각각에 해당하는 비디오 스트리밍을 사용자 단말로 제공하는 단계
    를 포함하고,
    상기 촬영 장치 별 지연 정보와 인코딩 정보를 등록받는 단계는,
    상기 촬영 장치 별로 기정의된 하드웨어 스펙(spec) 정보 및 해당 촬영 장치의 제품 모델 정보를 포함하는 디바이스 프로파일(device profile) 정보 또는 메니페스트(Manifest) 정보를 등록받고,
    상기 하드웨어 스펙(spec) 정보는, 상기 지연 정보(admin define delay value), 프로세서/칩셋(processer/chipset) 정보, OS 정보, 및 출력 인터페이스 정보를 포함하는 것
    을 특징으로 하는 비디오 스트리밍 제공 방법.
  7. 정보 등록부, 소스 동기화부 및 스트리밍 제공부를 포함하는 비디오 스트리밍 제공 시스템이 수행하는 비디오 스트리밍 제공 방법에 있어서,
    상기 정보 등록부에서, 서로 다른 복수의 촬영 장치들 각각의 하드웨어 특성 차이 및 코덱(codec) 특성 차이에 따른 촬영 장치 별 지연 정보와 인코딩 정보를 등록받는 단계;
    상기 소스 동기화부에서, 상기 지연 정보 및 인코딩 정보에 기초하여, 상기 서로 다른 복수의 촬영 장치들에서 촬영된 영상을 기반으로 하는 멀티 소스(multi source) 간의 시간 동기화를 수행하는 단계; 및
    상기 스트리밍 제공부에서, 상기 시간 동기화가 수행된 멀티 소스 각각에 해당하는 비디오 스트리밍을 사용자 단말로 제공하는 단계
    상기 멀티 소스(multi source) 간의 시간 동기화를 수행하는 단계는,
    상기 멀티 소스 각각을 업로드하는 장치로부터 비디오 스트리밍 제공 시스템까지 상기 멀티 소스 각각이 업로드되는 지연 시간의 차이와 기정의된 프레임율(frame rate)에 기초하여 해당 촬영 장치관련 프레임 제어율(frame control rate)을 설정하는 단계; 및
    상기 프레임 제어율을 기반으로 해당 촬영 장치로부터 수신된 영상의 프레임을 스킵(skip)하고 패킷화(packetizing)하는 단계
    를 포함하는 비디오 스트리밍 제공 방법.
  8. 서로 다른 복수의 촬영 장치들 각각의 하드웨어 특성 차이 및 코덱(codec) 특성 차이에 따른 촬영 장치 별 지연 정보와 인코딩 정보를 등록받는 정보 등록부;
    상기 지연 정보 및 인코딩 정보에 기초하여, 상기 서로 다른 복수의 촬영 장치들에서 촬영된 영상을 기반으로 하는 멀티 소스(multi source) 간의 시간 동기화를 수행하는 소스 동기화부; 및
    상기 시간 동기화가 수행된 멀티 소스 각각에 해당하는 비디오 스트리밍을 사용자 단말로 제공하는 스트리밍 제공부
    를 포함하고,
    상기 소스 동기화부는,
    상기 멀티 소스 각각을 업로드하는 장치로부터 비디오 스트리밍 제공 시스템까지 상기 멀티 소스 각각이 업로드되는 지연 시간의 차이와 기정의된 프레임율(frame rate)에 기초하여 해당 촬영 장치관련 프레임 제어율(frame control rate)을 설정하고, 상기 프레임 제어율을 기반으로 해당 촬영 장치로부터 수신된 영상의 프레임을 스킵(skip)하고 패킷화(packetizing)하는 것
    을 특징으로 하는 비디오 스트리밍 제공 시스템.
  9. 삭제
  10. 서로 다른 복수의 촬영 장치들 각각의 하드웨어 특성 차이 및 코덱(codec) 특성 차이에 따른 촬영 장치 별 지연 정보와 인코딩 정보를 등록받는 정보 등록부;
    상기 지연 정보 및 인코딩 정보에 기초하여, 상기 서로 다른 복수의 촬영 장치들에서 촬영된 영상을 기반으로 하는 멀티 소스(multi source) 간의 시간 동기화를 수행하는 소스 동기화부;
    상기 멀티 소스 각각에 해당하는 비디오 스트리밍을 전송하고자 하는 전송 방식의 차이에 따른 지연(delay)에 기초하여 네트워크 상의 시간 동기화를 수행하는 네트워크 딜레이 동기화부; 및
    상기 시간 동기화가 수행된 멀티 소스 각각에 해당하는 비디오 스트리밍을 사용자 단말로 제공하는 스트리밍 제공부
    를 포함하고,
    상기 스트리밍 제공부는,
    상기 멀티 소스 간의 시간 동기화 및 상기 네트워크 상의 시간 동기화가 수행된 비디오 스트리밍을 사용자 단말로 제공하고,
    상기 네트워크 딜레이 동기화부는,
    상기 사용자 단말로부터 단말의 시간 정보(time clock)를 수신하고, 상기 전송 방식의 차이에 따른 지연(delay)과 상기 단말의 시간 정보에 기초하여 지연 설정 정보를 생성하고, 생성된 상기 지연 설정 정보를 상기 멀티 소스 각각에 삽입함으로써 상기 네트워크 상의 시간 동기화를 수행하는 것
    을 특징으로 하는 비디오 스트리밍 제공 시스템.
KR1020170015320A 2017-02-03 2017-02-03 비디오 스트리밍 제공 방법 및 시스템 KR101748382B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170015320A KR101748382B1 (ko) 2017-02-03 2017-02-03 비디오 스트리밍 제공 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170015320A KR101748382B1 (ko) 2017-02-03 2017-02-03 비디오 스트리밍 제공 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR101748382B1 true KR101748382B1 (ko) 2017-06-16

Family

ID=59278634

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170015320A KR101748382B1 (ko) 2017-02-03 2017-02-03 비디오 스트리밍 제공 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101748382B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210103271A (ko) 2020-02-13 2021-08-23 에스케이플래닛 주식회사 스킵 프레임을 이용한 클라우드 스트리밍 서비스 제공 방법 및 이를 위한 장치
KR20220057800A (ko) * 2020-10-30 2022-05-09 주식회사 큐버 멀티미디어 디바이스의 영상재생 동기화 기반의 멀티스크린 디스플레이 시스템
KR102525348B1 (ko) * 2023-02-02 2023-04-25 주식회사 벨라도 사용자 참여형 콘텐츠의 시청이 가능한 상호작용 플랫폼 서비스 제공 방법, 장치 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100889836B1 (ko) * 2007-11-15 2009-03-20 한양대학교 산학협력단 데이터 방송의 동기화 기능을 갖는 방송 수신기 및 이를이용한 데이터 방송의 동기화 방법
JP2015510325A (ja) * 2012-01-19 2015-04-02 ヴィド スケール インコーポレイテッド 観視条件への適応をサポートするビデオ配信のための方法およびシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100889836B1 (ko) * 2007-11-15 2009-03-20 한양대학교 산학협력단 데이터 방송의 동기화 기능을 갖는 방송 수신기 및 이를이용한 데이터 방송의 동기화 방법
JP2015510325A (ja) * 2012-01-19 2015-04-02 ヴィド スケール インコーポレイテッド 観視条件への適応をサポートするビデオ配信のための方法およびシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210103271A (ko) 2020-02-13 2021-08-23 에스케이플래닛 주식회사 스킵 프레임을 이용한 클라우드 스트리밍 서비스 제공 방법 및 이를 위한 장치
KR20220057800A (ko) * 2020-10-30 2022-05-09 주식회사 큐버 멀티미디어 디바이스의 영상재생 동기화 기반의 멀티스크린 디스플레이 시스템
KR102408477B1 (ko) * 2020-10-30 2022-06-13 주식회사 큐버 멀티미디어 디바이스의 영상재생 동기화 기반의 멀티스크린 디스플레이 시스템
KR102525348B1 (ko) * 2023-02-02 2023-04-25 주식회사 벨라도 사용자 참여형 콘텐츠의 시청이 가능한 상호작용 플랫폼 서비스 제공 방법, 장치 및 시스템

Similar Documents

Publication Publication Date Title
US20200288182A1 (en) Transmission device, transmission method, receiving device, and receiving method for rendering a multi-image-arrangement distribution service
US10341672B2 (en) Method and system for media synchronization
KR101934200B1 (ko) 미디어 동기화 방법 및 시스템
US11758209B2 (en) Video distribution synchronization
US11201903B1 (en) Time synchronization between live video streaming and live metadata
EP2690876A2 (en) Heterogeneous network-based linked broadcast content transmitting/receiving device and method
EP2645727A2 (en) Reception device for receiving a plurality of real-time transfer streams, transmission device for transmitting same, and method for playing multimedia content
EP2866451A1 (en) Method and apparatus for IP video signal synchronization
US10334293B2 (en) Multiplexing apparatus, receiving apparatus, multiplexing method, and delay adjustment method
KR101748382B1 (ko) 비디오 스트리밍 제공 방법 및 시스템
US20180077444A1 (en) System and Method for Operating a Transmission Network
WO2017114821A1 (en) Video streams
JP7365212B2 (ja) 動画再生装置、動画再生システム、および動画再生方法
JP6193569B2 (ja) 受信装置、受信方法、及びプログラム、撮像装置、撮像方法、及びプログラム、送信装置、送信方法、及びプログラム
CN103828383A (zh) 将内容保存到服务器上的文件中的方法及相应的设备
JP6400163B2 (ja) 受信装置、受信方法、送信装置、送信方法、及びプログラム
van Deventer et al. Media synchronisation for television services through HbbTV
KR102211539B1 (ko) 버퍼모델을 따르는 스트리밍을 위한 부가 정보 생성 방법 및 장치
KR101810883B1 (ko) 라이브 스트리밍 시스템 및 그의 스트리밍 클라이언트
Montagud et al. MediaSync
CN117157986A (zh) 一种提供时间同步多流数据传输的方法
Köbel et al. Project Acronym HBB-NEXT
KR20150045869A (ko) 전송 스트림 시스템 타겟 디코더 모델에 기초한 하이브리드 서비스를 제공하는 영상 수신 장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200219

Year of fee payment: 4