KR20240098763A - DaaS를 위한 서버 장치 및 이의 동작 방법 - Google Patents

DaaS를 위한 서버 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR20240098763A
KR20240098763A KR1020220180814A KR20220180814A KR20240098763A KR 20240098763 A KR20240098763 A KR 20240098763A KR 1020220180814 A KR1020220180814 A KR 1020220180814A KR 20220180814 A KR20220180814 A KR 20220180814A KR 20240098763 A KR20240098763 A KR 20240098763A
Authority
KR
South Korea
Prior art keywords
media
virtual
player
streamer
played
Prior art date
Application number
KR1020220180814A
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 KR1020220180814A priority Critical patent/KR20240098763A/ko
Publication of KR20240098763A publication Critical patent/KR20240098763A/ko

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26233Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file

Landscapes

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

Abstract

가상 단말 내 부하 영향에 따라, 서버 내 하드웨어를 이용하여 미디어 파일을 재생하여 사용자 단말로 전송하는 DaaS를 위한 서버 장치 및 이의 동작 방법이 개시된다. 일 측면에 따른, DaaS(Device as a Service)를 위한 서버 장치는, 가상 머신으로 구동되는 가상 단말로서, 재생될 미디어의 가상 단말 내 재생 가능 여부를 판단하는 가상 플레이어를 포함하는 가상 단말; 상기 가상 플레이어로부터 상기 가상 단말에서 재생 불가능한 미디어 파일을 수신하여 전달하는, 하이퍼바이저 계층에 설치되는 미디어 채널; 및 상기 미디어 채널을 통해 수신되는 상기 미디어 파일의 미디어 청크를 사용자 단말의 클라이언트 플레이어로 스트리밍 전송하는 스트리머;를 포함한다.

Description

DaaS를 위한 서버 장치 및 이의 동작 방법{Server apparatus for DaaS and operation method of the server apparatus}
본 발명은 DaaS(Device as a Service) 기술에 관한 것으로, 보다 구체적으로 DaaS를 위한 서버 장치 및 이의 동작 방법에 관한 것이다.
DaaS(Device as a Service)는, 클라우드 환경에서 가상 단말을 구현하고 사용자가 원격지에서 가상 단말에 접속하여 이용할 수 있도록 하는 기술이다. 일반적으로 DaaS에서, 서버는 하이퍼바이저를 통해 가상 머신의 가상 단말 인스턴스를 실행하고, 사용자는 클라이언트를 통해 이 가상 머신에 원격에서 접속하여 가상 머신의 화면을 스트리밍으로 받아 작업을 수행한다. 데스크탑 디바이스를 제공하는 VDI(Virtual Desktop Infrastructure) 서비스와, 모바일 디바이스를 제공하는 VMI(Virtual Mobile Infrastructure) 서비스는 DaaS의 일종이다.
일반적으로 퍼스널 컴퓨터나 스마트폰 등은 미디어 재생시 GPU, 혹은 전용 하드웨어 디코더를 이용한다. 그러나 DaaS에서 가상 단말은 클라우드 환경에서 실행되므로 GPU나 전용 하드웨어 디코더를 사용하지 못해 CPU를 이용하여 미디어를 재생한다. CPU를 이용하여 미디어를 재생하면 서버 부하가 커지고, 사용자 UX가 저하되는 문제점이 있다. 특히 미디어 재생은 영상, 음성 변화가 많아 가상 단말의 영상, 음성을 사용자 단말로 스트리밍할 때 CPU 부하가 더 높다.
아울러, 일반적으로 퍼스널 컴퓨터나 스마트폰 등은 스트리밍 서비스 이용시 사용자 단말 자원을 효율적으로 사용하기 위해 일정 구간의 스트리밍 데이터를 한 번에 몰아 다운로드 받고 나머지 시간은 네트워크 통신을 하지 않는다. 하지만 DaaS에서 미디어를 재생하는 경우, 사용자 단말은 스트리밍 데이터를 한 번에 몰아 다운로드받을 수 없어 네트워크 통신이 지속적으로 이루어져야 하고, 이는 자원 과도 소모로 이어진다.
이와 같은 이유로 종래의 DaaS는 MMR(Multi Media Redirection)을 사용한다. 클라우드의 가상 단말에서 인터넷 등의 스트리밍 미디어 재생시, 스트리밍 미디어 주소를 사용자 단말로 전달함으로써, 가상 단말은 미디어 재생에 관여하지 않고, 사용자 단말이 스트리밍 미디어를 재생한다. 이러한 MMR은 가상 단말 내에 미디어 파일이 존재할 경우 사용이 불가능하고, 또한 스트리밍 미디어가 폐쇄망 환경에 존재하는 경우 사용이 불가능하다. 아울러, 사용자 단말로 스트리밍 미디어의 주소가 전달되므로 보안 이슈가 발생하는 문제점이 있다. 즉, 스트리밍 미디어의 주소를 이용하여 미디어를 다운로드하거나 녹화하는 등의 보안 이슈가 발생한다.
본 발명은 상술한 문제점을 해결하기 위해 제안된 것으로, 가상 단말 내 부하 영향에 따라, 서버 내 하드웨어를 이용하여 미디어 파일을 재생하여 사용자 단말로 전송하는 DaaS를 위한 서버 장치 및 이의 동작 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은, 스트리밍 미디어를 사용자 단말이 아닌 가상 단말을 실행 중인 서버 내 하드웨어를 이용하여 재생하여 사용자 단말로 전송하는 DaaS를 위한 서버 장치 및 이의 동작 방법을 제공하는데 다른 목적이 있다.
일 측면에 따른, DaaS(Device as a Service)를 위한 서버 장치는, 가상 머신으로 구동되는 가상 단말로서, 재생될 미디어의 가상 단말 내 재생 가능 여부를 판단하는 가상 플레이어를 포함하는 가상 단말; 상기 가상 플레이어로부터 상기 가상 단말에서 재생 불가능한 미디어 파일을 수신하여 전달하는, 하이퍼바이저 계층에 설치되는 미디어 채널; 및 상기 미디어 채널을 통해 수신되는 상기 미디어 파일의 미디어 청크를 사용자 단말의 클라이언트 플레이어로 스트리밍 전송하는 스트리머;를 포함한다.
상기 가상 플레이어는, 상기 재생될 미디어의 시작 지점부터 소정 시간 샘플을 재생하고, 원본 미디어의 재생 구간 전체 프레임 개수와 실제 재생 구간에서 화면에 표출한 프레임 개수를 기초로 가상 단말 내 재생 가능 여부를 판단할 수 있다.
상기 스트리머는, 상기 미디어 파일을 미리 설정된 GoP(Group of Pictures) 시간만큼씩 트랜스코딩한 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송할 수 있다.
상기 가상 플레이어는, 재생될 미디어가 스트리밍 미디어인 경우, 상기 미디어 채널을 통해 상기 스트리머로 상기 스트리밍 미디어의 주소를 전송하고, 상기 스트리머는, 상기 스트리밍 미디어의 주소에 접속하여 스트리밍 미디어를 재생함과 동시에 미리 설정된 GoP 시간만큼씩 인코딩한 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송할 수 있다.
상기 가상 플레이어는, 상기 클라이언트 플레이어로부터 미디어 재생 제어 신호의 수신시, 상기 미디어 채널을 통해 상기 스트리머로 상기 미디어 재생 제어 신호를 전송하고, 상기 스트리머는, 상기 미디어 재생 제어 신호에 따라 미디어의 재생을 제어할 수 있다.
상기 가상 플레이어는, 상기 재생될 미디어의 가상 단말 내 재생이 가능한 경우 직접 미디어를 재생하고, 상기 스트리머는, 상기 가상 단말 내에서 재생되는 미디어를 미리 설정된 GoP 시간만큼씩 인코딩한 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송할 수 있다.
상기 스트리머는, 미디어 미재생시 상기 가상 단말의 화면 및 음성을 인코딩하여 상기 사용자 단말로 전송하는 일반 모드로 동작하고, 미디어 재생시 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송하는 미디어 재생 모드 동작할 수 있다.
상기 가상 플레이어는, 사용자가 상기 가상 단말 내에서 미디어 재생시 실행되어, 상기 클라이언트 플레이어를 실행시키고, 상기 스트리머 및 상기 클라이언트 플레이어와의 채널을 생성하며, 상기 스트리머와 상기 클라이언트 플레이어 간의 연결을 유도할 수 있다.
다른 측면에 따른, DaaS(Device as a Service)를 위한 서버 장치의 동작 방법은, 가상 머신으로 구동되는 가상 단말 내의 가상 플레이어가, 재생될 미디어의 가상 단말 내 재생 가능 여부를 판단하는 단계; 상기 가상 플레이어가, 상기 가상 단말에서 재생 불가능한 미디어 파일을 하이퍼바이저 계층에 설치된 미디어 채널을 통해 스트리머로 전송하는 단계; 및 상기 스트리머가, 상기 미디어 채널을 통해 수신되는 상기 미디어 파일의 미디어 청크를 사용자 단말의 클라이언트 플레이어로 스트리밍 전송하는 단계를 포함한다.
상기 판단하는 단계는, 상기 가상 플레이어가, 상기 재생될 미디어의 시작 지점부터 소정 시간 샘플을 재생하고, 원본 미디어의 재생 구간 전체 프레임 개수와 실제 재생 구간에서 화면에 표출한 프레임 개수를 기초로 가상 단말 내 재생 가능 여부를 판단할 수 있다.
상기 스트리밍 전송하는 단계는, 상기 스트리머가, 상기 미디어 파일을 미리 설정된 GoP(Group of Pictures) 시간만큼씩 트랜스코딩한 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송할 수 있다.
상기 동작 방법은, 상기 가상 플레이어가, 재생될 미디어가 스트리밍 미디어인 경우, 상기 미디어 채널을 통해 상기 스트리머로 상기 스트리밍 미디어의 주소를 전송하는 단계; 및 상기 스트리머가, 상기 스트리밍 미디어의 주소에 접속하여 스트리밍 미디어를 재생함과 동시에 미리 설정된 GoP 시간만큼씩 인코딩한 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송하는 단계를 더 포함할 수 있다.
상기 동작 방법은, 상기 가상 플레이어가, 상기 클라이언트 플레이어로부터 미디어 재생 제어 신호의 수신시, 상기 미디어 채널을 통해 상기 스트리머로 상기 미디어 재생 제어 신호를 전송하는 단계; 및 상기 스트리머가, 상기 미디어 재생 제어 신호에 따라 미디어의 재생을 제어하는 단계를 더 포함할 수 있다.
상기 동작 방법은, 상기 가상 플레이어가, 상기 재생될 미디어의 가상 단말 내 재생이 가능한 경우 직접 미디어를 재생하는 단계; 및 상기 스트리머가, 상기 가상 단말 내에서 재생되는 미디어를 미리 설정된 GoP 시간만큼씩 인코딩한 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송하는 단계를 더 포함할 수 있다.
상기 스트리머는, 미디어 미재생시 상기 가상 단말의 화면 및 음성을 인코딩하여 상기 사용자 단말로 전송하는 일반 모드로 동작하고, 미디어 재생시 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송하는 미디어 재생 모드 동작할 수 있다.
상기 동작 방법은, 상기 판단하는 단계 이전에, 상기 가상 플레이어가, 상기 클라이언트 플레이어를 실행시키고, 상기 스트리머 및 상기 클라이언트 플레이어와의 채널을 생성하며, 상기 스트리머와 상기 클라이언트 플레이어 간의 연결을 유도하는 단계를 더 포함할 수 있다.
본 발명에 따르면, DaaS를 제공하는데 있어 가상 단말 내에서 재생이 불가능한 고화질 미디어를 재생하여 사용자 단말에 제공할 수 있다.
또한, 본 발명에 따르면, 종래 MMR 기술 적용이 불가능한 가상 단말 내 미디어 파일 또는 폐쇄망 내 미디어 파일 등의 재생을 가능하게 한다.
또한, 본 발명에 따르면, 미디어 파일 단위로 사용자 단말의 클라이언트 플레이어를 실행함으로써 사용자 단말의 배터리 소모를 절감할 수 있다.
도 1은 본 발명의 일 실시예에 따른 DaaS(Device as a Service) 시스템의 구성을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 DaaS 시스템의 서버에서 미디어 재생시 초기화 방법을 설명하는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 가상 플레이어의 동작 방법을 설명하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 가상 단말의 미디어 재생 성능을 측정하는 방법을 설명하는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 서버의 스트리머의 동작 방법을 설명하는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 서버의 스트리머에서 미디어 재생 제어 신호의 수신시 동작 방법을 설명하는 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 클라이언트 플레이어의 동작 방법을 설명하는 흐름도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명을 구현함에 있어서 설명의 편의를 위하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다.
도 1은 본 발명의 일 실시예에 따른 DaaS(Device as a Service) 시스템의 구성을 나타낸 도면이다. 도 1을 참조하면, 본 실시예에 따른 DaaS 시스템은, 서버(100) 및 사용자 단말(200)을 포함한다. DaaS 시스템에서 사용자는 사용자 단말(200)을 통해 서버(100)에 접속하고 서버(100) 내에서 가상 단말을 실행한 후 가상 단말의 화면, 영상, 음성 등의 데이터를 사용자 단말(200)로 전송한다.
서버(100)는, 도 1을 참조하면, 호스트 운영체제(OS)(110), 하이퍼바이저(120) 및 가상 단말(130)을 포함한다. 서버(100)는, 도시되지 않았지만, CPU, GPU, 메모리(MEMORY), 디스크 및 네트워크 인터페이스 카드(NIC, 예, ethernet 카드) 등의 물리 하드웨어와, 디바이스 드라이버 등도 포함한다. CPU는 메모리에 저장된 명령어 세트를 실행하여 DaaS의 여러 기능을 수행하고 데이터를 처리한다. 메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 디스크는 하나 이상의 자기 디스크 저장 장치로서 로컬 저장 장치나 네트워크 부착 스토리지 등의 원격 저장 장치 등을 포함한다.
호스트 운영체제(110)는 서버(100)의 물리 디스크에 설치되어 CPU에 의해 실행된다. 하이퍼바이저(120)는, 상기 호스트 운영체제(110) 상에 가상 단말(130)에 해당하는 가상 머신을 생성하고 가상 머신 내에 물리 하드웨어를 가상화하여 논리적인 물리 디바이스를 생성하며 운영체제를 설치하여 운영하는 소프트웨어 계층이다. 예를 들어, KVM(Kernel-based Virtual Machine) 기술을 이용할 수 있으나 여기에 제한되는 것은 아니다.
가상 단말(130)은, 가상 머신으로서, 호스트 운영체제(110)에 의해 가상화된 논리적인 가상 하드웨어(Virtual Hardware)를 포함하고, 또한 게스트 운영체제(Guest OS)가 설치되며 게스트 운영체제(Guest OS)에 각종 사용자 응용(User Application)이 설치되어 실행될 수 잇다. 사용자 응용은 예를 들어, 뱅킹 서비스, 주식 거래 서비스, 모바일 결제 서비스 등의 다양한 서비스를 포함한다. 게스트 운영체제는 Linux, NetBSD, FreeBSD, Solaris, Windows, Darwin, RTXC, UNIX, OS X 또는 VxWorks, 안드로이드 등을 포함하는 운영체제일 수 있다.
사용자 단말(200)은, 퍼스널 컴퓨터, 노트북, 태블릿 PC, 스마트폰 등의 사용자가 보유하는 컴퓨팅 장치이다. 사용자는 사용자 단말(200)을 통해 서버(100)에 접속하고 서버(100) 내에서 가상 단말(130)을 실행한 후 가상 단말(130)의 화면, 음성, 영상 등의 데이터를 사용자 단말(200)로 수신한다. 즉, 응용 프로그램의 실행이 사용자 단말(200)에서 이루어지는 것이 아니라 서버(100)의 가상 단말 상에서 실행되고 사용자 단말(200)은 실행 화면을 수신하여 표시한다. 따라서, 사용자 단말(200)은 고사양의 컴퓨팅 자원이 필요치 않다.
도 1에 도시된 바와 같이, 서버(100)의 호스트 운영체제(110) 상에는 스트리머(111)가 설치되고, 하이퍼바이저(120)에는 미디어 채널(121)이 형성되며, 가상 단말(130)에는 가상 플레이어(131)가 설치된다. 그리고 사용자 단말(200)에는 클라이언트 플레이어(210)가 설치된다. 서버(100)의 가상 플레이어(131)와 사용자 단말(200)의 클라이언트 플레이어(210)는 미디어를 재생하는 소프트웨어이다.
가상 플레이어(131)는, 가상 단말(130) 내에 저장된 미디어 파일을 재생한다. 가상 플레이어(131)는, 가상 단말(130) 내에서 실행시 사용자 단말(200)의 클라이언트 플레이어(210) 및 서버(100) 내 스트리머(111) 간 채널을 형성하고, 클라이언트 플레이어(210)와 스트리머(111) 간 연결을 유도한다.
가상 플레이어(131)는, 가상 단말(130) 내에 저장된 미디어 파일의 재생시 가상 단말(130)의 미디어 재생 성능을 측정하고 가상 단말(130) 내에서 재생이 가능한 경우 가상 단말(130) 내에서 미디어 파일을 재생하고 가상 단말(130) 내에서 재생이 불가능한 경우 미디어 채널(121)을 통해 가상 단말(130) 내 저장된 미디어 파일을 스트리머(111)로 전송한다. 여기서 미디어 파일의 스트리머(111)로의 전송은 가상 단말(130) 내 저장된 미디어 파일로의 접근 주소의 전송을 포함한다. 가상 플레이어(131)는, 사용자가 외부 스트리밍 서버의 스트리밍 미디어를 재생하는 경우, 스트리밍 미디어의 주소를 스트리머(111)로 전송한다.
일 실시예에서, 가상 플레이어(131)는, 가상 단말(130) 내에 저장된 미디어 파일의 재생시, 미디어 시작 지점부터 2초간 샘플을 재생하고, 원본 미디어의 재생 구간 전체 프레임 개수와 실제 재생 구간에서 화면에 표출한 프레임 개수를 확인하고, 프레임 개수가 동일하면 미디어 프레임의 드롭이 없는 것으로 가상 단말(130) 내에서 미디어 재생이 가능한 것으로 판단하고, 프레임 개수가 다르면 미디어 프레임의 드롭이 발생한 것으로 가상 단말(130) 내에서 미디어 재생이 불가능한 것으로 판단할 수 있다.
가상 플레이어(131)는, 클라이언트 플레이어(210)로부터 미디어 재생 제어 신호를 수신할 수 있고, 그 미디어 재생 제어 신호에 따라 가상 단말(130) 내에서의 미디어 파일 재생을 제어하거나, 미디어 채널(121)을 통해 스트리머(111)로 미디어 재생 제어 신호를 전달할 수 있다. 미디어 재생 제어 신호는, 예를 들어, 미디어 탐색(예, 앞, 뒤 시간 이동), 볼륨 조절, 재생, 창 크기 변경 또는 정지 등의 신호를 포함할 수 있으나 여기에 제한되지 않는다.
미디어 채널(121)은, 미디어 전송 채널과 미디어 제어 채널을 포함할 수 있다. 미디어 전송 채널은, 가상 단말(130) 내에 존재하지만 가상 단말(130)에서 재생할 수 없는 미디어 파일을 가상 플레이어(131)로부터 수신하여 스트리머(111)로 전달한다. 미디어 제어 채널은, 가상 단말(130) 내의 가상 플레이어(131)에서 재생할 수 없는 외부 스트리밍 서버로부터 스트리밍되는 스트리밍 미디어의 주소를 가상 플레이어(131)로부터 수신하여 스트리머(111)로 전달하고, 또한 가상 플레이어(131)로부터 사용자의 미디어 재생 제어 신호를 스트리머(111)로 전달한다.
스트리머(111)는, 일반 모드와 미디어 재생 모드로 구분하여 동작한다. 일반 모드에서, 스트리머(111)는, 가상 단말(130)의 화면, 음성 등의 데이터을 인코딩하여 사용자 단말(200)로 전송한다. 예를 들어, 가상 단말(130)에서 실행되는 어플리케이션의 화면이나 바탕 화면 등을 사용자 단말(200)로 전송한다. 미디어 재생 모드에서, 스트리머(111)는, 가상 단말(130) 내에서 미디어 재생시 미디어 재생과 동시에 영상/음성을 인코딩하여 클라이언트 플레이어(210)로 전송한다. 그리고 스트리머(111)는, 미디어 채널(121)을 통해 가상 플레이어(131)로부터 수신된 미디어 파일을 직접 재생하거나 스트리밍 미디어의 주소에 접속하여 스트리밍 미디어를 직접 재생하여 클라이언트 플레이어(210)로 전송할 수 있다. 이때, 스트리머(111)는 미디어 채널(121)을 통해 수신되는 미디어 재생 제어 신호에 따라 미디어 재생을 제어한다.
미디어 재생 모드에서, 스트리머(111)는, 가상 단말(130) 내에서 미디어 재생시 미리 설정된 GoP(Group of Pictures) 시간만큼 인코딩을 하고 인코딩된 미디어 청크를 전송한다. 또한 스트리머(111)는, 스트리밍 미디어의 주소에 접속하여 스트리밍 미디어를 수신하여 재생할 경우, 스트리밍 미디어를 재생함과 동시에 미리 설정된 GoP 시간만큼씩 미디어를 인코딩하고 그 인코딩된 미디어 청크를 전송한다. 또한, 스트리머(111)는, 가상 플레이어(131)로부터 미디어 파일을 수신하여 재생할 경우, 미리 설정된 GoP 시간만큼씩 미디어 파일을 트랜스코딩하여 전송한다.
바람직하게, 스트리머(111)는, 서버(100)의 CPU, GPU 등을 이용하여 인코딩 및 트랜스코딩을 수행한다. 즉, 가상 단말(130) 내의 가상 CPU, GPU가 아닌 서버(110)의 물리 CPU, GPU 등을 이용한다.
사용자 단말(200)의 클라이언트 플레이어(210)는, 서버(100) 내 가상 단말(130)의 가상 플레이어(131)에 의해 실행될 수 있고, 서버(100)의 스트리머(111)로부터 미디어 청크를 다운로드하여 다운로드가 완료되면 해당 미디어 청크를 재생한다. 클라이언트 플레이어(210)는, 미디어 재생 중 사용자로부터 미디어 재생 제어 신호가 입력되는 경우, 그 미디어 재생 제어 신호를 서버(100) 내 가상 단말(130)의 가상 플레이어(131)로 전송한다.
이상의 도 1을 참조한 DaaS 시스템에 따르면, 가상 단말(130) 내에서 재생이 불가하였던 고화질 미디어를 재생할 수 있다. 또한 가상 단말(130) 내에 저장된 미디어 파일이나, 폐쇄망 내 미디어 파일 등 MMR(Multi-Media Redirection) 기술 적용이 불가능했던 미디어 파일에 대해서도 재생이 가능하다. 이하에서 구체적인 동작 방법을 도면을 참조하여 설명한다.
도 2는 본 발명의 일 실시예에 따른 DaaS 시스템의 서버에서 미디어 재생시 초기화 방법을 설명하는 흐름도이다. 이 초기화 방법은 서버(100)에서 각 개별 미디어가 재생될 때마다 실행될 수 있다.
도 2를 참조하면, 단계 S201에서, 서버(100) 내 가상 단말(130)에서 미디어 재생이 시작된다. 바람직하게, 사용자는 사용자 단말(200)을 이용하여 가상 단말(130)에 접속하고 가상 단말(130) 상에서 미디어를 재생한다. 미디어는 가상 단말(130) 내 저장된 미디어일 수 있고, 또는 외부 스트리밍 서버에서 스트리밍되는 스트리밍 미디어일 수 있다.
단계 S202에서, 가상 단말(130) 내의 가상 플레이어(131)가 실행된다. 그리고 단계 S203에서, 실행된 가상 플레이어(131)는, 사용자 단말(130)의 클라이언트 플레이어(210)를 실행한다. 그리고 단계 S204에서, 가상 플레이어(131)는, 서버(100) 내 스트리머(111)의 동작 모드를 일반 모드에서 미디어 재생 모드로 변경한다.
단계 S205에서, 가상 플레이어(131)는, 사용자 단말(200)의 클라이언트 플레이어(210)와의 채널을 생성하고, 또한 스트리머(111)와의 채널을 생성하며, 클라이언트 플레이어(210)와 스트리머(111) 간 연결을 유도한다.
이상의 도 2를 참조한 초기화 방법에 따라 미디어 재생을 위한 초기 설정이 종료되고, 재생된 미디어의 스트리밍이 시작된다. 즉, 이하의 도 3의 방법에 따라 스트리밍이 시작된다.
도 3은 본 발명의 일 실시예에 따른 가상 플레이어의 동작 방법을 설명하는 흐름도이다. 도 2의 방법에 이어서 수행될 수 있다.
도 3을 참조하면, 단계 S301에서, 가상 플레이어(131)는, 재생될 미디어가 가상 단말(130) 내 저장되어 있는 미디어인지 확인한다. 가상 단말(130) 내 저장되어 있지 않은 미디어, 즉 외부 스트리밍 서버에 저장된 스트리밍 미디어인 경우, 단계 S302에서, 가상 플레이어(131)는, 스트리밍 미디어의 주소를 획득한다. 단계 S303에서, 가상 플레이어(131)는, 획득된 스트리밍 미디어의 주소를 미디어 채널(121)을 통해 스트리머(111)로 전송한다.
한편, 재생될 미디어가 가상 단말(130) 내 저장되어 있는 미디어인 경우, 단계 S304에서, 가상 플레이어(131)는, 미디어 재생 성능을 측정하고, 단계 S305에서, 가상 단말(130) 내에서 재생이 가능한지 판단한다.
단계 S305에서 판단한 결과, 가상 단말(130) 내에서 재생이 불가능한 경우, 단계 S306에서, 가상 플레이어(131)는, 미디어 채널을 통해 스트리머(111)로 해당 미디어 파일을 전송한다. 여기서 미디어 파일의 스트리머(111)로의 전송은 가상 단말(130) 내 저장된 미디어 파일로의 접근 주소의 전송을 포함한다.
단계 S305에서 판단한 결과, 가상 단말(130) 내에서 재생이 가능한 경우, 단계 S307에서, 가상 플레이어(131)는, 가상 단말(130) 내에서 해당 미디어 파일을 직접 재생한다. 이때, 가상 플레이어(131)에서의 미디어 재생 결과는, 스트리머(111)를 통해 인코딩되어 사용자 단말(200)로 전송된다.
이상의 과정을 통해서 가상 단말(130) 내에서 미디어가 재생되거나, 또는 스트리머(111)를 통해 미디어가 재생된다. 이 과정은 도 5를 참조하여 보다 자세히 후술한다.
한편, 단계 S308에서, 가상 플레이어(131)는, 미디어 재생 제어 신호가 수신되는지 확인한다. 미디어 재생 제어 신호가 수신되는 경우, 단계 S309에서, 가상 플레이어(131)는, 현재 미디어가 가상 단말(130) 내에서 재생 중인지 확인한다.
미디어가 가상 단말(130) 내에서 미재생 중인 경우, 단계 S310에서, 가상 플레이어(131)는, 미디어 채널을 통해 미디어 재생 제어 신호를 스트리머(111)로 전송한다. 반면, 미디어가 가상 단말(130) 내에서 재생 중인 경우, 단계 S311에서, 가상 플레이어(131)는, 직접 미디어 재생 제어 신호에 따라 미디어 재생을 제어한다.
도 4는 본 발명의 일 실시예에 따른 가상 단말의 미디어 재생 성능을 측정하는 방법을 설명하는 흐름도이다. 즉, 도 3의 단계 S304의 구체적인 방법에 대한 실시예이다.
도 4를 참조하면, 단계 S401에서, 가상 플레이어(131)는, 가상 단말(130) 내에 저장된 재생될 미디어 파일의 미디어 시작 지점부터 2초간 샘플을 재생한다.
단계 S402에서, 가상 플레이어(131)는, 미디어 프레임의 드롭 발생을 확인한다. 구체적으로, 가상 플레이어(131)는, 원본 미디어의 재생 구간 전체 프레임 개수와 실제 재생 구간에서 화면에 표출한 프레임 개수를 확인하고, 프레임 개수가 동일하면 미디어 프레임의 드롭이 없는 것으로 판단하고, 프레임 개수가 다르면 미디어 프레임의 드롭이 발생한 것으로 판단할 수 있다.
미디어 프레임의 드롭이 발생한 경우, 단계 S403에서, 가상 플레이어(131)는, 가상 단말(130) 내에서 해당 미디어의 재생이 불가능한 것으로 판단하고, 미디어 프레임의 드롭이 발생하지 않은 경우, 단계 S404에서, 가상 플레이어(131)는, 가상 단말(130) 내에서 해당 미디어의 재생이 가능한 것으로 판단한다.
도 5는 본 발명의 일 실시예에 따른 서버의 스트리머의 동작 방법을 설명하는 흐름도이다.
도 5를 참조하면, 단계 S501에서, 스트리머(111)는, 가상 단말(130)의 가상 플레이어(131)와 연결되어 있는지 확인한다. 연결되어 있지 않은 경우, 단계 S502에서, 스트리머(111)는 일반 모드로 동작한다. 일반 모드에서, 스트리머(111)는, 가상 단말(130)의 화면, 음성 등을 인코딩하여 사용자 단말(200)로 스트리밍 전송한다. 예를 들어, 가상 단말(130)에서 실행되는 어플리케이션의 화면이나 바탕 화면 등을 사용자 단말(200)로 전송한다.
가상 단말(130)의 가상 플레이어(131)와 연결되어 있는 경우, 단계 S503에서, 스트리머(111)는 일반 모드에서 미디어 재생 모드로 변경한다. 그리고 단계 S504에서, 스트리머(111)는, 재생하려는 미디어가 가상 단말(130) 내 저장된 미디어 파일인지 확인한다.
단계 S504에서 확인한 결과, 가상 단말(130) 내 저장된 미디어 파일인 경우, 단계 S505에서의 가상 단말(130) 내 가상 플레이어(131)의 판단 결과에 따라, 가상 단말(130) 내에서의 재생이 가능한 상태인 경우, 단계 S506에서, 스트리머(111)는, 가상 단말(130) 내 가상 플레이어(131)에 의해 재생 중인 미디어를 인코딩하고, 단계 S507에서, 미리 설정된 GoP(Group of Pictures) 시간만큼 인코딩이 완료되었는지 확인 후, 미리 설정된 GoP 시간만큼 인코딩이 완료된 경우, 단계 S508에서, 인코딩된 미디어 청크를 클라이언트 플레이어(210)로 스트리밍 전송한다.
단계 S504에서 확인한 결과, 가상 단말(130) 내 저장된 미디어 파일이 아닌 경우, 즉 외부 스트리밍 서버로부터 스트리밍되는 스트리밍 미디어인 경우, 단계 S509에서, 스트리머(111)는, 가상 플레이어(131)로부터 스트리밍 미디어의 주소를 수신하고, 단계 S510에서 수신된 스트리밍 미디어의 주소로부터 스트리밍 데이터를 수신하여 미디어를 재생한다.
단계 S511에서, 스트리머(111)는 재생 중인 스트리밍 미디어를 인코딩한다. 단계 S512에서, 스트리머(111)는, 미리 설정된 GoP(Group of Pictures) 시간만큼 인코딩이 완료되었는지 확인하고, 미리 설정된 GoP 시간만큼 인코딩이 완료된 경우, 단계 S513에서, 스트리머(111)는, 인코딩된 미디어 청크를 클라이언트 플레이어(210)로 스트리밍 전송한다.
한편, 단계 S505에서의 가상 단말(130) 내 가상 플레이어(131)의 판단 결과에 따라, 가상 단말(130) 내에서의 재생이 불가능한 상태인 경우, 단계 S514에서, 스트리머(111)는, 가상 플레이어(131)로부터 미디어 파일을 수신한다. 여기서 미디어 파일의 수신은, 가상 단말(130) 내 저장된 미디어 파일로의 접근 주소의 수신을 포함한다.
단계 S515에서, 스트리머(111)는, 수신된 미디어 파일을 트랜스코딩한다. 미디어 파일로의 접근 주소 수신의 경우, 스트리머(111)는, 미디어 채널(121)을 통해 가상 단말(130) 내의 미디어 파일에 접근하여 미디어 파일을 트랜스코딩할 수 있다. 단계 S516에서, 스트리머(111)는, 미리 설정된 GoP(Group of Pictures) 시간만큼 트랜스코딩이 완료되었는지 확인하고, 미리 설정된 GoP 시간만큼 트랜스코딩이 완료된 경우, 단계 S517에서, 스트리머(111)는, 트랜스코딩된 미디어 청크를 클라이언트 플레이어(210)로 스트리밍 전송한다.
도 6은 본 발명의 일 실시예에 따른 서버의 스트리머에서 미디어 재생 제어 신호의 수신시 동작 방법을 설명하는 흐름도이다.
도 6을 참조하면, 단계 S601에서, 스트리머(111)는, 미디어를 재생 및 인코딩하여 사용자 단말(200)의 클라이언트 플레이어(210)로 스트리밍하는 중에 가상 단말(130) 내 가상 플레이어(131)로부터 미디어 재생 제어 신호가 수신되는지 확인한다. 여기서 재생되는 미디어는, 가상 단말(130) 내 저장된 미디어를 수신하여 재생하는 경우의 미디어, 또는 외부 스트리밍 서버로부터 수신되는 스트리밍 미디어를 포함한다.
미디어 재생 제어 신호가 수신되는 경우, 단계 S602에서 스트리머(111)는, 미디어 재생 제어 신호에 따라 현재 재생 중인 미디어를 제어(예, 앞으로 또는 뒤로 이동, 또는 볼륨 조절 등)하고 인코더를 리셋한다. 즉, 이전 미디어의 인코딩 정보를 제거한다.
단계 S603에서, 스트리머(111)는, 미디어 재생을 재개하고, 단계 S604에서, 스트리머(111)는 재생 중인 미디어를 인코딩한다. 단계 S605에서, 스트리머(111)는, 미리 설정된 GoP(Group of Pictures) 시간만큼 인코딩이 완료되었는지 확인하고, 미리 설정된 GoP 시간만큼 인코딩이 완료된 경우, 단계 S606에서, 스트리머(111)는, 인코딩된 미디어 청크를 클라이언트 플레이어(210)로 스트리밍 전송한다.
도 6을 참조한 설명에서는 스트리머(111)가 직접 미디어를 재생하여 클라이언트 플레이어(210)로 스트리밍 전송하는 경우를 설명한다. 가상 단말(130) 내 가상 플레이어(131)에서 재생되는 미디어를 클라이언트 플레이어(210)로 스트리밍 전송하는 경우에는 가상 플레이어(131)에서 직접 미디어 재생 제어 신호에 따라 미디어 재생을 제어하고, 스트리머(111)는 인코더의 변경 없이 가상 플레이어(131)에서 재생 중인 미디어를 미리 설정된 GoP(Group of Pictures) 시간만큼 인코딩하여 클라이언트 플레이어(210)로 전송한다.
도 7은 본 발명의 일 실시예에 따른 클라이언트 플레이어의 동작 방법을 설명하는 흐름도이다.
도 7을 참조하면, 단계 S701에서, 클라이언트 플레이어(210)는 가상 플레이어(131)의 제어에 따라 실행된다. 예를 들어, 가상 단말(130) 내에서 미디어가 재생될 경우, 가상 플레이어(131)가 실행되고, 가상 플레이어(131)는 클라이언트 플레이어(210)를 실행시킨다.
단계 S702에서, 클라이언트 플레이어(210)는, 서버(100)의 스트리머(111)로부터 미디어 청크를 다운로드한다. 단계 S703에서, 클라이언트 플레이어(210)는 미디어 청크 준비가 완료되었는지 확인한다. 즉, 클라이언트 플레이어(210)는, 스트리머(111)로부터 미디어 청크를 다운로드 중 버퍼링 대기하여 미디어 청크의 다운로드가 완료되었는지 확인하낟.
미디어 청크 준비가 완료되면, 단계 S704에서, 클라이언트 플레이어(210)는, 미디어 청크의 재생을 시작한다. 단계 S705에서, 클라이언트 플레이어(210)는, 사용자로부터 미디어에 대한 제어 신호가 입력되는지 확인한다. 미디어 재생 제어 신호가 입력되면, 단계 S706에서, 클라이언트 플레이어(210)는, 미디어 재생 제어 신호를 가상 단말(130)의 가상 플레이어(131)로 전송한다.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
100 : 서버
110 : 호스트 OS
111 : 스트리머
120 : 하이퍼바이저
121 : 미디어 채널
130 : 가상 단말
131 : 가상 플레이어
200 : 사용자 단말
210 : 클라이언트 플레이어

Claims (16)

  1. DaaS(Device as a Service)를 위한 서버 장치에 있어서,
    가상 머신으로 구동되는 가상 단말로서, 재생될 미디어의 가상 단말 내 재생 가능 여부를 판단하는 가상 플레이어를 포함하는 가상 단말;
    상기 가상 플레이어로부터 상기 가상 단말에서 재생 불가능한 미디어 파일을 수신하여 전달하는, 하이퍼바이저 계층에 설치되는 미디어 채널; 및
    상기 미디어 채널을 통해 수신되는 상기 미디어 파일의 미디어 청크를 사용자 단말의 클라이언트 플레이어로 스트리밍 전송하는 스트리머;를 포함하는 서버 장치.
  2. 제1항에 있어서,
    상기 가상 플레이어는,
    상기 재생될 미디어의 시작 지점부터 소정 시간 샘플을 재생하고, 원본 미디어의 재생 구간 전체 프레임 개수와 실제 재생 구간에서 화면에 표출한 프레임 개수를 기초로 가상 단말 내 재생 가능 여부를 판단하는 것을 특징으로 하는 서버 장치.
  3. 제1항에 있어서,
    상기 스트리머는,
    상기 미디어 파일을 미리 설정된 GoP(Group of Pictures) 시간만큼씩 트랜스코딩한 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송하는 것을 특징으로 하는 서버 장치.
  4. 제1항에 있어서,
    상기 가상 플레이어는,
    재생될 미디어가 스트리밍 미디어인 경우, 상기 미디어 채널을 통해 상기 스트리머로 상기 스트리밍 미디어의 주소를 전송하고,
    상기 스트리머는,
    상기 스트리밍 미디어의 주소에 접속하여 스트리밍 미디어를 재생함과 동시에 미리 설정된 GoP 시간만큼씩 인코딩한 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송하는 것을 특징으로 하는 서버 장치.
  5. 제1항 또는 제4항에 있어서,
    상기 가상 플레이어는,
    상기 클라이언트 플레이어로부터 미디어 재생 제어 신호의 수신시, 상기 미디어 채널을 통해 상기 스트리머로 상기 미디어 재생 제어 신호를 전송하고,
    상기 스트리머는,
    상기 미디어 재생 제어 신호에 따라 미디어의 재생을 제어하는 것을 특징으로 하는 서버 장치.
  6. 제1항에 있어서,
    상기 가상 플레이어는,
    상기 재생될 미디어의 가상 단말 내 재생이 가능한 경우 직접 미디어를 재생하고,
    상기 스트리머는,
    상기 가상 단말 내에서 재생되는 미디어를 미리 설정된 GoP 시간만큼씩 인코딩한 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송하는 것을 특징으로 하는 서버 장치.
  7. 제1항에 있어서,
    상기 스트리머는,
    미디어 미재생시 상기 가상 단말의 화면 및 음성을 인코딩하여 상기 사용자 단말로 전송하는 일반 모드로 동작하고,
    미디어 재생시 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송하는 미디어 재생 모드 동작하는 것을 특징으로 하는 서버 장치.
  8. 제1항에 있어서,
    상기 가상 플레이어는,
    사용자가 상기 가상 단말 내에서 미디어 재생시 실행되어, 상기 클라이언트 플레이어를 실행시키고, 상기 스트리머 및 상기 클라이언트 플레이어와의 채널을 생성하며, 상기 스트리머와 상기 클라이언트 플레이어 간의 연결을 유도하는 것을 특징으로 하는 서버 장치.
  9. DaaS(Device as a Service)를 위한 서버 장치의 동작 방법에 있어서,
    가상 머신으로 구동되는 가상 단말 내의 가상 플레이어가, 재생될 미디어의 가상 단말 내 재생 가능 여부를 판단하는 단계;
    상기 가상 플레이어가, 상기 가상 단말에서 재생 불가능한 미디어 파일을 하이퍼바이저 계층에 설치된 미디어 채널을 통해 스트리머로 전송하는 단계; 및
    상기 스트리머가, 상기 미디어 채널을 통해 수신되는 상기 미디어 파일의 미디어 청크를 사용자 단말의 클라이언트 플레이어로 스트리밍 전송하는 단계를 포함하는 동작 방법.
  10. 제9항에 있어서,
    상기 판단하는 단계는,
    상기 가상 플레이어가, 상기 재생될 미디어의 시작 지점부터 소정 시간 샘플을 재생하고, 원본 미디어의 재생 구간 전체 프레임 개수와 실제 재생 구간에서 화면에 표출한 프레임 개수를 기초로 가상 단말 내 재생 가능 여부를 판단하는 것을 특징으로 하는 동작 방법.
  11. 제9항에 있어서,
    상기 스트리밍 전송하는 단계는,
    상기 스트리머가, 상기 미디어 파일을 미리 설정된 GoP(Group of Pictures) 시간만큼씩 트랜스코딩한 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송하는 것을 특징으로 하는 동작 방법.
  12. 제9항에 있어서,
    상기 가상 플레이어가, 재생될 미디어가 스트리밍 미디어인 경우, 상기 미디어 채널을 통해 상기 스트리머로 상기 스트리밍 미디어의 주소를 전송하는 단계; 및
    상기 스트리머가, 상기 스트리밍 미디어의 주소에 접속하여 스트리밍 미디어를 재생함과 동시에 미리 설정된 GoP 시간만큼씩 인코딩한 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송하는 단계를 더 포함하는 것을 특징으로 하는 동작 방법.
  13. 제9항 또는 제12항에 있어서,
    상기 가상 플레이어가, 상기 클라이언트 플레이어로부터 미디어 재생 제어 신호의 수신시, 상기 미디어 채널을 통해 상기 스트리머로 상기 미디어 재생 제어 신호를 전송하는 단계; 및
    상기 스트리머가, 상기 미디어 재생 제어 신호에 따라 미디어의 재생을 제어하는 단계를 더 포함하는 것을 특징으로 하는 동작 방법.
  14. 제9항에 있어서,
    상기 가상 플레이어가, 상기 재생될 미디어의 가상 단말 내 재생이 가능한 경우 직접 미디어를 재생하는 단계; 및
    상기 스트리머가, 상기 가상 단말 내에서 재생되는 미디어를 미리 설정된 GoP 시간만큼씩 인코딩한 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송하는 단계를 더 포함하는 것을 특징으로 하는 동작 방법.
  15. 제9항에 있어서,
    상기 스트리머는,
    미디어 미재생시 상기 가상 단말의 화면 및 음성을 인코딩하여 상기 사용자 단말로 전송하는 일반 모드로 동작하고,
    미디어 재생시 미디어 청크를 상기 클라이언트 플레이어로 스트리밍 전송하는 미디어 재생 모드 동작하는 것을 특징으로 하는 동작 방법.
  16. 제9항에 있어서,
    상기 판단하는 단계 이전에,
    상기 가상 플레이어가, 상기 클라이언트 플레이어를 실행시키고, 상기 스트리머 및 상기 클라이언트 플레이어와의 채널을 생성하며, 상기 스트리머와 상기 클라이언트 플레이어 간의 연결을 유도하는 단계를 더 포함하는 것을 특징으로 하는 동작 방법.

KR1020220180814A 2022-12-21 2022-12-21 DaaS를 위한 서버 장치 및 이의 동작 방법 KR20240098763A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220180814A KR20240098763A (ko) 2022-12-21 2022-12-21 DaaS를 위한 서버 장치 및 이의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220180814A KR20240098763A (ko) 2022-12-21 2022-12-21 DaaS를 위한 서버 장치 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20240098763A true KR20240098763A (ko) 2024-06-28

Family

ID=91669091

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220180814A KR20240098763A (ko) 2022-12-21 2022-12-21 DaaS를 위한 서버 장치 및 이의 동작 방법

Country Status (1)

Country Link
KR (1) KR20240098763A (ko)

Similar Documents

Publication Publication Date Title
US10764375B2 (en) Method for cloud based mobile application virtualization
US10771566B2 (en) Device and system for cloud based mobile application virtualization
US11588881B2 (en) Web browser multi-media redirection
WO2015188575A1 (zh) 视频数据提供方法、视频播放方法、装置及系统
KR20160016929A (ko) 복수의 가상 머신들 사이의 가상 하드 디스크 공유
US10623454B2 (en) System and method for multimedia redirection for cloud desktop conferencing
US11588875B2 (en) Multi-media redirection for media applications
US10901809B2 (en) Audio, video and control system implementing virtual machines
KR101780782B1 (ko) 클라우드 스트리밍 서비스 제공 방법 및 이를 위한 장치
US9826572B2 (en) Wireless enhanced projector
KR20140015195A (ko) 사운드 제어 시스템 및 사운드 제어 방법
US10834164B2 (en) Virtualizing audio and video devices using synchronous A/V streaming
KR102247886B1 (ko) 클라우드 스트리밍 서비스 시스템, 이미지 타입에 따른 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR20240098763A (ko) DaaS를 위한 서버 장치 및 이의 동작 방법
KR20140117889A (ko) 클라이언트 장치, 서버 장치, 멀티미디어 리디렉션 시스템 및 그 방법
US20210006850A1 (en) Method and system for shortening transmission time of media file through concurrent processing of encoding and uploading
US11153626B1 (en) Systems and methods for transforming a fragment media player into an access unit media player
WO2016107174A1 (zh) 多媒体文件数据的处理方法及系统、播放器和客户端
KR101026759B1 (ko) 터미널 환경의 서버 기반 컴퓨팅 시스템에서 영상 밀림, 영상 손실 및 지연 없이 동영상 재생을 그 파일 형태 및 크기와 무관하게 분산 처리하기 위한 동영상 재생 분산 처리 시스템 및 동영상 재생 분산 처리 방법
US20240205469A1 (en) Apparatus and method for processing cloud streaming low latency playback
KR102273143B1 (ko) 클라우드 스트리밍 서비스 시스템, 스틸 이미지 기반 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102427882B1 (ko) 온라인 인터랙션을 위한 실시간 동영상 공유 시스템 및 방법
US20240020081A1 (en) Multimedia redirection in collaborative sessions on virtual desktops
KR102199276B1 (ko) 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 유형에 따른 서비스 처리 방법 및 이를 위한 장치
Rodríguez‐Silva et al. Improving the virtualization of rich applications by combining VNC and streaming protocols at the hypervisor layer