KR101791208B1 - 생중계 데이터를 공유하는 방법 및 시스템 - Google Patents

생중계 데이터를 공유하는 방법 및 시스템 Download PDF

Info

Publication number
KR101791208B1
KR101791208B1 KR1020160003512A KR20160003512A KR101791208B1 KR 101791208 B1 KR101791208 B1 KR 101791208B1 KR 1020160003512 A KR1020160003512 A KR 1020160003512A KR 20160003512 A KR20160003512 A KR 20160003512A KR 101791208 B1 KR101791208 B1 KR 101791208B1
Authority
KR
South Korea
Prior art keywords
low
stream data
quality
electronic device
live stream
Prior art date
Application number
KR1020160003512A
Other languages
English (en)
Other versions
KR20170084449A (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 KR1020160003512A priority Critical patent/KR101791208B1/ko
Priority to JP2017001074A priority patent/JP6342526B2/ja
Priority to US15/402,578 priority patent/US10567454B2/en
Publication of KR20170084449A publication Critical patent/KR20170084449A/ko
Application granted granted Critical
Publication of KR101791208B1 publication Critical patent/KR101791208B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/76Arrangements characterised by transmission systems other than for broadcast, e.g. the Internet
    • H04H60/81Arrangements characterised by transmission systems other than for broadcast, e.g. the Internet characterised by the transmission system itself
    • H04H60/82Arrangements characterised by transmission systems other than for broadcast, e.g. the Internet characterised by the transmission system itself the transmission system being the Internet
    • H04L65/4076
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2543Billing, e.g. for subscription services
    • H04N21/25435Billing, e.g. for subscription services involving characteristics of content or additional data, e.g. video resolution or the amount of advertising

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Databases & Information Systems (AREA)
  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

생중계 데이터를 공유하는 방법 및 시스템이 개시된다. 전자 기기를 구현하는 컴퓨터와 결합하여 공유 방법을 실행시키기 위해 매체에 저장된 컴퓨터 프로그램에 있어서, 상기 공유 방법은, 상기 전자 기기에서 사용자의 고화질 채널의 선택에 대한 응답으로 고화질 채널을 통해 고화질의 라이브 스트림 데이터를 수신하여 재생하는 단계, 상기 전자 기기에서 상기 고화질 채널의 생성에 응답하여 시드(seed) 기기로 설정됨에 따라 저화질 채널을 통해 저화질의 라이브 스트림 데이터를 수신하는 단계 및 상기 수신된 저화질의 라이브 스트림 데이터를 다른 전자 기기로 전송하여 공유하는 단계를 포함할 수 있다.

Description

생중계 데이터를 공유하는 방법 및 시스템{METHOD AND SYSTEM FOR SHARING LIVE BROADCASTING DATA}
아래의 설명은 생중계 데이터를 공유하는 기술에 관한 것이다.
라이브 영상 컨텐츠(일례로, 방송 프로그램)의 데이터는 고화질 및 저화질과 같은 다양한 화질별 채널을 통해 제공된다. PC(Personal Computer)와 같이 고정된 전자 기기 및 스마트폰, 태블릿(Tablet) 등의 모바일 전자 기기는 라이브 영상 컨텐츠의 데이터를 다운로드 받는 다운로더(downloader)로서 동작한다. 예를 들어, PC는 LAN(Local Area Network) 또는 와이파이(WiFi)를 통해 서버에 접속하며, 주로 고화질 채널을 통해 라이브 영상 컨텐츠의 데이터를 다운로드 받으며, 모바일 전자 기기는 와이파이(WiFi) 또는 와이파이 이외의 무선 통신(Wireless)을 이용하여 서버에 접속하며, 주로 저화질 채널을 통해 라이브 영상 컨텐츠의 데이터를 다운로드 받는다. 그리고, 라이브 영상 컨텐츠의 데이터를 클라이언트들간에 공유하기 위해 PC와 모바일 전자 기기는 업로더(uploader)로서도 동작한다. 그러나, PC의 경우 LAN을 통해 접속한 경우에만 업로더로 동작 가능하며, 모바일 전자기기 역시 와이파이를 통해 접속한 경우에 와이파이 네트워크 상태에 따라 제약적으로 업로더로 동작 가능하다.
따라서, 라이브 영상 컨텐츠의 데이터를 제공받고자 하는 다운로더의 수가 업로더의 수보다 상대적으로 매우 많으며, PC보다는 모바일 전자기기를 통해 저화질의 영상 컨텐츠를 다운로드 받고자 하는 사용자의 수가 증가하여 서버의 트래픽(traffic)이 증가하고 있다. 한국공개특허 제10-2014-0024553호는 컨텐츠 제공 서버의 부하를 감소시키기 위한 라이브 스트리밍 컨텐츠 전송 방법 및 장치를 개시하고 있다.
고화질의 채널을 통해 고화질의 라이브 스트림 데이터를 다운로드 받는 전자 기기가 저화질 채널을 통해 저화질의 라이브 스트림 데이터를 다운로드하여 다른 전자 기기로 업로드하도록 제어함으로써, 고화질 채널을 이용하는 전자 기기를 저화질의 라이브 스트림 데이터를 제공하는 시드(seed)로서 활용할 수 있는 공유 방법 및 장치를 제공한다.
저화질의 라이브 스트림 데이터를 제공하는 시드(seed)의 증가로 인해 라이브 스트림 데이터를 제공하는 서버의 트래픽을 감소시키고, 재생 품질이 향상됨에 따라, 저화질의 라이브 스트림 데이터를 다운로드 받고자 하는 모바일 전자 기기의 수를 증가시킬 수 있는 공유 방법 및 장치를 제공한다.
전자 기기를 구현하는 컴퓨터와 결합하여 공유 방법을 실행시키기 위해 매체에 저장된 컴퓨터 프로그램에 있어서, 상기 공유 방법은, 상기 전자 기기에서 사용자의 고화질 채널의 선택에 대한 응답으로 고화질 채널을 통해 고화질의 라이브 스트림 데이터를 수신하여 재생하는 단계; 상기 전자 기기에서 상기 고화질 채널의 생성에 응답하여 시드(seed) 기기로 설정됨에 따라 저화질 채널을 통해 저화질의 라이브 스트림 데이터를 수신하는 단계; 및 상기 수신된 저화질의 라이브 스트림 데이터를 다른 전자 기기로 전송하여 공유하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 프로그램을 제공할 수 있다.
컴퓨터로 구현된 전자 기기의 공유 방법에 있어서, 상기 전자 기기에서 사용자의 고화질 채널의 선택에 대한 응답으로 고화질 채널을 통해 고화질의 라이브 스트림 데이터를 수신하여 재생하는 단계; 상기 전자 기기에서 상기 고화질 채널의 생성에 응답하여 시드(seed) 기기로 설정됨에 따라 저화질 채널을 통해 저화질의 라이브 스트림 데이터를 수신하는 단계; 및 상기 수신된 저화질의 라이브 스트림 데이터를 다른 전자 기기로 전송하여 공유하는 단계를 포함하는 것을 특징으로 하는 공유 방법을 제공할 수 있다.
컴퓨터로 구현된 전자 기기의 공유 시스템에 있어서, 상기 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 사용자의 고화질 채널의 선택에 대한 응답으로 고화질 채널을 통해 고화질의 라이브 스트림 데이터를 수신하고, 상기 고화질 채널의 생성에 응답하여 시드(seed) 기기로 설정됨에 따라 저화질 채널을 통해 저화질의 라이브 스트림 데이터를 수신하도록 상기 전자 기기를 제어하는 수신 제어부; 상기 전자 기기의 상기 시드 기기 여부를 판단하는 시드 결정부; 상기 수신된 고화질의 라이브 스트림 데이터를 재생하도록 상기 전자 기기를 제어하는 재생 제어부; 및 상기 수신된 저화질의 라이브 스트림 데이터를 다른 전자 기기로 전송하여 공유하도록 상기 전자 기기를 제어하는 전송 제어부를 포함하는 공유 시스템을 제공할 수 있다.
고화질의 채널을 통해 고화질의 라이브 스트림 데이터를 다운로드 받는 전자 기기가 저화질 채널을 통해 저화질의 라이브 스트림 데이터를 다운로드하여 다른 전자 기기로 업로드하도록 제어함으로써, 고화질 채널을 이용하는 전자 기기를 저화질의 라이브 스트림 데이터를 제공하는 시드(seed)로서 활용할 수 있다.
저화질의 라이브 스트림 데이터를 제공하는 시드(seed)의 증가로 인해 라이브 스트림 데이터를 제공하는 서버의 트래픽을 감소시키고, 재생 품질이 향상시킬 수 있다.
서버의 트래픽이 감소하고, 재생 품질이 향상됨에 따라, 저화질의 라이브 스트림 데이터를 다운로드 받고자 하는 모바일 전자 기기의 수를 증가시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 라이브 스트리밍 서비스를 위한 전체 시스템 환경의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 스트리밍 슬라이딩 윈도우를 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 액티브 다운로드 모드로의 동작을 위한 채널 생성을 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 있어서, 전자 기기가 시드 기기로 결정됨에 따라 동작 모드가 변경되는 것을 도시한 상태도이다.
도 7은 본 발명의 일실시예에 따른 전자 기기의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 도면이다.
도 8은 본 발명의 일실시예에 따른 전자 기기가 수행할 수 있는 액티브 다운로드 제어 방법의 예를 도시한 흐름도이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
본 실시예들은 라이브 스트림 데이터와 같은 스트림 데이터(stream data)를 다운로드 받아 스마트폰, PC, 태블릿(tablet) 등의 전자 기기에서 실시간으로 재생하는 시스템에 적용될 수 있다. 특히, 본 실시예들은 모바일 생중계를 위해 저화질의 스트림 데이터를 공유하기 위한 전자 기기들을 시드(seed)로서 결정하고, 시드들을 통해 다운로드된 저화질의 스트림 데이터를 다른 전자 기기로 중계함으로써 공유율을 향상시킬 수 있다. 본 명세서에서, 스트림 데이터는 야구, 축구, 게임 등을 생중계하는 라이브 스트림 데이터(live stream data)를 의미할 수 있다. 또한, 공유율은 생중계를 위한 스트리밍 방식과 클라이언트들간의 데이터 공유를 통해 스트림 데이터를 제공하는 P2P(Peer-to-Peer) 방식을 모두 활용함에 따라 피어들간에 스트림 데이터의 피스(piece)들이 공유되는 비율을 의미할 수 있다.
본 실시예들에서, 고화질 채널을 선택하는 전자 기기는 저화질의 스트림 데이터를 다른 전자 기기와 공유하기 위한 시드 기기로 결정될 수 있다. 시드 기기로 동작하는 전자 기기는 저화질 채널을 통해 주로 P2P 방식으로 저화질의 스트림 데이터를 수신하여 다른 전자 기기들과 공유함으로써 모바일 생중계에서의 공유율을 개선할 수 있다.
도 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 등이 있다. 일례로 전자 기기 1(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)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다.
일례로, 서버(160)는 네트워크(170)를 통해 접속한 전자 기기 1(110)로 어플리케이션의 설치를 위한 파일을 제공할 수 있다. 이 경우 전자 기기 1(110)은 서버(160)로부터 제공된 파일을 이용하여 어플리케이션을 설치할 수 있다. 또한 전자 기기 1(110)이 포함하는 운영체제(Operating System, OS) 및 적어도 하나의 프로그램(일례로 브라우저나 상기 설치된 어플리케이션)의 제어에 따라 서버(150)에 접속하여 서버(150)가 제공하는 서비스나 컨텐츠를 제공받을 수 있다. 예를 들어, 전자 기기 1(110)이 어플리케이션의 제어에 따라 네트워크(170)를 통해 서비스 요청 메시지를 서버(150)로 전송하면, 서버(150)는 서비스 요청 메시지에 대응하는 코드를 전자 기기 1(110)로 전송할 수 있고, 전자 기기 1(110)은 어플리케이션의 제어에 따라 코드에 따른 화면을 구성하여 표시함으로써 사용자에게 컨텐츠를 제공할 수 있다. 다른 예로, 서버(150)는 메시징 서비스를 위한 통신 세션을 설정하고, 설정된 통신 세션을 통해 복수의 전자 기기들(110, 120, 130, 140)간의 메시지 송수신을 라우팅할 수도 있다. 또 다른 예로, 서버(150)는 전자 기기들(110, 120, 130, 140)로 소셜 네트워크 서비스를 제공할 수 있다. 또 다른 예로, 서버들(150, 160)은 복수의 전자 기기들(110, 120, 130, 140)로 라이브 스트리밍 서비스를 제공할 수 있다.
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다. 도 2에서는 하나의 전자 기기에 대한 예로서 전자 기기 1(110), 그리고 하나의 서버에 대한 예로서 서버(150)의 내부 구성을 설명한다. 다른 전자 기기들(120, 130, 140)이나 서버(160)뿐만 아니라 도 1을 통해 설명한 네트워크 환경에 포함될 수 있는 또 다른 전자 기기들이나 또 다른 서버들에도 동일한 또는 유사한 내부 구성요소들이 적용될 수 있다.
전자 기기 1(110)과 서버(150)는 메모리(211, 221), 프로세서(212, 222), 통신 모듈(213, 223) 그리고 입출력 인터페이스(214, 224)를 포함할 수 있다. 메모리(211, 221)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 또한, 메모리(211, 221)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 전자 기기 1(110)에 설치되어 구동되는 브라우저나 상술한 어플리케이션 등을 위한 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 드라이브 메커니즘(drive mechanism)을 이용하여 메모리(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)를 통해 전자 기기 1(110)과 서버(150)가 서로 통신하기 위한 기능을 제공할 수 있으며, 다른 전자 기기(일례로 전자 기기 2(120)) 또는 다른 서버(일례로 서버(160))와 통신하기 위한 기능을 제공할 수 있다. 일례로, 전자 기기 1(110)의 프로세서(212)가 메모리(211)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청(일례로 컨텐츠에 대한 스트리밍 서비스 요청)이 통신 모듈(213)의 제어에 따라 네트워크(170)를 통해 서버(150)로 전달될 수 있다. 역으로, 서버(150)의 프로세서(222)의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 통신 모듈(223)과 네트워크(170)를 거쳐 전자 기기 1(110)의 통신 모듈(213)을 통해 전자 기기 1(110)로 수신될 수 있다. 예를 들어 통신 모듈(213)을 통해 수신된 서버(150)의 제어 신호나 명령 등은 프로세서(212)나 메모리(211)로 전달될 수 있고, 컨텐츠나 파일 등은 전자 기기 1(110)가 더 포함할 수 있는 저장 매체로 저장될 수 있다.
입출력 인터페이스(214, 224)는 입출력 장치(215)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 어플리케이션의 통신 세션을 표시하기 위한 디스플레이와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(214)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 보다 구체적인 예로, 전자 기기 1(110)의 프로세서(212)는 메모리(211)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 서버(150)나 전자 기기 2(120)가 제공하는 데이터를 이용하여 구성되는 서비스 화면이나 컨텐츠가 입출력 인터페이스(214)를 통해 디스플레이에 표시될 수 있다.
또한, 다른 실시예들에서 전자 기기 1(110) 및 서버(150)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 전자 기기 1(110)은 상술한 입출력 장치(215) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
도 3은 본 발명의 일실시예에 있어서, 라이브 스트리밍 서비스를 위한 전체 시스템 환경의 예를 도시한 도면이다. 도 3은 미디어 스트리밍 서버(310), 패킷타이징 서버(320), 딜리버리 서버(330), 인덱스 서버(340), 전자 기기(350) 및 복수의 피어들(360)을 도시하고 있다.
미디어 스트리밍 서버(310), 패킷타이징 서버(320), 딜리버리 서버(330) 및 인덱스 서버(340) 각각은 도 1 및 도 2를 통해 설명한 서버(150)와 동일한 또는 유사한 내부 구성요소들을 갖는 장치일 수 있다. 또한, 복수의 피어들(360) 각각과 전자 기기(350)는 도 1 및 도 2를 통해 설명한 전자 기기 1(110)과 동일한 또는 유사한 내부 구성요소들을 갖는 장치일 수 있다. 도 3에서는 미디어 스트리밍 서버(310), 패킷타이징 서버(320), 딜리버리 서버(330) 및 인덱스 서버(340)를 각각 하나씩 도시하고 있으나, 각각 복수의 서버 그룹의 형태로 구현될 수도 있다. 예를 들어, 프로야구 경기를 생중계함에 있어서, 4개의 경기가 진행되는 경우, 4개의 경기에 대해 4개의 미디어 소스를 위한 4 개의 미디어 스트리밍 서버들의 그룹이 존재할 수 있고, 각각의 미디어 소스를 위해 4 개의 패킷타이징 서버들의 그룹이 존재할 수 있다. 이와 유사하게 딜리버리 서버(330) 및 인덱스 서버(340)도 필요에 따라 복수의 서버 그룹으로 구현될 수 있다. 예를 들어, 딜리버리 서버(330) 및 인덱스 서버(340)는 동시 접속자수와 같은 성능 이슈에 따라 요구되는 서버의 수가 결정될 수 있다.
미디어 스트리밍 서버(310)는 라이브 스트림 데이터를 제공하는 인코더(미도시)를 포함하는 미디어 소스 장치일 수 있다. 패킷타이징 서버(120)는 이러한 미디어 스트리밍 서버(310)로부터 라이브 스트림 데이터를 수신할 수 있으며 수신된 라이브 스트림 데이터를 P2P 서비스를 통해 제공하기 위해 수신된 라이브 스트림 데이터를 피스(piece)로 패킷타이징(또는 인덱싱)할 수 있다. 스트림 데이터를 피스로 패킷타이징(또는 인덱싱)하는 방법은 이미 알려진 다양한 방법들 중 하나를 이용할 수 있다.
딜리버리 서버(330)는 패킷타이징 서버(320)로부터 패킷타이징된(또는 인덱싱된) 피스를 수신하고, 이를 버퍼링할 수 있으며, P2P 서비스의 피어(peer)로부터의 요청에 따라 요청된 라이브 스트림 데이터에 대한 피스를 해당 피어로 전송할 수 있다. 여기서 피어는 P2P 서비스를 이용한 라이브 스트리밍 서비스에서의 클라이언트를 의미할 수 있으며, 각각 하나의 전자 기기로 구현될 수 있다. 피어를 구현하는 전자 기기는 도 3에 도시된 전자 기기(350)를 포함하며, 앞서 설명한 바와 같이 도 1 및 도 2를 통해 설명한 전자 기기 1(110)과 동일한 또는 유사한 내부 구성요소들을 갖는 장치일 수 있다.
인덱스 서버(340)는 피어의 목록을 유지하고 피어의 요청에 따른 검색 결과를 제공할 수 있다. 그리고, 인덱스 서버(340)는 라이브 스트림 데이터를 전자 기기로 제공하기 위해 전자 기기와 통신 세션이 설정된 채널의 설정값을 전자 기기로 제공할 수 있다. 여기서, 채널의 설정값은 확률값으로서, 액티브 다운로드의 비율을 나타낼 수 있다.
피어를 구현하는 전자 기기(350)에는 스트리밍 클라이언트(351)와 같은 어플리케이션이 설치 및 구동될 수 있다. 이때, 전자 기기(350)는 구동된 스트리밍 클라이언트(351)의 제어에 따라, 딜리버리 서버(330)로부터 피스를 수신하거나 또는 다른 피어들(도 3의 복수의 피어들(360))을 구현하는 다른 전자 기기들로부터 피스를 수신할 수 있다.
또한, 전자 기기(350)에서 구동된 스트리밍 클라이언트(351)는 전자 기기(350)에 설치 및 구동된 다른 어플리케이션인 플레이어(352)와 전자 기기(350)에서 내부적으로 통신하여 플레이어(352)로 라이브 스트림 데이터를 전송할 수 있다. 이때, 스트리밍 클라이언트(351)가 플레이어(352)로 제공하는 라이브 스트림 데이터는 딜리버리 서버(330) 및 복수의 피어들(360) 중 적어도 일부로부터 수신한 피스에 기반하여 조합된 데이터일 수 있다.
이 경우, 플레이어(352)는 스트리밍 클라이언트(351)가 제공하는 라이브 스트림 데이터를 재생할 수 있고, 이에 따라, 미디어 스트리밍 서버(310)가 제공하는 라이브 스트림 데이터가 전자 기기(350)에서 재생되어 전자 기기(350)의 사용자에게 제공될 수 있다. 예를 들어, 스트리밍 클라이언트(351)는 메모리(211)에 저장된 피스들을 이용하여 생중계 영상을 플레이어(352)로 스트리밍할 수 있다.
이때, 스트리밍 슬라이딩 윈도우가 플레이어(352)로 전송되어야 할 피스들을 특정하기 위해 이용될 수도 있다. 이러한 스트리밍 슬라이딩 윈도우에 대해서는 이후 더욱 자세히 설명한다.
피어를 구현하는 전자 기기(일례로, 도 3의 전자 기기(350))에 설치 및 구동되는 스트리밍 클라이언트(일례로, 도 3의 스트리밍 클라이언트(351))는 전자 기기의 사용자에게 라이브 스트림 데이터에 대한 액티브 다운로드 모드를 제공할 수 있다. 액티브 다운로드 모드는, 시드 기기로 결정된 전자 기기에서 고화질의 라이브 스트림 데이터와 함께 저화질의 라이브 스트림 데이터를 다운로드 받고, 저화질의 라이브 스트림 데이터를 저화질의 라이브 스트림 데이터를 요청한 다른 전자 기기와 공유하기 위한 시드(seed)로서 전자 기기가 동작하도록 제어하는 동작 모드를 나타낼 수 있다. 예를 들어, LAN을 이용하여 고화질의 라이브 스트림 데이터를 이용하는 PC 등의 전자 기기가 시드로 선정되어 스마트폰, 태블릿 등과 같은 모바일의 전자 기기로 저화질의 라이브 스트림 데이터를 제공할 수 있다. 즉, 시드 기기는 다른 전자 기기로 저화질의 라이브 스트림 데이터를 공유하는 업로더(uploader)로서 동작될 수 있다. 이때, 시드 기기는 재생을 위한 고화질의 라이브 스트림 데이터는 서버를 통한 스트리밍 방식과 다른 피어들을 통한 P2P 방식 중 적어도 하나를 이용하여 수신 및 재생할 수 있다. 반면, 공유를 위한 저화질의 라이브 스트림 데이터는 P2P 방식으로 수신하여 다른 전자 기기로 전송함으로써 공유할 수 있다. 다만, 저화질의 라이브 스트림 데이터 중 일부(상대적으로 최신의 라이브 스트림 데이터)는 서버로부터 수신받아 공유할 수 있다. 이러한 저화질 라이브 스트림 데이터의 공유를 위해 이후 설명될 스트리밍 슬라이딩 윈도우가 활용될 수 있다.
도 4는 본 발명의 일실시예에 있어서, 스트리밍 슬라이딩 윈도우를 설명하기 위한 도면이다. 라이브 스트림 데이터에 대한 액티브 다운로드 모드를 통해 저화질의 라이브 스트림 데이터를 공유하기 위해, 시드 기기는 저화질의 라이브 스트림 데이터의 피스들을 수신할 수 있다. 이때, 공유를 위해 수신하고자 하는 복수의 피스들(410)이 스트리밍 슬라이딩 윈도우(streaming sliding window, 420)를 통해 특정될 수 있다. 스트리밍 슬라이딩 윈도우(420)가 특정하는 피스들 중 "[Live]"에 상대적으로 가까울수록 보다 최신 시점의 라이브 스트림 데이터를 위한 피스들임을 의미할 수 있다.
이때, 시드 기기는 스트리밍 슬라이딩 윈도우(420)가 특정하는 복수의 피스들(410) 중 제1 영역(일례로 도 4의 "A" 영역과 "B" 영역)이 특정하는 피스들을 다른 피어들로부터 P2P 방식으로 수신할 수 있다. 이는 시드 기기가 이미 고화질의 라이브 스트림 데이터를 수신 및 재생하고 있으며, 저화질의 라이브 스트림 데이터는 재생이 아닌 공유를 목적으로 수신하는 것이기 때문에 서버(일례로 딜리버리 서버(330)로부터 직접 다운받을 필요성이 낮기 때문이다. 한편, 스트리밍 슬라이딩 윈도우(420)의 제2 영역(일례로, 도 4의 "C" 영역)은 최신 시점의 라이브 스트림 데이터의 피스들을 수신해야 하기 때문에 제2 영역이 특정하는 피스들은 서버의 기설정된 CDU 정책에 따라 서버로부터 스트리밍 방식으로 수신할 수 있다. 따라서 시드 기기는 최신 시점의 라이브 스트림 데이터에 대한 피스들을 빠르게 수집하여 다른 피어들에게 공유할 수 있게 된다.
도 5는 본 발명의 일실시예에 있어서, 액티브 다운로드 모드로의 동작을 위한 채널 생성을 설명하기 위한 도면이다.
도 5에 따르면, 전자 기기(500)의 플레이어(510)에서 고화질의 라이브 스트림 데이터를 스트리밍 클라이언트(520)로 요청할 수 있다. 예를 들어, 전자 기기(500)의 사용자는 생중계 받고자 하는 라이브 스트림 데이터의 해상도(예를 들어, 고화질, 저화질 등)를 플레이어(510)를 통해 선택할 수 있다. 그러면, 스트리밍 클라이언트(520)는 고화질 채널을 생성하여 고화질의 라이브 스트림 데이터를 수신할 수 있다. 이때, 고화질 채널을 통해 고화질의 라이브 스트림 데이터는 서버(300)로부터의 스트리밍 방식과 복수의 피어들(360)로부터의 P2P 방식을 모두 이용한 일반적인 전송 방식을 통해 수신될 수 있다.
이때, 이러한 고화질 채널의 선택에 응답하여 인덱스 서버(340)는 해당 고화질 채널에 대한 설정값을 전자 기기(500)로 전달할 수 있고, 전자 기기(500)는 전달된 설정값과 전자 기기(500)가 스트리밍 클라이언트(351)의 제어에 따라 생성하는 랜덤값에 기반하여 스스로 시드 기기 여부를 결정할 수 있다. 전자 기기(500)가 시드 기기로 결정되면, 전자 기기(500)는 저화질의 라이브 스트림 데이터를 위한 액티브 다운로드 모드를 실행할 수 있다.
예를 들어, 전자 기기(500)는 랜덤값이 설정값보다 작은 경우에 액티브 다운로드 모드를 실행하여 저화질의 라이브 스트림 데이터에 대한 수신 및 전송을 통한 공유를 진행할 수 있다. 이러한 과정은 아래 표 1의 알고리즘과 같이 진행될 수 있다.
1. 고화질 채널을 선택한 전자 기기가 인덱스 서버로부터 액티브 다운로드 비율을 채널 별 설정값 C로서 전달 받음.
Value : float (min : 0.0, max : 100.0, default : 0.0)
2. 전자 기기가 고화질 채널의 생성 시 0 내지 99.9 사이의 랜덤(random)값 r을 생성함.
3. 랜덤값 r이 설정값 C보다 작은 경우, 전자 기기가 시드 기기로 결정되고, 액티브 다운로드 모드를 설정함.
설정값 C로서 전달되는 액티브 다운로드 비율은 저화질 채널 및 상기 고화질 채널 각각의 통신 방식의 종류별 사용자수에 기반하여 인덱스 서버(340) 또는 인덱스 서버(340)를 포함하는 서버(300)에서 기설정될 수 있다. 여기서 통신 방식의 종류는 LAN, WiFi 등의 통신 방식을 의미할 수 있다.
보다 구체적으로, 인덱스 서버(340) 또는 서버(300)는 저화질 채널에 접속한 사용자의 수, 저화질 채널의 사용자들 중 LAN을 통해 저화질 채널에 접속한 사용자의 수, 고화질 채널의 사용자들 중 LAN을 통해 고화질 채널에 접속한 사용자의 수 및 서버(상술한 인덱스 서버(340) 또는 서버(300))에서 기설정된 저화질 채널의 LAN 사용자 비율을 이용하여 액티브 다운로드 비율을 계산할 수 있다.
보다 구체적인 예로, 저화질 채널에 접속한 사용자의 수를 s, 저화질 채널의 사용자들 중 LAN을 통해 저화질 채널에 접속한 사용자의 수를 a, 고화질 채널의 사용자들 중 LAN을 통해 고화질 채널에 접속한 사용자의 수를 b, 서버(상술한 인덱스 서버(340) 또는 서버(300))에서 기설정된 저화질 채널의 LAN 사용자 비율을 k라 가정하자. 이때, a, b, s는 자연수일 수 있고, k는 양의 유리수일 수 있다. 이 경우 인덱스 서버(340) 또는 서버(300)는 아래의 수학식 1에 기초하여 액티브 다운로드 비율을 계산할 수 있다.
Figure 112016003111322-pat00001
수학식 1에서, x는 액티브 다운로드 비율을 의미할 수 있다. k는 미리 정의된 시스템 설정 상수로서 전체 사용자 대비 저화질 LAN 사용자의 유지 비율을 나타낼 수 있다. 이러한 k의 비율에 맞춰 부족한 LAN 사용자의 수(LAN을 이용하여 저화질 채널에 접속하는 사용자의 수)가 결정될 수 있다. 예를 들어, k는 a/b 이하의 값을 갖도록 미리 정의될 수 있으며, 네트워크 상황에 따라 점진적으로 변경될 수도 있다. 즉, 저화질 채널의 LAN 사용자 수가 고화질 채널의 LAN 사용자 수 이하가 되도록 k가 미리 정의될 수 있다.
인덱스 서버(340)에서 계산된 채널 별 액티브 다운로드 비율은 각 채널의 설정값으로서 이용될 수 있다. 다시 말해, 고화질 채널을 이용하는 전자 기기(예를 들어, LAN 이용 PC)들 중 일부를 시드 기기로 활용하기 위한 확률값일 수 있다. 이처럼, 고화질 채널을 통해 라이브 스트림 데이터를 요청한 전자 기기(500)가 시드 기기로 결정된 경우, 스트리밍 클라이언트(520)는 고화질의 라이브 스트림 데이터를 위한 고화질 채널(530) 및 저화질의 라이브 스트림 데이터를 위한 저화질 채널(540)을 함께 생성할 수 있다. 이미 설명한 바와 같이 고화질 채널(530)은 전자 기기(500)가 재생하기 위한 고화질의 라이브 스트림 데이터를 수신하기 위한 다운로드 채널일 수 있다. 또한, 저화질 채널(540)은 전자 기기(500)가 시드 기기로서 저화질의 라이브 스트림 데이터를 다른 피어들과 공유하기 위해 저화질의 라이브 스트림 데이터를 수신하기 위한 다운로드 채널일 수 있다.
전자 기기(500)는 시드 기기로 결정됨에 따라 액티브 다운로드 모드로 설정되어 고화질 채널(530) 및 저화질 채널(540)이 생성할 수 있다. 이때, 전자 기기(500)는 도 4를 통해 설명한 스트리밍 슬라이딩 윈도우(420)가 특정하는 복수의 피스들(410)을 다운로드 받을 수 있다. 이미 설명한 바와 같이, 저화질의 라이브 스트림 데이터는 일반적으로 P2P 방식으로 다른 피어들을 통해 수신될 수 있다. 다만, 스트리밍 슬라이딩 윈도우(420)의 제2 영역(도 4의 "C" 영역)이 특정하는 피스들은 서버(300)를 통해 스트리밍 방식으로 제공받을 수 있다.
따라서 서버(300)의 관점에서는 별도의 서버 트래픽을 사용하지 않으면서, 시드 기기에 저화질 채널(540)을 통해 업로드된 피스들을 통해 피어들간의 피스들에 대한 공유율을 향상시킬 수 있다.
도 6은 본 발명의 일실시예에 있어서, 전자 기기가 시드 기기로 결정됨에 따라 동작 모드가 변경되는 것을 도시한 상태도이다.
도 6에 따르면, 스트리밍 클라이언트(520)의 제어에 따르는 전자 기기(500)의 동작 모드는 액티브 다운로드 모드(Active Download Mod, 610)와 노멀 다운로드 모드(Normal Download Mode, 620)로 나뉠 수 있다.
플레이어(510)에서 스트리밍 클라이언트(520)로 고화질 채널이 요청되고, 전자 기기(500)가 시드 기기로 결정되면, 전자 기기(500)의 동작 모드가 액티브 다운로드 모드(610)로 설정될 수 있고, 이에 따라 고화질 채널(530)과 저화질 채널(540)이 생성될 수 있다. 다시 말해, 저화질 채널을 통해 저화질의 라이브 스트림 데이터를 저화질 데이터를 요청한 복수의 피어들과 공유하기 위한 시드로 동작하도록 전자 기기(500)를 제어하는 액티브 다운로드 모드(610)가 설정될 수 있다.
이때, 플레이어(510)의 디스플레이에서 고화질의 라이브 스트림 데이터가 재생되는 중에, 플레이어(510)를 통해 사용자에 의해 해상도가 저화질로 변경되어 선택되는 경우, 플레이어(510)는 스트리밍 클라이언트(520)로 저화질 채널의 데이터를 요청할 수 있다. 그러면, 스트리밍 클라이언트(520)는 동작 모드를 액티브 다운로드 모드(610)에서 노멀 다운로드 모드(620)로 변경할 수 있으며, 저화질의 라이브 스트림 데이터를 플레이어(510)에 제공할 수 있다. 스트리밍 클라이언트(520)는 고화질의 라이브 스트림 데이터를 다운로드 받으면서 이미 저화질의 라이브 스트림 데이터를 다운로드 받고 있으므로, 동작 모드만 액티브 다운로드 모드(610)에서 노멀 다운모드 모드(620)로 스위칭(switching)할 수 있다.
이처럼, 동작 모드가 노멀 다운로드 모드(620)인 상태에서 사용자에 의해 플레이어(510)에서 해상도가 고화질로 선택되더라도, 전자 기기(500)는 더 이상 시드 기기가 아니기 때문에 동작 모드가 노멀 다운로드 모드(620)인 상태에서는 액티브 다운로드 모드(610)로 전환되지 않는다. 예를 들어, 노멀 다운로드 모드(610)인 상태에서 다시 고화질이 선택된 경우, 전자 기기(500)는 다시 한번 시드 기기 여부를 판단할 수 있으며, 다시 시드 기기로 설정되는 경우에 액티브 다운로드 모드(610)가 설정될 수 있다.
액티브 다운로드 모드(610)나 노멀 다운로드 모드(620)에서 채널이 종료됨에 따라 채널이 제거(640)될 수 있다.
도 6에서는 사용자 선택에 의해 해상도가 고화질에서 저화질로 변경되는 경우에만 액티브 다운로드 모드(610)에서 노멀 다운로드 모드(630)로 동작 모드가 변경되는 것으로 설명하였으나, 이외에 서버(300)의 네트워크 환경에 따라 변화되는 일정 확률(채널 별 설정값)에 기초하여 적응적으로 동작 모드가 변경될 수도 있다. 예를 들어, 네트워크 트래픽이 기정의된 기준 트래픽 이상인 경우, 사용자가 고화질에서 저화질로 해상도를 변경 선택하지 않더라도 동작 모드가 액티브 다운로드 모드(610)에서 노멀 다운로드 모드(620)로 변경될 수 있다. 그리고, 네트워크 트래픽이 다시 기준 트래픽 미만이 되는 경우, 동작 모드가 노멀 다운로드 모드(620)에서 다시 액티브 다운로드 모드(610)로 자동 변경될 수 있다.
P2P 서비스에서는 동일한 피스를 보다 많은 피어들이 보유하고 있을수록 해당 피스에 대한 공유율이 높아진다. 공유율이 높다는 것은 해당 피스를 갖지 않은 피어가 P2P 서비스에서 다른 피어를 통해 해당 피스를 보다 쉽게 얻을 수 있음을 의미한다. 따라서, 액티브 다운로드 모드(610)를 사용하는 사용자들이 많아질수록 최신 데이터를 보유하고 있는 피어들의 수가 증가하기 때문에 복수의 피어들(360) 간의 저화질 라이브 스트림 데이터에 대한 피스들의 공유율이 높아지게 되고, 서버 트래픽 비용이 감소하게 된다.
도 7은 본 발명의 일실시예에 따른 전자 기기의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 도면이고, 도 8은 본 발명의 일실시예에 따른 전자 기기가 수행할 수 있는 공유 방법의 예를 도시한 흐름도이다.
도 7에 도시된 바와 같이 전자 기기 1(110)의 프로세서(212)는 구성요소들로서 수신 제어부(710), 시드 결정부(720), 재생 제어부(730) 및 전송 제어부(740)를 포함할 수 있다. 이러한 프로세서(212) 및 프로세서(212)의 구성요소들은 도 8의 공유 방법이 포함하는 단계들(810 내지 830)을 수행하도록 전자 기기 1(110)을 제어할 수 있다. 이때, 프로세서(212) 및 프로세서(212)의 구성요소들은 메모리(211)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(212)의 구성요소들은 프로세서(212)에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 프로세서(212)가 상술한 명령에 따라 피스를 다운로드하도록 전자 기기 1(110)을 제어하는 동작의 기능적 표현으로서 피스 다운로드 제어부(720)가 사용될 수 있다.
단계(810)에서 프로세서(212)는 공유 방법을 위한 프로그램의 파일에 저장된 프로그램 코드를 메모리(211)에 로딩할 수 있다. 예를 들어, 전자 기기 1(110)에 설치된 프로그램이 구동되는 경우, 프로세서(212)는 프로그램의 파일로부터 프로그램 코드를 메모리(211)에 로딩하도록 전자 기기 1(110)을 제어할 수 있다. 예를 들어, 상술한 프로그램은 스트리밍 클라이언트(520)를 위한 어플리케이션일 수 있다.
이때, 프로세서(212) 및 프로세서(212)가 포함하는 수신 제어부(710), 시드 결정부(720), 재생 제어부(730) 및 전송 제어부(740) 각각은 메모리(211)에 로딩된 프로그램 코드 중 대응하는 부분(대응하는 명령)을 실행하여 이후 단계들(820 및 830)을 실행할 수 있다. 단계들(820 및 830)의 실행을 위해, 프로세서(212) 및 프로세서(212)의 구성요소들은 전자 기기 1(110)을 제어할 수도 있다. 예를 들어, 프로세서(212)는 전자 기기 1(110)이 포함하는 통신 모듈(213)을 제어하여 전자 기기 1(110)이 다른 전자 기기나 서버(일례로, 서버(150))와 통신하도록 전자 기기 1(110)을 제어할 수 있다.
단계(820)에서 수신 제어부(710)는 사용자의 고화질 채널의 선택에 대한 응답으로 고화질 채널을 통해 고화질의 라이브 스트림 데이터를 수신하도록 전자 기기 1(110)을 제어할 수 있다. 예를 들어, 플레이어(510)를 통해 고화질의 라이브 스트림 데이터가 사용자에 의해 선택된 경우, 플레이어(510)는 고화질 채널의 데이터를 스트리밍 클라이언트(520)로 요청할 수 있다. 이때, 수신 제어부(710)는 딜리버리 서버(330)로부터 고화질 채널을 통해 고화질의 라이브 스트림 데이터를 수신할 수 있다. 또한, P2P 방식을 통해 다른 피어들로부터 고화질의 라이브 스트림 데이터를 수신할 수도 있다.
단계(830)에서 재생 제어부(730)는 수신된 고화질의 라이브 스트림 데이터를 재생하도록 전자 기기 1(110)을 제어할 수 있다.
단계(840)에서 시드 결정부(720)는 전자 기기 1(110)의 시드 기기 여부를 결정할 수 있다. 고화질 채널이 생성되면, 시드 결정부(720)는 서버(일례로, 인덱스 서버(340) 또는 서버(300))가 고화질 채널에 대해 기설정된 범위 내에서 설정한 설정값과 랜덤값을 비교하여 전자 기기 1(110)의 시드 기기 여부를 결정할 수 있다. 랜덤값은 시드 결정부(720)에서 상기 기설정된 범위 내에서 랜덤하게 생성할 수 있다.
설정값은 일례로, 저화질 채널 및 고화질 채널 각각의 통신 방식의 종류별 사용자수에 기반하여 서버에서 기설정될 수 있다. 다른 예로 설정값은 저화질 채널에 접속한 사용자의 수, 저화질 채널의 사용자들 중 LAN(Local Area Network)을 통해 저화질 채널에 접속한 사용자의 수, 고화질 채널의 사용자들 중 LAN을 통해 고화질 채널에 접속한 사용자의 수 및 서버에서 기설정된 저화질 채널의 LAN 사용자 비율을 이용하여 서버에서 계산될 수 있다. 이러한 설정값의 계산에 대한 구체적인 예시는 수학식 1을 통해 설명한 바 있다.
단계(850)에서 수신 제어부(710)는 고화질 채널의 생성에 응답하여 시드 기기로 설정됨에 따라 저화질 채널을 통해 저화질의 라이브 스트림 데이터를 수신하도록 전자 기기 1(110)을 제어할 수 있다. 저화질의 라이브 스트림 데이터의 수신은 라이브 스트림 데이터를 구성하는 피스(piece)들 중 다운로드 또는 재생하고자 하는 연속된 피스들을 특정하기 위한 스트리밍 슬라이딩 윈도우를 이용하여 이루어질 수 있다. 예를 들어, 수신 제어부(710)는 상기 스트리밍 슬라이딩 윈도우가 특정하는 상기 저화질의 라이브 스트림 데이터의 피스들을 수신할 수 있다. 이미 설명한 바와 같이, 저화질의 라이브 스트림 데이터는 P2P 방식을 통해 다른 피어들로부터 수신될 수 있으며, 서버의 정책에 따라 선택적으로 서버로부터 스트리밍 방식으로 수신될 수도 있다.
예를 들어, 스트리밍 슬라이딩 윈도우는 복수의 영역들로 구분될 수 있다. 이때, 수신 제어부(710)는 단계(850)에서 구분된 복수의 영역들 중 제1 영역이 특정하는 피스들을 P2P 방식을 통해 다른 피어(peer)로부터 수신할 수 있다. 또한, 수신 제어부(710)는 구분된 복수의 영역들 중 제2 영역이 특정하는 피스들을 서버의 기설정된 정책에 따라 서버로부터 스트리밍 방식으로 수신할 수 있다. 이때, 제2 영역은 스트리밍 슬라이딩 윈도우가 특정하는 피스들 중 다른 영역보다 상대적으로 최신 라이브 스트림 데이터에 해당하는 피스들을 특정하기 위해 기설정된 영역일 수 있다.
단계(860)에서 전송 제어부(740)는 수신된 저화질의 라이브 스트림 데이터를 다른 전자 기기로 전송하여 공유하도록 전자 기기 1(110)을 제어할 수 있다. 이미 설명한 바와 같이, P2P 방식에서 피스들의 공유는 해당 피스들을 업로드하는 업로더의 수에 의존적이다. 본 실시예들에서는 고화질 채널을 이용하는 다운로더들 중 일부를 시드로서 저화질의 라이브 스트림 데이터에 대한 업로더 역할을 부여함으로써 서버의 네트워크 트래픽에 대한 영향을 최소화하면서도 저화질의 라이브 스트림 데이터에 대한 공유율을 높일 수 있다.
또한, 재생 제어부(730)는 사용자의 저화질 채널의 선택에 대한 응답으로 저화질 채널을 통해 수신된 저화질의 라이브 스트림 데이터를 재생하도록 전자 기기 1(110)을 제어할 수 있다. 예를 들어, 고화질 채널을 통해 수신된 고화질의 라이브 스트림 데이터가 재생되는 도중 사용자가 화질을 고화질에서 저화질로 변경할 수 있다. 이 경우, 재생 제어부(730)는 저화질 채널을 통해 수신중이던 저화질의 라이브 스트림 데이터를 바로 재생할 수 있다.
이때, 전송 제어부(740)는 저화질의 라이브 스트림 데이터의 다른 전자 기기로의 전송 및 공유를 중지하도록 전자 기기 1(110)를 제어할 수 있다. 이는 도 6을 통해 설명한 바와 같이 액티브 다운로드 모드(610)가 노멀 다운로드 모드(620)로 변경됨을 의미할 수 있다.
도 7 및 도 8에서 생략된 내용은 도 1 내지 도 6을 참조할 수 있다.
이처럼 본 발명의 실시예들에 따르면, 고화질의 채널을 통해 고화질의 라이브 스트림 데이터를 다운로드 받는 전자 기기가 저화질 채널을 통해 저화질의 라이브 스트림 데이터를 다운로드하여 다른 전자 기기로 업로드하도록 제어함으로써, 고화질 채널을 이용하는 전자 기기를 저화질의 라이브 스트림 데이터를 제공하는 시드(seed)로서 활용할 수 있다. 또한, 저화질의 라이브 스트림 데이터를 제공하는 시드(seed)의 증가로 인해 라이브 스트림 데이터를 제공하는 서버의 트래픽을 감소시키고, 재생 품질이 향상시킬 수 있다. 또한, 서버의 트래픽이 감소하고, 재생 품질이 향상됨에 따라, 저화질의 라이브 스트림 데이터를 다운로드 받고자 하는 모바일 전자 기기의 수를 증가시킬 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 전자 기기를 구현하는 컴퓨터와 결합하여 공유 방법을 실행시키기 위해 매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 공유 방법은,
    상기 전자 기기에서 사용자의 고화질 채널의 선택에 대한 응답으로 라이브 스트림 데이터를 스트리밍하는 서버로부터 고화질 채널을 통해 고화질의 라이브 스트림 데이터를 수신하여 재생하는 단계;
    상기 고화질 채널의 생성에 응답하여 상기 서버에 의해 상기 전자 기기가 시드(seed) 기기로 설정됨에 따라, 상기 전자 기기에서 상기 서버로부터 저화질 채널을 통해 저화질의 라이브 스트림 데이터를 수신하는 단계; 및
    상기 수신된 저화질의 라이브 스트림 데이터를 다른 전자 기기로 전송하여 공유하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  2. 제1항에 있어서,
    상기 서버에 의해, 상기 고화질 채널에 대해 기설정된 범위 내에서 설정된 설정값과 상기 전자 기기에서 상기 고화질 채널의 생성에 응답하여 상기 기설정된 범위 내에서 생성된 랜덤값이 비교되어 상기 전자 기기의 상기 시드 기기 여부가 결정되는 것을 특징으로 하는 컴퓨터 프로그램.
  3. 제2항에 있어서,
    상기 설정값은 상기 저화질 채널 및 상기 고화질 채널 각각의 통신 방식의 종류별 사용자수에 기반하여 상기 서버에서 기설정되는 것을 특징으로 하는 컴퓨터 프로그램.
  4. 제2항에 있어서,
    상기 설정값은, 상기 저화질 채널에 접속한 사용자의 수, 상기 저화질 채널의 사용자들 중 LAN(Local Area Network)을 통해 상기 저화질 채널에 접속한 사용자의 수, 상기 고화질 채널의 사용자들 중 LAN을 통해 상기 고화질 채널에 접속한 사용자의 수 및 상기 서버에서 기설정된 저화질 채널의 LAN 사용자 비율을 이용하여 상기 서버에서 계산되는 것을 특징으로 하는 컴퓨터 프로그램.
  5. 제1항에 있어서,
    상기 공유 방법은,
    상기 전자 기기에서 상기 사용자의 저화질 채널의 선택에 대한 응답으로 상기 저화질 채널을 통해 수신된 저화질의 라이브 스트림 데이터를 재생하고, 상기 저화질의 라이브 스트림 데이터의 다른 전자 기기로의 전송 및 공유를 중지하는 단계
    를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  6. 제1항에 있어서,
    상기 저화질의 라이브 스트림 데이터를 수신하는 단계는,
    라이브 스트림 데이터를 구성하는 피스(piece)들 중 다운로드 또는 재생하고자 하는 연속된 피스들을 특정하기 위한 스트리밍 슬라이딩 윈도우를 이용하여, 상기 스트리밍 슬라이딩 윈도우가 특정하는 상기 저화질의 라이브 스트림 데이터의 피스들을 수신하는 것을 특징으로 하는 컴퓨터 프로그램.
  7. 제6항에 있어서,
    상기 스트리밍 슬라이딩 윈도우는 복수의 영역들로 구분되고,
    상기 저화질의 라이브 스트림 데이터를 수신하는 단계는,
    상기 구분된 복수의 영역들 중 제1 영역이 특정하는 피스들을 P2P 방식을 통해 다른 피어(peer)로부터 수신하는 것을 특징으로 하는 컴퓨터 프로그램.
  8. 제7항에 있어서,
    상기 저화질의 라이브 스트림 데이터를 수신하는 단계는,
    상기 구분된 복수의 영역들 중 제2 영역이 특정하는 피스들을 서버의 기설정된 정책에 따라 상기 서버로부터 스트리밍 방식으로 수신하고,
    상기 제2 영역은 상기 스트리밍 슬라이딩 윈도우가 특정하는 피스들 중 다른 영역보다 상대적으로 최신 라이브 스트림 데이터에 해당하는 피스들을 특정하는 영역인 것을 특징으로 하는 컴퓨터 프로그램.
  9. 컴퓨터로 구현된 전자 기기의 공유 방법에 있어서,
    상기 전자 기기에서 사용자의 고화질 채널의 선택에 대한 응답으로 라이브 스트림 데이터를 스트리밍하는 서버로부터 고화질 채널을 통해 고화질의 라이브 스트림 데이터를 수신하여 재생하는 단계;
    상기 고화질 채널의 생성에 응답하여 상기 서버에 의해 상기 전자 기기가 시드(seed) 기기로 설정됨에 따라, 상기 전자 기기에서 상기 서버로부터 저화질 채널을 통해 저화질의 라이브 스트림 데이터를 수신하는 단계; 및
    상기 수신된 저화질의 라이브 스트림 데이터를 다른 전자 기기로 전송하여 공유하는 단계
    를 포함하는 것을 특징으로 하는 공유 방법.
  10. 제9항에 있어서,
    상기 서버에 의해, 상기 고화질 채널에 대해 기설정된 범위 내에서 설정된 설정값과 상기 전자 기기에서 상기 고화질 채널의 생성에 응답하여 상기 기설정된 범위 내에서 생성된 랜덤값이 비교되어 상기 전자 기기의 상기 시드 기기 여부가 결정되는 것을 특징으로 하는 공유 방법.
  11. 제9항에 있어서,
    상기 전자 기기에서 상기 사용자의 저화질 채널의 선택에 대한 응답으로 상기 저화질 채널을 통해 수신된 저화질의 라이브 스트림 데이터를 재생하고, 상기 저화질의 라이브 스트림 데이터의 다른 전자 기기로의 전송 및 공유를 중지하는 단계
    를 더 포함하는 것을 특징으로 하는 공유 방법.
  12. 제9항에 있어서,
    상기 저화질의 라이브 스트림 데이터를 수신하는 단계는,
    라이브 스트림 데이터를 구성하는 피스(piece)들 중 다운로드 또는 재생하고자 하는 연속된 피스들을 특정하기 위한 스트리밍 슬라이딩 윈도우를 이용하여, 상기 스트리밍 슬라이딩 윈도우가 특정하는 상기 저화질의 라이브 스트림 데이터의 피스들을 수신하는 것을 특징으로 하는 공유 방법.
  13. 제12항에 있어서,
    상기 스트리밍 슬라이딩 윈도우는 복수의 영역들로 구분되고,
    상기 저화질의 라이브 스트림 데이터를 수신하는 단계는,
    상기 구분된 복수의 영역들 중 제1 영역이 특정하는 피스들을 P2P 방식을 통해 다른 피어(peer)로부터 수신하는 것을 특징으로 하는 공유 방법.
  14. 제13항에 있어서,
    상기 저화질의 라이브 스트림 데이터를 수신하는 단계는,
    상기 구분된 복수의 영역들 중 제2 영역이 특정하는 피스들을 서버의 기설정된 정책에 따라 상기 서버로부터 스트리밍 방식으로 수신하고,
    상기 제2 영역은 상기 스트리밍 슬라이딩 윈도우가 특정하는 피스들 중 다른 영역보다 상대적으로 최신 라이브 스트림 데이터에 해당하는 피스들을 특정하는 영역인 것을 특징으로 하는 공유 방법.
  15. 컴퓨터로 구현된 전자 기기의 공유 시스템에 있어서,
    상기 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    사용자의 고화질 채널의 선택에 대한 응답으로 라이브 스트림 데이터를 스트리밍하는 서버로부터 고화질 채널을 통해 고화질의 라이브 스트림 데이터를 수신하고, 상기 고화질 채널의 생성에 응답하여 상기 서버에 의해 상기 전자 기기가 시드(seed) 기기로 설정됨에 따라 상기 서버로부터 저화질 채널을 통해 저화질의 라이브 스트림 데이터를 수신하도록 상기 전자 기기를 제어하는 수신 제어부;
    상기 수신된 고화질의 라이브 스트림 데이터를 재생하도록 상기 전자 기기를 제어하는 재생 제어부; 및
    상기 수신된 저화질의 라이브 스트림 데이터를 다른 전자 기기로 전송하여 공유하도록 상기 전자 기기를 제어하는 전송 제어부
    를 포함하는 공유 시스템.
  16. 제15항에 있어서,
    상기 서버에 의해, 상기 고화질 채널에 대해 기설정된 범위 내에서 설정된 설정값과 상기 전자 기기에서 상기 고화질 채널의 생성에 응답하여 상기 기설정된 범위 내에서 생성된 랜덤값이 비교되어 상기 전자 기기의 상기 시드 기기 여부가 결정되는 것을 특징으로 하는 공유 시스템.
  17. 제15항에 있어서,
    상기 재생 제어부는,
    상기 사용자의 저화질 채널의 선택에 대한 응답으로 상기 저화질 채널을 통해 수신된 저화질의 라이브 스트림 데이터를 재생하도록 상기 전자 기기를 제어하고,
    상기 전송 제어부는,
    상기 저화질의 라이브 스트림 데이터의 다른 전자 기기로의 전송 및 공유를 중지하도록 상기 전자 기기를 제어하는 것을 특징으로 하는 공유 시스템.
  18. 제15항에 있어서,
    상기 수신 제어부는,
    라이브 스트림 데이터를 구성하는 피스(piece)들 중 다운로드 또는 재생하고자 하는 연속된 피스들을 특정하기 위한 스트리밍 슬라이딩 윈도우를 이용하여, 상기 스트리밍 슬라이딩 윈도우가 특정하는 상기 저화질의 라이브 스트림 데이터의 피스들을 수신하도록 상기 전자 기기를 제어하는 것을 특징으로 하는 공유 시스템.
  19. 제18항에 있어서,
    상기 스트리밍 슬라이딩 윈도우는 복수의 영역들로 구분되고,
    상기 수신 제어부는,
    상기 구분된 복수의 영역들 중 제1 영역이 특정하는 피스들을 P2P 방식을 통해 다른 피어(peer)로부터 수신하도록 상기 전자 기기를 제어하는 것을 특징으로 하는 공유 시스템.
  20. 제19항에 있어서,
    상기 수신 제어부는,
    상기 구분된 복수의 영역들 중 제2 영역이 특정하는 피스들을 서버의 기설정된 정책에 따라 상기 서버로부터 스트리밍 방식으로 수신하도록 상기 전자 기기를 제어하고,
    상기 제2 영역은 상기 스트리밍 슬라이딩 윈도우가 특정하는 피스들 중 다른 영역보다 상대적으로 최신 라이브 스트림 데이터에 해당하는 피스들을 특정하는 영역인 것을 특징으로 하는 공유 시스템.

KR1020160003512A 2016-01-12 2016-01-12 생중계 데이터를 공유하는 방법 및 시스템 KR101791208B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160003512A KR101791208B1 (ko) 2016-01-12 2016-01-12 생중계 데이터를 공유하는 방법 및 시스템
JP2017001074A JP6342526B2 (ja) 2016-01-12 2017-01-06 生中継データを共有する方法およびシステム
US15/402,578 US10567454B2 (en) 2016-01-12 2017-01-10 Method and system for sharing live broadcast data including determining if an electronic device is a seed device in response to determining the relationship a random value has with a setting value

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160003512A KR101791208B1 (ko) 2016-01-12 2016-01-12 생중계 데이터를 공유하는 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20170084449A KR20170084449A (ko) 2017-07-20
KR101791208B1 true KR101791208B1 (ko) 2017-10-31

Family

ID=59275011

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160003512A KR101791208B1 (ko) 2016-01-12 2016-01-12 생중계 데이터를 공유하는 방법 및 시스템

Country Status (3)

Country Link
US (1) US10567454B2 (ko)
JP (1) JP6342526B2 (ko)
KR (1) KR101791208B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110708272B (zh) * 2018-07-10 2022-01-07 武汉斗鱼网络科技有限公司 直播应用分享模块解耦系统、方法、存储介质及电子设备
CN109634597B (zh) * 2018-12-11 2022-02-18 武汉瓯越网视有限公司 数据处理方法、装置、电子设备及存储介质
CN115190340B (zh) * 2021-04-01 2024-03-26 华为终端有限公司 直播数据的传输方法、直播设备和介质
US11824914B1 (en) * 2022-11-15 2023-11-21 Motorola Solutions, Inc. System and method for streaming media to a public safety access point without incurring additional user costs

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101269678B1 (ko) * 2009-10-29 2013-05-30 한국전자통신연구원 P2p 스트리밍 장치, 방법 및 시스템 구성방법

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2329590C (en) * 2000-12-27 2012-06-26 Certicom Corp. Method of public key generation
CA2330166A1 (en) * 2000-12-29 2002-06-29 Nortel Networks Limited Data encryption using stateless confusion generators
JP2006060639A (ja) * 2004-08-23 2006-03-02 Matsushita Electric Ind Co Ltd 輻輳回避情報収集システム
US7593354B2 (en) * 2006-03-22 2009-09-22 Musigy Usa, Inc. Method and system for low latency high quality music conferencing
US8751605B1 (en) * 2006-11-15 2014-06-10 Conviva Inc. Accounting for network traffic
US8775562B2 (en) * 2006-12-05 2014-07-08 International Business Machines Corporation Mapping file fragments to file information and tagging in a segmented file sharing system
US7617178B2 (en) * 2006-12-05 2009-11-10 International Business Machines Corporation Moving file fragments from background file sharing to foreground file sharing and preventing duplicate downloads
US7814146B2 (en) * 2006-12-05 2010-10-12 International Business Machines Corporation File fragment trading based on rarity values in a segmented file sharing system
US8131673B2 (en) * 2006-12-05 2012-03-06 International Business Machines Corporation Background file sharing in a segmented peer-to-peer file sharing network
US8832290B2 (en) * 2007-02-23 2014-09-09 Microsoft Corporation Smart pre-fetching for peer assisted on-demand media
WO2009005747A1 (en) * 2007-06-28 2009-01-08 The Trustees Of Columbia University In The City Of New York Set-top box peer-assisted video-on-demand
CN101690022A (zh) * 2007-06-28 2010-03-31 汤姆森特许公司 用于对等直播流的基于队列的自适应块调度
US20090100128A1 (en) * 2007-10-15 2009-04-16 General Electric Company Accelerating peer-to-peer content distribution
US8655953B2 (en) * 2008-07-18 2014-02-18 Porto Technology, Llc System and method for playback positioning of distributed media co-viewers
CN101453474B (zh) * 2008-12-30 2011-12-07 中兴通讯股份有限公司 一种终端、资讯插播系统及方法
US8280958B2 (en) * 2009-07-13 2012-10-02 International Business Machines Corporation List passing in a background file sharing network
US8204791B2 (en) * 2009-07-13 2012-06-19 International Business Machines Corporation File fragment pricing in a segmented file sharing network
JP2011045082A (ja) * 2009-08-24 2011-03-03 Samsung Electronics Co Ltd コンテンツ再生のためのデバイス及びそのコンテンツ再生方法
US10009396B2 (en) * 2009-12-11 2018-06-26 Thomson Licensing Queue-based adaptive chunk scheduling for peer-to-peer live streaming
KR101089562B1 (ko) 2010-04-27 2011-12-05 주식회사 나우콤 고화질 미디어 방송을 위한 피투피 라이브 스트리밍 시스템 및 방법
JP5865737B2 (ja) * 2012-03-06 2016-02-17 日本放送協会 P2pネットワークサービスに用いる端末装置、通信システム及びプログラム
US9092283B2 (en) * 2012-03-30 2015-07-28 Freescale Semiconductor, Inc. Systems with multiple port random number generators and methods of their operation
JP2013258657A (ja) * 2012-06-14 2013-12-26 Nippon Hoso Kyokai <Nhk> P2pネットワークサービスに用いる端末装置及びプログラム
KR20140024553A (ko) 2012-08-20 2014-03-03 에스케이텔레콤 주식회사 라이브 스트리밍 컨텐츠를 위한 컨텐츠 전송 서비스 방법, 및 이를 위한 장치
TWI500315B (zh) * 2013-12-25 2015-09-11 Ind Tech Res Inst 串流分享方法、串流分享裝置與串流分享系統
JP6612019B2 (ja) * 2014-08-19 2019-11-27 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、制御データ送信方法および情報処理システム
US10044696B2 (en) * 2015-12-22 2018-08-07 Mcafee, Llc Simplified sensor integrity

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101269678B1 (ko) * 2009-10-29 2013-05-30 한국전자통신연구원 P2p 스트리밍 장치, 방법 및 시스템 구성방법

Also Published As

Publication number Publication date
US10567454B2 (en) 2020-02-18
JP2017126983A (ja) 2017-07-20
US20170201559A1 (en) 2017-07-13
KR20170084449A (ko) 2017-07-20
JP6342526B2 (ja) 2018-06-13

Similar Documents

Publication Publication Date Title
US10602206B2 (en) Method and system for providing time machine function in live broadcast
US20170026713A1 (en) System and Method for Dynamic Adaptive Video Streaming Using Model Predictive Control
JP5800872B2 (ja) 相互接続ネットワークにおけるパケットレベルプライオリティ付け
US9332051B2 (en) Media manifest file generation for adaptive streaming cost management
KR101791208B1 (ko) 생중계 데이터를 공유하는 방법 및 시스템
US11565177B2 (en) Edge compute proxy for cloud gaming and 5G
US10284678B2 (en) Bandwidth management based on profiles
US10178431B2 (en) Hybrid stream delivery
US10313762B2 (en) Method and system for managing time machine function of video content
KR102063624B1 (ko) 지연 생중계를 위한 방법 및 시스템
CN114143562A (zh) 延迟最小化方法、服务器及计算机可读记录介质
KR102134250B1 (ko) 스트리밍 콘텐츠의 재생 방법 및 시스템
US11838560B2 (en) Method and system for playing back streaming content using local streaming server
KR101825841B1 (ko) Ttl 할당 장치 및 방법
Kwon et al. Scalable video streaming relay for smart mobile devices in wireless networks
KR102085072B1 (ko) 지연 생중계를 위한 방법 및 시스템
KR102376295B1 (ko) 트래픽 제어 정보를 이용하여 미디어를 재생하는 방법과 시스템 및 컴퓨터 판독가능한 기록 매체
KR102531647B1 (ko) 환경인지 기반 abp 성능 개선을 위한 방법, 컴퓨터 시스템, 및 컴퓨터 프로그램
KR102165837B1 (ko) 효과적인 적응형 비트레이트 스트리밍을 위한 방법 및 시스템
EP4080892A1 (en) Method for playing on a player of a client device a content streamed in a network
KR101970894B1 (ko) 저전력 스트리밍을 위한 방법 및 시스템
KR101833386B1 (ko) 사용자의 고유 식별자가 삽입된 디지털 컨텐츠의 다운로드를 위한 컨텐츠 제공 방법 및 시스템
WO2016155800A1 (en) Accessing content
CN117714718A (zh) 直播调度方式的动态配置方法、系统及计算设备

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