WO2017119526A1 - High-resolution video server, and method for providing high-resolution video service - Google Patents
High-resolution video server, and method for providing high-resolution video service Download PDFInfo
- Publication number
- WO2017119526A1 WO2017119526A1 PCT/KR2016/000216 KR2016000216W WO2017119526A1 WO 2017119526 A1 WO2017119526 A1 WO 2017119526A1 KR 2016000216 W KR2016000216 W KR 2016000216W WO 2017119526 A1 WO2017119526 A1 WO 2017119526A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- video
- application
- core engine
- open api
- call
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/27—Server based end-user applications
- H04N21/274—Storing end-user multimedia data in response to end-user request, e.g. network recorder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
Definitions
- the present invention relates to a UHD (Ultra High Definition) video server technology, and more particularly, to a high resolution video server providing a video service for a high resolution image for broadcasting.
- UHD Ultra High Definition
- the video server encodes an image signal acquired by the camera in a format desired by a user to generate and store image data.
- the video server also decodes the stored video data and outputs the video data.
- a product of an external control method using an industry standard protocol or a native protocol is mainly used. Since the video server according to the external control method has limited functions provided by the video server, it cannot provide functions required by various users.
- a video server is installed that allows a user to install an application on the video server to perform a function required by the user through the application.
- the application-based video server when the function is stopped due to an error in the application, the entire function of the video server is paralyzed.
- An object of the present invention is to provide a video server and a video service providing method in which the entire function is not paralyzed even when an error of an application implemented on the video server occurs.
- Another object of the present invention is to provide a video server and a video service providing method capable of performing various functions such as decoding on a high resolution video through an application in real time.
- a processor for executing a core engine for providing a software development kit (SDK) service and executing a video application that calls the open API of the SDK; And a memory storing instructions for executing the core engine, wherein the instructions include: executing the core engine, executing the video application, detecting a call of the open API of the video application, and A command for generating a result data by performing a function according to the open API through a core engine, transmitting the result data from the core engine to the application, and providing a service according to the video application through the result data.
- a video server is provided.
- the command transmits a call signal according to the call statement to a receiving port of the core engine, and receives the call signal through a receiving port of the core engine.
- the command may determine that the call of the open API is detected.
- the command may be a command for virtually transmitting the result data from the core engine to the video application through a named pipe protocol.
- the video server further includes a communication interface for transmitting and receiving data by connecting a terminal and a communication network through a TCP / IP network, wherein the command receives an application code from the terminal and installs the video application according to the application code. May be a command.
- the application code may include a call statement of the open API.
- a video server provides a video service, the method comprising: executing a core engine for providing a software development kit (SDK) service; Executing a video application calling an open API of the SDK; Detecting a call of an open API of the video application; Generating result data by performing a function according to the open API in the core engine; Transmitting the result data from the core engine to the video application; And providing a service according to the video application through the result data.
- SDK software development kit
- Detecting a call of the open API of the video application when the call statement of the open API is performed in the video application, transmits to the receiving port of the core engine, the call signal through the receiving port of the core engine If is received, it may be determined that the call of the open API is detected.
- the transmitting of the result data from the core engine to the video application may be a step of virtually transmitting the result data from the core engine to the video application through a named pipe protocol.
- the video service providing method includes receiving an application code from the terminal; And installing the video application according to the application code.
- the application code may include a call statement of the open API.
- the entire video service can be maintained.
- high-speed communication and stable operation based on named pipes between a core engine and an application may be performed in real time for high resolution video.
- a user may use an Open API to make an application suitable for a usage environment and use it on a video server.
- FIG. 1 is a diagram illustrating a video server according to an embodiment of the present invention.
- FIG. 2 conceptually illustrates a layer of a video server according to an embodiment of the present invention
- FIG. 3 is a flowchart illustrating a method for providing a video service by a video server according to an embodiment of the present invention.
- one component when one component is referred to as “connected” or “connected” with another component, the one component may be directly connected or directly connected to the other component, but in particular It is to be understood that, unless there is an opposite substrate, it may be connected or connected via another component in the middle.
- FIG. 1 is a diagram illustrating a video server according to an embodiment of the present invention.
- a video server includes a communication interface 110, a processor 120, a memory 130, and a storage 140.
- the communication interface 110 may provide an image, data, etc. to a terminal through a known communication protocol, or may receive a code (hereinafter, referred to as an application code) of an application to be installed in the video server from the terminal.
- a code hereinafter, referred to as an application code
- the processor 120 performs a video application according to the application code received from the terminal.
- the video application refers to an application produced to provide a video service, such as a player, a recorder media browser.
- the processor 120 may perform a function (process) according to an API stored in the storage 140 and the memory 130 according to an API call statement included in the application code. Therefore, the processor 120 may perform a video application using an API and perform a designated function through the video application to provide a service.
- FIG. 1 illustrates a single processor 120
- the video server may include a plurality of processors 120 according to an implementation method.
- the memory 130 may store application code and instructions necessary for the operation of the video server.
- the memory 130 may be a volatile memory such as a random access memory.
- the storage 140 may store an application code and a command necessary for the operation of the video server, and provide the corresponding application code or command to the memory 130.
- the storage 140 may store image data encoded with an image signal through a video application, or store image data received from a terminal through the communication interface 110.
- the storage 140 may store an operating system installed in the video server, and the processor 120 may operate according to the operating system stored in the storage 140.
- the storage 140 may store logs or metadata generated according to the execution of the operating system.
- the UHD encoding / decoding board 150 decodes image data and transmits a high resolution 4K video signal in SDI (Serial Digital Interface) format.
- the UHD encoding / decoding board 150 may receive and encode a high resolution video signal in an SDI format to generate image data and store the image data in the storage 140.
- the UHD encoding / decoding board 150 may include a hardware codec capable of supporting real-time encoding and decoding of the video signal.
- FIG. 2 is a diagram conceptually illustrating a layer of a video server according to an embodiment of the present invention.
- the video server may be represented as a storage layer 210, a service layer 220, and an application layer 230.
- the storage layer 210 refers to a storage medium composed of one or more of the storage 140 and the memory 130.
- the storage layer 210 may include a video storage for storing image data, a log storage for storing a log, and metadata storage for storing metadata about each image data.
- the service layer 220 is a layer including a service provided by an operating system.
- the service layer 220 may include a software development kit (SDK) that provides an API used by a video application, a system management service that manages hardware resources of a video server, and a media management that stores and provides image data stored in storage.
- SDK software development kit
- the service may include a service corresponding to various functions provided by a video server, such as a log monitoring service for storing various events generated by the video server as a log, and an image transcoding service for transcoding image data to a specified standard.
- the service layer 220 may include a service other than the service illustrated in FIG. 2.
- the application layer 230 is a layer containing a video application written in application code.
- the application layer 230 is a layer including a video application performed through an open API (Application Program Interface) provided by the SDK (Software Development Kit) of the core engine.
- each video application included in the application layer 230 may use an open API provided by the service layer 220.
- Each video application is programmed to call an open API, and the video server may perform a service according to the open API, and provide the application with result data that is a result of the service execution.
- the error of the corresponding application does not occur when the entire video server providing the service service layer 220 is brought down. Therefore, even if a fatal error occurs in an application developed by a user or a third party developer other than the manufacturer of the video server, the stability of the video server may not be affected.
- the service according to the open API provided by the service layer 220 may be provided through a named pipe, TCP / IP, and REST (Representational State Transfer) protocol.
- an open API having a large amount of data transmitted in a call and response process such as encoding and decoding of a high resolution image may be an API for transmitting data through a named pipe protocol.
- the service layer 220 and the application layer 230 are layers that operate on the same device. Accordingly, data transmission between the core engine, which is a software module that provides a service of the service layer 220, and a video application may be performed virtually. . In other words, the data transmission between the core engine and the video application is not performed through the actual communication network, but is performed by virtual data transmission in the video server.
- data transmission between the service layer 220 and the application layer 230 may be made through a named pipe protocol that can be applied within a single physical machine.
- the video server may enable an application to use an open API for transmitting data between layers through the named pipe protocol, so that the processing of the high resolution image may be performed in real time.
- the decoding API which is an open API that decodes and outputs high resolution image data, decodes the image data stored in the storage 140 through the UHD encoding / decoding board 150, and uses the application pipe 230 through the named pipe protocol. It may be an API that provides a service for transmitting the decoded video signal in real time to the application (core engine).
- the decoding API is an open API that transmits a video signal through TCP / IP
- the decoding API cannot transmit a video signal having a large capacity per frame to an application in real time due to the bandwidth limitation of the TCP / IP protocol. . That is, even when data is virtually transmitted from the core engine to the application, it is impossible for the core engine to transmit a large-capacity (UHD-class) video signal to the application in real time through TCP / IP having a bandwidth limitation.
- the video server according to an embodiment of the present invention provides a unique open API for transmitting data to an application through a named pipe protocol, thereby ensuring high independence between the application and the core engine while ensuring independence between the application and the core engine. Can be received and processed from the core engine in real time.
- the above-described decoding API is an open API that performs a process in a core engine of a video server, which is a single physical machine, and transmits the result data to a video application installed on the video server.
- open API since open API has a purpose to provide services through the web, data is transmitted between the application and the core engine according to the TCP / IP or REST protocol.
- the open API provided by the video server according to an embodiment of the present invention performs data transmission between software modules (applications and core engines) in a video server which is a single physical machine, the calling and transfer of result data is called a named pipe protocol. It can be configured to perform through.
- FIG. 3 is a flowchart illustrating a method of providing a video service by a video server according to an embodiment of the present invention.
- Each step described below is a process performed through each functional unit constituting a video server, or the subject of each step is collectively referred to as a video server for a concise and clear description of the invention.
- the video server executes a core engine to generate a service layer 220.
- the video server receives an application code from the terminal. At this time, the video server may install a video application corresponding to the application code.
- the video server executes a video application corresponding to the application code.
- the video server detects an open API call according to the execution of the video application. That is, the video server virtually transmits the call signal of the open API to the reception port set corresponding to the core engine according to the execution of the video application.
- the video server may detect the call of the open API by checking a call signal virtually received by the reception port corresponding to the core engine.
- the video server performs a service corresponding to the called open API.
- the video server may generate a video signal by decoding the video data according to a call of the open API.
- the video server transmits data generated by the service performed in operation 350 (hereinafter, referred to as result data) from the core engine to the video application.
- the video server may virtually transmit the image signal (result data) generated by decoding the image data from the core engine to the video application.
- the video server may transmit the resulting data to the video application through the named pipe protocol.
- the communication protocol specified in the open API called by the video application is REST or TCP / IP
- the video server may transmit the result data to the video application through a protocol other than the pipe protocol.
- the video server performs a function of a video application using the result data transmitted through the named pipe protocol.
- the video application is an application that performs a function of playing a video received through a named pipe protocol through a specific interface
- the video server may play the received video through a specified interface.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Library & Information Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
Abstract
Description
본 발명은 UHD(Ultra High Definition) 비디오 서버 기술에 관한 것으로, 보다 상세하게는 방송용 고해상도의 영상에 대한 비디오 서비스를 제공하는 고해상도 비디오 서버에 관한 것이다.The present invention relates to a UHD (Ultra High Definition) video server technology, and more particularly, to a high resolution video server providing a video service for a high resolution image for broadcasting.
비디오 서버는 카메라에 의해 취득된 영상 신호를 사용자가 원하는 형식으로 부호화하여 영상 데이터를 생성 및 저장한다. 또한, 비디오 서버는 저장된 영상 데이터를 복호화하여 영상 신호로서 출력한다. The video server encodes an image signal acquired by the camera in a format desired by a user to generate and store image data. The video server also decodes the stored video data and outputs the video data.
일반적인 비디오 서버의 경우, 업계표준 Protocol 또는 Native protocol을 이용한 외부 제어방식의 제품이 주를 이룬다. 외부 제어방식에 따른 비디오 서버는 비디오 서버에서 제공하는 기능이 한정적이기 때문에, 다양한 사용자가 각자 요구하는 기능을 제공할 수 없다. In the case of a general video server, a product of an external control method using an industry standard protocol or a native protocol is mainly used. Since the video server according to the external control method has limited functions provided by the video server, it cannot provide functions required by various users.
이에 따라 비디오 서버 상에서 어플리케이션을 사용자가 설치하여, 어플리케이션을 통해 사용자가 요구하는 기능을 수행하도록 하는 비디오 서버가 출시되고 있다. 하지만, 어플리케이션 기반의 비디오 서버는 어플리케이션의 오류로 인해 기능이 정지하는 경우, 비디오 서버 전체의 기능이 마비되는 문제가 있다.Accordingly, a video server is installed that allows a user to install an application on the video server to perform a function required by the user through the application. However, in the application-based video server, when the function is stopped due to an error in the application, the entire function of the video server is paralyzed.
본 발명의 해결하고자 하는 과제는 비디오 서버 상에서 구현되는 어플리케이션의 오류가 발생하더라도 전체의 기능이 마비되지 않는 비디오 서버 및 비디오 서비스 제공 방법을 제공하는 것이다.An object of the present invention is to provide a video server and a video service providing method in which the entire function is not paralyzed even when an error of an application implemented on the video server occurs.
또한, 본 발명의 해결하고자 하는 과제는 고해상도의 비디오에 대한 복호화 등의 각종 기능의 수행을 실시간으로 어플리케이션을 통해 수행할 수 있는 비디오 서버 및 비디오 서비스 제공 방법을 제공하는 것이다.Another object of the present invention is to provide a video server and a video service providing method capable of performing various functions such as decoding on a high resolution video through an application in real time.
본 발명의 일 측면에 따르면, SDK(Software Development Kit) 서비스를 제공하는 코어 엔진을 실행시키고, 상기 SDK의 open API를 호출하는 비디오 어플리케이션을 실행하는 프로세서; 및 상기 코어 엔진을 실행시키기 위한 명령어를 저장하는 메모리;를 포함하되, 상기 명령어는, 상기 코어 엔진을 실행하고, 상기 비디오 어플리케이션을 실행시키고, 상기 비디오 어플리케이션의 상기 open API의 호출을 감지하고, 상기 코어 엔진을 통해 상기 open API에 따른 기능을 수행하여 결과 데이터를 생성하고, 상기 결과 데이터를 상기 코어 엔진으로부터 상기 어플리케이션으로 전송하고, 상기 결과 데이터를 통해 상기 비디오 어플리케이션에 따른 서비스를 제공하는, 명령어인 것을 특징으로 하는 비디오 서버가 제공된다.According to an aspect of the present invention, a processor for executing a core engine for providing a software development kit (SDK) service and executing a video application that calls the open API of the SDK; And a memory storing instructions for executing the core engine, wherein the instructions include: executing the core engine, executing the video application, detecting a call of the open API of the video application, and A command for generating a result data by performing a function according to the open API through a core engine, transmitting the result data from the core engine to the application, and providing a service according to the video application through the result data. A video server is provided.
상기 명령어는, 상기 비디오 어플리케이션에서 상기 open API의 호출문이 수행되는 경우, 상기 호출문에 따른 호출 신호를 상기 코어 엔진의 수신 포트로 전송하고, 상기 코어 엔진의 수신 포트를 통해 상기 호출 신호가 수신되는 경우, 상기 open API의 호출이 감지된 것으로 판단하는 명령어일 수 있다.When the call statement of the open API is executed in the video application, the command transmits a call signal according to the call statement to a receiving port of the core engine, and receives the call signal through a receiving port of the core engine. In this case, the command may determine that the call of the open API is detected.
상기 명령어는, 네임드 파이프(Named PIPE) 프로토콜을 통해 가상으로 상기 결과 데이터를 상기 코어 엔진으로부터 상기 비디오 어플리케이션으로 전송하는 명령어일 수 있다.The command may be a command for virtually transmitting the result data from the core engine to the video application through a named pipe protocol.
상기 비디오 서버는 단말과 통신망을 TCP/IP 네트워크를 통해 연결되어 데이터를 송수신하는 통신 인터페이스를 더 포함하되, 상기 명령어는, 상기 단말로부터 어플리케이션 코드를 수신하고, 상기 어플리케이션 코드에 따라 상기 비디오 어플리케이션을 설치하는 명령어일 수 있다.The video server further includes a communication interface for transmitting and receiving data by connecting a terminal and a communication network through a TCP / IP network, wherein the command receives an application code from the terminal and installs the video application according to the application code. May be a command.
상기 어플리케이션 코드는 상기 open API의 호출문을 포함할 수 있다.The application code may include a call statement of the open API.
본 발명의 다른 측면에 따르면, 비디오 서버가 비디오 서비스를 제공하는 방법에 있어서, SDK(Software Development Kit) 서비스를 제공하는 코어 엔진을 실행하는 단계; 상기 SDK의 open API를 호출하는 비디오 어플리케이션을 실행시키는 단계; 상기 비디오 어플리케이션의 open API의 호출을 감지하는 단계; 상기 코어 엔진에서 상기 open API에 따른 기능을 수행하여 결과 데이터를 생성하는 단계; 상기 결과 데이터를 상기 코어 엔진으로부터 상기 비디오 어플리케이션으로 전송하는 단계; 및 상기 결과 데이터를 통해 상기 비디오 어플리케이션에 따른 서비스를 제공하는 단계; 를 포함하는 비디오 서비스 제공 방법이 제공된다.According to another aspect of the present invention, a video server provides a video service, the method comprising: executing a core engine for providing a software development kit (SDK) service; Executing a video application calling an open API of the SDK; Detecting a call of an open API of the video application; Generating result data by performing a function according to the open API in the core engine; Transmitting the result data from the core engine to the video application; And providing a service according to the video application through the result data. A video service providing method is provided.
상기 비디오 어플리케이션의 open API의 호출을 감지하는 단계는, 상기 비디오 어플리케이션에서 상기 open API의 호출문이 수행되는 경우, 상기 코어 엔진의 수신 포트로 전송하고, 상기 코어 엔진의 수신 포트를 통해 상기 호출 신호가 수신되는 경우, 상기 open API의 호출이 감지된 것으로 판단하는 단계일 수 있다.Detecting a call of the open API of the video application, when the call statement of the open API is performed in the video application, transmits to the receiving port of the core engine, the call signal through the receiving port of the core engine If is received, it may be determined that the call of the open API is detected.
상기 결과 데이터를 상기 코어 엔진으로부터 상기 비디오 어플리케이션으로 전송하는 단계는, 네임드 파이프(Named PIPE) 프로토콜을 통해 가상으로 상기 결과 데이터를 상기 코어 엔진으로부터 상기 비디오 어플리케이션으로 전송하는 단계일 수 있다.The transmitting of the result data from the core engine to the video application may be a step of virtually transmitting the result data from the core engine to the video application through a named pipe protocol.
상기 비디오 서비스 제공 방법은 상기 단말로부터 어플리케이션 코드를 수신하는 단계; 및 상기 어플리케이션 코드에 따라 상기 비디오 어플리케이션을 설치하는 단계를 더 포함할 수 있다.The video service providing method includes receiving an application code from the terminal; And installing the video application according to the application code.
상기 어플리케이션 코드는 상기 open API의 호출문을 포함할 수 있다.The application code may include a call statement of the open API.
본 발명의 일 실시예에 따르면, 어플리케이션의 오류가 발생하더라도 전체 비디오 서비스를 유지할 수 있다.According to an embodiment of the present invention, even if an application error occurs, the entire video service can be maintained.
본 발명의 일 실시예에 따르면, 코어 엔진과 어플리케이션 간에 네임드 파이프(Named PIPE) 기반의 고속 통신과 안정적 오퍼레이션 운영으로 고해상도의 비디오에 대한 실시간 처리를 수행할 수 있다.According to an embodiment of the present invention, high-speed communication and stable operation based on named pipes between a core engine and an application may be performed in real time for high resolution video.
본 발명의 일 실시예에 따르면, 사용자는 Open API를 이용하여 사용 환경에 적합한 어플리케이션을 만들어 비디오 서버 상에서 사용할 수 있다.According to an embodiment of the present invention, a user may use an Open API to make an application suitable for a usage environment and use it on a video server.
도 1은 본 발명의 일 실시예에 따른 비디오 서버를 예시한 도면.1 is a diagram illustrating a video server according to an embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 비디오 서버의 레이어를 개념적으로 예시한 도면.2 conceptually illustrates a layer of a video server according to an embodiment of the present invention;
도 3은 본 발명의 일 실시예에 따른 비디오 서버가 비디오 서비스를 제공하는 방법을 예시한 순서도.3 is a flowchart illustrating a method for providing a video service by a video server according to an embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The present invention may be variously modified and have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail with reference to the accompanying drawings. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.In describing the present invention, when it is determined that the detailed description of the related known technology may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. In addition, numerals (eg, first, second, etc.) used in the description process of the present specification are merely identification symbols for distinguishing one component from another component.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.In addition, in the present specification, when one component is referred to as "connected" or "connected" with another component, the one component may be directly connected or directly connected to the other component, but in particular It is to be understood that, unless there is an opposite substrate, it may be connected or connected via another component in the middle.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면 번호에 상관없이 동일한 수단에 대해서는 동일한 참조 번호를 사용하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, the same reference numerals will be used for the same means regardless of the reference numerals in order to facilitate the overall understanding.
도 1은 본 발명의 일 실시예에 따른 비디오 서버를 예시한 도면이다.1 is a diagram illustrating a video server according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일 실시예에 따른 비디오 서버는 통신 인터페이스(110), 프로세서(120), 메모리(130) 및 스토리지(140)를 포함한다.Referring to FIG. 1, a video server according to an embodiment of the present invention includes a
통신 인터페이스(110)는 공지된 통신 프로토콜을 통해 영상, 데이터 등을 단말로 제공하거나, 단말로부터 당 비디오 서버에 설치될 어플리케이션의 코드(이하, 어플리케이션 코드라 지칭)를 수신할 수 있다.The
프로세서(120)는 단말로부터 수신한 어플리케이션 코드에 따른 비디오 어플리케이션을 수행한다. 이 때, 비디오 어플리케이션은 플레이어, 레코더 미디어 브라우저 등 비디오 서비스를 제공하기 위해 제작된 어플리케이션을 의미한다. 또한, 프로세서(120)는 어플리케이션 코드에 포함된 API 호출문에 따라 스토리지(140) 및 메모리(130)에 저장된 API에 따른 기능(프로세스)를 수행할 수 있다. 따라서, 프로세서(120)는 API를 이용하는 비디오 어플리케이션을 수행하여 비디오 어플리케이션을 통해 지정된 기능을 수행하여 서비스를 제공할 수 있다. 도 1에서는 단일 프로세서(120)를 예시하였으나, 구현 방법에 따라 비디오 서버는 복수의 프로세서(120)를 포함할 수 있다. The
메모리(130)는 어플리케이션 코드와 당 비디오 서버의 동작을 위해 필요한 명령어를 저장할 수 있다. 메모리(130)는 랜덤 엑세스 메모리 등의 휘발성 메모리일 수 있다.The
스토리지(140)는 어플리케이션 코드와 당 비디오 서버의 동작을 위해 필요한 명령어를 저장하고, 해당 어플리케이션 코드 또는 명령어를 메모리(130)로 제공할 수 있다. 또한, 스토리지(140)는 비디오 어플리케이션을 통해 영상 신호가 부호화된 영상 데이터를 저장하거나, 통신 인터페이스(110)를 통해 단말로부터 수신한 영상 데이터를 저장할 수 있다. 또한, 스토리지(140)는 당 비디오 서버에 설치된 운영 체제를 저장할 수 있고, 프로세서(120)는 스토리지(140)에 저장된 운영 체제에 따라 동작할 수 있다. 또한, 스토리지(140)는 운영 체제의 수행에 따라 발생한 로그(log)나 메타 데이터를 저장할 수 있다.The
UHD 부호화/복호화 보드(150)는 영상 데이터를 복호화하여 고해상도 4K 비디오 신호를 SDI(Serial Digital Interface) 형식으로 송신한다. 또한, UHD 부호화/복호화 보드(150)는 고해상도 비디오 신호를 SDI 형식으로 수신하여 부호화하여 영상 데이터를 생성하여 스토리지(140)에 저장할 수 있다. 이 때, UHD 부호화/복호화 보드(150)는 상기 비디오 신호에 대한 실시간 부호화와 복호화를 지원 가능한 하드웨어 코덱을 포함할 수 있다.The UHD encoding /
도 2는 본 발명의 일 실시예에 따른 비디오 서버의 레이어를 개념적으로 예시한 도면이다.2 is a diagram conceptually illustrating a layer of a video server according to an embodiment of the present invention.
비디오 서버는 스토리지 레이어(210), 서비스 레이어(220) 및 어플리케이션 레이어(230)로 나타낼 수 있다. The video server may be represented as a
스토리지 레이어(210)는 스토리지(140) 및 메모리(130) 중 하나 이상으로 구성된 저장 매체를 의미한다. 스토리지 레이어(210)는 영상 데이터를 저장하는 비디오 스토리지, 로그를 저장하는 로그 스토리지, 각 영상 데이터에 대한 메타데이터를 저장하는 메타데이터 스토리지로 구성될 수 있다.The
서비스 레이어(220)는 운영 체제에서 제공하는 서비스를 포함하는 레이어이다. 예를 들어, 서비스 레이어(220)는 비디오 어플리케이션에서 사용하는 API를 제공하는 SDK(Software Development Kit), 비디오 서버의 하드웨어 자원을 관리하는 시스템 매니지먼트 서비스, 스토리지에 저장된 영상 데이터를 저장 및 제공하는 미디어 매니지먼트 서비스, 비디오 서버에서 발생한 각종 이벤트를 로그로 저장하는 로그 모니터링 서비스, 영상 데이터를 지정된 규격으로 트랜스 코딩하는 영상 트랜스코딩 서비스 등의 비디오 서버에서 제공하는 각종 기능에 해당하는 서비스를 포함할 수 있다. 또한, 서비스 레이어(220)는 도 2에 예시된 서비스 이외 서비스를 포함할 수 있다.The
어플리케이션 레이어(230)는 어플리케이션 코드로 작성된 비디오 어플리케이션을 포함하는 레이어이다. 또한, 어플리케이션 레이어(230)는 코어 엔진의 SDK(Software Development Kit)에서 제공하는 open API(Application Program Interface)를 통해 수행되는 비디오 어플리케이션을 포함하는 레이어이다. The
이 때, 어플리케이션 레이어(230)에 포함된 각 비디오 어플리케이션은 서비스 레이어(220)에서 제공하는 open API를 사용할 수 있다. 각 비디오 어플리케이션은 open API를 호출하도록 프로그램되어 있고, 비디오 서버는 open API에 따라 서비스를 수행하고, 서비스 수행에 따른 결과물인 결과 데이터를 어플리케이션으로 제공할 수 있다. 또한, 각 어플리케이션의 실행 중 오류가 발생하더라도, 각 어플리케이션은 open API를 통해 수행되기 때문에 해당 어플리케이션의 오류가 서비스 서비스 레이어(220)를 제공하는 비디오 서버 전체를 다운 시키는 경우는 발생하지 않는다. 따라서, 비디오 서버의 제작사가 아닌 사용자나 제3 개발자에 의해 개발된 어플리케이션에서 치명적인 오류가 발생하더라도, 비디오 서버의 안정성에 영향을 주지 않을 수 있다.In this case, each video application included in the
또한, 서비스 레이어(220)에서 제공하는 open API에 따른 서비스는 네임드 파이프(Named PIPE), TCP/IP, REST(Representational State Transfer) 프로토콜을 통해 제공될 수 있다. 특히, 고해상도 영상의 부호화, 복호화 등의 호출 및 응답 과정에서 전송되는 데이터의 양이 큰 open API는 네임드 파이프 프로토콜을 통해 데이터를 전송하는 API일 수 있다. 서비스 레이어(220)와 어플리케이션 레이어(230)는 동일 장치 상에서 운용되는 레이어이고, 이에 따라 서비스 레이어(220)의 서비스를 제공하는 소프트웨어 모듈인 코어 엔진과 비디오 어플리케이션 간의 데이터 전송은 가상적으로 이루어 질 수 있다. 즉, 코어 엔진과 비디오 어플리케이션 간의 데이터 전송은 실재 통신망을 통해 이루어지지 않고, 비디오 서버 내에서 가상의 데이터 전송으로 이루어 진다. 이에 따라 서비스 레이어(220) 및 어플리케이션 레이어(230) 간의 데이터 전송은 단일 물리 머신 내에서 적용될 수 있는 네임드 파이프 프로토콜을 통해 이루어질 수 있다. 따라서, 당 비디오 서버는 네임드 파이프 프로토콜을 통해 레이어 간 데이터를 전송하는 open API를 어플리케이션이 이용할 수 있도록 함으로써, 고해상도 영상에 대한 처리를 실시간으로 수행될 수 있도록 할 수 있다. 예를 들어, 고해상도의 영상 데이터를 복호화하여 출력하는 open API인 복호화 API는 UHD 부호화/복호화 보드(150)를 통해 스토리지(140)에 저장된 영상 데이터를 복호화하고, 네임드 파이프 프로토콜을 통해 어플리케이션 레이어(230)의 어플리케이션(코어 엔진)으로 복호화된 영상 신호를 실시간으로 전송하는 서비스를 제공하는 API일 수 있다. 만약, 복호화 API가 TCP/IP를 통해 영상 신호를 전송하는 open API인 경우, 복호화 API는 TCP/IP 프로토콜의 대역폭 제한으로 인해 프레임당 용량이 큰 영상 신호를 실시간 재생이 가능하도록 어플리케이션으로 전송할 수 없다. 즉, 코어 엔진에서 어플리케이션으로 데이터 전송이 가상적으로 이루어지는 경우에도, 대역폭 제한이 있는 TCP/IP를 통해서 코어 엔진이 어플리케이션으로 대용량(UHD 급)의 영상 신호를 실시간으로 전송하는 것이 불가능하다. 즉, 본 발명의 일 실시예에 따른 비디오 서버는 네임드 파이프 프로토콜을 통해 어플리케이션으로 데이터를 전송하는 특유의 open API를 제공함으로써, 어플리케이션과 코어 엔진 간의 독립성은 보장하면서, open API를 사용하는 어플리케이션이 고용량의 영상을 실시간으로 코어 엔진으로부터 수신 및 처리할 수 있도록 할 수 있다. In addition, the service according to the open API provided by the
즉, 상술한 복호화 API는 단일 물리 머신인 비디오 서버의 코어 엔진에서 프로세스를 수행하고 비디오 서버 상에 설치된 비디오 어플리케이션에 결과 데이터를 전송하는 open API이다. 일반적으로 open API는 웹을 통한 서비스를 제공하는 목적을 갖고 있기 때문에 TCP/IP나 REST 프로토콜에 따라 어플리케이션과 코어 엔진 간의 데이터 전송이 이루어 진다. 그러나, 본 발명의 일 실시예에 따른 비디오 서버가 제공하는 open API는 단일 물리 머신인 비디오 서버 내의 소프트웨어 모듈(어플리케이션 및 코어 엔진) 간의 데이터 전송을 수행하기 때문에 호출 및 결과 데이터의 전송을 네임드 파이프 프로토콜을 통해 수행하도록 구성될 수 있다.That is, the above-described decoding API is an open API that performs a process in a core engine of a video server, which is a single physical machine, and transmits the result data to a video application installed on the video server. In general, since open API has a purpose to provide services through the web, data is transmitted between the application and the core engine according to the TCP / IP or REST protocol. However, since the open API provided by the video server according to an embodiment of the present invention performs data transmission between software modules (applications and core engines) in a video server which is a single physical machine, the calling and transfer of result data is called a named pipe protocol. It can be configured to perform through.
도 3은 본 발명의 일 실시예에 따른 비디오 서버가 비디오 서비스를 제공하는 방법을 예시한 순서도이다. 이하 설명하는 각 단계는 비디오 서버를 구성하는 각 기능부를 통해 수행되는 과정이나, 발명의 간결하고 명확한 설명을 위해 각 단계의 주체를 비디오 서버로 통칭하도록 한다.3 is a flowchart illustrating a method of providing a video service by a video server according to an embodiment of the present invention. Each step described below is a process performed through each functional unit constituting a video server, or the subject of each step is collectively referred to as a video server for a concise and clear description of the invention.
도 3을 참조하면, 단계 310에서 비디오 서버는 코어 엔진을 실행시켜 서비스 레이어(220)를 생성한다.Referring to FIG. 3, in
단계 320에서 비디오 서버는 단말로부터 어플리케이션 코드를 수신한다. 이 때, 비디오 서버는 어플리케이션 코드에 상응하는 비디오 어플리케이션을 설치할 수 있다.In
단계 330에서 비디오 서버는 어플리케이션 코드에 상응하는 비디오 어플리케이션을 수행시킨다.In
단계 340에서 비디오 서버는 비디오 어플리케이션의 수행에 따른 open API 호출을 감지한다. 즉, 비디오 서버는 비디오 어플리케이션의 수행에 따라 open API의 호출 신호를 가상으로 코어 엔진에 상응하여 설정된 수신 포트로 전송한다. 비디오 서버는 코어 엔진에 상응하는 수신 포트로 가상으로 수신된 호출 신호를 확인하여 open API의 호출된 것을 감지할 수 있다.In
단계 350에서 비디오 서버는 호출된 open API에 상응하는 서비스를 수행한다. 예를 들어, 호출된 open API가 부호화된 영상 데이터를 복호화하여 영상 신호를 생성하는 서비스를 요청하는 것일 경우, 비디오 서버는 open API의 호출에 따라 영상 데이터를 복호화하여 영상 신호를 생성할 수 있다.In
단계 360에서 비디오 서버는 단계 350에서 수행된 서비스에 의해 생성된 데이터(이하 결과 데이터라 지칭)를 코어 엔진에서 비디오 어플리케이션으로 전송한다. 예를 들어, 비디오 서버는 영상 데이터를 복호화하여 생성한 영상 신호(결과 데이터)를 가상으로 코어 엔진에서 비디오 어플리케이션으로 전송할 수 있다. 이 때, 비디오 서버는 네임드 파이프 프로토콜을 통해 결과 데이터를 비디오 어플리케이션으로 전송할 수 있다. 물론, 비디오 서버는 비디오 어플리케이션에서 호출하는 open API에 지정된 통신 프로토콜이 REST 또는 TCP/IP인 경우, 파이프 프로토콜 이외 지정된 프로토콜을 통해 결과 데이터를 비디오 어플리케이션으로 전송할 수 있다.In
단계 370에서 비디오 서버는 네임드 파이프 프로토콜을 통해 전송된 결과 데이터를 이용하는 비디오 어플리케이션의 기능을 수행한다. 예를 들어, 상술한 비디오 어플리케이션이 네임드 파이프 프로토콜을 통해 수신한 영상을 특정 인터페이스를 통해 재생하는 기능을 수행하는 어플리케이션일 경우, 비디오 서버는 수신한 영상을 지정된 인터페이스를 통해 재생할 수 있다.In
상기에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to a preferred embodiment of the present invention, those skilled in the art to which the present invention pertains without departing from the spirit and scope of the present invention as set forth in the claims below It will be appreciated that modifications and variations can be made.
Claims (10)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020160002718A KR101741723B1 (en) | 2016-01-08 | 2016-01-08 | Ultra high definition video server and method for providing ultra high definition vedio service |
| KR10-2016-0002718 | 2016-01-08 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2017119526A1 true WO2017119526A1 (en) | 2017-07-13 |
Family
ID=59273633
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2016/000216 Ceased WO2017119526A1 (en) | 2016-01-08 | 2016-01-11 | High-resolution video server, and method for providing high-resolution video service |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR101741723B1 (en) |
| WO (1) | WO2017119526A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20110045204A (en) * | 2009-10-26 | 2011-05-04 | 주식회사 엘지유플러스 | A mobile communication terminal for receiving update information of a website, a system for providing update information of a website using the same, and a method of providing the same |
| KR20120136666A (en) * | 2011-06-09 | 2012-12-20 | 주식회사 피씨엔 | A contents service interface providing system based on open apis and the method thereof |
| KR20130073750A (en) * | 2011-12-23 | 2013-07-03 | 주식회사 케이티 | Apparatus for executing application and aggregation server |
| KR101528853B1 (en) * | 2007-12-14 | 2015-07-01 | 삼성전자주식회사 | API service method, API mashup generation method, apparatus and recording medium |
| US9183065B1 (en) * | 2012-11-01 | 2015-11-10 | Amazon Technologies, Inc. | Providing access to an application programming interface through a named pipe |
-
2016
- 2016-01-08 KR KR1020160002718A patent/KR101741723B1/en not_active Expired - Fee Related
- 2016-01-11 WO PCT/KR2016/000216 patent/WO2017119526A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101528853B1 (en) * | 2007-12-14 | 2015-07-01 | 삼성전자주식회사 | API service method, API mashup generation method, apparatus and recording medium |
| KR20110045204A (en) * | 2009-10-26 | 2011-05-04 | 주식회사 엘지유플러스 | A mobile communication terminal for receiving update information of a website, a system for providing update information of a website using the same, and a method of providing the same |
| KR20120136666A (en) * | 2011-06-09 | 2012-12-20 | 주식회사 피씨엔 | A contents service interface providing system based on open apis and the method thereof |
| KR20130073750A (en) * | 2011-12-23 | 2013-07-03 | 주식회사 케이티 | Apparatus for executing application and aggregation server |
| US9183065B1 (en) * | 2012-11-01 | 2015-11-10 | Amazon Technologies, Inc. | Providing access to an application programming interface through a named pipe |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101741723B1 (en) | 2017-06-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5742607A (en) | Method and apparatus for controlling two way communication via disparate physical media | |
| WO2012169702A1 (en) | Device and method for performing pre-linking activity per application according to android application execution request | |
| WO2016052845A1 (en) | Cloud streaming service system, cloud streaming service method using optimal gpu, and apparatus for same | |
| WO2012086916A1 (en) | Cloud computing system, traffic distribution method, and method for controlling same | |
| WO2014148667A1 (en) | Test system for reducing performance test cost in cloud environment and test method therefor | |
| CN115913937A (en) | A network configuration method, device, equipment and storage medium for a container with multiple network cards | |
| WO2019132314A1 (en) | Apparatus and method for network function virtualization in wireless communication system | |
| CN111586121A (en) | Distributed cloud mobile phone application installation method, cloud platform, system and storage medium | |
| WO2014035094A1 (en) | System and method for providing additional information to mobile communication terminal during call attempts | |
| WO2013165180A1 (en) | Log monitoring method, server therefor and recording medium | |
| CN108345533A (en) | Application program debugging method, device and server | |
| JP5392553B2 (en) | Data transfer system and data transfer method | |
| WO2013137615A1 (en) | Method and apparatus for detecting leak of information resource of device | |
| CN110933075B (en) | Service calling method and device, electronic equipment and storage medium | |
| US20220245005A1 (en) | Methods, devices and computer storage media for inter-mini program platform discovery | |
| WO2018182065A1 (en) | Multi-resource subscription association method in m2m system | |
| WO2017119526A1 (en) | High-resolution video server, and method for providing high-resolution video service | |
| WO2017052210A1 (en) | Method and apparatus for providing digital product using user account synchronization | |
| WO2018093051A1 (en) | Method for providing streaming service while converting file format in real time | |
| US10594511B2 (en) | Address system | |
| CN106790521B (en) | System and method for distributed networking by using node equipment based on FTP | |
| CN113315676B (en) | Method and device for detecting broken link and electronic equipment | |
| WO2020101224A1 (en) | Apparatus and method for providing container service | |
| WO2012150769A2 (en) | Method and apparatus for connecting devices | |
| CN118819880A (en) | IPC communication method, device, computer equipment and medium between multiple processes |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16883912 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 16883912 Country of ref document: EP Kind code of ref document: A1 |