KR20200010926A - 실시간 라이브 영상과 이벤트의 동기화를 위한 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체 - Google Patents

실시간 라이브 영상과 이벤트의 동기화를 위한 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR20200010926A
KR20200010926A KR1020180085574A KR20180085574A KR20200010926A KR 20200010926 A KR20200010926 A KR 20200010926A KR 1020180085574 A KR1020180085574 A KR 1020180085574A KR 20180085574 A KR20180085574 A KR 20180085574A KR 20200010926 A KR20200010926 A KR 20200010926A
Authority
KR
South Korea
Prior art keywords
data
time
server
event
outputting
Prior art date
Application number
KR1020180085574A
Other languages
English (en)
Other versions
KR102123593B1 (ko
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 KR1020180085574A priority Critical patent/KR102123593B1/ko
Priority to US16/518,040 priority patent/US20200029114A1/en
Priority to JP2019135251A priority patent/JP6887601B2/ja
Publication of KR20200010926A publication Critical patent/KR20200010926A/ko
Application granted granted Critical
Publication of KR102123593B1 publication Critical patent/KR102123593B1/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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43074Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of additional data with content streams on the same device, e.g. of EPG data or interactive icon with a TV program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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/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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/475End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
    • H04N21/4758End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for providing answers, e.g. voting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

데이터 동기화 방법은, 서버로부터 실시간 스트리밍으로 제1 데이터와 상기 제1 데이터와 관련된 제2 데이터를 수신하는 단계; 및 상기 제1 데이터에 포함된 타임스탬프를 이용하여 상기 제1 데이터와 상기 제2 데이터를 동기화하여 출력하는 단계를 포함할 수 있다.

Description

실시간 라이브 영상과 이벤트의 동기화를 위한 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체{METHOD, SYSTEM, AND NON-TRANSITORY COMPUTER READABLE RECORD MEDIUM FOR SYNCHRONIZATION OF REAL-TIME LIVE VIDEO AND INFORMATION DATA}
아래의 설명은 실시간 라이브 영상과 이벤트의 정확한 동기화를 위한 기술에 관한 것이다.
스마트폰(smart phone)과 같은 이동 단말의 성능 향상 및 이동통신 기술의 발달에 따라 언제 어디서나 단말을 통해 컨텐츠 제공자(CP; Contents Provider)가 제공하는 웹 서버에 접속해 사진, 비디오, 오디오, 어플리케이션 등과 같은 다양한 컨텐츠를 이용할 수 있다.
최근의 인터넷 환경에서 다양한 영상 서비스가 등장하면서 고화질 라이브 방송에 대한 수요가 점점 증가하고 있으며, 이동 단말에서의 실시간 라이브 스트리밍(Live Streaming) 서비스에 대한 요구가 폭발적으로 증가하고 있다.
예컨대, 한국등록특허공보 제10-1821145호(등록일 2018년 01월 17일)에는 라이브 스트리밍 방식에 의해 실시간으로 촬영된 복수의 촬영 영상을 병합한 출력 영상을 제공하는 기술이 개시되어 있다.
실시간 라이브 영상의 정해진 타이밍에 이벤트 데이터를 제공할 수 있는 정확한 동기화를 지원할 수 있다.
컴퓨터 시스템에서 실행되는 데이터 동기화 방법에 있어서, 상기 컴퓨터 시스템은 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 데이터 동기화 방법은, 상기 적어도 하나의 프로세서에 의해, 서버로부터 실시간 스트리밍으로 제1 데이터와 상기 제1 데이터와 관련된 제2 데이터를 수신하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 상기 제1 데이터에 포함된 타임스탬프를 이용하여 상기 제1 데이터와 상기 제2 데이터를 동기화하여 출력하는 단계를 포함하는 데이터 동기화 방법을 제공한다.
일 측면에 따르면, 상기 타임스탬프는 상기 제1 데이터에 정의된 시간 메타데이터(timed metadata)에 절대 시간으로 삽입되고, 상기 제2 데이터에는 상기 제2 데이터를 출력하기 위한 출력 시간(pop time)으로 상기 타임스탬프가 설정될 수 있다.
다른 측면에 따르면, 상기 출력 시간은 상기 제1 데이터의 지연 시간에 따른 보상 값이 반영되어 설정될 수 있다.
또 다른 측면에 따르면, 상기 데이터 동기화 방법은, 상기 적어도 하나의 프로세서에 의해, 상기 서버로부터 상기 제1 데이터와 상기 제2 데이터의 동기화를 위해 기준 시간이 되는 절대 시간을 수신하여 상기 서버와 시간 동기화를 수행하는 단계를 더 포함할 수 있다.
또 다른 측면에 따르면, 상기 제1 데이터와 상기 제2 데이터를 동기화하여 출력하는 단계는, 상기 제1 데이터가 수신된 시점과 상기 제2 데이터가 수신된 시점 간의 시간 차가 임계 시간에 도달하면 상기 제1 데이터와 무관하게 상기 제2 데이터를 출력하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 임계 시간은 상기 제2 데이터에 상기 제2 데이터를 출력하기 위한 최종 기한(due time)으로 설정될 수 있다.
또 다른 측면에 따르면, 상기 제1 데이터와 상기 제2 데이터를 동기화하여 출력하는 단계는, 상기 서버로 상기 제1 데이터에 대한 동기화를 주기적으로 요청하여 요청에 대한 응답으로 리프레시 여부를 수신하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 서버에서는 상기 서버에서 송출한 제1 데이터와 상기 수신된 제1 데이터 간의 시간 차가 임계 시간을 초과하는 경우 리프레시를 요청할 수 있다.
컴퓨터 시스템에서 실행되는 데이터 동기화 방법에 있어서, 상기 컴퓨터 시스템은 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 데이터 동기화 방법은, 상기 적어도 하나의 프로세서에 의해, 서버로부터 실시간 스트리밍으로 영상 스트림과 상기 영상 스트림과 관련된 이벤트 데이터를 수신하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 상기 영상 스트림에 포함된 타임스탬프를 이용하여 상기 영상 스트림과 상기 이벤트 데이터를 동기화하여 출력하는 단계를 포함하는 데이터 동기화 방법을 제공한다.
일 측면에 따르면, 상기 서버로부터 상기 영상 스트림과 상기 이벤트 데이터를 다운로드 받는 풀링(pulling) 구조의 네트워크 환경에서, 상기 영상 스트림과 상기 이벤트 데이터를 동기화하여 출력하는 단계는, 상기 영상 스트림의 재생이 상기 타임스탬프에 도달할 때 상기 이벤트 데이터를 포함하는 이벤트 레이어를 출력할 수 있다.
다른 측면에 따르면, 상기 타임스탬프는 상기 영상 스트림에 정의된 시간 메타데이터에 절대 시간으로 삽입되고, 상기 이벤트 데이터에는 상기 이벤트 데이터를 출력하기 위한 출력 시간으로 상기 타임스탬프가 설정될 수 있다.
또 다른 측면에 따르면, 상기 영상 스트림과 상기 이벤트 데이터를 동기화하여 출력하는 단계는, 상기 영상 스트림이 수신된 시점과 상기 이벤트 데이터가 수신된 시점 간의 시간 차가 상기 이벤트 데이터에 설정된 임계 시간에 도달하면 상기 영상 스트림과 무관하게 상기 이벤트 데이터를 출력하는 단계를 포함할 수 있다.
상기 데이터 동기화 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 비-일시적인 컴퓨터 판독가능한 기록 매체를 제공한다.
컴퓨터 시스템에 있어서, 메모리; 및 상기 메모리와 연결되고, 상기 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 서버로부터 실시간 스트리밍으로 제1 데이터와 상기 제1 데이터와 관련된 제2 데이터를 수신하는 과정; 및 상기 제2 데이터에 포함된 타임스탬프를 이용하여 상기 제1 데이터와 상기 제2 데이터를 동기화하여 출력하는 과정을 처리하는 컴퓨터 시스템을 제공한다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 라이브 방송 서비스를 위한 전체 시스템 환경의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 라이브 방송 서비스 과정을 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 있어서, 방송 영상에 이벤트 레이어를 출력하는 예시 화면을 도시한 것이다.
도 6은 본 발명의 일실시예에 있어서, 이벤트 데이터 구조의 예시를 도시한 것이다.
도 7은 본 발명의 일실시예에 있어서, 영상 스트림 데이터 구조의 예시를 도시한 것이다.
도 8 내지 도 10은 본 발명의 일실시예에 있어서, 영상 스트림과 이벤트의 동기화 과정을 도시한 순서도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명의 실시예들은 실시간 라이브 영상과 이벤트의 정확한 동기화를 위한 기술에 관한 것이다.
본 명세서에서 구체적으로 개시되는 것들을 포함하는 실시예들은 실시간 라이브 영상과 이벤트 제공 타이밍의 정확한 동기화를 수행할 수 있고, 이를 통해 서비스 품질, 정확성, 효율성, 편의성 등의 측면에 있어서 상당한 장점들을 달성할 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다.
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 시스템으로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC, 게임 콘솔(game console), 웨어러블 디바이스(wearable device), IoT(internet of things) 디바이스, VR(virtual reality) 디바이스, AR(augmented reality) 디바이스 등이 있다. 일례로 도 1에서는 전자 기기(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 전자 기기(110)는 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 물리적인 컴퓨터 시스템들 중 하나를 의미할 수 있다.
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망, 위성망 등)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 제1 서비스를 제공하는 시스템일 수 있으며, 서버(160) 역시 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 제2 서비스를 제공하는 시스템일 수 있다. 보다 구체적인 예로, 서버(150)는 복수의 전자 기기들(110, 120, 130, 140)에 설치되어 구동되는 컴퓨터 프로그램으로서의 어플리케이션을 통해, 해당 어플리케이션이 목적하는 서비스(일례로, 라이브 방송 서비스 등)를 제1 서비스로서 복수의 전자 기기들(110, 120, 130, 140)로 제공할 수 있다. 다른 예로, 서버(160)는 상술한 어플리케이션의 설치 및 구동을 위한 파일을 복수의 전자 기기들(110, 120, 130, 140)로 배포하는 서비스를 제2 서비스로서 제공할 수 있다.
도 2는 본 발명의 일실시예에 있어서 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다. 도 2에서는 전자 기기에 대한 예로서 전자 기기(110), 그리고 서버(150)의 내부 구성을 설명한다. 또한, 다른 전자 기기들(120, 130, 140)이나 서버(160) 역시 상술한 전자 기기(110) 또는 서버(150)와 동일한 또는 유사한 내부 구성을 가질 수 있다.
전자 기기(110)와 서버(150)는 메모리(211, 221), 프로세서(212, 222), 통신 모듈(213, 223) 그리고 입출력 인터페이스(214, 224)를 포함할 수 있다. 메모리(211, 221)는 비-일시적인 컴퓨터 판독가능한 기록매체로서, RAM(random access memory), ROM(read only memory), 디스크 드라이브, SSD(solid state drive), 플래시 메모리(flash memory) 등과 같은 비소멸성 대용량 저장 장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM, SSD, 플래시 메모리, 디스크 드라이브 등과 같은 비소멸성 대용량 저장 장치는 메모리(211, 221)와는 구분되는 별도의 영구 저장 장치로서 전자 기기(110)나 서버(150)에 포함될 수도 있다. 또한, 메모리(211, 221)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 전자 기기(110)에 설치되어 구동되는 브라우저나 특정 서비스의 제공을 위해 전자 기기(110)에 설치된 어플리케이션 등을 위한 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(211, 221)와는 별도의 컴퓨터에서 판독가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독가능한 기록매체가 아닌 통신 모듈(213, 223)을 통해 메모리(211, 221)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템(일례로, 상술한 서버(160))이 네트워크(170)를 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램(일례로 상술한 어플리케이션)에 기반하여 메모리(211, 221)에 로딩될 수 있다.
프로세서(212, 222)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(211, 221) 또는 통신 모듈(213, 223)에 의해 프로세서(212, 222)로 제공될 수 있다. 예를 들어 프로세서(212, 222)는 메모리(211, 221)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 모듈(213, 223)은 네트워크(170)를 통해 전자 기기(110)와 서버(150)가 서로 통신하기 위한 기능을 제공할 수 있으며, 전자 기기(110) 및/또는 서버(150)가 다른 전자 기기(일례로 전자 기기(120)) 또는 다른 서버(일례로 서버(160))와 통신하기 위한 기능을 제공할 수 있다. 일례로, 전자 기기(110)의 프로세서(212)가 메모리(211)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이 통신 모듈(213)의 제어에 따라 네트워크(170)를 통해 서버(150)로 전달될 수 있다. 역으로, 서버(150)의 프로세서(222)의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 통신 모듈(223)과 네트워크(170)를 거쳐 전자 기기(110)의 통신 모듈(213)을 통해 전자 기기(110)로 수신될 수 있다. 예를 들어 통신 모듈(213)을 통해 수신된 서버(150)의 제어 신호나 명령, 컨텐츠, 파일 등은 프로세서(212)나 메모리(211)로 전달될 수 있고, 컨텐츠나 파일 등은 전자 기기(110)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.
입출력 인터페이스(214)는 입출력 장치(215)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드, 마우스, 마이크로폰, 카메라 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커, 햅틱 피드백 디바이스(haptic feedback device) 등과 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(214)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(215)는 전자 기기(110)와 하나의 장치로 구성될 수도 있다. 또한, 서버(150)의 입출력 인터페이스(224)는 서버(150)와 연결되거나 서버(150)가 포함할 수 있는 입력 또는 출력을 위한 장치(미도시)와의 인터페이스를 위한 수단일 수 있다. 보다 구체적인 예로, 전자 기기(110)의 프로세서(212)가 메모리(211)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 서버(150)나 전자 기기(120)가 제공하는 데이터를 이용하여 구성되는 서비스 화면이나 컨텐츠가 입출력 인터페이스(214)를 통해 디스플레이에 표시될 수 있다.
또한, 다른 실시예들에서 전자 기기(110) 및 서버(150)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 전자 기기(110)는 상술한 입출력 장치(215) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다. 보다 구체적인 예로, 전자 기기(110)가 스마트폰인 경우, 일반적으로 스마트폰이 포함하고 있는 가속도 센서나 자이로 센서, 카메라 모듈, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 전자 기기(110)에 더 포함되도록 구현될 수 있다.
도 3은 본 발명의 일실시예에 있어서, 라이브 방송 서비스를 위한 전체 시스템 환경의 예를 도시한 도면이다.
도 3은 라이브 방송 서버(310)와 영상 송출 서버(320) 및 이벤트 송출 서버(330)를 포함하는 방송 서비스 시스템(30), 그리고 전자 기기(300)를 도시하고 있다. 라이브 방송 서버(310), 영상 송출 서버(320), 이벤트 송출 서버(330) 각각은 도 1 및 도 2를 통해 설명한 서버(150)와 동일한 또는 유사한 내부 구성요소들을 갖는 장치일 수 있다. 또한, 전자 기기(300)는 도 1 및 도 2를 통해 설명한 전자 기기(110)와 동일한 또는 유사한 내 부 구성요소들을 갖는 장치일 수 있다. 도 3에서는 라이브 방송 서버(310), 영상 송출 서버(320), 이벤트 송출 서버(330)를 각각 하나씩 도시하고 있으나, 필요에 따라 복수의 서버 그룹의 형태로 구현될 수도 있다. 예를 들어, 영상 송출 서버(320)와 이벤트 송출 서버(330)는 동시 접속자수와 같은 성능 이슈에 따라 요구되는 서버의 수가 결정될 수 있다.
전자 기기(300)에 탑재된 클라이언트 어플리케이션(301)은 네트워크(170)를 통하여 방송 서비스 시스템(30)의 라이브 방송 서버(310)와 영상 송출 서버(320) 및 이벤트 송출 서버(330)와 연결된다. 라이브 방송 서버(310)는 내부망(미도시) 또는 전용망(미도시)을 통해 영상 송출 서버(320) 및 이벤트 송출 서버(330)와 연결되어 상호 연동하여 동작한다. 영상 송출 서버(320) 및 이벤트 송출 서버(330)는 라이브 방송 서버(310)가 제공하는 데이터를 수신하여 전자 기기(300)로 전달하는 역할을 한다.
클라이언트 어플리케이션(301)은 오픈 API(Open Application Programming Interface)를 이용하여 제작된 어플리케이션으로, 소프트웨어이거나 또는 하드웨어와 결합된 형태일 수 있다. 클라이언트 어플리케이션(301)은 라이브 방송 서버(310) 또는 응용 프로그램 개발자(미도시)에 의해 제작 및 배포되며 라이브 방송 서버(310)가 제공하는 디지털 컨텐츠를 활용하는 어플리케이션을 의미한다. 이때, 디지털 컨텐츠는 라이브 방송 서비스를 위해 디지털 포맷으로 제작 또는 가공한 영상 컨텐츠로서, 라이브(Live) 동영상, VOD 컨텐츠 등을 포함할 수 있다.
라이브 방송 서버(310)는 영상 컨텐츠를 제작 및 공급하는데, 예컨대 라이브 방송 서비스를 제공하는 스튜디오나 외주 제작사 등이 될 수 있다. 이러한 라이브 방송 서버(310)는 제작된 영상 컨텐츠를 영상 송출 서버(320)로 제공하고, 영상 컨텐츠와 관련된 이벤트 데이터를 이벤트 송출 서버(330)로 제공한다. 이때, 제공 경로는 온라인 상에서 이루어질 수 있지만, 오프라인 상에서 이루어질 수도 있다. 라이브 방송 서버(310)와 영상 송출 서버(320) 및 이벤트 송출 서버(330)는 하나의 사업자에 의해 운용되거나, 혹은 서로 다른 별개의 사업자에 의해 운용될 수 있다.
이하에서는 라이브 퀴즈쇼를 라이브 방송 서비스의 대표적인 예로 하여 구체적인 실시예를 설명하기로 한다.
라이브 방송 서버(310)는 라이브 퀴즈쇼를 위한 방송 영상을 송출하는 것으로, 방송 영상을 영상 송출 서버(320)로 제공하고, 방송 영상과 연계된 이벤트 데이터를 이벤트 송출 서버(330)로 제공한다. 이때, 이벤트 데이터는 방송 영상과 관련된 정보 컨텐츠를 포괄하여 의미할 수 있으며, 예를 들어 퀴즈(질문과 선택 항목), 정답, 힌트, 중간 광고 등을 포함할 수 있고, 이외에도 영상에 동기화되는 이벤트라면 모두 적용 가능하다.
클라이언트 어플리케이션(301)은 전자 기기(300)의 메모리(예를 들어, 메모리(211) 등)에 저장되며, 방송 서비스 시스템(30)과 연동하여 고유의 서비스인 라이브 방송 서비스를 제공하는 기능을 구현할 수 있다.
영상 송출 서버(320)는 라이브 스트림 데이터를 제공하는 인코더(미도시)를 포함하는 미디어 소스 장치일 수 있다. 영상 송출 서버(320)는 라이브 방송 서버(310)에서 제공받은 방송 영상을 라이브 스트림 데이터로서, 즉 실시간 라이브 영상을 전자 기기(300)로 제공할 수 있다. 영상 송출 서버(320)에서 제공하는 실시간 라이브 영상이 클라이언트 어플리케이션(301)을 통해 전자 기기(300)에서 재생되어 전자 기기(300)의 사용자에게 제공될 수 있다.
도 4는 본 발명의 일실시예에 있어서, 라이브 퀴즈쇼의 서비스 과정을 도시한 흐름도이다. 클라이언트(400)는 클라이언트 어플리케이션(301)이 탑재된 전자 기기(300)를 의미한다.
클라이언트(400)는 이벤트 송출 서버(330)를 통해 아이디와 패스워드를 이용한 로그인 방식 등으로 사용자 인증을 수행한다(S401). 다시 말해, 클라이언트(400)가 이벤트 송출 서버(330)로부터 서비스 이용 권한을 부여 받아 클라이언트(400)와 방송 서비스 시스템(30) 간의 연결이 수립될 수 있다. 클라이언트(400)가 이벤트 송출 서버(330)로부터 서비스 이용 권한을 부여 받는 것으로 설명하고, 있으나, 이에 한정되지 않으며 라이브 방송 서버(310) 또는 영상 송출 서버(320)를 통한 인증 방식도 구현 가능하다.
클라이언트(400)의 사용자 인증이 성공한 경우 영상 송출 서버(320)는 라이브 방송 서버(310)로부터 제공 받은 방송 영상을 실시간 라이브 스트리밍으로 클라이언트(400)로 전송한다(S402). 방송 영상의 실시간 라이브 스트리밍을 위한 전송 프로토콜로서 HTTP 라이브 스트리밍(HLS, HTTP Live Streaming), 실시간 메시징 프로토콜(RTMP, Real Time Messaging Protocol), 실시간 스트리밍 프로토콜(RTSP, Real-time Streaming Protocol), 실시간 전송 프로토콜(RTP, Real-time Transport Protocol), 실시간 전송 제어 프로토콜(RTCP, Real-time Transport Control Protocol) 등을 사용할 수 있다.
이벤트 송출 서버(330)는 라이브 방송 서버(310)로부터 제공 받은 방송 영상에 연계된 이벤트 데이터를 클라이언트(400)로 전송하게 되는데(S403), 이때 클라이언트(400)에서는 재생되는 방송 영상과의 동기화를 통해 방송 영상에 맞추어 이벤트 데이터를 출력한다.
클라이언트(400)에서는 영상 송출 서버(320)에서 실시간 라이브 스트리밍으로 제공하는 방송 영상이 재생될 수 있고, 방송 영상이 재생되는 과정에서 동기화를 통해 정해진 타이밍에 이벤트 송출 서버(330)에서 제공하는 이벤트 데이터를 포함하는 이벤트 레이어가 방송 영상이 재생되는 화면 상에 출력될 수 있다. 예를 들어, 도 5를 참조하면 클라이언트(400)는 라이브 퀴즈쇼의 방송 영상이 재생되는 영상 화면(500) 상에 퀴즈의 질문과 선택지를 포함하는 이벤트 레이어(501)를 팝업하여 표시할 수 있다.
라이브 퀴즈쇼를 서비스 하기 위해 실시간 라이브 영상을 재생하는 중에 퀴즈, 정답, 힌트 등의 이벤트 데이터를 노출할 때 정해진 타이밍에 이벤트 레이어를 정확하게 동기화하는 것이 필요하다.
이하에서는 실시간 라이브 영상과 이벤트의 동기화를 위한 방법 및 시스템의 구체적인 실시예를 설명하기로 한다.
도 6은 이벤트 데이터(600)의 예시를 도시한 것이다.
도 6에 도시한 바와 같이 이벤트가 퀴즈라고 가정할 때, 이벤트 데이터(600)는 이벤트 객체로 퀴즈(610)와 이벤트 시간(620)이 포함될 수 있다. 퀴즈(610)는 질문(question)과 선택지(item)로 이루어지고, 이벤트 시간(620)은 이벤트 레이어의 출력과 관련된 시간 정보가 포함될 수 있다. 일례로, 이벤트 시간(620)은 영상에 퀴즈를 출력하는 출력 시간(pop time), 퀴즈 출력이 가능한 최종 기한(due time), 및 퀴즈 출력이 유지되는 출력 유지 시간(pop duration)을 포함할 수 있다.
도 7은 영상 스트림 데이터 구조의 예시를 도시한 것이다.
도 7을 참조하면, 영상 스트림 내부에는 시간 메타데이터(timed metadata)가 정의되어 있다. 영상 스트림 데이터는 전송 프로토콜에 따라 일정 크기의 구간(segment)으로 분할되어 각 구간에 대해 메타데이터 파일이 지정됨에 따라 시간 메타데이터가 정의될 수 있다. 시간 메타데이터에는 각 구간 별로 영상 내 시간 정보를 나타내는 상대 시퀀스(relative sequence)(710)가 포함될 수 있다.
실시간 라이브 영상과 이벤트의 동기화를 위해서는 이벤트 시간(620)이 참조할 수 있는 시간 값이 필요하고, 이때 이벤트 시간(620)을 영상에 정의되어 있는 시간과 비교하게 된다. 참조 시간 값으로 활용하기 위해서는 영상 내 시간 메타데이터에 절대 시간의 정의가 요구되며, 본 발명에서는 시간 메타데이터에 포함된 상대 시퀀스(710)를 참조하여 절대 시간인 타임스탬프(timestamp)(720)로 바꿔줄 수 있다.
영상 스트림 내에 정의된 시간 메타 데이터에 퀴즈 이벤트 레이어를 노출할 시간을 나타내는 타임스탬프(720)를 포함시킬 수 있다. 시간 메타데이터에 포함된 타임스탬프(720)를 이용하는 경우 영상 내 특정 구간이 절대 시간의 어느 시점에 생성된 것인지 식별할 수 있어 정확한 동기화를 통해 퀴즈 이벤트 레이어를 노출할 수 있다.
HLS(HTTP 라이브 스트리밍) 등 서버로부터 데이터를 다운로드 받는 풀링(pulling) 구조의 네트워크 환경에서는 서로 다른 데이터의 절대 시간을 비교함으로써 데이터 간의 동기화를 효율적으로 수행할 수 있다.
도 8은 실시간 라이브 영상과 이벤트의 동기화 과정의 일례를 도시한 순서도이다.
이벤트 송출 서버(330)는 클라이언트(400)와의 연결이 수립되면 클라이언트(400)에서의 기준 시간이 되는 절대 시간을 제공할 수 있다(S801). 클라이언트(400)로 절대 시간을 제공하는 주체는 이벤트 송출 서버(330) 이외에도 라이브 방송 서버(310) 또는 영상 송출 서버(320)에서 제공하는 것 또한 가능하다. 라이브 방송 서버(310), 영상 송출 서버(320), 이벤트 송출 서버(330) 이외에 별도의 타임 서버(미도시)를 통해 유닉스 표준에 의한 절대 시간을 클라이언트(400)로 제공하는 것 또한 가능하다.
클라이언트(400)의 사용자 인증이 성공하면 라이브 방송 서버(310), 영상 송출 서버(320), 이벤트 송출 서버(330)가 클라이언트(400)에 대해 기준 시간을 동기화할 수 있다. 클라이언트(400)는 이벤트 송출 서버(330)에서 제공하는 절대 시간으로 타이머를 실행함으로써 이벤트 송출 서버(330)와의 시간 동기화가 이루어질 수 있다. 따라서, 클라이언트(400)의 환경에 의존하지 않고 클라이언트(400)에 설정된 시간 값과는 무관하게 이벤트 송출 서버(330)와 통일된 시간을 기준으로 실시간 라이브 영상과 이벤트의 동기화를 처리할 수 있다.
시간 동기화가 완료되면 영상 송출 서버(320)는 방송 영상의 영상 스트림을 클라이언트(400)로 전송하고(S802), 이벤트 송출 서버(330)는 방송 영상과 관련된 이벤트 데이터를 클라이언트(400)로 전송한다(S803).
도 8은 방송 영상 중 절대 시간 t1의 구간 재생이 시작되는 시점에 이벤트 레이어를 출력하는 경우를 가정한다.
데이터 특성에 따라 서로 다른 두 데이터의 수신 시점에 시간 차(time gap)가 발생할 수 있다. 다시 말해, 클라이언트(400)에서 영상 스트림을 수신하는 시점과 이벤트 데이터를 수신하는 시점 간에 시간 차(g0)가 발생한다.
이를 해결하기 위해서는 이벤트 출력을 지연시키고 클라이언트(400)에서 t1 시점의 영상이 실제로 재생될 때에 맞춰 이벤트 레이어를 출력시킨다.
일례로, 영상의 t1 시점에 출력하고자 하는 이벤트 데이터의 출력 시간을 t1으로 설정하고(pop time=t1), 영상 재생이 t1에 도달할 때 출력 시간이 t1으로 설정된 이벤트 데이터를 포함하는 이벤트 레이어가 출력된다. 이벤트 레이어의 출력은 해당 이벤트 데이터에 설정된 출력 유지 시간(pop duration) 동안 유지된다.
그리고, 라이브 방송 서버(310)에서 영상 송출 서버(320)로 방송 영상을 송출하는 시간, 영상 송출 서버(320)에서 방송 영상을 트랜스코딩(transcoding)하는 시간 등 필연적으로 소요되는 지연 시간을 감안하여 이벤트 데이터의 출력 시간을 설정할 수 있다. 따라서, 지연 시간에 따른 보상 값(Compensation time)(tc)을 반영하여 이벤트 데이터의 출력 시간을 설정할 수 있다(pop time=t1', t1'=t1+tc).
따라서, 클라이언트(400)는 영상 스트림과 이벤트 데이터에 설정된 절대 시간을 이용하여 방송 영상의 정해진 시간에 이벤트 레이어를 정확하게 동기화하여 출력할 수 있다.
도 9는 실시간 라이브 영상과 이벤트의 동기화 과정의 다른 예를 도시한 순서도이다. 도 9 또한 도 8과 마찬가지로 방송 영상 중 절대 시간 t1의 구간 재생이 시작되는 시점에 이벤트 레이어를 출력하는 경우를 가정한 것이다.
클라이언트(400)는 네트워크 환경에 따라 영상 스트림을 수신하는데 걸리는 시간이 달라지게 되며, 라이브 퀴즈쇼를 이용하는 클라이언트마다 네트워크 환경이 다르기 때문에 영상 스트림을 수신하는 시간이 다를 수 있다.
도 9를 참조하면, 클라이언트(400)는 영상 스트림을 수신하는 시점과 이벤트 데이터를 수신하는 시점 간의 시간 차(g0)를 임계 시간(critical time)에 해당되는 최종 기한(due time)과 비교하여 시간 차(g0)가 최종 기한(due time)을 초과하는 경우 방송 영상의 재생과는 무관하게 출력 시간이 t1으로 설정된 이벤트 데이터를 포함하는 이벤트 레이어를 출력한다. 다시 말해, 클라이언트(400)는 영상 스트림을 수신하는 시점과 이벤트 데이터를 수신하는 시점 간의 시간 차(g0)가 임계 시간(critical time)에 도달하는 시점에 이벤트 레이어를 무조건 출력할 수 있다. 이벤트 레이어의 출력은 해당 이벤트 데이터에 설정된 출력 유지 시간(pop duration) 동안 유지된다.
따라서, 클라이언트(400)는 네트워크 환경에 따라 영상 스트림이 정상적으로 수신되지 않더라도 이벤트 데이터에 설정된 최종 기한(due time)이 되면 이벤트 레이어를 출력할 수 있다.
도 10은 실시간 라이브 영상과 이벤트의 동기화 과정의 또 다른 예를 도시한 순서도이다.
라이브 방송 서버(310)는 영상 송출 서버(320)로 전달되는 영상 스트림이 해당 영상 내 어느 구간에 해당되는지 지속적인 모니터링을 수행할 수 있고, 클라이언트(400)는 라이브 방송 서버(310)로 최근 수신 구간에 대한 정보를 요청하는 라이브 동기화 커맨드를 주기적으로 전달할 수 있다(S1004). 예를 들어, 클라이언트(400)는 영상 송출 서버(320)로부터 영상 스트림을 수신하지 못하는 상황 등에 대비하여 일정 주기마다 라이브 방송 서버(310)로 라이브 동기화를 요청할 수 있다.
라이브 방송 서버(310)는 클라이언트(400)로부터 전달 받은 라이브 동기화 커맨드에 대한 응답으로 리프레시(refresh) 여부를 결정하여 클라이언트(400)로 전달할 수 있다(S1005). 라이브 방송 서버(310)는 송출 중인 방송 영상에 대해 영상 송출 서버(320)로 전달되는 구간과 클라이언트(400)에서 최근 수신한 구간 간의 시간 차가 사전에 설정된 임계 시간(예컨대, 13초)을 초과하는 경우 클라이언트(400)로 리프레시를 요청할 수 있다. 리프레시 여부를 결정하는 기준이 되는 임계 시간은 서비스 특성(예컨대, 다음 퀴즈 노출 시간 등)을 고려하여 결정될 수 있다.
클라이언트(400)는 라이브 방송 서버(310)의 리프레시 요청에 따라 이전에 수신된 데이터들을 버리고 도 8을 통해 설명한 상기한 과정(S801~803)을 다시 수행할 수 있다.
이와 같이, 본 발명의 실시예들에 따르면, 클라이언트(400)는 라이브 퀴즈쇼의 방송 영상을 재생하는 도중 이벤트 레이어를 노출할 때 영상 내 타임스탬프가 삽입된 구간이 재생되는 시점에 이벤트 레이어를 정확하게 동기화하여 노출할 수 있다.
상기에서는 실시간 라이브 영상과 이벤트 데이터의 동기화를 설명하고 있으나, 이러한 것으로만 한정되지 않으며, 서로 다른 복수 개의 영상 간의 동기화는 물론이고 트랜스코딩 등으로 인해 데이터 도달 시간이 서로 다른 데이터(예를 들어, 제1 데이터 및 제1 데이터와 관련된 제2 데이터)를 같은 시간에 맞춰 출력해야 하는 경우라면 모두 적용 대상이 될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, 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) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 컴퓨터 시스템에서 실행되는 데이터 동기화 방법에 있어서,
    상기 컴퓨터 시스템은 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,
    상기 데이터 동기화 방법은,
    상기 적어도 하나의 프로세서에 의해, 서버로부터 실시간 스트리밍으로 제1 데이터와 상기 제1 데이터와 관련된 제2 데이터를 수신하는 단계; 및
    상기 적어도 하나의 프로세서에 의해, 상기 제1 데이터에 포함된 타임스탬프를 이용하여 상기 제1 데이터와 상기 제2 데이터를 동기화하여 출력하는 단계
    를 포함하는 데이터 동기화 방법.
  2. 제1항에 있어서,
    상기 타임스탬프는 상기 제1 데이터에 정의된 시간 메타데이터(timed metadata)에 절대 시간으로 삽입되고,
    상기 제2 데이터에는 상기 제2 데이터를 출력하기 위한 출력 시간(pop time)으로 상기 타임스탬프가 설정되는 것
    을 특징으로 하는 데이터 동기화 방법.
  3. 제2항에 있어서,
    상기 출력 시간은 상기 제1 데이터의 지연 시간에 따른 보상 값이 반영되어 설정되는 것
    을 특징으로 하는 데이터 동기화 방법.
  4. 제1항에 있어서,
    상기 데이터 동기화 방법은,
    상기 적어도 하나의 프로세서에 의해, 상기 서버로부터 상기 제1 데이터와 상기 제2 데이터의 동기화를 위해 기준 시간이 되는 절대 시간을 수신하여 상기 서버와 시간 동기화를 수행하는 단계
    를 더 포함하는 데이터 동기화 방법.
  5. 제1항에 있어서,
    상기 제1 데이터와 상기 제2 데이터를 동기화하여 출력하는 단계는,
    상기 제1 데이터가 수신된 시점과 상기 제2 데이터가 수신된 시점 간의 시간 차가 임계 시간에 도달하면 상기 제1 데이터와 무관하게 상기 제2 데이터를 출력하는 단계
    를 포함하는 데이터 동기화 방법.
  6. 제5항에 있어서,
    상기 임계 시간은 상기 제2 데이터에 상기 제2 데이터를 출력하기 위한 최종 기한(due time)으로 설정되는 것
    을 특징으로 하는 데이터 동기화 방법.
  7. 제1항에 있어서,
    상기 제1 데이터와 상기 제2 데이터를 동기화하여 출력하는 단계는,
    상기 서버로 상기 제1 데이터에 대한 동기화를 주기적으로 요청하여 요청에 대한 응답으로 리프레시 여부를 수신하는 단계
    를 포함하는 데이터 동기화 방법.
  8. 제7항에 있어서,
    상기 서버에서는 상기 서버에서 송출한 제1 데이터와 상기 수신된 제1 데이터 간의 시간 차가 임계 시간을 초과하는 경우 리프레시를 요청하는 것
    을 특징으로 하는 데이터 동기화 방법.
  9. 컴퓨터 시스템에서 실행되는 데이터 동기화 방법에 있어서,
    상기 컴퓨터 시스템은 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,
    상기 데이터 동기화 방법은,
    상기 적어도 하나의 프로세서에 의해, 서버로부터 실시간 스트리밍으로 영상 스트림과 상기 영상 스트림과 관련된 이벤트 데이터를 수신하는 단계; 및
    상기 적어도 하나의 프로세서에 의해, 상기 영상 스트림에 포함된 타임스탬프를 이용하여 상기 영상 스트림과 상기 이벤트 데이터를 동기화하여 출력하는 단계
    를 포함하는 데이터 동기화 방법.
  10. 제9항에 있어서,
    상기 서버로부터 상기 영상 스트림과 상기 이벤트 데이터를 다운로드 받는 풀링(pulling) 구조의 네트워크 환경에서,
    상기 영상 스트림과 상기 이벤트 데이터를 동기화하여 출력하는 단계는,
    상기 영상 스트림의 재생이 상기 타임스탬프에 도달할 때 상기 이벤트 데이터를 포함하는 이벤트 레이어를 출력하는 것
    을 특징으로 하는 데이터 동기화 방법.
  11. 제9항에 있어서,
    상기 타임스탬프는 상기 영상 스트림에 정의된 시간 메타데이터에 절대 시간으로 삽입되고,
    상기 이벤트 데이터에는 상기 이벤트 데이터를 출력하기 위한 출력 시간으로 상기 타임스탬프가 설정되는 것
    을 특징으로 하는 데이터 동기화 방법.
  12. 제9항에 있어서,
    상기 영상 스트림과 상기 이벤트 데이터를 동기화하여 출력하는 단계는,
    상기 영상 스트림이 수신된 시점과 상기 이벤트 데이터가 수신된 시점 간의 시간 차가 상기 이벤트 데이터에 설정된 임계 시간에 도달하면 상기 영상 스트림과 무관하게 상기 이벤트 데이터를 출력하는 단계
    를 포함하는 데이터 동기화 방법.
  13. 제1항 내지 제12항 중 어느 한 항의 데이터 동기화 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 비-일시적인 컴퓨터 판독가능한 기록 매체.
  14. 컴퓨터 시스템에 있어서,
    메모리; 및
    상기 메모리와 연결되고, 상기 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    서버로부터 실시간 스트리밍으로 제1 데이터와 상기 제1 데이터와 관련된 제2 데이터를 수신하는 과정; 및
    상기 제1 데이터에 포함된 타임스탬프를 이용하여 상기 제1 데이터와 상기 제2 데이터를 동기화하여 출력하는 과정
    을 처리하는 컴퓨터 시스템.
  15. 제14항에 있어서,
    상기 타임스탬프는 상기 제1 데이터에 정의된 시간 메타데이터에 절대 시간으로 삽입되고,
    상기 제2 데이터에는 상기 제2 데이터를 출력하기 위한 출력 시간으로 상기 타임스탬프가 설정되는 것
    을 특징으로 하는 컴퓨터 시스템.
  16. 제15항에 있어서,
    상기 출력 시간은 상기 제1 데이터의 지연 시간에 따른 보상 값이 반영되어 설정되는 것
    을 특징으로 하는 컴퓨터 시스템.
  17. 제14항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 서버로부터 상기 제1 데이터와 상기 제2 데이터의 동기화를 위해 기준 시간이 되는 절대 시간을 수신하여 상기 서버와 시간 동기화를 수행하는 과정
    을 처리하는 컴퓨터 시스템.
  18. 제14항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 데이터가 수신된 시점과 상기 제2 데이터가 수신된 시점 간의 시간 차가 임계 시간에 도달하면 상기 제1 데이터와 무관하게 상기 제2 데이터를 출력하는 것
    을 특징으로 하는 컴퓨터 시스템.
  19. 제18항에 있어서,
    상기 임계 시간은 상기 제2 데이터에 상기 제2 데이터를 출력하기 위한 최종 기한으로 설정되는 것
    을 특징으로 하는 컴퓨터 시스템.
  20. 제14항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 서버로 상기 제1 데이터에 대한 동기화를 주기적으로 요청하여 요청에 대한 응답으로 리프레시 여부를 수신하는 과정
    을 처리하고,
    상기 서버에서는 상기 서버에서 송출한 제1 데이터와 상기 수신된 제1 데이터 간의 시간 차가 임계 시간을 초과하는 경우 리프레시를 요청하는 것
    을 특징으로 하는 컴퓨터 시스템.
KR1020180085574A 2018-07-23 2018-07-23 실시간 라이브 영상과 이벤트의 동기화를 위한 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체 KR102123593B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180085574A KR102123593B1 (ko) 2018-07-23 2018-07-23 실시간 라이브 영상과 이벤트의 동기화를 위한 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체
US16/518,040 US20200029114A1 (en) 2018-07-23 2019-07-22 Method, system, and non-transitory computer-readable record medium for synchronization of real-time live video and event data
JP2019135251A JP6887601B2 (ja) 2018-07-23 2019-07-23 リアルタイムライブ映像とイベントの同期化のための方法、システム、および非一時的なコンピュータ読み取り可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180085574A KR102123593B1 (ko) 2018-07-23 2018-07-23 실시간 라이브 영상과 이벤트의 동기화를 위한 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체

Publications (2)

Publication Number Publication Date
KR20200010926A true KR20200010926A (ko) 2020-01-31
KR102123593B1 KR102123593B1 (ko) 2020-06-16

Family

ID=69161211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180085574A KR102123593B1 (ko) 2018-07-23 2018-07-23 실시간 라이브 영상과 이벤트의 동기화를 위한 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체

Country Status (3)

Country Link
US (1) US20200029114A1 (ko)
JP (1) JP6887601B2 (ko)
KR (1) KR102123593B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022139098A1 (ko) * 2020-12-24 2022-06-30 김인철 방송 동기화를 통한 서비스 제공 방법
WO2023234440A1 (ko) * 2022-06-02 2023-12-07 엘지전자 주식회사 텔레비전 및 시스템의 제어 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11011896B2 (en) * 2016-10-18 2021-05-18 CAPE Industries, LLC Cable gland for grounding a cable
US11546647B2 (en) 2019-06-07 2023-01-03 Roku, Inc. Content-modification system with probability-based selection feature
EP4217081A4 (en) * 2020-09-23 2024-03-20 Razer Asia Pacific Pte Ltd SYSTEM AND METHOD FOR SYNCHRONIZING A LIGHTING EVENT BETWEEN DEVICES
CN115474021B (zh) * 2022-07-19 2023-08-08 北京普利永华科技发展有限公司 一种多组件联控下的卫星转发器数据处理方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000224122A (ja) * 1999-01-29 2000-08-11 Toshiba Corp 情報配布システム及び端末装置
JP2005269365A (ja) * 2004-03-19 2005-09-29 Matsushita Electric Ind Co Ltd コンテンツ再生装置及び方法
KR20130018208A (ko) * 2011-08-12 2013-02-20 한국방송공사 송신 장치, 수신 장치 및 그 송수신 방법

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2235296T3 (es) * 1998-09-11 2005-07-01 Two Way Media Limited Distribucion de aplicaciones interactivas.
JP3836637B2 (ja) * 1999-08-09 2006-10-25 富士通株式会社 情報配信制御装置、情報配信制御方法、情報配信制御プログラムを記録したコンピュータ読み取り可能な記録媒体および情報再生制御プログラムを記録したコンピュータ読み取り可能な記録媒体
US20030033602A1 (en) * 2001-08-08 2003-02-13 Simon Gibbs Method and apparatus for automatic tagging and caching of highlights
JP2004023667A (ja) * 2002-06-19 2004-01-22 Matsushita Electric Ind Co Ltd プロファイル情報送信装置
US10032192B2 (en) * 2003-12-23 2018-07-24 Roku, Inc. Automatic localization of advertisements
WO2009137368A2 (en) * 2008-05-03 2009-11-12 Mobile Media Now, Inc. Method and system for generation and playback of supplemented videos
US9129644B2 (en) * 2009-06-23 2015-09-08 Disney Enterprises, Inc. System and method for rendering in accordance with location of virtual objects in real-time
US20120066711A1 (en) * 2009-08-24 2012-03-15 Novara Technology, LLC Virtualized home theater service
US8505054B1 (en) * 2009-12-18 2013-08-06 Joseph F. Kirley System, device, and method for distributing audio signals for an audio/video presentation
JP5399984B2 (ja) * 2010-06-23 2014-01-29 日本放送協会 送信装置、サーバ装置、および受信装置
US20130036442A1 (en) * 2011-08-05 2013-02-07 Qualcomm Incorporated System and method for visual selection of elements in video content
US9690465B2 (en) * 2012-06-01 2017-06-27 Microsoft Technology Licensing, Llc Control of remote applications using companion device
US10194189B1 (en) * 2013-09-23 2019-01-29 Amazon Technologies, Inc. Playback of content using multiple devices
JP6481290B2 (ja) * 2014-08-27 2019-03-13 沖電気工業株式会社 情報処理装置
US10231033B1 (en) * 2014-09-30 2019-03-12 Apple Inc. Synchronizing out-of-band content with a media stream
US20160094888A1 (en) * 2014-09-30 2016-03-31 United Video Properties, Inc. Systems and methods for presenting user selected scenes
US9930405B2 (en) * 2014-09-30 2018-03-27 Rovi Guides, Inc. Systems and methods for presenting user selected scenes
US10440436B1 (en) * 2015-06-26 2019-10-08 Amazon Technologies, Inc. Synchronizing interactive content with a live video stream
US9883249B2 (en) * 2015-06-26 2018-01-30 Amazon Technologies, Inc. Broadcaster tools for interactive shopping interfaces
US9973819B1 (en) * 2015-06-26 2018-05-15 Amazon Technologies, Inc. Live video stream with interactive shopping interface
US10412447B2 (en) * 2015-12-16 2019-09-10 Gracenote, Inc. Dynamic video overlays
US11025998B2 (en) * 2017-11-27 2021-06-01 Rovi Guides, Inc. Systems and methods for dynamically extending or shortening segments in a playlist

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000224122A (ja) * 1999-01-29 2000-08-11 Toshiba Corp 情報配布システム及び端末装置
JP2005269365A (ja) * 2004-03-19 2005-09-29 Matsushita Electric Ind Co Ltd コンテンツ再生装置及び方法
KR20130018208A (ko) * 2011-08-12 2013-02-20 한국방송공사 송신 장치, 수신 장치 및 그 송수신 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022139098A1 (ko) * 2020-12-24 2022-06-30 김인철 방송 동기화를 통한 서비스 제공 방법
KR20220092105A (ko) * 2020-12-24 2022-07-01 김인철 방송 동기화를 통한 서비스 제공 방법
WO2023234440A1 (ko) * 2022-06-02 2023-12-07 엘지전자 주식회사 텔레비전 및 시스템의 제어 방법

Also Published As

Publication number Publication date
KR102123593B1 (ko) 2020-06-16
JP6887601B2 (ja) 2021-06-16
JP2020017954A (ja) 2020-01-30
US20200029114A1 (en) 2020-01-23

Similar Documents

Publication Publication Date Title
KR102123593B1 (ko) 실시간 라이브 영상과 이벤트의 동기화를 위한 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체
JP6490654B2 (ja) 生放送でタイムマシン機能を提供する方法およびシステム
KR20210135683A (ko) 인터넷 전화 기반 통화 중 리액션을 표시하는 방법, 시스템, 및 컴퓨터 프로그램
US20210289255A1 (en) Synchronization of media content across multiple participant devices
CN112995759A (zh) 互动业务处理方法、系统、装置、设备及存储介质
JP2023065376A (ja) 生放送中の音声フィードバックのための方法とシステム、および非一時的コンピュータ読取可能な記録媒体
EP3571848A1 (en) Content streaming system and method
JP7164623B2 (ja) ライブ放送で発生するゲスト放送のディレイを解消する方法とシステム、および非一時的なコンピュータ読み取り可能な記録媒体
KR101899576B1 (ko) 멀티미디어 컨텐츠의 원격 운영을 위한 시간 동기화 방법 및 그 시스템
JP6587997B2 (ja) タイムマシン機能のためのスライディングウィンドウ管理方法およびシステム
KR101833942B1 (ko) 실시간 영상 합성을 위한 트랜스코더
KR20220030736A (ko) 실시간 라이브 스트리밍에서 지연을 최소화하기 위한 방법, 시스템, 및 컴퓨터 판독가능한 기록 매체
JP7413266B2 (ja) ストリーミングコンテンツリアルタイム共有方法およびシステム
KR20210130406A (ko) 인터넷 전화 기반 통화 중에 컨텐츠를 공유하는 방법, 시스템, 및 컴퓨터 프로그램
KR101949494B1 (ko) 멀티미디어 컨텐츠의 운영을 위한 원격 툴을 제공하는 방법 및 시스템
KR20180125097A (ko) 클라우드 기반 하이브리드 스마트 tv를 제공하는 장치 및 방법
KR102051985B1 (ko) 이질적인 네트워킹 환경들에서 미디어 렌더링의 동기화
KR20200080041A (ko) 모바일 단말을 이용한 다채널 영상 생성 방법 및 장치
US11076197B1 (en) Synchronization of multiple video-on-demand streams and methods of broadcasting and displaying multiple concurrent live streams
KR101859560B1 (ko) 멀티미디어 컨텐츠의 원격 운영을 위한 시간 동기화 방법 및 그 시스템
KR102432376B1 (ko) 콘텐츠 재생 방법 및 시스템
US11606587B2 (en) Embeddable media playback interaction sharing
KR101865627B1 (ko) 멀티미디어 컨텐츠의 운영을 위한 원격 툴을 제공하는 방법 및 시스템
KR20220056360A (ko) 인플루엔서의 의류 리뷰 방송 콘텐츠의 스트리밍 제공 서비스와 부가 서비스 동기화 시스템
JP2021532616A (ja) 放送視聴側でクロマキーを利用した個人化背景を表示する方法、システム、および非一時なコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant