KR102577210B1 - Method and apparatus for editing adaptive media - Google Patents
Method and apparatus for editing adaptive media Download PDFInfo
- Publication number
- KR102577210B1 KR102577210B1 KR1020210085560A KR20210085560A KR102577210B1 KR 102577210 B1 KR102577210 B1 KR 102577210B1 KR 1020210085560 A KR1020210085560 A KR 1020210085560A KR 20210085560 A KR20210085560 A KR 20210085560A KR 102577210 B1 KR102577210 B1 KR 102577210B1
- Authority
- KR
- South Korea
- Prior art keywords
- editing
- media
- original
- files
- original files
- Prior art date
Links
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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- 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
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/765—Interface circuits between an apparatus for recording and another apparatus
- H04N5/77—Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/91—Television signal processing therefor
- H04N5/917—Television signal processing therefor for bandwidth reduction
- H04N5/919—Television signal processing therefor for bandwidth reduction by dividing samples or signal segments, e.g. television lines, among a plurality of recording channels
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 개시의 다양한 실시예는 적응형 미디어 스트리밍 환경의 미디어 처리 서버의 비디오 편집 방법에 관한 것이다. 이를 위한 방법은, 미디어 스트림 파일의 편집 요청을 수신하는 동작; 복수의 해상도에 대한 미디어 스트림 파일에 대한 편집 작업 지시 생성하여 작업큐에 전달하는 동작; 상기 작업큐에 저장된 편집 작업 지시를 출력하여 편집을 수행할 해상도를 결정하는 동작; 결정된 해상도에 대응하는 제1 원본 파일을 수신하는 동작; 및 상기 제1 원본 파일을 편집하여, 제2 원본 파일을 생성하는 동작을 포함할 수 있다. Various embodiments of the present disclosure relate to a video editing method of a media processing server in an adaptive media streaming environment. A method for this includes: receiving a request to edit a media stream file; An operation of generating editing work instructions for media stream files for multiple resolutions and transmitting them to a work queue; An operation of determining a resolution at which editing will be performed by outputting an editing work instruction stored in the work queue; An operation of receiving a first original file corresponding to the determined resolution; and editing the first original file to create a second original file.
Description
본 개시의 다양한 실시예들은 적응형 미디어 편집 방법 및 장치에 관한 것이다. Various embodiments of the present disclosure relate to adaptive media editing methods and devices.
미디어 스트리밍 서비스는 소리, 음악, 동영상 등의 다양한 멀티미디어 데이터를 스트리밍 방식으로 제공하는 서비스를 의미한다. 스트리밍은 전송되는 데이터를 지속적이며 끊임없이 처리하고 재생할 수 있는 기술을 말한다. 보통은 파일 전체를 내려 받고 난 뒤에 멀티미디어를 재생하여 대용량의 파일의 경우 전체 파일을 내려 받는데 시간이 오래 걸릴 수 있으나, 스트리밍 기술을 이용하면, 파일이 모두 전송되기 전에 멀티미디어 재생이 가능하다.Media streaming service refers to a service that provides various multimedia data such as sound, music, and video in a streaming manner. Streaming refers to a technology that can continuously and endlessly process and play transmitted data. Normally, multimedia is played after downloading the entire file, so in the case of large files, it may take a long time to download the entire file. However, using streaming technology, multimedia playback is possible before the entire file is transferred.
적응형 미디어 스트리밍이란 여러 개의 작은 조각 형태로 저장된 다양한 해상도의 비디오를 미리 준비하여 사용자가 비디오를 시청할 때 네트워크 환경에 최적화된 원본(조각)으로 스트리밍을 제공하는 것을 의미한다. 적응형 미디어 스트리밍 서비스의 예로 HTTP Live Streaming (HLS), Dynamic Adaptive Streaming over HTTP (DASH) 등이 있다. Adaptive media streaming means preparing video of various resolutions stored in the form of several small pieces in advance and providing streaming as the original (piece) optimized for the network environment when the user watches the video. Examples of adaptive media streaming services include HTTP Live Streaming (HLS) and Dynamic Adaptive Streaming over HTTP (DASH).
미디어 서버에서 적응형 비디오 스트리밍 서비스 중인 영상은 하나의 비디오 파일을 작은 시간 단위의 여러 개의 조각으로 분리하여 서버에 저장되고, 영상을 편집하는 경우 다양한 버전의 영상의 편집된 부분을 각각 특정하여 수정해야 한다. Videos in the adaptive video streaming service on a media server are stored on the server by dividing one video file into several small pieces of time, and when editing a video, the edited parts of various versions of the video must be individually identified and modified. do.
사용자가 적응형 비디오 스트리밍 중인 영상을 편집하는 경우에도 영상 편집 내용을 신속히 반영하여 적응형 비디오 스트리밍을 제공할 수 있어야 한다. Even when a user edits a video that is being streamed adaptive video, it must be possible to provide adaptive video streaming by quickly reflecting the video edits.
본 개시의 다양한 실시예는 적응형 미디어 편집 방법에 관한 것이다. 이를 위한 방법은, 미디어 스트림 파일의 편집 요청을 수신하는 동작; 복수의 해상도에 대한 미디어 스트림 파일에 대한 편집 작업 지시 생성하여 작업큐에 전달하는 동작; 상기 작업큐에 저장된 편집 작업 지시를 출력하여 편집을 수행할 해상도를 결정하는 동작; 결정된 해상도에 대응하는 제1 원본 파일을 수신하는 동작; 및 상기 제1 원본 파일을 편집하여, 제2 원본 파일을 생성하는 동작을 포함할 수 있다. Various embodiments of the present disclosure relate to adaptive media editing methods. A method for this includes: receiving a request to edit a media stream file; An operation of generating editing work instructions for media stream files for multiple resolutions and transmitting them to a work queue; An operation of determining a resolution at which editing will be performed by outputting an editing work instruction stored in the work queue; An operation of receiving a first original file corresponding to the determined resolution; and editing the first original file to create a second original file.
일 실시예에서, 상기 방법은 상기 제2 원본 파일과 연관된 정보를 외부의 데이터베이스에 저장하는 동작을 더 포함할 수 있다. In one embodiment, the method may further include storing information associated with the second original file in an external database.
일 실시예에서, 상기 제2 원본 파일을 전송하는 동작을 더 포함할 수 있다. In one embodiment, the operation of transmitting the second original file may be further included.
일 실시예에서, 상기 작업큐에 저장된 편집 작업 지시를 출력하여 편집을 수행할 해상도를 결정하는 동작은 상기 미디어 처리 서버 내 복수의 편집 엔진에서 병렬적으로 수행할 수 있다 .In one embodiment, the operation of determining the resolution at which editing will be performed by outputting the editing work instruction stored in the work queue may be performed in parallel by a plurality of editing engines in the media processing server.
본 개시의 다양한 실시예는 적응형 미디어 스트리밍 환경의 미디어 처리 서버에 관한 것이다. 미디어 처리 서버는 미디어 스트림 파일의 편집 요청을 수신하고, 복수의 해상도에 대한 미디어 스트림 파일에 대한 편집 작업 지시 생성하여 전달하도록 구성된 비디오 편집 컨트롤러; 상기 비디오 편집 컨트롤러로부터 편집 작업 지시를 수신하여 저장하도록 구성된 작업큐; 및 상기 작업큐에 저장된 편집 작업 지시를 출력하여 편집을 수행할 해상도를 결정하고, 결정된 해상도에 대응하는 제1 원본 파일을 수신하고, 상기 제1 원본 파일을 편집하여, 제2 원본 파일을 생성하도록 구성된 비디오 편집 엔진;을 포함할 수 있다. Various embodiments of the present disclosure relate to a media processing server in an adaptive media streaming environment. The media processing server includes a video editing controller configured to receive editing requests for media stream files, generate and deliver editing work instructions for media stream files for a plurality of resolutions; a task queue configured to receive and store editing task instructions from the video editing controller; and output an editing work instruction stored in the work queue to determine a resolution at which editing will be performed, receive a first original file corresponding to the determined resolution, and edit the first original file to generate a second original file. It may include a configured video editing engine.
본 개시의 다양한 실시예들에 따르면, 적응형 비디오 스트리밍 서비스 중인 영상을 편집하는 경우에도 영상 편집 내용을 정확하고 신속히 반영하여 적응형 비디오 스트리밍을 제공할 수 있다. According to various embodiments of the present disclosure, even when editing a video in an adaptive video streaming service, adaptive video streaming can be provided by accurately and quickly reflecting the video editing content.
본 개시의 다양한 실시예들에 따르면, 적응형 스트리밍을 위해 저장되어 있는 복수의 원본 파일에 대한 편집을 병렬적으로 처리하여 편집 내용을 신속히 반영하여 적응형 비디오 스트리밍을 제공할 수 있다. According to various embodiments of the present disclosure, adaptive video streaming can be provided by processing editing of a plurality of original files stored for adaptive streaming in parallel and quickly reflecting the edited content.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.The effects that can be obtained from the exemplary embodiments of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned are common knowledge in the technical field to which the exemplary embodiments of the present disclosure belong from the following description. It can be clearly derived and understood by those who have it. That is, unintended effects resulting from implementing the exemplary embodiments of the present disclosure may also be derived by those skilled in the art from the exemplary embodiments of the present disclosure.
도 1은 본 개시의 다양한 실시예에 따라, 콘텐츠 제공 단말, 미디어 처리 서버, 미디어 서버 및 이들을 서로 연결하는 네트워크를 포함하는 적응형 미디어 스트리밍 시스템 환경을 개략적으로 도시한 도면이다.
도 2는 본 개시의 일 실시예에 따른, 도 1에 도시된 미디어 처리 서버의 기능적 구성을 도시하는 블록도이다.
도 3은 본 개시의 일 실시예에 따른, 도 1에 도시된 미디어 처리 서버에서 동작하는 적응형 미디어 스트리밍 서비스를 위한 콘텐츠 업로드 방법의 개략적인 흐름도이다.
도 4은 본 개시의 일 실시예에 따른, 도 1에 도시된 미디어 처리 서버에서 동작하는 적응형 미디어 스트리밍 서비스를 위한 콘텐츠 편집 방법의 개략적인 흐름도이다.
도 5는 본 개시의 일 실시예에 따른, 도 1에 도시된 미디어 처리 서버에서 동작하는 적응형 미디어 스트리밍 서비스를 위한 콘텐츠를 삭제하는 함수를 설명하는 도면이다. FIG. 1 is a diagram schematically illustrating an adaptive media streaming system environment including a content providing terminal, a media processing server, a media server, and a network connecting them, according to various embodiments of the present disclosure.
FIG. 2 is a block diagram illustrating the functional configuration of the media processing server shown in FIG. 1, according to an embodiment of the present disclosure.
FIG. 3 is a schematic flowchart of a content upload method for an adaptive media streaming service operating in the media processing server shown in FIG. 1, according to an embodiment of the present disclosure.
FIG. 4 is a schematic flowchart of a content editing method for an adaptive media streaming service operating in the media processing server shown in FIG. 1, according to an embodiment of the present disclosure.
FIG. 5 is a diagram illustrating a function for deleting content for an adaptive media streaming service operating in the media processing server shown in FIG. 1 according to an embodiment of the present disclosure.
본 개시의 실시예들에서 사용되는 용어는 본 개시의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도, 판례 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시예의 설명부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.The terms used in the embodiments of the present disclosure have selected general terms that are currently widely used as much as possible while considering the function of the present disclosure, but this may vary depending on the intention of the technician working in the art, precedents, the emergence of new technologies, etc. . In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the relevant embodiment. Therefore, the terms used in this disclosure should be defined based on the meaning of the term and the overall content of this disclosure, rather than simply the name of the term.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "...모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When it is said that a part "includes" a certain element throughout the specification, this means that, unless specifically stated to the contrary, it does not exclude other elements but may further include other elements. In addition, terms such as "...unit" and "...module" used in the specification refer to a unit that processes at least one function or operation, which is implemented as hardware or software, or as a combination of hardware and software. It can be.
이하에서는 도면을 참조하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 동일한 참조부호는 동일한 구성요소를 지칭하며, 도면 상에서 각 구성 요소의 크기는 설명의 명료성을 위하여 과장되어 있을 수 있다.Hereinafter, with reference to the drawings, embodiments of the present disclosure will be described in detail so that those skilled in the art can easily practice them. However, the present disclosure may be implemented in many different forms and is not limited to the embodiments described herein. In the drawings, the same reference numerals refer to the same components, and the size of each component in the drawings may be exaggerated for clarity of explanation.
이하, 첨부된 도면을 참조하여, 본 개시의 실시예에 대해 구체적으로 설명하기로 한다.Hereinafter, embodiments of the present disclosure will be described in detail with reference to the attached drawings.
도 1은 본 개시의 다양한 실시예에 따라, 콘텐츠 제공 단말, 미디어 처리 서버, 미디어 서버, 사용자 단말 및 이들을 서로 연결하는 네트워크를 포함하는 적응형 미디어 스트리밍 시스템 환경을 개략적으로 도시한 도면이다. FIG. 1 is a diagram schematically illustrating an adaptive media streaming system environment including a content providing terminal, a media processing server, a media server, a user terminal, and a network connecting them, according to various embodiments of the present disclosure.
다양한 실시예에 따르면, 적응형 미디어 스트리밍 시스템(100)은 콘텐츠 제공 단말(110), 미디어 처리 서버(120), 미디어 서버(130) 및 사용자 단말(140)을 포함할 수 있다.According to various embodiments, the adaptive media streaming system 100 may include a content providing terminal 110, a media processing server 120, a media server 130, and a user terminal 140.
본 개시의 일 실시예에 의하면, 콘텐츠 제공 단말(110) 각각은 유선 또는 무선 통신 기능을 구비한 임의의 사용자 전자 장치일 수 있다. 콘텐츠 제공 단말(110) 각각은, 예컨대 스마트 폰, 태블릿 PC, 데스크탑, 랩탑, PDA, 디지털 TV 등을 포함한 다양한 유선 또는 무선 통신 단말일 수 있으며, 특정 형태로 제한되지 않음을 알아야 한다. 본 도면에서는, 하나의 콘텐츠 제공 단말만이 도시되어 있으나 본 개시가 이로써 제한되는 것은 아니다. 본 개시의 다른 실시예에 의하면, 시스템 환경(100)은 더 많은 수의 다양한 형태의 콘텐츠 제공 단말을 포함할 수 있음을 알아야 한다. According to an embodiment of the present disclosure, each of the content providing terminals 110 may be any user electronic device equipped with a wired or wireless communication function. It should be noted that each of the content providing terminals 110 may be a variety of wired or wireless communication terminals, including, for example, a smart phone, tablet PC, desktop, laptop, PDA, digital TV, etc., and is not limited to a specific form. In this drawing, only one content providing terminal is shown, but the present disclosure is not limited thereto. According to another embodiment of the present disclosure, it should be noted that the system environment 100 may include a greater number of various types of content providing terminals.
본 개시의 일 실시예에 의하면, 콘텐츠 제공 단말(110) 각각은, 네트워크(미도시)를 통해서, 미디어 처리 서버(120) 또는 미디어 서버(130)와 통신, 즉 필요한 정보를 송수신할 수 있다. 본 개시의 일 실시예에 의하면, 콘텐츠 제공 단말(110)은 저장된 미디어 콘텐츠를 네트워크를 통해 미디어 처리 서버(120)로 전송할 수 있다. 본 개시의 일 실시예에 의하면, 콘텐츠 제공 단말(110)은 미디어 서버(130)에서 서비스 중인 비디오 스트리밍에 대한 편집 요청을 네트워크를 통해 미디어 처리 서버(120)로 전송할 수 있다. 본 개시의 일 실시예에 의하면, 콘텐츠 제공 단말(110)은, 네트워크를 통하여 외부(예컨대, 미디어 처리 서버(120) 또는 미디어 서버(130))로부터 전송되어 온 다양한 신호를 수신할 수 있다. According to an embodiment of the present disclosure, each of the content providing terminals 110 may communicate with the media processing server 120 or the media server 130 through a network (not shown), that is, transmit and receive necessary information. According to an embodiment of the present disclosure, the content providing terminal 110 may transmit stored media content to the media processing server 120 through a network. According to an embodiment of the present disclosure, the content providing terminal 110 may transmit an edit request for video streaming being serviced by the media server 130 to the media processing server 120 through a network. According to an embodiment of the present disclosure, the content providing terminal 110 may receive various signals transmitted from the outside (eg, the media processing server 120 or the media server 130) through a network.
본 개시의 일 실시예에 의하면, 미디어 처리 서버(120)는 적응형 미디어 스트리밍 서비스를 제공하기 위한 절차를 수행할 수 있다. 본 개시의 일 실시예에 의하면, 미디어 처리 서버(120)는 콘텐츠 제공 단말(110)로부터 미디어 스트림 파일을 수신할 수 있다. 본 개시의 일 실시예에 의하면, 미디어 처리 서버(120)는 미디어 스트림 파일을 처리하여 적응형 스트리밍 서비스를 지원하기 위한 다양한 해상도의 복수의 미디어 스트림 파일을 생성할 수 있다. 본 개시의 일 실시예에 의하면, 미디어 처리 서버(120)는 다양한 해상도의 복수의 미디어 스트림 파일을 미디어 서버(130)로 전송할 수 있다. According to an embodiment of the present disclosure, the media processing server 120 may perform procedures for providing an adaptive media streaming service. According to an embodiment of the present disclosure, the media processing server 120 may receive a media stream file from the content providing terminal 110. According to an embodiment of the present disclosure, the media processing server 120 may process media stream files to generate a plurality of media stream files of various resolutions to support an adaptive streaming service. According to an embodiment of the present disclosure, the media processing server 120 may transmit a plurality of media stream files of various resolutions to the media server 130.
본 개시의 일 실시예에 의하면, 미디어 처리 서버(120)는 적응형 미디어 스트리밍 서비스를 제공 중인 미디어 스트림을 편집하기 위한 절차를 수행할 수 있다. 본 개시의 일 실시예에 의하면, 미디어 처리 서버(120)는 콘텐츠 제공 단말(110)로부터 미디어 스트림 파일의 편집 요청을 수신할 수 있다. 예를 들어, 콘텐츠 제공 단말(110)은 특정 미디어 스트림 파일의 편집 요청으로 특정 구간의 삭제를 요청할 수 있다. 일 실시예에 의하면, 미디어 처리 서버(120)는 미디어 서버(130)로부터 복수의 미디어 스트림 파일을 수신하고 해당 파일에 대해 요청한 편집 작업을 수행할 수 있다. 예를 들어, 특정 미디어 스트림 파일에서 특정 구간(예: 0:35-0:53)을 삭제한 편집 파일을 생성할 수 있다. 본 개시의 일 실시예에 의하면, 미디어 처리 서버(120)는 다양한 해상도의 복수의 미디어 스트림 파일에 대해 병렬적으로 편집을 수행할 수 있다. 예를 들어, 복수의 미디어 스트림 파일은 360p, 480p, 720p, 1080p 해상도를 가질 수 있다. 본 개시의 일 실시예에 의하면, 미디어 처리 서버(120)는 다양한 해상도의 복수의 미디어 스트림 파일을 미디어 서버(130)로 전송할 수 있다. According to an embodiment of the present disclosure, the media processing server 120 may perform a procedure for editing a media stream providing an adaptive media streaming service. According to an embodiment of the present disclosure, the media processing server 120 may receive a request to edit a media stream file from the content providing terminal 110. For example, the content providing terminal 110 may request deletion of a specific section by requesting editing of a specific media stream file. According to one embodiment, the media processing server 120 may receive a plurality of media stream files from the media server 130 and perform a requested editing task on the corresponding files. For example, you can create an edited file that deletes a specific section (e.g., 0:35-0:53) from a specific media stream file. According to an embodiment of the present disclosure, the media processing server 120 can perform editing in parallel on a plurality of media stream files of various resolutions. For example, multiple media stream files may have resolutions of 360p, 480p, 720p, and 1080p. According to an embodiment of the present disclosure, the media processing server 120 may transmit a plurality of media stream files of various resolutions to the media server 130.
본 개시의 일 실시예에 의하면, 미디어 서버(130)는 사용자 단말(140)에 적응형 미디어 스트리밍 서비스를 제공할 수 있다. 일 실시예에서, 미디어 서버(130)는 미디어 처리 서버(120)로부터 다양한 해상도의 복수의 미디어 스트림 파일을 수신하고, 서비스 중인 사용자 단말(110)의 요청 또는 사용자 단말(110) 상태에 따라 특정 해상도의 미디어 스트림 파일을 제공할 수 있다. 예를 들어, 미디어 서버(130)는 아마존S3일 수 있다. According to an embodiment of the present disclosure, the media server 130 may provide an adaptive media streaming service to the user terminal 140. In one embodiment, the media server 130 receives a plurality of media stream files of various resolutions from the media processing server 120, and selects a specific resolution according to a request from the user terminal 110 in service or the state of the user terminal 110. of media stream files can be provided. For example, the media server 130 may be Amazon S3.
본 개시의 일 실시예에 의하면, 사용자 단말(140)은 미디어 서버(130)로부터 적응형 미디어 스트리밍 서비스를 제공받는 장치이다. 일 실시예에서, 사용자 단말(140)은 네트워크를 통해서, 미디어 서버(130)와 통신, 즉 필요한 정보를 송수신할 수 있다. According to an embodiment of the present disclosure, the user terminal 140 is a device that receives an adaptive media streaming service from the media server 130. In one embodiment, the user terminal 140 may communicate with the media server 130 through a network, that is, transmit and receive necessary information.
본 개시의 일 실시예에 의하면, 사용자 단말(140)은 각각은 유선 또는 무선 통신 기능을 구비한 임의의 사용자 전자 장치일 수 있다. 사용자 단말(140)은 각각은, 예컨대 스마트 폰, 태블릿 PC, 데스크탑, 랩탑, PDA, 디지털 TV 등을 포함한 다양한 유선 또는 무선 통신 단말일 수 있으며, 특정 형태로 제한되지 않음을 알아야 한다. 본 도면에서는, 하나의 사용자 단말만이 도시되어 있으나 본 개시가 이로써 제한되는 것은 아니다. 본 개시의 다른 실시예에 의하면, 시스템 환경(100)은 더 많은 수의 다양한 형태의 사용자 단말을 포함할 수 있음을 알아야 한다. According to an embodiment of the present disclosure, the user terminal 140 may be any user electronic device each equipped with a wired or wireless communication function. It should be noted that the user terminal 140 may be a variety of wired or wireless communication terminals, including, for example, a smart phone, tablet PC, desktop, laptop, PDA, digital TV, etc., and is not limited to a specific form. In this drawing, only one user terminal is shown, but the present disclosure is not limited thereto. It should be noted that according to another embodiment of the present disclosure, the system environment 100 may include a larger number of various types of user terminals.
본 개시의 일 실시예에 의하면, 네트워크는, 임의의 유선 또는 무선 통신망, 예컨대 TCP/IP 통신망을 포함할 수 있다. 본 개시의 일 실시예에 의하면, 네트워크는, 예컨대 Wi-Fi망, LAN망, WAN망, 인터넷망 등을 포함할 수 있으며, 본 개시가 이로써 제한되는 것은 아니다. 본 개시의 일 실시예에 의하면, 네트워크는, 예컨대 이더넷, GSM, EDGE(Enhanced Data GSM Environment), CDMA, TDMA, OFDM, OFDMA, 블루투스, VoIP, Wi-MAX, Wibro 기타 임의의 다양한 유선 또는 무선 통신 프로토콜을 이용하여 구현될 수 있다.According to one embodiment of the present disclosure, the network may include any wired or wireless communication network, such as a TCP/IP communication network. According to an embodiment of the present disclosure, the network may include, for example, a Wi-Fi network, a LAN network, a WAN network, an Internet network, etc., and the present disclosure is not limited thereto. According to an embodiment of the present disclosure, the network may be any variety of wired or wireless communication such as Ethernet, GSM, EDGE (Enhanced Data GSM Environment), CDMA, TDMA, OFDM, OFDMA, Bluetooth, VoIP, Wi-MAX, Wibro, etc. It can be implemented using a protocol.
도 2는 본 개시의 일 실시예에 따른, 도 1에 도시된 미디어 처리 서버의 기능적 구성을 도시하는 블록도이다. FIG. 2 is a block diagram illustrating the functional configuration of the media processing server shown in FIG. 1, according to an embodiment of the present disclosure.
도시된 바와 같이, 미디어 처리 서버(120)는 비디오 편집 컨트롤러(video edit controller; 210), 작업큐(job queue; 220) 및 복수의 비디오 편집 엔진(video edit engine; 230)을 포함할 수 있다. As shown, the media processing server 120 may include a video edit controller 210, a job queue 220, and a plurality of video edit engines 230.
본 개시의 일 실시예에서, 미디어 처리 서버(120)는 적응형 미디어 스트리밍 서비스를 제공하기 위한 절차를 수행할 수 있다. 일 실시예에 의하면, 미디어 처리 서버(120)는 미디어 스트림 파일을 수신할 수 있다. 본 개시의 일 실시예에 의하면, 미디어 처리 서버(120)는 미디어 스트림 파일을 처리하여 적응형 스트리밍 서비스를 지원하기 위한 다양한 해상도의 복수의 미디어 스트림 파일을 생성할 수 있다. 본 개시의 일 실시예에 의하면, 미디어 처리 서버(120)는 다양한 해상도의 복수의 미디어 스트림 파일을 미디어 서버(130)로 전송할 수 있다. In one embodiment of the present disclosure, the media processing server 120 may perform procedures for providing an adaptive media streaming service. According to one embodiment, media processing server 120 may receive a media stream file. According to an embodiment of the present disclosure, the media processing server 120 may process media stream files to generate a plurality of media stream files of various resolutions to support an adaptive streaming service. According to an embodiment of the present disclosure, the media processing server 120 may transmit a plurality of media stream files of various resolutions to the media server 130.
본 개시의 일 실시예에서, 비디오 편집 컨트롤러(210)는 적응형 미디어 스트리밍 서비스를 제공 중인 미디어 스트림을 편집하기 위한 절차를 수행할 수 있다. 본 개시의 일 실시예에 의하면, 비디오 편집 컨트롤러(210)는 콘텐츠 제공 단말(110)로부터 미디어 스트림 파일의 편집 요청을 수신할 수 있다. 예를 들어, 콘텐츠 제공 단말(110)은 특정 미디어 스트림 파일의 편집 요청으로 특정 구간의 삭제를 요청할 수 있다. 일 실시예에 의하면, 비디오 편집 컨트롤러(210)는 특정 미디어 스트림 파일과 연관된 복수의 해상도의 비디오 원본에 대해 요청한 편집 작업을 수행하도록 제어할 수 있다. In one embodiment of the present disclosure, the video editing controller 210 may perform a procedure for editing a media stream providing an adaptive media streaming service. According to an embodiment of the present disclosure, the video editing controller 210 may receive a request for editing a media stream file from the content providing terminal 110. For example, the content providing terminal 110 may request deletion of a specific section by requesting editing of a specific media stream file. According to one embodiment, the video editing controller 210 may control to perform a requested editing task on video originals of multiple resolutions associated with a specific media stream file.
본 개시의 일 실시예에서, 비디오 편집 컨트롤러(210)는 적응형 미디어 스트리밍을 지원해야 하는 해상도별로 편집 작업을 생성하여 작업큐(220)에 전달할 수 있다. 예컨대, 미디어 서버(130)에서 제공하는 복수의 미디어 스트림 파일이 360p, 480p, 720p, 1080p 해상도를 가진다면, 비디오 편집 컨트롤러(210)는 360p 편집 작업, 480p 편집 작업, 720p 편집 작업 및 1080p 편집 작업, 총 네 개의 편집 작업을 생성하여 작업큐(220)에 전달할 수 있다. In one embodiment of the present disclosure, the video editing controller 210 may create an editing task for each resolution that must support adaptive media streaming and transmit it to the task queue 220. For example, if a plurality of media stream files provided by the media server 130 have resolutions of 360p, 480p, 720p, and 1080p, the video editing controller 210 performs 360p editing, 480p editing, 720p editing, and 1080p editing. , a total of four editing tasks can be created and delivered to the task queue 220.
본 개시의 일 실시예에 의하면, 작업큐(220)는 편집 작업을 저장하는 큐(queue)이다. 일 실시예에서, 작업큐(220)는 비디오 편집 컨트롤러(210)로부터 작업을 입력받고, 후술하는 비디오 편집 엔진(230)으로 작업을 출력할 수 있다. According to one embodiment of the present disclosure, the task queue 220 is a queue that stores editing tasks. In one embodiment, the task queue 220 may receive a task from the video editing controller 210 and output the task to the video editing engine 230, which will be described later.
본 개시의 일 실시예에 의하면, 비디오 편집 엔진(230)은 특정 해상도의 비디오 원본 파일에 대해 편집 작업을 수행할 수 있다. 일 실시예에서, 비디오 편집 엔진(230)은 작업큐(220)에서 편집 작업을 가져올 수 있다. 일 실시예에서, 비디오 편집 엔진(230)은 가져온 편집 작업을 기초로 편집을 수행할 해상도를 결정할 수 있다. 일 실시예에서, 비디오 편집 엔진(230)은 결정된 해상도에 대응하는 비디오 원본 파일을 미디어 서버(130)로부터 수신할 수 있다. 일 실시예에서, 비디오 편집 엔진(230)은 비디오 원본 파일을 편집하여 새로운 비디오 원본 파일을 생성할 수 있다. 예컨대, 비디오 편집 엔진(230)은 미디어 서버(130)에 저장되어 서비스 중인 비디오 원본 파일에서 일부 구간(예: 1:30-2:45)을 삭제하여 새로운 원본 파일을 생성할 수 있다. According to an embodiment of the present disclosure, the video editing engine 230 may perform an editing operation on an original video file of a specific resolution. In one embodiment, video editing engine 230 may retrieve editing jobs from task queue 220. In one embodiment, video editing engine 230 may determine the resolution at which to perform editing based on the imported editing job. In one embodiment, the video editing engine 230 may receive an original video file corresponding to the determined resolution from the media server 130. In one embodiment, the video editing engine 230 may edit an original video file to create a new original video file. For example, the video editing engine 230 may create a new original file by deleting some sections (eg, 1:30-2:45) from the original video file stored in the media server 130 and being serviced.
본 개시의 일 실시예에 의하면, 비디오 편집 엔진(230)은 특정 해상도의 미디어 스트림 부분을 편집하는 편집 함수(예; doVideoEdit)를 통해 편집을 수행할 수 있다. 본 개시의 일 실시예에 따른 편집 함수에 대한 보다 상세한 설명은 도 5 및 표 1을 참고하여 후술하기로 한다. According to an embodiment of the present disclosure, the video editing engine 230 may perform editing through an editing function (eg, doVideoEdit) that edits a portion of a media stream of a specific resolution. A more detailed description of the editing function according to an embodiment of the present disclosure will be described later with reference to FIG. 5 and Table 1.
본 개시의 일 실시예에 의하면, 비디오 편집 엔진(230)은 편집된 미디어 스트림, 즉 편집을 수행하여 생성한 새로운 원본을 미디어 서버(130)로 전송할 수 있다. 일 실시예에서, 비디오 편집 엔진(230)은 복수 개일 수 있으며, 복수의 비디오 편집 엔진(230) 각각은 편집된, 복수의 해상도의 미디어 스트림 각각을 미디어 서버(130)로 전송할 수 있다. According to an embodiment of the present disclosure, the video editing engine 230 may transmit an edited media stream, that is, a new original created by performing editing, to the media server 130. In one embodiment, there may be a plurality of video editing engines 230, and each of the plurality of video editing engines 230 may transmit each of the edited media streams of a plurality of resolutions to the media server 130.
도 3은 본 개시의 일 실시예에 따른, 도 1에 도시된 미디어 처리 서버에서 동작하는 적응형 미디어 스트리밍 서비스를 위한 콘텐츠 업로드 방법의 개략적인 흐름도이다. FIG. 3 is a schematic flowchart of a content upload method for an adaptive media streaming service operating in the media processing server shown in FIG. 1, according to an embodiment of the present disclosure.
먼저, 미디어 처리 서버(120)는 콘텐츠 제공 단말(110)로부터 미디어 스트림을 수신할 수 있다. 일 실시예에서, 미디어 스트림은 비디오와 같은 영상일 수 있다(S301). 다음으로, 미디어 처리 서버(120)는 미디어 스트림 파일을 처리하여 적응형 스트리밍 서비스를 지원하기 위한 다양한 해상도의 복수의 미디어 스트림 파일을 생성할 수 있다(S302). 이후, 미디어 처리 서버(120)는 다양한 해상도의 복수의 미디어 스트림 파일을 미디어 서버(130)로 전송할 수 있다(S303). 도시되지는 않았으나, 일 실시예에서, 미디어 처리 서버(120)는 미디어 스트림 원본과 관련된 정보를 외부의 비디오 정보 데이터베이스에 저장할 수 있다. 미디어 스트림 원본과 관련된 정보는 예컨대 파일의 URL 정보를 포함할 수 있다. First, the media processing server 120 may receive a media stream from the content providing terminal 110. In one embodiment, the media stream may be an image such as a video (S301). Next, the media processing server 120 may process the media stream file to generate a plurality of media stream files of various resolutions to support an adaptive streaming service (S302). Thereafter, the media processing server 120 may transmit a plurality of media stream files of various resolutions to the media server 130 (S303). Although not shown, in one embodiment, the media processing server 120 may store information related to the original media stream in an external video information database. Information related to the media stream source may include, for example, URL information of the file.
도 4은 본 개시의 일 실시예에 따른, 도 1에 도시된 미디어 처리 서버에서 동작하는 적응형 미디어 스트리밍 서비스를 위한 콘텐츠 편집 방법의 개략적인 흐름도이다. FIG. 4 is a schematic flowchart of a content editing method for an adaptive media streaming service operating in the media processing server shown in FIG. 1, according to an embodiment of the present disclosure.
먼저, 미디어 처리 서버(120)의 비디오 편집 컨트롤러(210)는 적응형 미디어 스트리밍 서비스를 제공 중인 미디어 스트림을 편집하기 위한 절차를 수행할 수 있다. 비디오 편집 컨트롤러(210)는 콘텐츠 제공 단말(110)로부터 미디어 스트림 파일의 편집 요청을 수신할 수 있다(S401). 예를 들어, 비디오 편집 컨트롤러(210)는 콘텐츠 제공 단말(110)로부터 미디어 스트림 파일의 특정 구간의 삭제를 요청받을 수 있다. 일 실시예에서, 미디어 스트림 파일은 다양한 해상도, 예컨대 360p, 480p, 720p, 1080p 해상도로 서비스되고 있다. First, the video editing controller 210 of the media processing server 120 may perform a procedure for editing a media stream providing an adaptive media streaming service. The video editing controller 210 may receive a request to edit a media stream file from the content providing terminal 110 (S401). For example, the video editing controller 210 may receive a request from the content providing terminal 110 to delete a specific section of the media stream file. In one embodiment, media stream files are being served in various resolutions, such as 360p, 480p, 720p, and 1080p resolution.
다음으로 비디오 편집 컨트롤러(210)는 해당 미디어 스트림 파일과 연관된, 미디어 서버(130)에 저장된 미디어 원본 파일에 대해 요청한 편집 작업을 수행하기 위해, 적응형 미디어 스트리밍을 지원해야 하는 해상도 별 미디어 스트림 파일에 대한 편집 작업 지시를 생성할 수 있다(S402). 예를 들어, 비디오 편집 컨트롤러(210)는 특정 비디오 파일에서 특정 구간(예: 1:30-2:45)을 삭제하는 편집 작업 지시를 적응형 스트리밍 서비스를 지원하기 위한 다양한 해상도의 복수의 미디어 스트림 파일에 대해 각각 생성할 수 있다. Next, in order to perform the requested editing operation on the original media file stored in the media server 130, the video editing controller 210 is connected to the media stream file for each resolution that must support adaptive media streaming. Editing work instructions can be created (S402). For example, the video editing controller 210 may provide an editing operation instruction for deleting a specific section (e.g., 1:30-2:45) from a specific video file to a plurality of media streams of various resolutions to support an adaptive streaming service. Each file can be created separately.
다음으로, 비디오 편집 컨트롤러(210)는 편집 작업 지시를 작업큐(220)에 전달할 수 있다(S403). 예컨대, 미디어 서버(130)에서 제공하는 복수의 미디어 스트림 파일이 360p, 480p, 720p, 1080p 해상도를 가진다면, 비디오 편집 컨트롤러(210)는 360p 편집 작업, 480p 편집 작업, 720p 편집 작업 및 1080p 편집 작업, 총 네 개의 편집 작업을 생성하여 작업큐(220)에 전달할 수 있다. Next, the video editing controller 210 may transmit an editing task instruction to the task queue 220 (S403). For example, if a plurality of media stream files provided by the media server 130 have resolutions of 360p, 480p, 720p, and 1080p, the video editing controller 210 performs 360p editing, 480p editing, 720p editing, and 1080p editing. , a total of four editing tasks can be created and delivered to the task queue 220.
다음으로, 비디오 편집 엔진(230)은 작업큐(220)에 입력된 편집 작업 지시를 가져와서 편집 작업 지시를 기초로 편집을 수행할 해상도를 결정할 수 있다(S404).Next, the video editing engine 230 may retrieve the editing work instructions input to the work queue 220 and determine the resolution at which editing will be performed based on the editing work instructions (S404).
다음으로, 비디오 편집 엔진(230)은 결정된 해상도에 대응하는 비디오 원본 파일을 미디어 서버(130)로부터 수신할 수 있다(S405). Next, the video editing engine 230 may receive the video original file corresponding to the determined resolution from the media server 130 (S405).
다음으로, 비디오 편집 엔진(230)은 수신한 비디오 원본 파일을 편집하여, 즉 특정 구간을 삭제하여, 새로운 비디오 원본 파일을 생성할 수 있다(S406). 예컨대, 비디오 편집 엔진(230)은 미디어 서버(130)에 저장되어 서비스 중인 비디오 원본 파일에서 일부 구간(예: 1:30-2:45)을 삭제하여 새로운 원본 파일을 생성할 수 있다. 비디오 편집 엔진(230)에서 수신한 비디오 원본 파일을 삭제하는 함수에 대한 설명은 이하 도 5를 참조하여 설명한다. Next, the video editing engine 230 may edit the received original video file, that is, delete a specific section, and create a new original video file (S406). For example, the video editing engine 230 may create a new original file by deleting some sections (eg, 1:30-2:45) from the original video file stored in the media server 130 and being serviced. The function for deleting the original video file received from the video editing engine 230 will be described with reference to FIG. 5 below.
일 실시예에서, 비디오 편집 엔진(230)은 복수 개로 구성되어 복수의 해상도의 미디어 파일 각각에 대해 병렬적으로 편집 작업을 수행할 수 있다. In one embodiment, the video editing engine 230 is composed of a plurality of video editing engines 230 and can perform editing operations in parallel on each of the media files of a plurality of resolutions.
마지막으로, 비디오 편집 엔진(230)은 편집을 수행한 새로운 원본 파일을 파일을 미디어 서버(130)로 전송할 수 있다(S407). 일 실시예에서, 복수의 비디오 편집 엔진(230) 각각은 편집된, 복수의 해상도의 미디어 스트림 각각을 미디어 서버(130)로 전송할 수 있다.Finally, the video editing engine 230 may transmit the new edited original file to the media server 130 (S407). In one embodiment, each of the plurality of video editing engines 230 may transmit each of the edited media streams of the plurality of resolutions to the media server 130.
도 5는 본 개시의 일 실시예에 따른, 도 1에 도시된 미디어 처리 서버에서 동작하는 적응형 미디어 스트리밍 서비스를 위한 콘텐츠를 삭제하는 함수를 설명하는 도면이다. FIG. 5 is a diagram illustrating a function for deleting content for an adaptive media streaming service operating in the media processing server shown in FIG. 1 according to an embodiment of the present disclosure.
도면을 참조하면, 복수 개의 해상도를 가지는 비디오 파일 각각은 각각 10개의 청크(chunks)로 구성된다. 여기서, chunks는 미디어 파일의 조각을 나타내며, 자료구조는 어레이(array)일 수 있다. 여기서, chunk_duration은 청크 별 기간을 나타내며 자료구조는 어레이일 수 있다. 여기서, total_chunk_count는 미디어 파일 조각의 총 개수를 나타내며, 예컨대 10개일 수 있다. 여기서, chunk_time_unit은 미디어 파일 조각의 시간을 나타내며, 예컨대 10초일 수 있다. 여기서, startTime은 미디어를 편집할 시작 시간을 나타내고, endTime은 미디어를 편집할 종료 시간을 나타낸다. Referring to the drawing, each video file having multiple resolutions consists of 10 chunks. Here, chunks represent pieces of a media file, and the data structure may be an array. Here, chunk_duration represents the period for each chunk and the data structure may be an array. Here, total_chunk_count represents the total number of media file fragments, and may be, for example, 10. Here, chunk_time_unit represents the time of the media file fragment and may be, for example, 10 seconds. Here, startTime represents the start time to edit the media, and endTime represents the end time to edit the media.
청크 별 기간은 초기에 chunk_time_unit 값으로 설정되는데, 청크 별 duration은 같은 값으로 시작되지만, 편집을 수행하고 나면 줄어들 수 있으므로 chunk_duration[i] 변수를 사용한다. The duration for each chunk is initially set to the chunk_time_unit value. The duration for each chunk starts with the same value, but may decrease after editing, so the chunk_duration[i] variable is used.
현재 미디어 파일 조각의 시간(chunk_time_unit)이 10초이므로, 사용자가 35초에서 53초 사이의 구간 삭제를 입력하는 경우, 3번 청크의 일부, 4번 청크 및 5번 청크의 일부가 삭제되어야 한다. Since the time (chunk_time_unit) of the current media file fragment is 10 seconds, if the user enters deletion of a section between 35 and 53 seconds, part of chunk 3, chunk 4, and part of chunk 5 must be deleted.
표 1은, 본 개시의 일 실시예에 따른, 특정 해상도의 미디어 스트림 부분을 편집하는 편집 함수의 수도 코드를 나타낸다. Table 1 shows the number code of an editing function that edits a portion of a media stream of a specific resolution, according to an embodiment of the present disclosure.
본 개시의 일 실시예에 따른 함수 doVideoEdit는 특정 해상도의 미디어 스트림을 편집(예: 삭제)하는 함수이다. 미디어 파일의 조각(chunks)을 인자로 받아서, 삭제 요청된 시간동안의 미디어 파일을 삭제하여 새로운 미디어 파일을 생성할 수 있다. 설명하면, 모든 청크에 대해서(for i = 0 ~ total_chunk_count), 미디어 파일 조각의 시간(초기값)으로 설정한다(chunk_duration[i] = chunk_time_unit). The function doVideoEdit according to an embodiment of the present disclosure is a function that edits (eg, deletes) a media stream of a specific resolution. By receiving chunks of a media file as arguments, you can create a new media file by deleting media files for the requested deletion time. To explain, for all chunks ( for i = 0 ~ total_chunk_count ), set to the time (initial value) of the media file fragment (chunk_duration[ i ] = chunk_time_unit).
function getCumulativeDurtion(index)는 인자(index)까지의 각 청크의 기간을 합계하여 총 미디어 시간을 결정하는 함수이다. function getCumulativeDurtion( index ) is a function that determines the total media time by summing the duration of each chunk up to the argument (index).
function getChunkIndex(total_count, value)는 삭제 요청된 시간(시작 시간 또는 종료 시간)에 해당되는 청크가 몇 번 째 청크인지를 결정하는 함수이다. function getChunkIndex( total_count , value ) is a function that determines which chunk corresponds to the time (start time or end time) requested for deletion.
function saveChunk(chunk, from, to)는 하나의 청크 내에서 일부(예: from-to까지)만 리턴하는 함수이다. 예컨대, 2번 청크가 10초 짜리인 경우, saveChunk(2번chunk, 0, 4)를 호출하면 2번 chunk의 5초-10초까지를 삭제하고, 0초-4초까지만 남긴 청크를 리턴한다. function saveChunk( chunk, from, to ) is a function that returns only a part (e.g. from-to) within one chunk. For example, if chunk 2 is 10 seconds long, calling saveChunk(chunk 2, 0, 4) deletes 5 to 10 seconds of chunk 2 and returns the remaining chunk from 0 to 4 seconds. .
일 실시예에서, 미디어 처리 서버가 미디어 스트림에 대한 편집(예: 삭제) 요청을 받으면, 미디어 처리 서버는 하나의 청크 내에서만 편집이 필요한 경우와, 여러 청크에 걸쳐 편집이 필요한 경우를 나누어 편집을 수행한다. In one embodiment, when the media processing server receives a request to edit (e.g., delete) a media stream, the media processing server divides the edits into cases where editing is required within one chunk and cases where editing is required across multiple chunks. Perform.
하나의 청크 내에서의 삭제인 경우(if (startIndex == endIndex)), 미디어 처리 서버는 function saveChunk를 이용하여 해당 청크에 대해 일부 삭제를 수행한다. 설명하면, 미디어 처리 서버가 하나의 청크의 중간 부분을 편집하는 경우, 하나의 청크에 대해 function saveChunk를 2번 이용하는데, 앞의 saveChunk 함수는 전반부, 뒤의 saveChunk 함수는 후반부를 리턴한다. 예를 들어, 하나의 청크의 0-10초 중에 4-5초를 부분을 삭제하는 경우, 앞의 saveChunk는 0-3초를, 뒤의 saveChunk는 6-10초를 리턴한다. 미디어 처리 서버는 전반부 청크와 후반부 청크를 병합(merge)하여 새로운 청크를 생성하고 새로운 청크의 기간(chunk_duration[endIndex])을 업데이트한다. In the case of deletion within one chunk ( if (startIndex == endIndex)), the media processing server performs partial deletion of the corresponding chunk using the function saveChunk. To explain, when the media processing server edits the middle part of one chunk, the function saveChunk is used twice for one chunk, with the former saveChunk function returning the first half and the latter saveChunk function returning the second half. For example, when deleting 4-5 seconds out of 0-10 seconds of one chunk, the first saveChunk returns 0-3 seconds, and the second saveChunk returns 6-10 seconds. The media processing server merges the first half chunk and the second half chunk to create a new chunk and updates the duration (chunk_duration[endIndex]) of the new chunk.
여러 청크에 걸쳐 편집이 필요한 경우, 미디어 처리 서버는 시작 청크 및 마지막 청크에 대해 function saveChunk를 이용한다. 미디어 처리 서버는 삭제 요청된 시작 청크에 대해 function saveChunk를 이용하여 일부 삭제를 수행하고, 중간 청크들은 전체를 삭제하며, 삭제 요청된 마지막 청크에 대해 function saveChunk를 이용하여 일부 삭제를 수행한다. If editing is required across multiple chunks, the media processing server and use function saveChunk for the last chunk. The media processing server performs partial deletion using the function saveChunk for the starting chunk requested for deletion, deletes all of the middle chunks, and performs partial deletion using the function saveChunk for the last chunk requested for deletion.
전술한 바와 같이, 미디어 처리 서버(120)에서 복수의 비디오 편집 엔진(230)에서 복수의 해상도의 미디어 파일 각각에 대해 병렬적으로 편집 작업을 수행하여 미디어 서버(130)에 업로드함으로써 영상 편집 내용을 신속히 반영하여 적응형 미디어 스트리밍을 제공할 수 있다. As described above, the media processing server 120 performs editing operations in parallel on each of the media files of a plurality of resolutions in the plurality of video editing engines 230 and uploads them to the media server 130 to edit the video content. Adaptive media streaming can be provided through rapid reflection.
본 개시를 통해 설명된 콘텐츠 제공 단말(110), 미디어 처리 서버(120) 및 미디어 서버(130)에 의해 실행되는 프로그램은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 프로그램은 컴퓨터로 읽을 수 있는 명령어들을 수행할 수 있는 모든 시스템에 의해 수행될 수 있다.Programs executed by the content providing terminal 110, media processing server 120, and media server 130 described through this disclosure include hardware components, software components, and/or hardware components and software components. It can be implemented in combination. A program can be executed by any system that can execute computer-readable instructions.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령어(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로 (collectively) 처리 장치를 명령할 수 있다. 소프트웨어는, 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 컴퓨터 프로그램으로 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체로는, 예를 들어 마그네틱 저장 매체(예컨대, ROM(Read-Only Memory), RAM(Random-Access Memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device. Software may be implemented as a computer program including instructions stored on computer-readable storage media. Computer-readable recording media include, for example, magnetic storage media (e.g., ROM (Read-Only Memory), RAM (Random-Access Memory), floppy disk, hard disk, etc.) and optical read media (e.g., CD-ROM). (CD-ROM), DVD (Digital Versatile Disc), etc. The computer-readable recording medium is distributed among computer systems connected to a network, so that computer-readable code can be stored and executed in a distributed manner. The media may be readable by a computer, stored in memory, and executed by a processor.
컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.Computer-readable storage media may be provided in the form of non-transitory storage media. Here, 'non-transitory' only means that the storage medium does not contain signals and is tangible, and does not distinguish whether the data is stored semi-permanently or temporarily in the storage medium.
또한, 본 개시의 실시예들에 따른 프로그램은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 소프트웨어 프로그램, 소프트웨어 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 디바이스의 제조사 또는 전자 마켓(예를 들어, 구글 플레이스토어, 앱 스토어)을 통해 전자적으로 배포되는 소프트웨어 프로그램 형태의 상품(예를 들어, 다운로드 가능한 애플리케이션 (downloadable application))을 포함할 수 있다. 전자적 배포를 위하여, 소프트웨어 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 소프트웨어 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.Additionally, programs according to embodiments of the present disclosure may be included and provided in a computer program product. Computer program products are commodities and can be traded between sellers and buyers. A computer program product may include a software program and a computer-readable storage medium on which the software program is stored. For example, a computer program product is a product in the form of a software program (e.g., a downloadable application) that is distributed electronically by the device manufacturer or through an electronic marketplace (e.g., Google Play Store, App Store). may include. For electronic distribution, at least a portion of the software program may be stored on a storage medium or created temporarily. In this case, the storage medium may be a storage medium of a manufacturer's server, an electronic market server, or a relay server that temporarily stores a software program.
컴퓨터 프로그램 제품은, 서버 및 디바이스로 구성되는 시스템에서, 서버의 저장매체 또는 디바이스의 저장매체를 포함할 수 있다. 또는, 서버 또는 디바이스와 통신 연결되는 제3의 디바이스(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3의 디바이스의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 디바이스 또는 제3 디바이스로 전송되거나, 제3 디바이스로부터 디바이스로 전송되는 소프트웨어 프로그램 자체를 포함할 수 있다. 이 경우, 서버, 디바이스 및 제3 디바이스 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 디바이스 및 제3 디바이스 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다. 예를 들면, 서버가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 디바이스가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다. 또 다른 예로, 제3 디바이스가 컴퓨터 프로그램 제품을 실행하여, 제3 디바이스와 통신 연결된 디바이스가 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다. 제3 디바이스가 컴퓨터 프로그램 제품을 실행하는 경우, 제3 디바이스는 서버로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제3 디바이스는 프리로드 (pre-loaded)된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다.A computer program product, in a system comprised of a server and a device, may include a storage medium of a server or a storage medium of a device. Alternatively, if there is a third device (e.g., a smartphone) connected to the server or device for communication, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include a software program itself that is transmitted from a server to the device or a third device, or from a third device to the device. In this case, one of the server, the device, and the third device may execute the computer program product to perform the method according to the disclosed embodiments. Alternatively, two or more of a server, a device, and a third device may execute the computer program product and perform the methods according to the disclosed embodiments in a distributed manner. For example, the server may execute a computer program product stored on the server and control a device connected to the server to perform the method according to the disclosed embodiments. As another example, a third device may execute a computer program product to control a device communication-connected to the third device to perform the method according to the disclosed embodiment. When the third device executes the computer program product, the third device may download the computer program product from the server and execute the downloaded computer program product. Alternatively, a third device may perform the methods according to the disclosed embodiments by executing a computer program product provided in a pre-loaded state.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 컴퓨터 시스템 또는 모듈 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited examples and drawings, various modifications and variations can be made by those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and/or components, such as a described computer system or module, may be combined or combined in a form different from the described method, or other components or equivalents may be used. Appropriate results can be achieved even if replaced or replaced by .
110: 콘텐츠 제공 단말
120: 미디어 처리 서버
130: 미디어 서버
140: 사용자 단말110: Content provision terminal
120: Media processing server
130: media server
140: User terminal
Claims (9)
미디어 스트림 파일의 편집 요청을 수신하는 동작;
복수의 해상도에 대한 미디어 스트림 파일에 대한 편집 작업 지시 생성하여 작업큐에 전달하는 동작;
상기 작업큐에 저장된 편집 작업 지시를 출력하여 편집을 수행할 복수의 해상도를 결정하는 동작;
상기 결정된 복수의 해상도에 대응하는 복수의 제1 원본 파일을 수신하는 동작 - 상기 복수의 제1 원본 파일의 각각의 제1 원본 파일은 하나 이상의 청크(chunk)를 포함하는 어레이 구조를 가짐 -; 및
상기 복수의 제1 원본 파일을 편집하여, 복수의 제2 원본 파일을 생성하는 동작;
을 포함하고,
상기 복수의 제1 원본 파일을 편집하여, 복수의 제2 원본 파일을 생성하는 동작은,
상기 편집 작업 지시에 기초하여 상기 복수의 제1 원본 파일의 각각의 제1 원본 파일의 상기 하나 이상의 청크 중 편집을 수행할 청크를 결정하는 동작; 및
상기 복수의 제1 원본 파일의 각각의 제1 원본 파일의 결정된 청크에 대해 상기 미디어 처리 서버 내 복수의 편집 엔진에서 병렬적으로 편집을 수행하는 동작을 포함하는, 방법.In a video editing method of a media processing server in an adaptive media streaming environment,
Receiving a request to edit a media stream file;
An operation of generating editing work instructions for media stream files for multiple resolutions and transmitting them to a work queue;
An operation of determining a plurality of resolutions at which editing will be performed by outputting an editing work instruction stored in the work queue;
An operation of receiving a plurality of first original files corresponding to the determined plurality of resolutions, each first original file of the plurality of first original files having an array structure including one or more chunks; and
Editing the plurality of first original files to create a plurality of second original files;
Including,
The operation of editing the plurality of first original files to create a plurality of second original files,
determining a chunk to be edited among the one or more chunks of each first original file of the plurality of first original files based on the editing operation instruction; and
The method comprising: performing editing in parallel in a plurality of editing engines in the media processing server on a determined chunk of each first original file of the plurality of first original files.
상기 복수의 제2 원본 파일과 연관된 정보를 외부의 데이터베이스에 저장하는 동작을 더 포함하는, 방법.According to paragraph 1,
The method further includes storing information associated with the plurality of second original files in an external database.
상기 복수의 제2 원본 파일을 전송하는 동작을 더 포함하는, 방법.According to paragraph 1,
The method further includes transmitting the plurality of second original files.
상기 작업큐에 저장된 편집 작업 지시를 출력하여 편집을 수행할 복수의 해상도를 결정하는 동작은 상기 미디어 처리 서버 내 복수의 편집 엔진에서 병렬적으로 수행하는, 방법.According to paragraph 1,
The operation of determining a plurality of resolutions at which to perform editing by outputting an editing work instruction stored in the work queue is performed in parallel by a plurality of editing engines in the media processing server.
미디어 스트림 파일의 편집 요청을 수신하고, 복수의 해상도에 대한 미디어 스트림 파일에 대한 편집 작업 지시 생성하여 전달하도록 구성된 비디오 편집 컨트롤러;
상기 비디오 편집 컨트롤러로부터 편집 작업 지시를 수신하여 저장하도록 구성된 작업큐; 및
상기 작업큐에 저장된 편집 작업 지시를 출력하여 편집을 수행할 복수의 해상도를 결정하고, 상기 결정된 복수의 해상도에 대응하는 복수의 제1 원본 파일을 수신하고, 상기 복수의 제1 원본 파일을 편집하여, 복수의 제2 원본 파일을 생성하도록 구성된 복수의 비디오 편집 엔진;
을 포함하고,
상기 복수의 제1 원본 파일의 각각의 제1 원본 파일은 하나 이상의 청크(chunk)를 포함하는 어레이 구조를 가지고,
상기 복수의 제1 원본 파일을 편집하여, 복수의 제2 원본 파일을 생성하는 것은,
상기 편집 작업 지시에 기초하여 상기 복수의 제1 원본 파일의 각각의 제1 원본 파일의 상기 하나 이상의 청크 중 편집을 수행할 청크를 결정하고, 상기 복수의 제1 원본 파일의 각각의 제1 원본 파일의 결정된 청크에 대해 상기 복수의 비디오 편집 엔진에서 병렬적으로 편집을 수행하는 것을 포함하는, 미디어 처리 서버.As a media processing server in an adaptive media streaming environment,
a video editing controller configured to receive editing requests for media stream files, and generate and deliver editing work instructions for media stream files for a plurality of resolutions;
a task queue configured to receive and store editing task instructions from the video editing controller; and
Output an editing work instruction stored in the work queue to determine a plurality of resolutions to perform editing, receive a plurality of first original files corresponding to the determined plurality of resolutions, and edit the plurality of first original files. , a plurality of video editing engines configured to generate a plurality of second original files;
Including,
Each first original file of the plurality of first original files has an array structure including one or more chunks,
Editing the plurality of first original files to create a plurality of second original files,
Based on the editing operation instruction, determine a chunk to be edited among the one or more chunks of each first original file of the plurality of first original files, and determine a chunk to be edited, A media processing server comprising performing editing in parallel in the plurality of video editing engines for the determined chunks.
상기 복수의 비디오 편집 엔진은 상기 복수의 제2 원본 파일과 연관된 정보를 외부의 데이터베이스에 전송하도록 더 구성되는, 미디어 처리 서버.According to clause 6,
wherein the plurality of video editing engines are further configured to transmit information associated with the plurality of second original files to an external database.
상기 복수의 비디오 편집 엔진은 상기 복수의 제2 원본 파일을 전송하도록 더 구성되는, 미디어 처리 서버. In clause 7,
and the plurality of video editing engines are further configured to transmit the plurality of second original files.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20200150685 | 2020-11-12 | ||
KR1020200150685 | 2020-11-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220064890A KR20220064890A (en) | 2022-05-19 |
KR102577210B1 true KR102577210B1 (en) | 2023-09-18 |
Family
ID=81801069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210085560A KR102577210B1 (en) | 2020-11-12 | 2021-06-30 | Method and apparatus for editing adaptive media |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102577210B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115052182B (en) * | 2022-06-27 | 2023-07-21 | 重庆邮电大学 | Ultrahigh-definition video transmission system and method based on queue learning and super resolution |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101420638B1 (en) * | 2012-12-14 | 2014-07-17 | 에스케이플래닛 주식회사 | An apparatus for presenting contents in streaming services and a method thereof |
KR102316495B1 (en) * | 2019-04-09 | 2021-10-25 | 한국전자기술연구원 | Real-time segmented video transcoding device and method |
-
2021
- 2021-06-30 KR KR1020210085560A patent/KR102577210B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20220064890A (en) | 2022-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10743008B2 (en) | Video file transcoding system, segmentation method, and transcoding method and apparatus | |
US9852762B2 (en) | User interface for video preview creation | |
CN110636340B (en) | Video file uploading method, storage device, terminal device and storage medium | |
EP2151970B1 (en) | Processing and supplying video data | |
US20170162229A1 (en) | Play method and device | |
KR20190116931A (en) | Remote cloud-based video production system in an environment where there is network delay | |
US20210021655A1 (en) | System and method for streaming music on mobile devices | |
US12058421B2 (en) | Content aggregation | |
KR102577210B1 (en) | Method and apparatus for editing adaptive media | |
CN108924630B (en) | Method for displaying cache progress and playing device | |
US20240171797A1 (en) | Techniques for providing a content stream based on a delivered stream of content | |
CN103220587A (en) | Method and device for obtaining time shifting contents | |
KR20110044493A (en) | Method and apparatus for storing data in digital broadcasting system providing video on demand service | |
WO2018188365A1 (en) | Synchronous playback method, device and system | |
GB2563267A (en) | Methods and systems for generating a reaction video | |
US11838560B2 (en) | Method and system for playing back streaming content using local streaming server | |
US10306276B2 (en) | Information device | |
US20190213709A1 (en) | Image auto resizing | |
KR20220167469A (en) | Method and appartus for improving video editing speed in an adaptive media streaming environment | |
JP6275906B1 (en) | Program and method for reproducing moving image content, and system for distributing and reproducing moving image content | |
JP2017225044A (en) | Client device for content distribution system, content acquisition method and program | |
EP3780625A1 (en) | Recorded data processing method and relevant device | |
JP7526414B1 (en) | Server, method and computer program | |
KR20220166034A (en) | Method and apparatus for split media streaming | |
JP7526410B1 (en) | Terminal, method and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |