KR101051182B1 - A combining and dividing device for multimedia streams based on directshow filter graph - Google Patents
A combining and dividing device for multimedia streams based on directshow filter graph Download PDFInfo
- Publication number
- KR101051182B1 KR101051182B1 KR1020110021498A KR20110021498A KR101051182B1 KR 101051182 B1 KR101051182 B1 KR 101051182B1 KR 1020110021498 A KR1020110021498 A KR 1020110021498A KR 20110021498 A KR20110021498 A KR 20110021498A KR 101051182 B1 KR101051182 B1 KR 101051182B1
- Authority
- KR
- South Korea
- Prior art keywords
- stream
- filter
- output
- input
- graph
- Prior art date
Links
- 238000009826 distribution Methods 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 27
- 238000000034 method Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/4143—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Description
본 발명은 다이렉트쇼 필터그래프를 이용하여, 적어도 하나의 입력장치로부터 데이터 스트림(이하 입력 스트림)을 입력받고 상기 입력 스트림을 결합하고 분배하여 출력장치로 출력하는 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치에 관한 것이다.The present invention is a directshow filter graph-based multimedia stream combining distribution device that receives a data stream (hereinafter referred to as an input stream) from at least one input device, combines, distributes, and outputs the input stream to an output device using a directshow filter graph. It is about.
특히, 본 발명은 입력장치 및 출력장치 별로 필터그래프를 생성하고 상기 필터그래프의 파이프 필터를 서로 결합하거나 분배하는 스트림 탱크를 구성하는 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치에 관한 것이다.
In particular, the present invention relates to a DirectShow filter graph-based multimedia stream combining and distributing apparatus for generating a filter graph for each input device and an output device, and configuring a stream tank for combining or distributing pipe filters of the filter graph.
마이크로소프트사는 윈도우즈 상에서 비디오의 재생이나 처리과정의 개발을 위한 다이렉트쇼(DirectShow) SDK(software development kit)를 제공한다. 다이렉트쇼는 소프트웨어 개발자들이 미디어 파일이나 스트림을 가지고 다양한 기능을 수행할 수 있는 멀티미디어 프레임워크이자 API(Application Programming Interface)이다. 즉, 여러 가지 포맷(MPEG, AV)으로 부호화된 디지털 데이터를 영상으로 재생할 수 있도록 동적 링크 라이브러리(dynamic-link library, DLLs)를 제공하여 필터의 제작을 용이하게 한다.Microsoft provides the DirectShow SDK (software development kit) for developing video playback and processing on Windows. DirectShow is a multimedia framework and application programming interface (API) that allows software developers to perform various functions with media files or streams. That is, a dynamic-link library (DLLs) is provided so that digital data encoded in various formats (MPEG, AV) can be reproduced as an image, thereby facilitating the manufacture of a filter.
도 1은 일반적인 다이렉트쇼 필터의 구성과 멀티미디어 스트림의 전송로직을 개략적으로 나타낸 도면이다. 다이렉트쇼는 다이렉트쇼에서 가장 핵심적인 객체인 필터라는 모듈러 컴포넌트(modular component)를 사용하여 멀티미디어 스트림을 어떠한 식으로 제어하고 처리할 것인지를 정의한다.1 is a diagram schematically illustrating a configuration of a general direct show filter and a transmission logic of a multimedia stream. DirectShow uses a modular component called Filter, the most important object in DirectShow, to define how to control and process multimedia streams.
어플리케이션(100)은 필터 그래프 매니저(filter graph manager)(110)라 불리는 개체를 사용하여 필터 그래프(filter graph)를 생성하고, 멀티미디어 스트림이 필터 그래프를 통하여 움직이게 한다. 필터 그래프는 다양한 종류의 필터들이 연결된 집합으로 구성되며, 이러한 필터들은 입력 핀 또는 출력 핀을 가지고(혹은 입력 핀과 출력 핀을 가지고) 연결된다. 이러한 핀은 필터 그래프상에서 연결된 필터 간에 멀티미디어 스트림을 전달할 때, 필터간의 연결이 이루어지는 부분으로서 멀티미디어 스트림의 전달 통로라고 할 수 있다.The
필터 그래프에 구성된 필터들은 도 1에 도시된 바와 같이, 크게 소스 필터(120), 변환 필터(130), 렌더 필터(140)로 구분된다. 소스 필터(120)는 디스크, 인터넷 서버 또는 VCR 등 입력장치(또는 출력장치)로부터 소스를 얻고, 필터 그래프에게 알리는 역할을 한다. 변환 필터(130)는 소스 필터(120)로부터 멀티미디어 스트림을 전달 받고 전달 받은 스트림을 오디오 스트림과 비디오 스트림으로 분리하거나 복호화(decoding) 할 수 있다.As shown in FIG. 1, the filters configured in the filter graph are largely divided into a
또한, 분리 혹은 복호화된 멀티미디어 스트림을 렌더 필터(140)로 전달하는 역할을 한다. 렌더 필터(140)는 복호화된 멀티미디어 스트림(11)을 렌더링(rendering)하여 출력한다. 필터그래프 매니저(110)는 필터그래프를 생성하여, 소스 필터(120), 변환 필터(130) 및 렌더 필터(140)로 구성하여 그 필터들의 동작을 제어하는 역할을 한다.
In addition, it serves to deliver the separated or decoded multimedia stream to the
다이렉트쇼의 필터그래프로 멀티미디어 스트리밍을 처리하는 일례를 도 2를 참조하여 설명한다.An example of processing multimedia streaming by the filter graph of the direct show will be described with reference to FIG. 2.
일반적으로 다이렉트쇼에서는 다수의 입력 장치로부터 들어오는 스트림(stream) 데이터를 조합하고 선택하는 방식을 하나의 필터 그래프로 처리한다. 이런 사례는 두 개이상의 영상을 PIP(Picture in Picture)같이 하나의 영상으로 조합하거나 사운드(또는 오디오) 데이터를 믹싱(mixing)하는 등의 경우에 자주 사용한다. 이 경우 필터 그래프를 실행(run)중에 새로운 입출력장치(또는 디바이스)를 추가하거나 삭제할 경우 필터 그래프를 멈춰(stop)야 한다.In general, DirectShow processes a method of combining and selecting stream data coming from a plurality of input devices into one filter graph. This example is often used when combining two or more images into a single image, such as a picture in picture, or mixing sound (or audio) data. In this case, when adding or deleting a new I / O device (or device) while the filter graph is running, the filter graph must be stopped.
도 2a에서 보는 바와 같이, 다수의 필터를 일방향으로 연결하여, 멀티미디어 스트리밍을 처리하는 필터그래프를 작성한다. 즉, 카메라 1의 소스 필터에 의해 카메라 1의 화상 스트리밍을 받고, 오디오 1 소스필터에 의해 소리를 받는다. 화상 데이터는 H.264 인코딩 필터에 의해 H.264 포맷의 화상으로 인코딩되고, 오디오 데이터는 AAC 인코딩 필터에 의해 ACC 코덱으로 인코딩된다. 그리고 먹스 필터(muxer filter)에 의해 H.264 화상과 AAC 오디오 스트림이 서로 결합되어 하나의 영상파일(mp4 파일)로 생성된다. 이때 생성된 영상파일은 저장필터(File writer filter)에 의해 저장된다. 도 2a의 필터그래프에서 필터들 사이에 연결되는 선들을 핀(pin)이라 한다.As shown in Fig. 2A, a plurality of filters are connected in one direction to create a filter graph for processing multimedia streaming. In other words, the
즉, 필터그래프 매니저(110)에 의해, 도 2a와 같은 필터 그래프가 생성되고, 그 필터그래프가 실행(run)이 되면 카메라 1과 오디오 1로부터 데이터를 받기 시작하고. 그래서 각각 H.264 코덱과 AAC 코덱에 의해 인코딩되어 mp4 파일 형태로 결합된 데이터들이 디스크에 저장된다.That is, the
한편, 필터그래프는 하나의 COM(Component Object Model) 컴포넌트 객체로서 구현된다. 따라서 필터그래프는 하나의 COM 서버로서, 멀티미디어 데이터를 처리하여 그 결과를 출력하는 서비스를 제공한다. 즉, 필터그래프를 생성하여 실행시키는 것은 하나의 COM 객체를 생성하여 실행시키는 것과 같다.On the other hand, the filter graph is implemented as a single Component Object Model (COM) component object. Therefore, the filter graph is a COM server, and provides a service that processes multimedia data and outputs the result. In other words, creating and executing a filter graph is equivalent to creating and executing a COM object.
또한, 상기 필터그래프에 의해 영상파일이 저장 중에 카메라 2가 새로 추가되어, 카메라1과 카메라2 화상을 PIP로 결합하는 경우를 도 2b를 참조하여 설명한다. 한편, 새로 추가된 카메라 2로 데이터를 받아 이를 PIP(Picture-in-Picture)형태로 결합하고자 한다면 일단 필터 그래프를 중단(stop)해야 한다.In addition, a case where the
그리고 도 2b에서 보는 바와 같이, 카메라 2(입력장치)로부터 화상 데이터를 받아주는 카메라 2 소스 필터를 추가하고, 카메라 1과 카메라 2의 결과를 결합하는 PIP 처리필터를 추가한다. PIP 처리필터는 H.264 인코딩을 위해 인코딩 필터와 연결된다. As shown in FIG. 2B, a
즉, 입력장치의 추가와 PIP 결합 기능 추가를 위해 필터그래프를 다시 작성해야 한다. 이렇게 작성된 필터 그래프는 다시 실행(run)해야 한다. 하나의 COM객체인 필터그래프를 실행 중에 변경시킬 수는 없기 때문이다. In other words, filter graph must be rewritten to add input device and PIP coupling function. This filter graph needs to be run again. This is because a filter graph, a COM object, cannot be changed at runtime.
따라서 종래 단일한 필터그래프를 이용하여 멀티미디어를 처리하는 방법은 상기와 같이 새로운 디바이스의 추가 시 필터 그래프를 중단하고 다시 시작해야 하는 문제점이 있다. 즉, 일반적으로 다이렉트쇼(DirectShow)를 활용한 영상과 소리 데이터 처리는 다이렉트쇼(DirectShow)의 필터그래프를 동작 시키는 동안에는 새로운 입력을 받을 수 없다. 이는 실시간 방송같이 중단 없는 스트림 처리를 요하는 경우에 매우 난처한 일이 아닐 수 없다.Therefore, the conventional method of processing multimedia using a single filter graph has a problem in that the filter graph should be stopped and restarted when adding a new device as described above. That is, in general, image and sound data processing using DirectShow cannot receive new input while the DirectShow filter graph is operated. This can be very embarrassing if it requires uninterrupted stream processing such as real time broadcasting.
즉, 라이브 방송의 경우 카메라를 교체하거나 배터리를 교체하기 위해 입력장치를 중단하는 경우, 다이렉트쇼(DirectShow)의 필터그래프는 중단시켜야 하고, 중단되면 곧바로 방송도 중단되어야 한다. 이를 막기 위해서는 스위쳐(switcher)라는 고가의 영상 교체 장치를 설치할 수 있다. 즉, 카메라 같은 입력 장치를 이에 연결한 다음 다시 다이렉트쇼(DirectShow)가 실행되고 있는 컴퓨터에 이 장비를 연결하여 사용해야 한다.That is, in case of a live broadcast, when the input device is stopped to replace the camera or replace the battery, the filter graph of DirectShow should be stopped, and the broadcast should be stopped immediately. To prevent this, an expensive image changer called a switcher can be installed. In other words, you need to connect an input device such as a camera to it, and then connect the device to a computer running DirectShow.
요약하면, 다이렉트쇼(DirectShow) 상의 입출력도 필터그래프가 동작하기 전에 정의한 장치로부터 입력받거나 송출할 수 있으며 동작 중에는 새로운 입출력 장치를 추가할 수 없다. 만약 새로운 입출력 장치를 추가하려면 다이렉트쇼(DirectShow)를 중단하고 출력장치를 추가 한 후에 재구동해야 하는 문제점이 있다.In summary, I / O on DirectShow can also be input or sent from a device defined before the filter graph is running, and new I / O devices cannot be added during operation. If you want to add a new I / O device, you need to stop DirectShow and restart after adding an output device.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 멀티미디어 데이터의 스트림을 중단하지 않고도 입력장치를 추가, 삭제, 교체, 결합 등을 할 수 있고, 출력장치(또는 송출장치)도 중단없이 추가 또는 삭제가 가능한 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치를 제공하는 것이다.An object of the present invention is to solve the above problems, it is possible to add, delete, replace, combine, etc. input device without interrupting the stream of multimedia data, and also output device (or transmission device) without interruption The present invention provides a direct stream filter graph-based multimedia stream combining / distributing device that can be added or deleted.
또한, 본 발명의 목적은 입력장치 및 출력장치 별로 필터그래프를 생성하고 상기 필터그래프의 파이프 필터를 서로 결합하거나 분배하는 스트림 탱크를 구성하는 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치를 제공하는 것이다.
It is also an object of the present invention to provide a DirectShow filter graph-based multimedia stream combining distribution device for generating a filter graph for each input device and output device, and configuring a stream tank for combining or distributing pipe filters of the filter graph.
상기 목적을 달성하기 위해 본 발명은 다이렉트쇼 필터그래프를 이용하여, 적어도 하나의 입력장치로부터 데이터 스트림(이하 입력 스트림)을 입력받고 상기 입력 스트림을 결합하고 분배하여 출력장치로 출력하는 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치에 관한 것으로서, 하나의 입력 스트림에 대하여 하나의 입력 필터그래프를 생성하되, 상기 입력 필터그래프를 상기 입력 스트림을 입력장치로부터 입력받는 필터(이하 입력 디바이스 필터) 및 상기 입력 스트림을 내보내는 필터(이하 입력 파이프 필터)로 구성하는 입력그래프 생성부; 하나 이상의 입력 파이프 필터의 입력 스트림을 수신하고 수신한 입력 스트림을 선택하여 출력 스트림으로 출력하는 스트림 탱크를 생성하는 스트림탱크 처리부; 및, 하나의 출력장치에 대하여 하나의 출력 필터그래프를 생성하되, 상기 출력 필터그래프를 상기 스트림 탱크의 출력 스트림을 입력받는 필터(이하 출력 파이프 필터) 및 상기 출력장치로 내보내는 필터(이하 출력장치 필터)로 구성하는 출력그래프 생성부를 포함하는 것을 특징으로 한다.In order to achieve the above object, the present invention uses a directshow filter graph to receive a data stream (hereinafter, referred to as an input stream) from at least one input device, combines and distributes the input stream, and outputs the output to the output device. An apparatus for combining and distributing a multimedia stream, the apparatus comprising: generating one input filter graph for one input stream, wherein the input filter graph receives the input stream from an input device (hereinafter referred to as an input device filter) and the input stream; An input graph generation unit configured to output a filter (hereinafter referred to as an input pipe filter); A stream tank processing unit configured to receive an input stream of at least one input pipe filter and to generate a stream tank for selecting and outputting the received input stream as an output stream; And one output filter graph for one output device, wherein the output filter graph is a filter for receiving an output stream of the stream tank (hereinafter, referred to as an output pipe filter) and a filter for outputting to the output device (hereinafter, referred to as an output device filter). It characterized in that it comprises an output graph generating unit consisting of).
또, 본 발명은 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치에 있어서, 상기 스트림탱크는 하나 이상의 출력 스트림을 출력하는 것을 특징으로 한다.In addition, the present invention is a direct-show filter graph-based multimedia stream combined distribution device, the stream tank is characterized in that for outputting one or more output streams.
또, 본 발명은 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치에 있어서, 상기 스트림탱크는 적어도 2개의 입력 스트림을 결합하고, 결합한 스트림을 하나의 출력 스트림으로 출력할 수 있는 것을 특징으로 한다. In another aspect, the present invention provides a directshow filter graph-based multimedia stream combining distribution apparatus, wherein the stream tank combines at least two input streams and outputs the combined stream as one output stream.
또, 본 발명은 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치에 있어서, 상기 스트림 탱크는 입력 스트림의 연결 요청에 의하여 입력 파이프 필터와 추가 연결하여 입력 스트림을 수신하는 것을 특징으로 한다.In another aspect, the present invention, in the DirectShow filter graph-based multimedia stream combined distribution device, the stream tank is further connected to the input pipe filter in response to the connection request of the input stream to receive the input stream.
또, 본 발명은 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치에 있어서, 상기 스트림 탱크는 출력 스트림의 출력 요청에 의하여 출력 스트림을 추가 생성하는 것을 특징으로 한다.In addition, the present invention is a direct-show filter graph-based multimedia stream combined distribution device, characterized in that the stream tank further generates an output stream in response to the output request of the output stream.
또, 본 발명은 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치에 있어서, 상기 스트림탱크 처리부는 입력장치의 종류에 따라 스트림 탱크를 따로 생성하는 것을 특징으로 한다.In another aspect, the present invention, in the direct-show filter graph-based multimedia stream combined distribution device, the stream tank processing unit generates a stream tank separately according to the type of input device.
또, 본 발명은 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치에 있어서, 상기 출력 필터그래프는 입력장치로부터 직접 입력받는 입력 디바이스 필터를 구성할 수 있는 것을 특징으로 한다.In addition, the present invention is a direct show filter graph-based multimedia stream combined distribution device, the output filter graph is characterized in that it can configure an input device filter directly input from the input device.
또, 본 발명은 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치에 있어서, 상기 출력 필터그래프는 서로 다른 스트림 탱크와 동시에 출력 파이프 필터를 각각 연결할 수 있는 것을 특징으로 한다.In addition, the present invention is a direct-show filter graph-based multimedia stream combined distribution device, the output filter graph is characterized in that it is possible to connect the output pipe filter with the different stream tanks, respectively.
또, 본 발명은 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치에 있어서, 상기 출력 필터그래프는 서로 다른 종류의 스트림 탱크와 동시에 출력 파이프 필터를 각각 연결할 수 있는 것을 특징으로 한다.
In addition, the present invention is a direct-show filter graph-based multimedia stream combined distribution device, the output filter graph is characterized in that it is possible to connect the output pipe filter with the stream tank of different types, respectively.
상술한 바와 같이, 본 발명에 따른 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치에 의하면, 멀티미디어 데이터의 스트림을 중단하지 않고도 입력장치를 추가, 삭제, 교체, 결합 등을 할 수 있고, 출력장치(또는 송출장치)도 중단없이 추가 또는 삭제를 할 수 있는 효과가 얻어진다.As described above, according to the DirectShow filter graph-based multimedia stream combining distribution apparatus according to the present invention, an input apparatus can be added, deleted, replaced, combined, and the like without interrupting the stream of multimedia data, and the output apparatus (or Dispensing device) can also be added or deleted without interruption.
도 1은 일반적인 다이렉트쇼 필터의 구성과 멀티미디어 스트림의 전송로직을 개략적으로 나타낸 도면이다.
도 2는 일반적인 다이렉트쇼 필터의 구성에 의한 필터그래프를 예시한 도면이다.
도 3은 본 발명을 실시하기 위한 전체 시스템 구성의 일례를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치의 구성에 대한 블록도이다.
도 5는 본 발명의 일실시예에 따른 컴포넌트 객체들 사이의 구조를 도시한 것이다.
도 6은 본 발명에 따른 입출력 필터그래프의 일례를 도시한 것이다.
도 7은 본 발명에 따른 각 컴포넌트 객체의 작업 수행을 설명하는 흐름도이다.
도 8은 본 발명에 따라 필터그래프들의 구조가 변경되는 과정을 도시한 것이다.
도 9와 도 10은 본 발명의 일실시예에 따라 구현된 일례의 화면 및 필터그래프 구조를 도시한 것이다.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 단말기 21 : 입력장치
30 : 스트림 결합분배 장치 31 : 입력그래프 생성부
32 : 스트림탱크 처리부 33 : 출력그래프 생성부
51 : 입력필터 그래프 52 : 스트림탱크
53 : 출력필터 그래프
60 : 필터그래프 매니저 61 : 소스필터
62 : 변환필터 63 : 렌더필터1 is a diagram schematically illustrating a configuration of a general direct show filter and a transmission logic of a multimedia stream.
2 is a diagram illustrating a filter graph by the configuration of a general direct show filter.
3 is a diagram showing an example of the overall system configuration for implementing the present invention.
4 is a block diagram of a configuration of a directshow filter graph-based multimedia stream combining distribution apparatus according to an embodiment of the present invention.
5 illustrates a structure between component objects according to an embodiment of the present invention.
6 illustrates an example of an input / output filter graph according to the present invention.
7 is a flowchart illustrating the performance of each component object according to the present invention.
8 shows a process of changing the structure of the filter graph in accordance with the present invention.
9 and 10 illustrate exemplary screen and filter graph structures implemented according to an embodiment of the present invention.
Explanation of symbols on the main parts of the drawings
10: terminal 21: input device
30: stream combining distribution device 31: input graph generation unit
32: stream tank processing unit 33: output graph generation unit
51: input filter graph 52: stream tank
53: output filter graph
60: Filter Graph Manager 61: Source Filter
62: conversion filter 63: render filter
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the drawings.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
In addition, in describing this invention, the same code | symbol is attached | subjected and the repeated description is abbreviate | omitted.
먼저, 본 발명을 실시하기 위한 전체 시스템 구성의 일례를 도 3을 참조하여 설명한다.First, an example of the whole system configuration for implementing this invention is demonstrated with reference to FIG.
도 3a에서 도시한 바와 같이, 본 발명을 실시하기 위한 전체 시스템은 단말기(10), 입력장치(21), 및, 단말기에 설치된 멀티미디어 스트림 결합분배 장치(30)로 구성된다.As shown in FIG. 3A, the entire system for implementing the present invention includes a terminal 10, an
단말기(10)는 PC, 노트북, PDA, 태블릿PC, 스마트폰 등 컴퓨팅 기능을 가진 단말기로서, 멀티미디어 데이터를 저장하거나 입력 또는 수신한다. 즉, 멀티미디어 데이터는 하드디스크 등의 저장매체에 저장되거나, 카메라 또는 마이크 등 외부 입력장치(21)를 통해 실시간으로 입력될 수도 있다. 또한, 네트워크를 통해 멀티미디어 데이터를 스트리밍으로 수신할 수도 있다.The terminal 10 is a terminal having a computing function such as a PC, a notebook computer, a PDA, a tablet PC, a smartphone, and stores, inputs or receives multimedia data. That is, the multimedia data may be stored in a storage medium such as a hard disk or may be input in real time through an
또한 단말기(10)는 멀티미디어 데이터를 출력하는 출력장치를 구비하거나 연동될 수 있다. 출력장치는 파일저장, 모니터, 네트워크로의 스트리밍 전송 등 데이터를 출력하는 하드웨어 또는 소프트웨어 장치들을 말한다.In addition, the terminal 10 may be provided with or interlocked with an output device for outputting multimedia data. Output devices are hardware or software devices that output data, such as file storage, monitor, and streaming to a network.
멀티미디어 스트림 결합분배 장치(30)는 단말기(10)에 설치되는 프로그램 장치로서, 단말기(10)에 저장된 멀티미디어 데이터 또는 입력장치(21)로부터 입력받는 멀티미디어 데이터 등을 실시간으로 입력받아, 그 데이터(또는 스트림, 스트리밍)를 결합하거나 특정 출력장치로 분배하거나 출력한다.The multimedia stream combined
한편, 단말기(10)에는 다이렉트쇼(DirectShow) 어플리케이션이 설치되어, 멀티미디어 스트림 결합분배 장치(30)는 다이렉트쇼 어플리케이션을 이용하여 필터그래프 등을 생성하고 제어한다. 앞서 배경기술에서 설명한 바와 같이, 다이렉트쇼는 다이렉트쇼에서 가장 핵심적인 객체인 필터라는 모듈러 컴포넌트(modular component)를 사용하여 멀티미디어 스트림을 어떠한 식으로 제어하고 처리할 것인지를 정의하는 멀티미디어 프레임워크이자 API(Application Programming Interface)이다.On the other hand, a direct show (DirectShow) application is installed in the terminal 10, the multimedia stream
또한, 도 3b에서 보는 바와 같이, 다른 실시예로서, 멀티미디어 스트림 결합분배 장치(30)는 네트워크 상의 하나의 서버로서 구현될 수도 있다.In addition, as shown in Figure 3b, as another embodiment, the multimedia stream combined
멀티미디어 스트림 결합분배 장치(30)는 통상의 서버로서, 네트워크(13)에 연결되어, 사용자 단말(10)로부터 수신한 멀티미디어 스트림을 결합분배(선택, 결합, 처리, 분배)하여 다른 사용자 단말(10a)로 전송시켜줄 수 있다. 따라서 상기와 같은 구성을 통해, 멀티미디어 방송 등을 구현할 수도 있다.
The multimedia stream combined
다음으로, 본 발명의 일실시예에 따른 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치(또는 스트림 결합분배 장치)(30)의 구성을 도 4를 참조하여 설명한다.Next, a configuration of the directshow filter graph-based multimedia stream combining distribution device (or stream combining distribution device) 30 according to an embodiment of the present invention will be described with reference to FIG. 4.
스트림 결합분배 장치(30)는 다이렉트쇼 필터그래프를 이용하여, 적어도 하나의 입력장치로부터 데이터 스트림(이하 입력 스트림)을 입력받고 상기 입력 스트림을 결합하고 분배하여 출력장치로 출력한다.The stream combining and distributing
도 4에서 보는 바와 같이, 스트림 결합분배 장치(30)는 입력그래프 생성부(31), 스트림탱크 처리부(32), 및, 출력그래프 생성부(33)로 구성된다. 그리고 입력그래프 생성부(31)는 입력 필터그래프(51)를, 스트림탱크 처리부(32)는 스트림 탱크(52)를, 출력그래프 생성부(33)는 출력 필터그래프(53)를 각각 생성한다.As shown in FIG. 4, the stream combining
또한, 도 5에서 보는 바와 같이, 입력 필터그래프(51) 및 출력 필터그래프(53)는 다이렉트쇼(또는 다이렉트쇼의 필터그래프 매니저)를 통해, 입력 필터그래프(51) 또는 출력 필터그래프(53)를 생성한다. 즉, 입력 필터그래프(51) 및 출력 필터그래프(53)는 다이렉트쇼의 필터그래프로서 COM(Component Object Model) 객체로서 생성된다.5, the
필터그래프 매니저(60)는 필터그래프를 생성하고, 생성된 필터그래프를 하나의 COM 객체로서 실행시킨다. 또한, 필터그래프 매니저(60)는 소스 필터(61), 변환 필터(62) 및 렌더 필터(63)를 구비하여 그 필터들의 동작을 제어하는 역할을 한다. 즉, 필터그래프는 상기와 같은 종류의 필터들로 구성되고, 필터그래프가 실행되면 필터그래프의 각 구성요소인 필터들을 소스 필터(61), 변환 필터(62) 및 렌더 필터(63) 등이 처리해준다.The
한편, 스트림탱크 처리부(32)는 다이렉트쇼의 필터그래프 매니저를 이용하지 않고, COM(Component Object Model) 객체인 스트림탱크(52)를 직접 생성한다.On the other hand, the stream
따라서 입력 필터그래프(51), 스트림탱크(52), 및, 출력 필터그래프(53)는 각각 하나의 COM객체로서, 독립적으로 실행한다.Therefore, the
특히, 도 5와 같이, 입력 필터그래프(51)는 입력장치로부터 멀티미디어 데이터(또는 스트리밍, 스트림)를 수신하여(또는 입력받아) 처리하여 출력하면, 그 입력 필터그래프(51)의 출력을 스트림탱크(52)가 수신한다. 그리고 스트림탱크(52)도 그 멀티미디어 데이터(또는 스트림)를 분배(또는 선택) 또는 결합하여 출력하고, 그 출력을 출력 필터그래프(53)에서 입력받아 처리하고 최종적으로 출력장치로 출력한다.In particular, as shown in FIG. 5, when the
입력 필터그래프(51)와 스트림탱크(52) 사이의 데이터 전송이나, 스트림탱크(52)와 출력 필터그래프(53) 사이의 데이터 전송은 COM 객체 사이의 데이터 전송방식에 의한다. 따라서 각 필터그래프(51,53)와 스트림탱크(52) 간에 서로 상대의 오브젝트 주소를 주고 받아서 저장하고 있다가, 필요한 경우에 상대 오브젝트의 멤버 함수를 호출해서 데이터를 메모리 채로 전달한다. 즉, 기본적으로 같은 프로세스에서 동작하기 때문에 데이터를 주고받는 방식은 메모리를 직접 전달하는 방식이다.
The data transmission between the
다음으로, 본 발명의 일실시예에 따른 입출력 필터그래프 및 스트림탱크에 대하여 도 6 및 도 7을 참조하여 보다 구체적으로 설명한다.Next, the input and output filter graph and the stream tank according to an embodiment of the present invention will be described in more detail with reference to FIGS. 6 and 7.
하나의 입력 필터그래프(51)는 입력그래프 생성부(31)에 의해, 하나의 입력 스트림에 대하여 생성된다. 입력 필터그래프(51)는 상기 입력 스트림을 입력장치로부터 입력받는 필터(이하 입력 디바이스 필터) 및 상기 입력 스트림을 내보내는 필터(이하 입력 파이프 필터)로 구성된다.One
도 6a에서 보는 바와 같이, 입력 필터그래프(51)는 입력 디바이스 필터와 입력 파이프 필터로 구성된다. 이때, 인코딩 필터 등 중간처리 필터(또는 변환필터)들이 입력 디바이스 필터와 입력 파이프 필터 사이에 삽입될 수 있다.As shown in FIG. 6A, the
입력 디바이스 필터는 다이렉트쇼의 필터 중 소스필터(61)로 구현될 수 있고, H.264 인코딩 필터 등 중간처리 필터들은 변환필터(62)로 구현된다. 입력 파이프 필터는 입력장치로부터 수신하여 처리된 스트림 데이터(또는 멀티미디어 데이터)를 스트림탱크(stream tank)(53)로 전달하는 역할을 하는 필터이다. 입력 파이프 필터는 다이렉트쇼 필터(DirectShow filter) 중 렌더 필터(renderer filter)의 일종으로 구현된다.The input device filter may be implemented as the
입력 파이프 필터는 다이렉트쇼가 다루는 모든 스트림 데이터의 데이터 형태(예를 들어, 영상, 소리, 자막 등)를 다룰 수 있다. 그러나 입력 파이프 필터와 연결할 스트림탱크(52)가 정의하는 데이터 형태에 제약을 받는다.The input pipe filter can handle data types (eg, video, sound, subtitles, etc.) of all stream data handled by DirectShow. However, it is limited by the data type defined by the
한편, 입력 필터그래프(51)에 의해 동작되는 과정은 도 7a에서 보는 바와 같다. 즉, 필터그래프가 생성되고 입력 디바이스 필터와 입력 파이프 필터 등이 생성되고 실행된다. 그리고 이벤트에 의해 스트림탱크와의 연결 요청 등을 수신하여, 그에 따라 스트림탱크를 생성하거나, 스트림탱크와 연결하여 데이터를 전송한다.
Meanwhile, a process operated by the
하나의 출력 필터그래프(53)는 출력그래프 생성부(33)에 의해, 하나의 출력장치에 대하여 생성된다. 출력 필터그래프(53)는 스트림 탱크(52)의 출력 스트림을 입력받는 필터(이하 출력 파이프 필터) 및 출력장치로 내보내는 필터(이하 출력장치 필터)로 구성된다.One
도 6b에서 보는 바와 같이, 출력 필터그래프(53)는 출력 파이프 필터와 출력장치 필터로 구성된다. 이때, 인코딩 필터 등은 스트림 데이터를 중간에 처리하기 위한 중간처리 필터들이 출력 파이프 필터와 출력장치 필터 사이에 삽입될 수 있다.As shown in FIG. 6B, the
출력 파이프 필터는 스트림탱크(53)로부터 스트림 데이터를 전달받아 출력 장치(또는 출력장치 필터) 혹은 스트림 데이터 처리 필터(또는 중간처리 필터)로 전달하는 역할을 하는 필터이다. 그리고 출력 파이프 필터는 다이렉트쇼 필터(DirectShow filter) 중 소스 필터(source filter)의 일종으로 구현된다.The output pipe filter is a filter that receives stream data from the
출력 파이프 필터는 다이렉트쇼가 다루는 모든 스트림 데이터의 데이터 형태(예를 들어, 영상, 소리, 자막 등)를 다룰 수 있다. 그러나 출력 파이프 필터와 연결할 스트림탱크(52)가 정의하는 데이터 형태에 제약을 받는다.The output pipe filter can handle data types (eg, video, sound, subtitles, etc.) of all stream data handled by DirectShow. However, it is limited by the data type defined by the
한편, 출력 필터그래프(53)는 입력 디바이스 필터를 구성요소로 포함하여, 입력장치로부터 스트림 데이터(멀티미디어 데이터)를 직접 받을 수도 있다. 또한, 중간처리 필터로서, 스트림 데이터를 변환하는 변환필터나, 2개의 필터 출력을 결합하는 먹스필터(muxer) 등도 포함할 수 있다.The
출력 필터그래프(53)는 서로 다른 스트림 탱크와 동시에 출력 파이프 필터를 각각 연결할 수 있다. 예를 들어, 제1 스트림 탱크로부터 제1 영상을, 제2 스트림 탱크로부터 제2 영상을 동시에 수신할 수 있다.The
또한, 출력 필터그래프(53)는 서로 다른 종류의 스트림 탱크와 동시에 출력 파이프 필터를 각각 연결할 수 있다. 예를 들어, 제1 스트림 탱크로부터 제1 영상을, 제2 스트림 탱크로부터 제1 오디오를 동시에 수신할 수 있다.In addition, the
한편, 출력 필터그래프(53)에 의해 동작되는 과정은 도 7b에서 보는 바와 같다. 즉, 필터그래프가 생성되고 출력장치 필터와 출력 파이프 필터 등이 생성되고 실행된다. 그리고 이벤트에 의해 스트림탱크와의 연결 요청 등을 수신하여, 그에 따라 스트림탱크를 생성하거나, 스트림탱크와 연결하여 데이터를 수신한다.
Meanwhile, a process operated by the
또한, 스트림 탱크(52)는 스트림탱크 처리부(32)에 의해 생성되며, 하나 이상의 입력 파이프 필터의 입력 스트림을 수신하고 수신한 입력 스트림을 선택하여 출력 스트림으로 출력한다.In addition, the
한편, 스트림탱크 처리부(32)는 입력장치의 종류에 따라 스트림 탱크(52)를 따로 생성한다. 즉, 예를 들어, 입력장치는 영상, 오디오, 자막 등의 종류(스트림 데이터의 종류)로 구분된다. 스트림탱크(52)는 입력장치(또는 스트림 데이터) 별로 데이터를 따로 생성되어 실행된다. 즉, 영상 전용 스트림탱크, 오디오 전용 스트림탱크 등으로 따로 생성된다.Meanwhile, the
스트림탱크(52)는 입력 스트림을 조합하고자 하는 COM 객체, 즉, 컴포넌트 오브젝트이다. 이 오브젝트(52)는 하나 이상의 필터 그래프(또는 입력 필터그래프)(51)에서 전달되어 오는 스트림 데이터(또는 입력 스트림)들을 선택/조합하여 새로운 스트림을 생성한다. 그리고 스트림탱크(52)는 그 새로운 스트림(또는 출력 스트림)을 출력을 담당하는 필터그래프(출력 필터그래프)(53)로 전달하는 역할을 한다.The
스트림탱크(52)는 마치 여러 가지 물질들을 한곳에 섞고 저장하는 탱크와 같다는 의미에서 붙인 명칭이다. 스트림탱크(52)는 필터 그래프 상에 존재하지 않고 별도로 존재한다. 즉, 스트림탱크(52)는 다이렉트쇼 필터(DirectShow filter)가 아닌 오브젝트(또는 COM객체)이다. 스트림탱크(52)가 다룰 수 있는 스트림 데이터는 다이렉트쇼(DirectShow)가 다루는 모든 스트림 데이터(stream data) 형태(예를 들어 영상, 소리, 자막 등)를 포함한다.The
스트림탱크(52)는 하나 이상의 출력 스트림을 출력한다. 스트림탱크(52)는 다수의 출력 스트림을 출력할 수 있고, 각 출력 스트림을 서로 다른 출력 필터그래프(53)에게 전달할 수 있다.
또한, 스트림탱크(52)는 동적으로 입력 스트림을 추가 또는 해제할 수 있다. 즉, 스트림탱크(52)는 입력 스트림의 연결 요청에 의하여 입력 파이프 필터와 추가 연결하여 입력 스트림을 수신한다. 즉, 스트림탱크(52)는 중단하지 않은 채, 지속적으로 이벤트를 살피다가 연결 요청(또는 연결 요청 이벤트)이 발생하면 요청한 입력 파이프 필터와 연결한다. 그로인해, 새로 연결한 입력 파이프 필터를 통해서도 스트림 데이터를 수신한다.In addition, the
즉, 각 입출력 필터그래프의 파이프 필터들은 하나의 스트림 탱크(52)와만 관계(연결)를 갖지만 하나의 스트림 탱크(52)는 여러 개의 파이프 필터들과 연결될 수 있다. 이때, 스트림 탱크(52)는 리스트나 배열 등을 통해 연결된 파이프 필터들의 목록을 관리하며, 만약 새롭게 파이프 필터가 추가되거나 삭제되면 이 목록에서 추가/삭제되게 된다.That is, the pipe filters of each input / output filter graph have a relationship (connection) with only one
반대로, 스트림 탱크(52)는 출력 스트림의 출력 요청에 의하여 출력 스트림을 추가 생성한다. 즉, 스트림 탱크(52)는 다수의 출력 스트림을 동시에 출력할 수 있다. 이때, 출력요청에 따라 추가 출력하거나, 스트림 데이터의 출력을 해제한다.In contrast, the
한편, 앞서 설명한 바와 같이, 파이프 필터와 스트림탱크 사이에는 물리적 연결이 아니라 소프트웨어적으로 오브젝트 주소를 주고 받는다. 그리고 필요한 경우에 데이터 처리 멤버 함수를 호출한다.On the other hand, as described above, the object address is transmitted and received between the pipe filter and the stream tank in software rather than a physical connection. Then call the data processing member function if necessary.
스트림 탱크(52)는 이전에 받았던 데이터 보관을 그 데이터의 처리에 따라 다르게 관리된다. 예를 들어 사운드 믹싱(mixing)을 담당하는 스트림 탱크를 생성하는 경우를 설명한다. 입력 파이프 필터로부터 사운드 데이터가 도착하면, 스트림 탱크는 메모리 상의 사운드 데이터에 도착한 데이터를 믹싱(mixing)한 후에 곧바로 수신한 그 데이터를 메모리 상에서 해제한다. 그러나 PIP(Picture-in-Picture)로 화상을 믹싱(mixing)하는 스트림 탱크라면 PIP 믹싱(mixing)이 일어나는 시점까지는 수신한 데이터를 보관해야 한다.The
또한, 입력 파이프 필터가 스트림 탱크(52)로 데이터를 전달한 경우, 스트림 탱크(52)가 곧바로 출력 파이프 필터들에게 전달할 지는 담당하는 역할에 따라 다르다. 스트림 탱크마다 이를 달리 규정할 수 있다.In addition, when the input pipe filter delivers data to the
한편, 스트림 탱크(52)에 의해 동작되는 구체적 과정은 도 7c에서 보는 바와 같다. 즉, 스트림탱크가 생성되고 실행된다. 그리고 이벤트에 의해 파이프 필터와의 연결 또는 해제 요청 등을 수신하여, 그에 따라 파이프 필터와 연결하여 데이터를 송수신하거나, 파이프 필터를 해제한다.
Meanwhile, a specific process operated by the
다음으로, 본 발명의 일실시예에 따라 입출력 장치(또는 디바이스)의 변동에 의해 객체의 변화 과정을 도 8을 참조하여 설명한다.Next, a process of changing an object due to a change in an input / output device (or a device) according to an embodiment of the present invention will be described with reference to FIG. 8.
도 8a에서 보는 바와 같이, 처음에, 최소한 두 개의 필터그래프가 존재한다. 하나는 디바이스(또는 입력장치)로부터 오는 데이터를 스트림 탱크에 보내주는 입력 필터그래프와, 스트림 탱크로부터 출력 결과를 받아 처리할 출력 필터그래프이다. 필터 그래프가 실행전이나 후에 입력 파이프 필터 1(스트림 입력 pipe filter1)과 출력 파이프 필터 1(스트림 출력 pipe filter 1)은 각각 약속된 스트림탱크와 연결을 한다. As shown in FIG. 8A, at least two filter graphs exist. One is an input filter graph that sends data from a device (or an input device) to a stream tank, and an output filter graph to receive and process output results from the stream tank. Input pipe filter 1 (stream input pipe filter1) and output pipe filter 1 (stream output pipe filter 1) connect to the promised stream tank, respectively, before or after the filter graph is run.
각각의 필터그래프가 실행(run)되면 카메라1 소스필터(source filter)로부터 수신된 화상 데이터는 스트림 입력 pipe filter1을 걸쳐 스트림탱크에 전달된다. 스트림 탱크는 PIP처리 루틴을 통해 이 데이터를 가공한 후에 (입력이 하나이므로 통상적으로 별 다른 가공 없는) 스트림 출력 pipe filter 1에 보내지고, 그 이후에는 일반적인 방식과 같은 절차를 밟아 mp4 파일에 저장된다.When each filter graph is executed, the image data received from the
다음으로, 카메라2로부터 데이터를 받는 경우를 설명한다. 이를 위해서는 도 8b와 같은 새로운 필터 그래프가 필요하다. 즉, 도 8b의 입력 필터그래프는 카메라 2로부터 영상 스트림을 받아 입력 파이프 필터로 출력되는 필터그래프이다. Next, a case of receiving data from the
도 8b의 입력 필터그래프의 스트림 입력 pipe filter2가 스트림탱크에 연결하고 실행(run)하면 도 8c와 같은 구조가 된다. 이런 방식으로 카메라2의 데이터가 스트림탱크로 도착하면 사전에 정의된 PIP처리 루틴에 의해 카메라1과 화상이 결합되어 스트림출력 pipe filter 1에 도착하게 되고, mp4파일을 중단없이 저장할 수 있다.When the stream input pipe filter2 of the input filter graph of FIG. 8B is connected to the stream tank and run, the structure becomes as shown in FIG. 8C. In this way, when the data of the
만약 카메라2를 PIP로부터 해제하려면 스트림입력 pipe filter2의 스트림 탱크과의 연결을 해제하고 도 8c에 있는 도 8b의 필터그래프를 중단(stop)하면 된다. 이 과정에서도 카메라1에서부터 나오는 데이터가 최종 mp4파일까지 만드는 과정은 중단없이 진행할 수 있다.If the
도 8c에서 저장하고 있는 파일의 모습을 화면으로 출력하고 싶다면 도 8d와 같이 새로운 출력 필터그래프를 만들어 스트림탱크의 출력 부분에 추가하면 된다.If you want to output the appearance of the file stored in Figure 8c to the screen to create a new output filter graph as shown in Figure 8d and add to the output portion of the stream tank.
도 8e는 도 8d의 출력 필터그래프가 추가된 구조를 도시한 것이다. 이 경우도 mp4파일을 만드는 필터 그래프는 중단없이 진행할 수 있다.8E illustrates a structure in which the output filter graph of FIG. 8D is added. In this case too, the filter graph that creates the mp4 file can proceed without interruption.
위의 경우들은 오디오의 소스 필터들은 추가/삭제가 없는 경우인데 만약 오디오까지 스트림 탱크를 이용해 중단 없는 오디오 소스 필터들의 추가/삭제를 원한다면 도 8f와 같은 구조로 필터그래프들을 추가하면 된다.In the above cases, the source filters of the audio are not added / deleted. If you want to add / remove the audio source filters without interruption using the stream tank up to the audio, the filter graphs may be added as shown in FIG. 8F.
도 8f는 카메라1과 카메라2로 들어오는 화상 데이터를 스트림탱크 1을 통해 결합 한 후에 화면으로 출력하고, H.264로 인코딩한다. 또한, 동시에, 오디오1과 오디오2로 들어오는 사운드 데이터를 스트림탱크 2에서 '오디오 처리 루틴'에 의해 가공한 후에 스피커에 출력한다. 또한, AAC로 인코딩 한 후에 앞서의 H.264영상 데이터와 결합해 하나의 mp4파일로 저장한다.
FIG. 8F combines the image data coming into the
다음으로, 본 발명에 따라 구현된 일례를 도 9와 도 10을 참조하여 설명한다. 도 9와 도 10은 카메라로 오는 화상을 화면에 출력하다가 컴퓨터 화면을 캡쳐 잡은 화상을 PIP로 결합하는 구현 예를 도시한 것이다.Next, an example implemented according to the present invention will be described with reference to FIGS. 9 and 10. 9 and 10 illustrate an embodiment in which an image coming from a camera is output on a screen, and the image captured by the computer screen is combined into a PIP.
도 9a는 카메라의 화상 데이터를 그대로 화면에 출력하는 장면이며, 도 10a는 이의 필터그래프들의 구조이다.FIG. 9A is a scene in which image data of a camera is output on a screen as it is, and FIG. 10A is a structure of filter graphs thereof.
도 9b는 카메라의 화상과 데스크탑의 화상을 PIP로 결합한 후에 화면에 출력하는 장면이고, 10b는 이의 필터그래프들의 구조이다.
FIG. 9B is a scene outputting on a screen after combining a picture of a camera and a picture of a desktop with a PIP, and 10b is a structure of its filter graphs.
이상, 본 발명자에 의해서 이루어진 발명을 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.As mentioned above, although the invention made by this inventor was demonstrated concretely according to the Example, this invention is not limited to an Example and can be variously changed in the range which does not deviate from the summary.
본 발명은 다이렉트쇼 필터그래프를 이용하여, 적어도 하나의 입력장치로부터 데이터 스트림을 입력받고 입력 스트림을 결합 또는 분배하여 출력장치로 출력하는 멀티미디어 스트림 결합분배 장치를 개발하는 데 적용이 가능하다.
The present invention is applicable to the development of a multimedia stream combination distribution device that receives a data stream from at least one input device, combines or distributes the input streams, and outputs the output stream to the output device using a direct show filter graph.
Claims (9)
하나의 입력장치로부터 입력받는 데이터 스트림(이하 입력 스트림)에 대하여 하나의 입력 필터그래프를 생성하되, 상기 입력 필터그래프를 상기 입력 스트림을 입력장치로부터 입력받는 필터(이하 입력 디바이스 필터) 및 상기 입력 스트림을 내보내는 필터(이하 입력 파이프 필터)로 구성하는 입력그래프 생성부;
하나 이상의 입력 파이프 필터의 입력 스트림을 수신하고 수신한 입력 스트림을 선택하여 출력 스트림으로 출력하는 스트림 탱크를 생성하는 스트림탱크 처리부; 및,
하나의 출력장치에 대하여 하나의 출력 필터그래프를 생성하되, 상기 출력 필터그래프를 상기 스트림 탱크의 출력 스트림을 입력받는 필터(이하 출력 파이프 필터) 및 상기 출력장치로 내보내는 필터(이하 출력장치 필터)로 구성하는 출력그래프 생성부를 포함하는 것을 특징으로 하는 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치.
In the DirectShow filter graph-based multimedia stream combined distribution device that receives a data stream from at least one input device and outputs the output stream to the output device using a directshow filter graph,
Generate one input filter graph for a data stream (hereinafter, referred to as an input stream) received from one input device, wherein the input filter graph receives the input stream from an input device (hereinafter referred to as an input device filter) and the input stream. An input graph generation unit configured to output a filter (hereinafter referred to as an input pipe filter);
A stream tank processing unit configured to receive an input stream of at least one input pipe filter and to generate a stream tank for selecting and outputting the received input stream as an output stream; And,
One output filter graph is generated for one output device, and the output filter graph is a filter for receiving an output stream of the stream tank (hereinafter referred to as an output pipe filter) and a filter for outputting to the output device (hereinafter referred to as an output device filter). Direct show filter graph-based multimedia stream combined distribution device comprising an output graph generator for configuring.
상기 스트림탱크는 하나 이상의 출력 스트림을 출력하는 것을 특징으로 하는 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치.
The method of claim 1,
And the stream tank outputs one or more output streams.
상기 스트림탱크는 적어도 2개의 입력 스트림을 수신하는 경우 상기 입력 스트림들을 결합하고, 결합한 스트림을 하나의 출력 스트림으로 출력할 수 있는 것을 특징으로 하는 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치.
The method of claim 1,
And the stream tank combines the input streams when receiving at least two input streams and outputs the combined streams as one output stream.
상기 스트림 탱크는 입력 스트림의 연결 요청에 의하여 입력 파이프 필터와 추가 연결하여 입력 스트림을 수신하는 것을 특징으로 하는 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치.
The method of claim 1,
The stream tank is connected directly to the input pipe filter according to the connection request of the input stream receiving direct stream filter graph, characterized in that the combined stream distribution device.
상기 스트림 탱크는 출력 스트림의 출력 요청에 의하여 출력 스트림을 추가 생성하는 것을 특징으로 하는 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치.
The method of claim 1,
And the stream tank further generates an output stream based on an output request of the output stream.
상기 스트림탱크 처리부는 입력장치의 종류에 따라 스트림 탱크를 따로 생성하는 것을 특징으로 하는 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치.
The method of claim 1,
The stream tank processor is a direct-show filter graph-based multimedia stream combined distribution device, characterized in that for generating a separate stream tank according to the type of input device.
상기 출력 필터그래프는 입력장치로부터 직접 입력받는 입력 디바이스 필터를 구성할 수 있는 것을 특징으로 하는 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치.
The method of claim 1,
And the output filter graph may configure an input device filter which is directly input from an input device.
상기 출력 필터그래프는 서로 다른 스트림 탱크와 동시에 출력 파이프 필터를 각각 연결할 수 있는 것을 특징으로 하는 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치.
The method of claim 1,
The output filter graph is a direct-show filter graph-based multimedia stream combined distribution device, characterized in that the output pipe filter can be connected to the different stream tanks at the same time.
상기 출력 필터그래프는 서로 다른 종류의 스트림 탱크와 동시에 출력 파이프 필터를 각각 연결할 수 있는 것을 특징으로 하는 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치.
The method of claim 8,
The output filter graph is a direct-show filter graph-based multimedia stream combined distribution device, characterized in that the output pipe filter can be connected to different types of stream tanks at the same time.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110021498A KR101051182B1 (en) | 2011-03-10 | 2011-03-10 | A combining and dividing device for multimedia streams based on directshow filter graph |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110021498A KR101051182B1 (en) | 2011-03-10 | 2011-03-10 | A combining and dividing device for multimedia streams based on directshow filter graph |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101051182B1 true KR101051182B1 (en) | 2011-07-22 |
Family
ID=44923968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110021498A KR101051182B1 (en) | 2011-03-10 | 2011-03-10 | A combining and dividing device for multimedia streams based on directshow filter graph |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101051182B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710983A (en) * | 2012-04-16 | 2012-10-03 | 杭州米加科技有限公司 | Method for extracting audio and video data from multimedia |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004312313A (en) * | 2003-04-04 | 2004-11-04 | Sony Corp | Data-processing apparatus, data processing system, data processing method, and program |
KR20050001407A (en) * | 2003-06-25 | 2005-01-06 | 마이크로소프트 코포레이션 | Media foundation media processor |
JP2010039860A (en) * | 2008-08-06 | 2010-02-18 | Toshiba Corp | Component program controller, method for controlling component program, and program |
KR20100035690A (en) * | 2007-06-30 | 2010-04-06 | 마이크로소프트 코포레이션 | Interfaces for digital media processing |
-
2011
- 2011-03-10 KR KR1020110021498A patent/KR101051182B1/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004312313A (en) * | 2003-04-04 | 2004-11-04 | Sony Corp | Data-processing apparatus, data processing system, data processing method, and program |
KR20050001407A (en) * | 2003-06-25 | 2005-01-06 | 마이크로소프트 코포레이션 | Media foundation media processor |
KR20100035690A (en) * | 2007-06-30 | 2010-04-06 | 마이크로소프트 코포레이션 | Interfaces for digital media processing |
JP2010039860A (en) * | 2008-08-06 | 2010-02-18 | Toshiba Corp | Component program controller, method for controlling component program, and program |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710983A (en) * | 2012-04-16 | 2012-10-03 | 杭州米加科技有限公司 | Method for extracting audio and video data from multimedia |
CN102710983B (en) * | 2012-04-16 | 2015-01-07 | 杭州米加科技有限公司 | Method for extracting audio and video data from multimedia |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7669206B2 (en) | Dynamic redirection of streaming media between computing devices | |
US9621854B2 (en) | Recording a videoconference using separate video | |
US9407867B2 (en) | Distributed recording or streaming of a videoconference in multiple formats | |
JP5781441B2 (en) | Subscription for video conferencing using multi-bitrate streams | |
US8780166B2 (en) | Collaborative recording of a videoconference using a recording server | |
US7609653B2 (en) | Resolving partial media topologies | |
JP6404912B2 (en) | Live broadcasting system | |
US7900140B2 (en) | Media processing methods, systems and application program interfaces | |
US7712108B2 (en) | Media processing methods, systems and application program interfaces | |
JP2019036969A (en) | Live broadcast system | |
US7577940B2 (en) | Managing topology changes in media applications | |
KR101051182B1 (en) | A combining and dividing device for multimedia streams based on directshow filter graph | |
US20140141875A1 (en) | Temporary modification for extending functionality of computer games and software applications. | |
JP4249569B2 (en) | Demultiplexer application program interface | |
US11778011B2 (en) | Live streaming architecture with server-side stream mixing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140627 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20150817 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |