KR101617550B1 - 멀티미디어 트랜스코딩 방법 및 이를 수행하는 클라우드 멀티미디어 트랜스코딩 시스템 - Google Patents

멀티미디어 트랜스코딩 방법 및 이를 수행하는 클라우드 멀티미디어 트랜스코딩 시스템 Download PDF

Info

Publication number
KR101617550B1
KR101617550B1 KR1020140173738A KR20140173738A KR101617550B1 KR 101617550 B1 KR101617550 B1 KR 101617550B1 KR 1020140173738 A KR1020140173738 A KR 1020140173738A KR 20140173738 A KR20140173738 A KR 20140173738A KR 101617550 B1 KR101617550 B1 KR 101617550B1
Authority
KR
South Korea
Prior art keywords
moving picture
transcoding
data
hdfs
blocks
Prior art date
Application number
KR1020140173738A
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 KR1020140173738A priority Critical patent/KR101617550B1/ko
Priority to US14/567,957 priority patent/US20160164941A1/en
Application granted granted Critical
Publication of KR101617550B1 publication Critical patent/KR101617550B1/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/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • 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/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • 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
    • 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/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

멀티미디어 트랜스코딩 방법 및 이를 수행하는 클라우드 멀티미디어 트랜스코딩 시스템이 개시된다. 일 실시예에 따른 멀티미디어 트랜스코딩 방법은 동영상 데이터를 수신하는 단계와, 상기 동영상 데이터를 분할하여 동영상 블록들을 생성하는 단계와, 상기 동영상 블록들을 트랜스코딩하는 단계를 포함하고, 상기 각 단계는 트랜스코딩 모듈에 의해서 수행된다.

Description

멀티미디어 트랜스코딩 방법 및 이를 수행하는 클라우드 멀티미디어 트랜스코딩 시스템{METHOD FOR TRANSCODING MUTIMEDIA, AND CLOUD MULIMEDIA TRANSCODING SYSTEM OPERATING THE SAME}
아래 실시예들은 멀티미디어 트랜스코딩 방법 및 이를 수행하는 클라우드 멀티미디어 트랜스코딩 시스템에 관한 것이다.
인터넷 기술의 발전과 이기종 스마트 장치의 보급으로 많은 사람들이 Twitter, Facebook, Youtube, Vimeo 등과 같은 SNS(Social Network Service)를 통하여 시간과 장소에 구애 없이 소셜 미디어를 생산 및 공유한다. 특히, 최근에는 텍스트, 사진 보는 동영상 중심의 콘텐츠가 많이 생산 및 공유가 되고 있다.
최근 이기종 스마트 장치의 보급으로 N-Screen과 Multi-Screen기반 동영상 스트리밍 서비스 수요 증가에 따른 관련 기술의 중요성이 부각되고 있다. 최근 이기종 스마트 장치의 다양화로 성능, 해상도, 지원 동영상 포맷이 각각 다르기 때문에 동영상 스트리밍 서비스를 제공하기 위해서는 스트리밍에 적합한 파일로 변환을 해야 한다. 하지만, 동영상 변환은 시스템의 많은 자원을 필요로 한다. 특히, 최근 스마트 장치의 고사양화로 생산되는 동영상 콘텐츠들은 대부분이 고해상도화/고화질화에 따라 고용량화 되고 있다. 그 결과, 스트리밍을 위한 동영상 변환 작업으로 기존 IT 인프라의 부담이 가중되고 있다.
동영상 변환작업은 많은 시스템 자원을 필요로 하기 때문에 기존 IT 인프라 환경에서는 고성능 하드웨어 구입에 따른 비용의 문제가 발생한다. 이를 해결하기 위해 분산 환경에서 저렴한 일반 하드웨어를 이용한 접근 방법이 연구되고 있다. 그러나, 대부분의 분산 환경을 통한 접근방법은 클러스터 머신의 숫자를 증가시켜 동영상을 변환하는 방법이다. 이는 변환해야 할 동영상 파일이 증가할수록 성능 향상을 위해 클러스터 머신을 증가시켜야 하는 비효율적인 구조를 가진다. 특히, 자동화된 복구 정책의 부재로 시스템 장애 발생시 빠른 대응이 불가능하기 때문에 시스템의 신뢰성을 보장하지 못하는 문제점을 가진다.
실시예들은 동영상 변환작업 간에 동영상 데이터의 특성을 고려하여 동영상 변환작업간 별도의 동영상 블록의 분할 및 병합작업을 수행하는 기술을 제공할 수 있다.
일 실시예에 따른 멀티미디어 트랜스코딩 방법은 동영상 데이터를 수신하는 단계와, 상기 동영상 데이터를 분할하여 동영상 블록들을 생성하는 단계와, 상기 동영상 블록들을 트랜스코딩하는 단계를 포함하고, 상기 각 단계는 트랜스코딩 모듈에 의해서 수행될 수 있다.
상기 생성하는 단계는 상기 동영상 데이터를 맵 함수(map function)를 통해 HDFS(hadoop distributed file system)의 각 노드의 블록 크기로 분할하여 상기 동영상 블록들을 생성하는 단계를 포함할 수 있다.
상기 트랜스코딩하는 단계는 상기 동영상 블록들을 맵 함수를 통해 트랜스코딩하는 단계를 포함할 수 있다.
상기 방법은 트랜스코딩된 동영상 블록들을 병합하는 단계와, 병합된 동영상 블록들을 스트리밍하는 단계를 포함할 수 있다.
상기 방법은 상기 동영상 데이터를 HDFS(hadoop distributed file system)에 저장하는 단계를 포함할 수 있다.
상기 방법은 상기 동영상 블록들을 상기 HDFS의 임시 폴더에 저장하는 단계를 포함할 수 있다.
일 실시예에 따른 멀티미디어 트랜스코딩 시스템은 동영상 데이터를 수신하는 웹 인터페이스와, 상기 동영상 데이터를 분할하여 동영상 블록들을 생성하고, 상기 동영상 블록들을 트랜스코딩하는 트랜스코딩 모듈을 포함할 수 있다.
상기 트랜스코딩 모듈은 상기 동영상 데이터를 제1 맵 함수(map function)를 통해 HDFS(hadoop distributed file system)의 각 노드의 블록 크기로 분할하여 상기 동영상 블록들을 생성할 수 있다.
상기 트랜스코딩 모듈은 상기 동영상 블록들을 제2 맵 함수를 통해 트랜스코딩할 수 있다.
상기 트랜스코딩 모듈은 트랜스코딩된 동영상 블록들을 병합하고, 병합된 동영상 블록들을 스트리밍할 수 있다.
상기 시스템은 상기 동영상 데이터를 저장하는 HDFS(hadoop distributed file system)을 더 포함할 수 있다.
상기 트랜스코딩모듈은 상기 동영상 블록들을 상기 HDFS의 임시 폴더에 저장할 수 있다.
도 1은 하둡 HDFS의 구조를 나타낸다.
도 2는 하둡 맵리듀스의 구조를 나타낸다.
도 3은 일 실시예에 따른 다중 맵리듀스의 동작을 설명하기 위한 도면이다.
도 4는 클라우드 멀티미디어 트랜스코딩 시스템의 구조를 나타낸다.
도 5는 일 실시예에 따른 클라우드 멀티미디어 트랜스코딩 시스템의 개략적인 블록도이다.
도 6은 도 5에 도시된 클라우드 멀티미디어 트랜스코딩 시스템의 동작 방법을 설명하기 위한 도면이다.
도 7은 도 6에 도시된 트랜스코딩 모듈의 데이터 흐름을 나타낸다.
도 8 내지 도 15에서는 도 7에서 설명된 트랜스코딩 모듈을 구현하기 위한 클래스들을 설명한다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
도 1은 하둡 HDFS의 구조를 나타낸다.
도 1을 참조하면, HDFS는 자바로 작성된 하둡 프레임워크에서 작동하는 파일시스템으로 구글 GFS의 오픈 소스 구현체일 수 있다. HDFS은 마스터/슬레이브 구조로 되어 있으며, 마스터 노드를 네임 노드, 슬레이브 노드를 데이터 노드라 할 수 있다.
HDFS는 하나의 파일을 복수의 블록으로 나누어 복수의 데이터 노드에 저장할 수 있다. HDFS상의 파일 및 디렉터리, 블록들은 네임 노드에 의하여 관리될 수 있다. 예를 들어, 하나의 파일은 기본 64MB 단위로 복수의 블록들로 분할되고, 각 분할된 블록마다 복제하여 복제 블록들을 생성될 수 있다. 복제 블록의 개수는 사용자가 설정에 따라 변경될 수 있다. 복제 블록들은 각 분할된 블록을 포함할 수 있다.
HDFS는 생성된 블록을 각각의 다른 데이터 노드에 저장할 수 있다. 이에, HDFS는 시스템 장애시 다른 복제 블록을 이용하여 복구되기 때문에 신뢰성이 유지될 수 있다.
HDFS는 Mountable HDFS(fuse-dfs)를 이용하여 리눅스 파일 시스템에 마운트될 수 있다.
도 2는 하둡 맵리듀스의 구조를 나타낸다.
도 2를 참조하면, 하둡 맵리듀스는 페타바이트 이상의 빅데이터를 처리하기 위한 마스터/슬레이브 구조의 소프트웨어 분산 프레임워크일 수 있다.
하둡 맵리듀스의 마스터는 잡 트래커(Job Tracker)이고, 슬레이브는 태스크 트래커(Task Tracker)일 수 있다. 잡 트래커는 사용자가 요청한 작업을 실행 및 작업관리를 하고 실제 작업은 각 태스크 트래커에서 실행될 수 있다.
각 태스크 트래커는 사용자의 요청(또는 작업 요청)에 따라 HDFS의 각 노드에 분산되어 있는 블록에 대하여 분산 병렬 처리할 수 있다.
하둡 맵리듀스는 HDFS 기반으로 작동될 수 있다. 이에, 하둡 맵리듀스의 노드는 성능의 요구에 따라 확장될 수 있다. 노드 확장에 따라 하둡 맵리듀스의 선능도 증가할 수 있다.
도 3은 일 실시예에 따른 다중 맵리듀스의 동작을 설명하기 위한 도면이다.
도 3을 참조하면, 맵리듀스 작업은 맵 동작과 리듀스 동작으로 구성될 수 있다. 또한, 맵리듀스 작업은 사용자의 필요에 따라 맵 동작만으로 구성될 수 있다. 본 명세서에서는 맵 동작과 리듀스 동작을 합쳐 작업(job)으로 정의할 수 있다.
하둡 맵리듀스는 대용량의 동영상 데이터를 분석할 수 있다. 분석된 동영상 데이터가 사용자의 프로그램 로직 또는 목적에 따라 재분석(re-analyzing) 및 재처리(re-processing)가 필요할 때, 분석된 동영상 데이터는 다중 맵리듀스 작업을 통해 처리될 수 있다.
사용자의 프로그램 로직 또는 목적에 따라 다중 맵리듀스 작업을 구성하는 방법에는 3가지 방법이 있을 수 있다.
첫 번째 방법은 맵리듀스 프로그램에서 JobConf 클래스를 이용하여 맵 동작과 리듀스 동작을 순차적으로 연결하는 방법일 수 있다.
두 번째 방법은 ChainMapper 클래스를 사용하여 다중 맵리듀스 작업을 정의하는 방법일 수 있다.
세 번째 방법은 첫 번째 방법의 JobConf 클래스를 통하여 맵리듀스 작업을 정의하고 JobControl 클래스를 이용하여 각 작업의 의존 관계를 설정하여 작업을 시행하는 방법일 수 있다.
다중 맵리듀스를 구성하는데 있어서의 큰 차이는 중간의 결과 값이 생성되는지 여부일 수 있다.
첫 번째의 JobConf를 이용한 방법과 세 번째 JobControl를 이용한 방법은 중간의 결과값이 HDFS에 저장될 수 있다. 두 번째 ChainMapper 방법은 중간에 결과 값이 별도로 HDFS에 생성되지 않고 해당 작업 노드에서 작업을 연속해서 진행할 수 있다.
본 발명의 다중 맵리듀스는 상술한 세 가지 방법 중에서 어느 하나의 방법을 통해 구현될 수 있다. 이하에서는 설명의 편의를 위해 다중 맵리듀스가 세 번째, 즉 JobControl를 이용한 방법으로 구현된 경우를 가정하여 설명한다.
앞서 도 1 및 도 2를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 4는 클라우드 멀티미디어 트랜스코딩 시스템의 구조를 나타낸다.
도 4를 참조하면, 클라우드 멀티미디어 트랜스코딩 시스템(Cloud Multimedia Transcoding System(CMCS); 300)은 다중 맵리듀스 작업 기반의 클라우드 멀티미디어 트랜스코딩 시스템일 수 있다.
클라우드 멀티미디어 트랜스코딩 시스템(CMTS)은 동영상 데이터를 단말 장치(400)로 제공하기 위하여 스트리밍에 적합한 데이터로 변환하는 시스템일 수 있다. 예를 들어, 동영상 데이터는 사용자의 이기종 스마트 장치에서 생산된 데이터일 수 있다. 단말 장치(400)는 사용자의 이기종 스마트 장치와 다른 이기종 스마트 장치(들)일 수 있다.
CMTS(300)은 다중 맵리듀스 구조를 이용할 수 있다. 예를 들어, 다중 맵리듀스 구조는 도 3에 도시된 바와 같을 수 있다.
CMTS(300)은 동영상 데이터를 HDFS에 포함된 각 노드의 블록 크기만큼 분할하여 복수의 동영상 블록들을 생성할 수 있다.
CMTS(300)은 복수의 동영상 블록들을 변환할 수 있다. 예를 들어, CMTS(300)은 복수의 동영상 블록들을 트랜스코딩할 수 있다.
CMTS(300)은 트랜스코딩된 동영상 블록을 병합할 수 있다. 예를 들어, CMTS(300)은 리듀스 동작을 통해 트랜스코딩된 동영상 블록을 병합할 수 있다. 병합된 동영상 블록들은 단말 장치(400)로 제공될 수 있다.
CMTS(300)은 동영상 변환작업 간에 동영상 데이터의 특성을 고려하여 동영상 변환작업간 별도의 동영상 블록의 분할 및 병합작업을 수행할 수 있다. 이때, CMTS(300)는 다중 맵리듀스 기반의 동영상 변환 방법을 적용함으로써 각각의 동영상 블록을 의미 있게 분할하기 때문에 동영상 변환 작업시 전체 블록을 필요로 하지 않을 수 있다. 동영상 블록의 특성상 첫 번째 블록을 제외하면 나머지 블록은 무의미한 데이터일 수 있다. 동영상 블록은 의미 있게 분할하기 위하여 MkvtoolNix을 통해 의미 있게 분할될 수 있다.
이에 따라, 중복된 데이터의 처리가 없어짐에 따라 동영상 프레임 증가에 따른 처리시간 증가 문제를 해결할 수 있다. 특히 중복된 데이터의 처리 과정이 없어짐에 따라 정상적인 JVM 힙 메모리 사용으로 특정 크기 이상의 동영상 데이터를 변환하지 못했던 기존 시스템의 한계점을 극복할 수 있다.
앞서 도 1 내지 도 3을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 5는 일 실시예에 따른 클라우드 멀티미디어 트랜스코딩 시스템의 개략적인 블록도이고, 도 6은 도 5에 도시된 클라우드 멀티미디어 트랜스코딩 시스템의 동작 방법을 설명하기 위한 도면이다.
도 5 및 도 6을 참조하면, CMTS(300)은 웹 인터페이스(310), HDFS(330), 및 트랜스코딩 모듈(350)을 포함할 수 있다.
웹 인터페이스(310)는 동영상 데이터를 수신하고, 수신된 동영상 데이터를 HDFS(330)에 저장할 수 있다.
트랜스코딩 모듈(350)은 HDFS(330)에 저장된 동영상 데이터를 제1 맵, 예를 들어 제1 맵 함수(또는 동작)를 통하여 HDFS(330)의 각 노드의 블록 크기로 분할하여 동영상 블록들을 생성할 수 있다. 예를 들어, 트랜스코딩 모듈(350)은 HDFS(330)에 저장된 동영상 데이터를 제1 맵 함수를 통하여 HDFS(330)의 각 노드의 블록 크기로 분할할 수 있다. 이때, 동영상 데이터는 의미 있는 단위의 각 동영상 블록으로 분할될 수 있다.
트랜스코딩 모듈(350)은 생성된 동영상 블록들을 HDFS(330)의 임시 폴더에 저장할 수 있다.
트랜스코딩 모듈(350)은 동영상 블록들을 동영상 변환할 수 있다. 즉, 트랜스코딩 모듈(350)은 동영상 블록들을 트랜스코딩할 수 있다. 예를 들어, 트랜스코딩 모듈(350)은 동영상 블록들에 대하여 제2 맵, 예를 들어 제2 맵 함수를 통하여 트랜스코딩을 수행할 수 있다. 제2 맵 함수는 동영상 맵 태스크일 수 있다. 즉, 트랜스코딩 모듈(350)은 동영상 블록들을 스트리밍에 적합한 형태, 예를 들어 정의된 사이즈 및 포맷으로 병렬 분산 처리할 수 있다.
트랜스코딩 모듈(350)은 트랜스코딩된 동영상 블록들을 병합할 수 있다. 예를 들어, 트랜스코딩 코듈(350)은 리듀스 동작을 통해 트랜스코딩된 동영상 블록들을 병합할 수 있다. 즉, 트랜스코딩 모듈(350)은 동일 동영상 데이터의 동영상 블록들을 병합하기 위해 리듀스 동작을 수행할 수 있다.
병합된 동영상 블록들, 즉 변환된 동영상 데이트는 스트리밍 서비스를 통해 단말 장치(400)로 제공될 수 있다. 예를 들어, 변환된 동영상 데이트는 HDFS(330)에 저장되고, Mountable HDFS를 통하여 스트리밍 서비스로 제공되거나 파일로 다운로드 서비스로 단말 장치(400)에 제공될 수 있다.
도 7은 도 6에 도시된 트랜스코딩 모듈의 데이터 흐름을 나타낸다.
도 5 내지 도 7을 참조하면, 트랜스 코딩 모듈(350)은 하둡 JobControl을 이용하여 다중 맵리듀스 작업을 구성할 수 있다. 이때, 분할 동작(예를 들어, 제1 맵 동작)과 병합 동작(예를 들어, 리듀스 동작)을 위하여 MkvToolNix가 사용될 수 있다. 변환 동작(예를 들어, 제2 맵 동작(트랜스코딩 동작))을 위하여 Xuggler 미디어 라이브러리가 사용될 수 있다.
다중 맵리듀스 작업은 듀얼 맵 동작과 리듀스 동작으로 구성될 수 있다.
다중 맵리듀스 작업은 VideoConversion 클래스의 JobControl을 이용하여 구현될 수 있다. 두 동작간에 키(Key)와 값(Value)의 입/출력은 VideoInputFormat, VideoRecordReader, SplitInputFormat, SpiltRecodeReader을 통해 구현될 수 있다. 각 TaskTracker에서 작업한 결과는 하둡 FileSystem의 copyFromLocal() 방법을 이용하여 HDFS(330)로 전송될 수 있다. 이에, 트랜스 코딩 모듈(350)이 데이터를 HDFS(330)로 출력하는 클래스를 따로 구현하지 않을 수 있다.
트랜스코딩 모듈(350)의 분할 동작, 즉 제1 맵 동작은 First Map, Spliter 클래스를 통해 수행될 수 있다. 트랜스코딩 모듈(350)의 변환 동작, 즉 제2 맵 동작은 SecondMap, Transcoder, Data, SecondMapPartitioner, SecondReduce, SecondMerger 클래스를 통해 수행될 수 있다.
트랜스코딩 모듈(350)은 다음과 같은 데이터 흐름을 가질 수 있다.
첫째, VideoInputFormat클래스를 통하여 키(Key)는 원본 동영상 데이터 Text 자료형으로 원본 파일이름, 값(Value)은 원본파일의 HDFS(330)의 위치가 Text 자료형으로 제1 맵에 전달될 수 있다.
둘째, HDFS(330)에 저장되어 있는 동영상 데이터는 전달된 키(Key)와 값(Value)을 이용하여 HDFS(330)의 블록 크기에 맞춰 분할될 수 있다. 분할된 동영상 데이터는 FileSystem 클래스 copyFromLocal 메소드를 이용하여 HDFS(330)의 임시 폴더로 전송될 수 있다.
셋째, 분할된 동영상 데이터는 SplitInputFormat 클래스를 통하여 제2 맵에 전달될 수 있다. 이때, 전달된 키(Key)는 Text 자료형으로 분할된 동영상 데이터의 파일이름이 되고, 값(Value)은 BytesWritables 자료형으로 분할된 동영상 데이터의 바이트 스트림으로 전달될 수 있다.
넷째, 분할된 동영상 데이터는 전달된 키(Key)와 값(Value)을 이용하여 사용자가 정의한 동영상 포맷으로 변환될 수 있다.
변환된 동영상 데이터는 파티셔너를 통하여 리듀서로 전달될 수 있다. 이때, 전달된 키(Key)값은 파티셔너를 통해 같은 종류의 데이터(또는 파일)를 병합해야 하기 때문에 Text 자료형의 원본 파일의 이름이 될 수 있다. 값(Value)은 ByteWriatble 자료형에 Data 객체를 바이트 배열로 변환하여 전송될 수 있다. 이때 Data 객체 안에 들어갈 값은 변환된 동영상 데이터의 파일이름과 변환된 동영상 데이터의 바이트 스트림일 수 있다.
마지막으로, 변환된 동영상 데이터는 파티셔너를 통하여 전달된 Key와 Value값을 이용하여 병합되고, HDFS(330)의 결과 폴더에 전송될 수 있다.
도 8 내지 도 15에서는 도 7에서 설명된 트랜스코딩 모듈을 구현하기 위한 클래스들을 설명한다.
도 8은 VideoConversion 클래스의 다이어그램를 나타낸다.
도 8을 참조하면, VideoConversion 클래스는 처음 작업이 잡 트래커에 제출되면 태스크트래커의 각 잡업의 역할을 지정하는 클래스일 수 있다. 사용자로부터 입력된 동영상 데이터의 사이즈 및 포캣 기자 설정 등은 Configuration 클래스를 이용하여 정의될 수 있다.
다중 맵리듀스 작업은 JobControl을 이용하여 정의될 수 있다. 이때 다중 맵리듀스 작업이 정의되고, 각 작업의 의존성 관계가 설정될 수 있다. 그 후, 각 태스크 트래커를 통하여 작업이 진행될 수 있다.
도 9는 VideoInputFormat과 VideoRecordReader의 클래스의 다이어그램을 나타낸다.
도 9를 참조하면, 이 클래스들은 동영상 파일을 Hadoop MapReduce에서 작업할 수 있도록 키(Key), 값(Value)값 지정하는 역할을 할 수 있다. VideoInputFormat은 VideoRecordReader를 통하여 맵으로 변환된 동영상의 원본 동영상의 HDFS에서의 주소 값을 추출하여 동영상 파일명을 키(Key)로, 원본동영상의 HDFS의 주소 값을 값(Value)으로 전달할 수 있다.
도 10은 FirstMap과 Spliter의 클래스의 다이어그램을 나타낸다.
도 10을 참조하면, 제1 맵에서는 원본 동영상을 현재 HDFS의 설정되어 있는 블록의 크기단위로 분할하는 역할을 수행할 수 있다.
맵 동작은 FirstMap에 정의 되어 있으며, 실제 작업은 Spliter클래스를 이용하여 각 태스크 트래커에서 MkvToolnix의 프로세스를 호출해서 분할 작업을 할 수 있다. Spliter를 통해서 동영상을 별로도 분할하는 이유는 HDFS를 통해 분할된 블록들이 첫 번째 블록을 제외하면 해당 동영상의 Header값이 없기 때문에 재생이 되지 않는 파일로 인식되어 변환 작업에서 정상적인 파일로 인식하지 못하기 때문이다.
도 11은 SplitInputFormat, SplitRecordReader의 클래스의 다이어그램을 나타낸다.
도 11을 참조하면, 두 클래스의 역할은 제1 맵 동작에서 분할된 동영상을 제2 맵 동작을 위해 키(Key), 값(value)로 읽어 들이기 위한 것이다. 각 작업마다 InputFormat을 별도로 정의한 이유는 맵 동작에 필요한 키(Key), 값(Value)의 데이터 자료형이 다르기 때문이다. SplitInputFormat은 SplitRecordReader을 통하여 제1 맵 동작에서 분할된 동영상을 바이트 스트림으로 읽어 들여, 분할된 동영상의 파일명을 키(Key)로 분할된 동영상의 바이트 스트림을 값(Value)으로 제2 맵에 전달할 수 있다.
도 12는 SecondMap, Transcoder, Data의 클래스의 다이어그램을 보여준다.
도 12를 참조하면, 실제 트랜스코딩 작업은 Transcoder 클래스에서 수행될 수 있다. 변환이 완료된 데이터는 원본 동영상 파일명을 키(Key)로, Data 클래스의 객체를 이용하여 변환된 동영상의 파일 이름과 변환된 동영상의 바이트 스트림을 저장하여 값(Value)으로 리듀스에 전달될 수 있다.
도 13은 SecondMapPartitioner의 클래스의 다이어그램을 나타낸다.
도 13을 참조하면, 제2 맵 동작을 통하여 동영상이 변환되면, 하나의 동영상으로 병합되기 위해서는 같은 동영상 파일을 이용해서 순서에 맞게 병합될 필요가 있다. 이때 파티셔너는 변환된 동영상 파일들을 리듀스로 전달하는 역할을 할 수 있다.
도 14는 SecondReduce, SecondMerger의 클래스 다이어그램을 나타낸다.
도 14를 참조하면, 변환된 동영상 파일들은 SecondReduce, SecondMerger을 통해 한 개의 동영상으로 병합하는 작업이 수행될 수 있다.
병합된 한 개의 파일은 FileSystem의 copyFromLocal()을 이용하여 사용자가 지정한 HDFS의 결과 폴더로 전송될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (12)

  1. 동영상 데이터를 수신하는 단계;
    상기 동영상 데이터의 특성을 고려하여 상기 동영상 데이터를 분할하여 동영상 블록들을 생성하는 단계; 및
    상기 생성된 동영상 블록들을 트랜스코딩하는 단계
    를 포함하고,
    상기 각 단계는 트랜스코딩 모듈에 의해서 수행되고,
    상기 생성된 동영상 블록들은 상기 동영상 데이터 각각에 대응하는 동영상 블록들 중에서 첫 번째 동영상 블록만 포함하는 멀티미디어 트랜스코딩 방법.
  2. 제1항에 있어서,
    상기 생성하는 단계는,
    상기 동영상 데이터를 맵 함수(map function)를 통해 HDFS(hadoop distributed file system)의 각 노드의 블록 크기로 분할하여 상기 동영상 블록들을 생성하는 단계
    를 포함하는 멀티미디어 트랜스코딩 방법.
  3. 제1항에 있어서,
    상기 트랜스코딩하는 단계는,
    상기 생성된 동영상 블록들을 맵 함수를 통해 트랜스코딩하는 단계
    를 포함하는 멀티미디어 트랜스코딩 방법.
  4. 제1항에 있어서,
    트랜스코딩된 동영상 블록들을 병합하는 단계; 및
    병합된 동영상 블록들을 스트리밍하는 단계
    를 더 포함하는 멀티미디어 트랜스코딩 방법.
  5. 제1항에 있어서,
    상기 동영상 데이터를 HDFS(hadoop distributed file system)에 저장하는 단계
    를 더 포함하는 멀티미디어 트랜스코딩 방법.
  6. 제5항에 있어서,
    상기 생성된 동영상 블록들을 상기 HDFS의 임시 폴더에 저장하는 단계
    를 더 포함하는 멀티미디어 트랜스코딩 방법.
  7. 동영상 데이터를 수신하는 웹 인터페이스; 및
    상기 동영상 데이터의 특성을 고려하여 상기 동영상 데이터를 분할하여 동영상 블록들을 생성하고, 상기 생성된 동영상 블록들을 트랜스코딩하는 트랜스코딩 모듈
    을 포함하고,
    상기 생성된 동영상 블록들은 상기 동영상 데이터 각각에 대응하는 동영상 블록들 중에서 첫 번째 동영상 블록만 포함하는 멀티미디어 트랜스코딩 시스템.
  8. 제7항에 있어서,
    상기 트랜스코딩 모듈은 상기 동영상 데이터를 제1 맵 함수(map function)를 통해 HDFS(hadoop distributed file system)의 각 노드의 블록 크기로 분할하여 상기 생성된 동영상 블록들을 생성하는 멀티미디어 트랜스코딩 시스템.
  9. 제8항에 있어서,
    상기 트랜스코딩 모듈은 상기 생성된 동영상 블록들을 제2 맵 함수를 통해 트랜스코딩하는 멀티미디어 트랜스코딩 시스템.
  10. 제7항에 있어서,
    상기 트랜스코딩 모듈은 트랜스코딩된 동영상 블록들을 병합하고, 병합된 동영상 블록들을 스트리밍하는 멀티미디어 트랜스코딩 시스템.
  11. 제7항에 있어서,
    상기 동영상 데이터를 저장하는 HDFS(hadoop distributed file system)
    을 더 포함하는 멀티미디어 트랜스코딩 시스템.
  12. 제11항에 있어서,
    상기 트랜스코딩모듈은 상기 생성된 동영상 블록들을 상기 HDFS의 임시 폴더에 저장하는 멀티미디어 트랜스코딩 시스템.
KR1020140173738A 2014-12-05 2014-12-05 멀티미디어 트랜스코딩 방법 및 이를 수행하는 클라우드 멀티미디어 트랜스코딩 시스템 KR101617550B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140173738A KR101617550B1 (ko) 2014-12-05 2014-12-05 멀티미디어 트랜스코딩 방법 및 이를 수행하는 클라우드 멀티미디어 트랜스코딩 시스템
US14/567,957 US20160164941A1 (en) 2014-12-05 2014-12-11 Method for transcoding mutimedia, and cloud mulimedia transcoding system operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140173738A KR101617550B1 (ko) 2014-12-05 2014-12-05 멀티미디어 트랜스코딩 방법 및 이를 수행하는 클라우드 멀티미디어 트랜스코딩 시스템

Publications (1)

Publication Number Publication Date
KR101617550B1 true KR101617550B1 (ko) 2016-05-02

Family

ID=56021786

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140173738A KR101617550B1 (ko) 2014-12-05 2014-12-05 멀티미디어 트랜스코딩 방법 및 이를 수행하는 클라우드 멀티미디어 트랜스코딩 시스템

Country Status (2)

Country Link
US (1) US20160164941A1 (ko)
KR (1) KR101617550B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9930377B2 (en) * 2016-01-28 2018-03-27 Verizon Patent And Licensing Inc. Methods and systems for cloud-based media content transcoding
US10877798B2 (en) * 2017-08-31 2020-12-29 Netflix, Inc. Scalable techniques for executing custom algorithms on media items

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539354B2 (en) * 2008-03-31 2013-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for interactively sharing video content
WO2011050280A2 (en) * 2009-10-22 2011-04-28 Chintamani Patwardhan Method and apparatus for video search and delivery
KR101460062B1 (ko) * 2013-06-21 2014-11-10 한국항공대학교산학협력단 동영상 파일을 하둡 분산 파일 시스템에 분산 저장하는 시스템, 동영상 맵리듀스 시스템 및 그 제공방법
US9575974B2 (en) * 2013-10-23 2017-02-21 Netapp, Inc. Distributed file system gateway

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Ryu, Chungmo, et al, "Extensible Video Processing Framework in Apache Hadoop", 2013 IEEE 5th International Conference on Cloud Computing Technology and Science, Vol.2, pp. 305-308(2013.)*
Vanaja, R., and Anish Giri, "Dynamic Video Transcoding Using Hadoop Distributed File System", International Journal of Advanced Computing, Vol.46, Issue.4, pp. 1387-1392(2013.)*

Also Published As

Publication number Publication date
US20160164941A1 (en) 2016-06-09

Similar Documents

Publication Publication Date Title
KR101568063B1 (ko) 멀티미디어 트랜스코딩 방법 및 이를 수행하는 하둡 기반 멀티미디어 트랜스코딩 시스템
US10296386B2 (en) Processing element management in a streaming data system
US10261829B2 (en) Generating differences for tuple attributes
US9900374B2 (en) Application bundle management across mixed file system types
US10095699B2 (en) Computer-readable recording medium, execution control method, and information processing apparatus
US10630818B2 (en) Increasing data resiliency operations based on identifying bottleneck operators
Kim et al. CloudDMSS: robust Hadoop-based multimedia streaming service architecture for a cloud computing environment
US11403106B2 (en) Method and apparatus for stateless parallel processing of tasks and workflows
CN114938371A (zh) 一种基于云原生的云边协同数据交换服务实现方法及***
Tselios et al. A survey on software tools and architectures for deploying multimedia-aware cloud applications
US9619518B2 (en) Tracking tuples to reduce redundancy in a graph
Kim et al. A Hadoop-based multimedia transcoding system for processing social media in the PaaS platform of SMCCSE
KR101617550B1 (ko) 멀티미디어 트랜스코딩 방법 및 이를 수행하는 클라우드 멀티미디어 트랜스코딩 시스템
US11176081B2 (en) Parallel, distributed processing in a heterogeneous, distributed environment
Song et al. Distributed video transcoding based on MapReduce
US20200162538A1 (en) Method for increasing file transmission speed
US20190196880A1 (en) Method for sharing processing modules between pipelines
US10812406B2 (en) Assigning processing elements to stream computing servers
KR101523143B1 (ko) 클라우드 컴퓨팅 환경에서의 하둡-기반의 분산 멀티미디어 스트리밍 서비스 제공 시스템 및 스트리밍 서비스의 제공 방법
US20170351736A1 (en) Streamlining tuple processing by delivering tuple attributes to associated operators
KR101678743B1 (ko) 분산 멀티미디어 스트리밍 서비스 제공 시스템 및 이의 동작 방법
US20190045004A1 (en) Capturing data in data transfer appliance for transfer to a cloud-computing platform
US11847510B2 (en) System for application self-optimization in serverless edge computing environments
US20230205589A1 (en) System and method for dynamically modifying media processing functions to control optimization of a media production
Balasubramaniam System and Analysis for Low Latency Video Processing using Microservices

Legal Events

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