KR102064284B1 - Device, system, and method to perform real-time communication - Google Patents
Device, system, and method to perform real-time communication Download PDFInfo
- Publication number
- KR102064284B1 KR102064284B1 KR1020170134168A KR20170134168A KR102064284B1 KR 102064284 B1 KR102064284 B1 KR 102064284B1 KR 1020170134168 A KR1020170134168 A KR 1020170134168A KR 20170134168 A KR20170134168 A KR 20170134168A KR 102064284 B1 KR102064284 B1 KR 102064284B1
- Authority
- KR
- South Korea
- Prior art keywords
- media
- media data
- web
- real time
- time communication
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
-
- H04L65/607—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H04L65/1003—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H04L65/608—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명의 실시 예에 따른 외부의 웹 브라우저와 실시간 통신을 수행하는 방법은, 네트워크를 통해 웹 브라우저와 시그널링하여 실시간 통신을 개시하는 단계, 시그널링이 수행된 후에 인코딩된 미디어 데이터를 소정의 실시간 네트워크 프로토콜에 기반하여 패킷화하는 단계, 패킷화된 미디어 데이터를 디패킷화하여 인코딩된 미디어 데이터를 획득하는 단계, 그리고 네트워크를 통해 인코딩된 미디어 데이터를 웹 브라우저에 전송함으로써 실시간 통신을 수행하는 단계를 포함한다.According to an embodiment of the present invention, a method for performing real-time communication with an external web browser may include: initiating real-time communication by signaling with a web browser through a network; Packetizing based on the packet, depacketizing the packetized media data to obtain encoded media data, and performing real time communication by transmitting the encoded media data to a web browser via a network. .
Description
본 발명은 인코딩된 멀티미디어를 네트워크를 통해 제공하기 위한 장치들 및 방법들에 관한 것으로, 좀 더 구체적으로는 실시간으로, 예를 들면 웹 실시간 통신으로 인코딩된 미디어 데이터를 통신하는 경우 향상된 인코딩 효율을 제공하는 소스 장치, 네트워크 시스템, 및 방법에 관한 것이다.The present invention relates to apparatus and methods for providing encoded multimedia over a network, and more particularly to providing improved encoding efficiency when communicating encoded media data in real time, for example by web real time communication. A source device, a network system, and a method are provided.
통신 서비스 제공자들 및 기업들은 웹 실시간 통신(Web Real-Time Communication: WebRTC)이라고 알려진 프로토콜에 기반한 실시간 통신들을 사용할 수 있다. 웹 실시간 통신은 웹 브라우저에 실시간 멀티미디어 통신 기능들(예를 들면, 음성 전화, 영상 채팅, 단대단 파일 공유 등)을 실장하기 위한 오픈 인터넷 규격이며, 소스 장치와 싱크 장치의 브라우저들 간 실시간 통신을 가능하게 한다. 웹 브라우저를 지원하는 장치에서, 웹 실시간 통신은 API(Application Programming Interface)들을 사용함으로써 사용자가 플러그인 소프트웨어를 다운로드하는 것 없이도 해당 장치가 실시간 통신 기능들을 갖추게 할 수 있다. 웹 실시간 통신은 두 웹 브라우저들 사이의 연결을 개설하고, 해당 단들(peers) 사이의 데이터 교환을 위한 채널을 생성한다.Communication service providers and enterprises can use real-time communications based on a protocol known as Web Real-Time Communication (WebRTC). Web real-time communication is an open Internet standard for implementing real-time multimedia communication functions (e.g. voice call, video chat, end-to-end file sharing, etc.) in a web browser, and enables real-time communication between source and sink browsers. Make it possible. In a device that supports a web browser, web real-time communication may use application programming interfaces (APIs) to enable the device to have real-time communication capabilities without the user having to download plug-in software. Web real-time communication establishes a connection between two web browsers and creates a channel for exchanging data between corresponding peers.
웹 실시간 통신을 수행할 때, 싱크 장치는 소스 장치로부터 수신하는 미디어 데이터를 처리하기 위한 충분한 하드웨어 자원들을 가질 수 있다. 예를 들면, 포터블 컴퓨터(portable computer), PDA(personal digital assistant), 및 스마트 폰과 같은 높은 성능의 프로세서를 갖는 싱크 장치는, 설사 그 싱크 장치가 소프트웨어를 통해 미디어 데이터를 디코딩한다 하더라도, 충분한 하드웨어 자원들을 가지고 있으므로 미디어 데이터를 원활하게 재생할 수 있다. 반면, 소스 장치는 미디어 데이터를 처리하는 데에 충분하지 않은 하드웨어 자원들을 가질 수 있다. 예를 들면, 만약 소스 장치가 소프트웨어를 통해 미디어 데이터를 인코딩한다면, 낮은 성능의 프로세서는 전송될 미디어 데이터를 원활하게 혹은 효율적으로 인코딩하지 못할 수 있다. 이러한 경우, 소스 장치, 그리고 웹 실시간 통신의 전반적인 동작 및/또는 성능은 저하되며, 이에 따라 실시간 통신에 요구되는 품질과 효율은 감소할 수 있다.When performing web real time communication, the sink device may have sufficient hardware resources to process media data received from the source device. For example, a sink device having a high performance processor such as a portable computer, a personal digital assistant, and a smart phone may have sufficient hardware even if the sink device decodes the media data through software. With resources, media data can be played smoothly. On the other hand, the source device may have hardware resources that are not sufficient to process the media data. For example, if the source device encodes media data via software, a low performance processor may not be able to encode media data to be transmitted smoothly or efficiently. In this case, the overall operation and / or performance of the source device and the web real-time communication may be degraded, thereby reducing the quality and efficiency required for the real time communication.
위 기재된 내용은 오직 본 발명의 기술적 사상들에 대한 배경 기술의 이해를 돕기 위한 것이며, 따라서 그것은 본 발명의 기술 분야의 당업자에게 알려진 선행 기술에 해당하는 내용으로 이해될 수 없다.The above description is only to help understand the background art of the technical idea of the present invention, and thus it cannot be understood as the content corresponding to the prior art known to those skilled in the art.
본 발명의 실시 예에 따른 소스 장치들과 네트워크 시스템들은 웹 실시간 통신과 같은 실시간 통신들의 효율과 품질을 향상시키기 위한 것이다. 나아가, 본 발명의 실시 예에 따른 장치들 및 시스템들은 싱크 장치의 사용자가 플러그인 소프트웨어를 다운로드하는 것 없이 단대단 웹 실시간 통신을 가능하게 하기 위한 것이다.Source devices and network systems according to an embodiment of the present invention are to improve the efficiency and quality of real-time communications such as web real-time communications. Furthermore, devices and systems according to an embodiment of the present invention are to enable end-to-end web real time communication without the user of the sink device downloading plug-in software.
실시간 통신의 효율과 품질은 향상된 인코딩 효율을 갖는 소스 장치들을 통해 달성될 수 있다. 예를 들면, 소스 장치의 웹 실시간 통신기는 스트리밍 서버를 통해 인코딩된 미디어를 수신한다.The efficiency and quality of real time communication can be achieved through source devices with improved encoding efficiency. For example, the web real-time communicator of the source device receives the encoded media via a streaming server.
본 발명의 실시 예에 따른 외부의 웹 브라우저와 실시간 통신을 수행하는 방법에 있어서: 네트워크를 통해 상기 웹 브라우저와 시그널링하여 상기 실시간 통신을 개시하는 단계; 상기 시그널링이 수행된 후에, 인코딩된 미디어 데이터를 소정의 실시간 네트워크 프로토콜에 기반하여 패킷화하는 단계; 상기 패킷화된 미디어 데이터를 디패킷화하여 상기 인코딩된 미디어 데이터를 획득하는 단계; 및 상기 네트워크를 통해 상기 인코딩된 미디어 데이터를 상기 웹 브라우저에 전송함으로써 상기 실시간 통신을 수행하는 단계를 포함한다.A method for performing real time communication with an external web browser according to an embodiment of the present invention, the method comprising: signaling the web browser through a network to initiate the real time communication; After the signaling is performed, packetizing the encoded media data based on a predetermined real-time network protocol; Depacketizing the packetized media data to obtain the encoded media data; And performing the real time communication by transmitting the encoded media data to the web browser via the network.
상기 패킷화된 미디어 데이터를 디패킷화하는 단계는 상기 패킷화된 미디어 데이터의 페이로드로부터 상기 인코딩된 미디어 데이터를 획득하는 단계를 포함할 수 있다.Depacketizing the packetized media data may include obtaining the encoded media data from a payload of the packetized media data.
상기 방법은 내부 스토리지에 저장된 설정 정보를 읽어 상기 소정의 실시간 네트워크 프로토콜을 판별하는 단계를 더 포함하되, 상기 패킷화된 미디어 데이터의 상기 페이 로드는 상기 판별된 실시간 네트워크 프로토콜에 따라 식별될 수 있다.The method may further include determining the predetermined real time network protocol by reading setting information stored in internal storage, wherein the payload of the packetized media data may be identified according to the determined real time network protocol.
상기 실시간 통신을 수행하는 단계는, 상기 인코딩된 미디어 데이터를 다시 패킷화하는 단계; 및 상기 다시 패킷화된 미디어 데이터를 상기 웹 브라우저로 전송하는 단계를 포함할 수 있다.The performing of the real time communication may include packetizing the encoded media data again; And transmitting the repackaged media data to the web browser.
상기 방법은 하드웨어 미디어 인코더를 이용하여 상기 미디어 소스를 인코딩함으로써, 상기 인코딩된 미디어 데이터를 생성하는 단계를 더 포함할 수 있다.The method may further comprise generating the encoded media data by encoding the media source using a hardware media encoder.
상기 실시간 통신은 웹 실시간 통신을 포함할 수 있다.The real time communication may include web real time communication.
상기 소정의 실시간 네트워크 프로토콜은 RTP(Real-Time transport Protocol), RTSP(Real-Time Streaming Protocol), 및 RTMP(Real-Time Messaging Protocol) 중 하나일 수 있다.The predetermined real time network protocol may be one of a real-time transport protocol (RTP), a real-time streaming protocol (RTSP), and a real-time messaging protocol (RTMP).
상기 인코딩된 미디어 데이터는 영상 압축 표준들인 H.263, H.264, H.265, VP8, VP9, 및 AV1(AOMedia Video 1) 중 하나에 기반할 수 있다.The encoded media data may be based on one of video compression standards H.263, H.264, H.265, VP8, VP9, and AV1 (AOMedia Video 1).
본 발명의 다른 실시 예에 따른 외부의 웹 브라우저와 웹 실시간 통신을 수행하는 방법은, 상기 웹 브라우저와 시그널링하여 상기 웹 실시간 통신을 개시하는 단계; 상기 시그널링의 결과에 따라 스트리밍 서버에 패킷화된 미디어 데이터를 요청하되, 상기 패킷화된 미디어 데이터는 소정의 미디어 압축 표준에 기반하여 인코딩된 미디어 데이터를 포함하는, 단계; 및 상기 패킷화된 미디어 데이터로부터 획득되는 상기 인코딩된 미디어 데이터를 상기 웹 브라우저에 전송함으로써 상기 웹 실시간 통신을 수행하는 단계를 포함한다.According to another embodiment of the present invention, a method for performing web real-time communication with an external web browser includes: initiating the web real-time communication by signaling with the web browser; Requesting packetized media data from a streaming server according to a result of the signaling, wherein the packetized media data includes media data encoded based on a predetermined media compression standard; And performing the web real time communication by transmitting the encoded media data obtained from the packetized media data to the web browser.
상기 방법은 상기 스트리밍 서버에 대응하는 실시간 네트워크 프로토콜 정보를 상기 스트리밍 서버와 연관된 소스 장치로부터 수신하는 단계를 더 포함하되, 상기 인코딩된 미디어 데이터는 상기 패킷화된 미디어 데이터의 페이로드로부터 획득되고, 상기 패킷화된 미디어 데이터의 상기 페이로드는 상기 수신된 실시간 네트워크 프로토콜 정보에 기반하여 식별될 수 있다.The method further comprises receiving real time network protocol information corresponding to the streaming server from a source device associated with the streaming server, wherein the encoded media data is obtained from a payload of the packetized media data, and The payload of packetized media data may be identified based on the received real time network protocol information.
상기 방법은 내부 스토리지에 저장된 설정 정보를 읽어 상기 스트리밍 서버에 대응하는 실시간 네트워크 프로토콜을 판별하는 단계를 더 포함하되, 상기 인코딩된 미디어 데이터는 상기 패킷화된 미디어 데이터의 페이로드로부터 획득되고, 상기 패킷화된 미디어 데이터의 상기 페이로드는 상기 판별된 실시간 네트워크 프로토콜에 기반하여 식별될 수 있다.The method further includes reading configuration information stored in internal storage to determine a real-time network protocol corresponding to the streaming server, wherein the encoded media data is obtained from a payload of the packetized media data and the packet The payload of the normalized media data may be identified based on the determined real time network protocol.
상기 패킷화된 미디어 데이터는 상기 시그널링의 결과 상기 웹 브라우저가 상기 소정의 미디어 압축 표준을 지원할 때 요청될 수 있다.The packetized media data may be requested when the web browser supports the predetermined media compression standard as a result of the signaling.
상기 소정의 미디어 압축 표준은 영상 압축 표준들 H.263, H.264, 및 H.265 중 하나일 수 있다.The predetermined media compression standard may be one of image compression standards H.263, H.264, and H.265.
상기 방법은 상기 시그널링의 결과 상기 웹 브라우저가 상기 소정의 미디어 압축 표준과 상이한 미디어 압축 표준을 지원할 때, 미디어 소스를 수신하는 단계를 더 포함할 수 있다.The method may further comprise receiving a media source when the web browser supports a media compression standard different from the predetermined media compression standard as a result of the signaling.
상기 방법은 상기 상이한 미디어 압축 표준에 기반하여 상기 미디어 소스를 인코딩하는 단계; 및 상기 상이한 미디어 압축 표준에 기반하여 인코딩된 미디어 소스를 전송함으로써 상기 웹 실시간 통신을 수행하는 단계를 더 포함할 수 있다.The method includes encoding the media source based on the different media compression standard; And performing the web real time communication by transmitting an encoded media source based on the different media compression standard.
본 발명의 다른 일면은 외부의 웹 브라우저와 웹 실시간 통신을 수행하는 소스 장치에 관한 것이다. 본 발명의 실시 예에 따른 소스 장치는 미디어 소스를 처리하여 인코딩된 미디어 데이터를 생성하도록 구성되는 미디어 인코더; 소정의 실시간 네트워크 프로토콜에 기반한 상기 인코딩된 미디어 데이터의 패킷화를 지원하도록 구성되는 스트리밍 서버; 및 상기 웹 브라우저와 시그널링하여 상기 웹 실시간 통신을 개시하고, 상기 시그널링의 결과에 따라 상기 스트리밍 서버에 상기 패킷화된 미디어 데이터를 요청하도록 구성되는 웹 실시간 통신기를 포함하되, 상기 웹 실시간 통신기는 상기 패킷화된 미디어 데이터를 이용하여 상기 웹 실시간 통신을 수행하도록 구성된다.Another aspect of the present invention relates to a source device that performs web real-time communication with an external web browser. A source apparatus according to an embodiment of the present invention includes a media encoder configured to process a media source to generate encoded media data; A streaming server configured to support packetization of the encoded media data based on a predetermined real time network protocol; And a web real time communicator configured to signal the web browser to initiate the web real time communication, and to request the packetized media data from the streaming server according to a result of the signaling. Configured to perform the web real-time communication using normalized media data.
상기 미디어 인코더는 제 1 미디어 압축 표준에 기반하여 상기 인코딩된 미디어 데이터를 생성하며, 상기 웹 실시간 통신기는 상기 시그널링의 결과 상기 웹 브라우저가 상기 제 1 미디어 압축 표준을 지원할 때, 상기 스트리밍 서버에 상기 패킷화된 미디어 데이터를 요청할 수 있다.The media encoder generates the encoded media data based on a first media compression standard, wherein the web real-time communicator is configured to send the packet to the streaming server when the web browser supports the first media compression standard as a result of the signaling. Request mediated media data.
상기 미디어 인코더는 제 1 미디어 압축 표준에 기반하여 상기 인코딩된 미디어 데이터를 생성하며, 상기 웹 실시간 통신기는 상기 시그널링의 결과 상기 웹 브라우저가 상기 제 1 미디어 압축 표준과 상이한 제 2 미디어 압축 표준을 지원할 때 상기 미디어 소스를 수신하여 상기 웹 실시간 통신을 수행하도록 구성될 수 있다.The media encoder generates the encoded media data based on a first media compression standard, wherein the web real-time communicator supports a second media compression standard different from the first media compression standard as a result of the signaling. Receive the media source and perform the web real-time communication.
상기 웹 실시간 통신기는, 상기 수신된 미디어 소스를 상기 제 2 미디어 압축 표준에 기반하여 인코딩하고, 상기 제 2 미디어 압축 표준에 기반하여 인코딩된 미디어 소스를 이용하여 상기 웹 실시간 통신을 수행하도록 구성될 수 있다.The web real time communicator may be configured to encode the received media source based on the second media compression standard and to perform the web real time communication using a media source encoded based on the second media compression standard. have.
상기 웹 실시간 통신기는, 상기 패킷화된 미디어 데이터의 페이로드로부터 상기 인코딩된 미디어 데이터를 추출하고, 상기 인코딩된 미디어 데이터를 상기 웹 브라우저에 전송하여 상기 웹 실시간 통신을 수행하도록 구성될 수 있다.The web real time communicator may be configured to extract the encoded media data from the payload of the packetized media data, and transmit the encoded media data to the web browser to perform the web real time communication.
본 발명의 다른 실시 예에 따른 외부의 웹 브라우저와 웹 실시간 통신을 수행하는 소스 장치는, 미디어 소스를 처리하여 인코딩된 미디어 데이터를 생성하도록 구성되는 미디어 인코더; 및 적어도 하나의 프로세서를 포함하되, 상기 적어도 하나의 프로세서는, 상기 웹 브라우저와 시그널링을 수행하고; 상기 시그널링의 결과에 따라, 상기 인코딩된 미디어 데이터를 소정의 실시간 네트워크 프로토콜에 기반하여 패킷화하고; 상기 패킷화된 미디어 데이터를 디패킷화하여 상기 웹 실시간 통신을 위한 상기 인코딩된 미디어 데이터를 획득하도록 구성된다.According to another embodiment of the present invention, a source apparatus for performing web real-time communication with an external web browser may include a media encoder configured to process a media source to generate encoded media data; And at least one processor, the at least one processor to perform signaling with the web browser; According to a result of the signaling, packetize the encoded media data based on a predetermined real time network protocol; Depacketize the packetized media data to obtain the encoded media data for the web real-time communication.
본 발명의 실시 예에 따른 소스 장치들과 네트워크 시스템들은 웹 실시간 통신과 같은 실시간 통신들의 효율과 품질을 향상시킨다. 나아가, 본 발명의 실시 예에 따른 장치들 및 시스템들은 싱크 장치의 사용자가 플러그인 소프트웨어를 다운로드하는 것 없이 단대단 웹 실시간 통신을 가능하게 한다.Source devices and network systems according to an embodiment of the present invention improve the efficiency and quality of real-time communications, such as web real-time communications. Furthermore, devices and systems according to an embodiment of the present invention enable end-to-end web real-time communication without the user of the sink device downloading plug-in software.
도 1은 본 발명의 실시 예에 따른 소스 장치와 싱크 장치 사이에서 웹 실시간 통신을 실행하기 위한 네트워크 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 소스 장치를 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 소스 장치를 동작하는 방법을 보여주는 순서도이다.
도 4는 본 발명의 실시 예에 따른 웹 실시간 통신기의 동작 방법을 보여주는 순서도이다.
도 5는 단대단 웹 실시간 통신을 위한 시그널링의 일 실시 예를 보여주는 순서도이다.
도 6은 패킷화된 미디어 데이터를 수신 및 처리하기 위한 준비 동작의 실시 예를 보여주는 순서도이다.
도 7은 소스 장치의 실시 예들을 구현하기 위한 컴퓨터 시스템의 실시 예를 보여주는 블록도이다.
도 8은 본 발명의 다른 실시 예에 따른 소스 장치를 보여주는 블록도이다.
도 9는 본 발명의 다른 실시 예에 따른 웹 실시간 통신기의 동작 방법을 보여주는 순서도이다.
도 10은 본 발명의 또 다른 실시 예에 따른 소스 장치를 보여주는 블록도이다.
도 11은 본 발명의 또 다른 실시 예에 따른 웹 실시간 통신기의 동작 방법을 보여주는 순서도이다.
도 12는 소스 시스템을 포함하는 네트워크 시스템을 보여주는 블록도이다.
도 13은 본 발명의 실시 예에 따른 소스 시스템을 보여주는 블록도이다.
도 14는 도 13의 소스 시스템의 변형 실시 예를 보여주는 블록도이다.1 is a block diagram illustrating a network system for executing web real-time communication between a source device and a sink device according to an embodiment of the present invention.
2 is a block diagram illustrating a source device according to an exemplary embodiment of the present invention.
3 is a flowchart illustrating a method of operating a source apparatus according to an exemplary embodiment of the present disclosure.
4 is a flowchart illustrating a method of operating a web real-time communication device according to an exemplary embodiment of the present invention.
5 is a flowchart illustrating an embodiment of signaling for end-to-end web real-time communication.
6 is a flowchart illustrating an embodiment of a preparation operation for receiving and processing packetized media data.
7 is a block diagram illustrating an embodiment of a computer system for implementing embodiments of a source device.
8 is a block diagram illustrating a source apparatus according to another exemplary embodiment.
9 is a flowchart illustrating a method of operating a web real-time communication device according to another embodiment of the present invention.
10 is a block diagram illustrating a source device according to another exemplary embodiment.
11 is a flowchart illustrating a method of operating a web real-time communication device according to another embodiment of the present invention.
12 is a block diagram illustrating a network system including a source system.
13 is a block diagram illustrating a source system according to an exemplary embodiment of the present invention.
14 is a block diagram illustrating a modified embodiment of the source system of FIG. 13.
아래의 서술에서, 설명의 목적으로, 다양한 실시예들의 이해를 돕기 위해 다수의 구체적 세부 내용들이 제시된다. 그러나, 다양한 실시예들이 이러한 구체적인 세부 내용들 없이 또는 하나 이상의 동등한 방식으로 실시될 수 있다는 것은 명백하다. 다른 예시들에서, 잘 알려진 구조들과 장치들은 다양한 실시예들을 불필요하게 이해하기 어렵게 하는 것을 피하기 위해 블록도로 표시된다.In the following description, for purposes of explanation, numerous specific details are set forth in order to assist in understanding the various embodiments. It may be evident, however, that various embodiments may be practiced without these specific details or in one or more equivalent ways. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the various embodiments.
어떤 소자가 다른 소자와 "연결되어 있다”고 서술되어 있으면, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 간접적으로 연결되어 있는 경우도 포함한다. 그러나, 만약 어떤 부분이 다른 부분과 "직접적으로 연결되어 있다”고 서술되어 있으면, 이는 해당 부분과 다른 부분 사이에 다른 소자가 없음을 의미한다. "X, Y, 및 Z 중 적어도 어느 하나", 그리고 "X, Y, 및 Z로 구성된 그룹으로부터 선택된 적어도 어느 하나"는 X 하나, Y 하나, Z 하나, 또는 X, Y, 및 Z 중 둘 또는 그 이상의 어떤 조합 (예를 들면, XYZ, XYY, YZ, ZZ) 으로 해석될 수 있다. 여기에서, "및/또는"은 해당 구성들 중 하나 또는 그 이상의 모든 조합을 포함한다.If a device is described as "connected" to another device, this includes not only the direct connection, but also the indirect connection between other devices in between. If it is described as "directly connected" to this other part, it means that there is no other element between that part and the other part. "At least one of X, Y, and Z" and "at least one selected from the group consisting of X, Y, and Z" is X one, Y one, Z one, or two of X, Y, and Z or Any combination of the above (eg, XYZ, XYY, YZ, ZZ) can be interpreted. Here, "and / or" includes all combinations of one or more of the configurations.
여기에서, 제 1, 제 2 등과 같은 용어가 다양한 소자들, 구성들, 지역들, 레이어들, 및/또는 섹션들을 설명하기 위해 사용될 수 있지만, 이러한 소자들, 구성들, 지역들, 레이어들, 및/또는 섹션들은 이러한 용어들에 한정되지 않는다. 이러한 용어들은 하나의 소자, 구성, 지역, 레이어, 및/또는 섹션을 다른 소자, 구성, 지역, 레이어, 및 또는 섹션과 구별하기 위해 사용된다. 따라서, 일 실시예에서의 제 1 소자, 구성, 지역, 레이어, 및/또는 섹션은 다른 실시예에서 제 2 소자, 구성, 지역, 레이어, 및/또는 섹션이라 칭할 수 있다.Herein, terms such as first, second, etc. may be used to describe various elements, configurations, regions, layers, and / or sections, but such elements, configurations, regions, layers, And / or sections are not limited to these terms. These terms are used to distinguish one device, configuration, region, layer, and / or section from another device, configuration, region, layer, and / or section. Thus, the first element, configuration, region, layer, and / or section in one embodiment may be referred to as the second element, configuration, region, layer, and / or section in another embodiment.
여기에서 사용된 용어는 특정한 실시예들을 설명하기 위한 것이며 한정하기 위한 것이 아니다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함한다” 고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 다른 정의가 없는 한, 여기에 사용된 용어들은 본 발명이 속하는 분야에서 통상적인 지식을 가진 자에게 일반적으로 이해되는 것과 같은 의미를 갖는다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. Throughout the specification, when a portion "contains" a certain component, it means that it can further include other components, except to exclude other components unless specifically stated otherwise. Unless otherwise specified, terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs.
도 1은 본 발명의 실시 예에 따른 소스 장치(110)와 싱크 장치(120) 사이에서 웹 실시간 통신을 실행하기 위한 네트워크 시스템(100)을 보여주는 블록도이다. 네트워크 시스템(100)은 여기에 설명된 실시 예들에 따른 방법들을 수행하도록 동작하는 복수의 장치들, 서버들, 및/또는 소프트웨어 구성 요소들을 포함할 수 있다. 도 1에 도시된 장치들 및 서버들은 다른 방식으로 배치될 수 있고, 그러한 장치들 및/또는 서버들에 의해 제공되는 동작들 및 서비스들은 여기에 설명된 실시 예들을 수행하기 위해 결합되거나 분리될 수 있으며, 더 많은 수 혹은 더 적은 수의 장치들 및 서버들에 의해 수행될 수도 있다. 하나 또는 그 이상의 장치들 및/또는 서버들은 동일한 혹은 다른 독립체들(entities), 예를 들면 기업들에 의해 구동될 수 있다.1 is a block diagram illustrating a
도 1을 참조하면, 네트워크 시스템(100)은 네트워크(105, Network), 소스 장치(110, SOURCE DEVICE), 싱크 장치(120, SINK DEVICE), 및 시그널링 서버(130, SIGNALING SERVER)를 포함한다. 소스 장치(110) 및 싱크 장치(120) 각각은 하나 또는 그 이상의 프로세서들, 메모리들, 다른 적절한 구성 요소들을 포함함으로써 컴퓨터에 의해 판독 가능한 매체들에 저장된 프로그램 코드들 및/또는 데이터와 같은 명령어들을 수행할 수 있으며, 이에 따라 여기에 설명된 다양한 애플리케이션들 및 단계들을 수행한다. 예를 들면, 명령어들은 네트워크 시스템(100)의 다양한 구성 요소들의 내부 및/또는 외부의 하나 또는 그 이상의 컴퓨터에 의해 판독 가능한 매체에 저장될 수 있다.Referring to FIG. 1, the
소스 장치(110)와 싱크 장치(120)는 네트워크(105)에 연결된다. 네트워크(105)는 공용 네트워크(public network), 하나 또는 그 이상의 사설 네트워크(private network)들, 유선 네트워크, 무선 네트워크, 다른 적합한 타입들의 네트워크들, 그것들의 조합들 중 적어도 하나를 포함하며, 이러한 네트워크들은 소스 장치(110), 싱크 장치(120), 및 시그널링 서버(130)에 의해 액세스 가능할 수 있다. 소스 장치(110) 및 싱크 장치(120)는 유선 통신 기능들 및 무선 통신 기능들 중 어느 하나를 포함할 수 있고, 네트워크(105)를 통해 서로 통신할 수 있다.
소스 장치(110)와 싱크 장치(120)는 웹 실시간 통신과 같은 실시간 통신으로 단대단 통신을 수행한다. 소스 장치(110)는 음성 데이터 및 영상 데이터 중 적어도 하나를 포함하는 미디어 데이터를 특정 미디어 공유 세션(media share session)에 참여한 싱크 장치(120)로 전송한다. 이때, 미디어 데이터는 멀티미디어(multimedia) 데이터를 포함할 수 있으나, 여기에 한정되지 않는다. 미디어 데이터는 싱크 장치(120)의 디스플레이에 디스플레이될 수 있다. 즉, 싱크 장치(120)는 수신된 미디어 데이터를 그것의 디스플레이 및 음성 장비에 랜더링(render)할 수 있다.The
예를 들면, 소스 장치(110)는 인터넷 프로토콜(Internet Protocol, 이하 IP라 한다) 카메라, 네트워크 비디오 녹화기, 웹 카메라 등 중 적어도 하나를 포함할 수 있으며, 이들은 미디어 데이터를 네트워크(105)를 통해 싱크 장치(120)로 전송할 수 있다. 예를 들면, 싱크 장치(120)는 포터블 컴퓨터, PDA, 스마트폰, 테블릿 PC, 비디오 게임 장치, 텔레비전, 데스크탑 컴퓨터, 모니터, 프로젝터 등을 포함하며, 이들은 수신된 미디어 데이터를 그것의 디스플레이 및 음성 장비에서 재생할 수 있다.For example,
소스 장치(110)는 싱크 장치(120)의 웹 브라우저(125, Web Browser)와 웹 실시간 통신을 수행하는 웹 실시간 통신기(115, Web Real-time Communicator)를 포함한다. 웹 실시간 통신기(115)는 시그널링 서버(130)를 통해 웹 브라우저(125)와 시그널링을 수행하여 웹 실시간 통신을 개시(initiate)할 수 있다. 예를 들면, 웹 실시간 통신기(115)는 웹 브라우저(125)와의 시그널링을 통해 웹 실시간 통신의 단대단 연결을 위한 미디어 공유 세션을 정의할 수 있다. 도 5를 참조하여 이후 설명되는 바와 같이, 시그널링 동안 시그널링 서버(130)는 소스 장치(110)로부터의 메시지들을 싱크 장치(120)로 중계(relay)하고, 싱크 장치(120)로부터의 메시지들을 소스 장치(110)로 중계할 수 있다. 시그널링 동안, 웹 실시간 통신기(115)와 웹 브라우저(125)는 지원 가능한 미디어 압축 표준들, 미디어 데이터를 인코딩 및 디코딩하기 위한 비트 레이트(bit rate)들, 미디어 데이터의 해상도 등과 같은 미디어 관련 능력들(media capabilities)을 교환할 수 있다. 나아가, 시그널링 동안 웹 실시간 통신기(115)와 웹 브라우저(125)는 IP 어드레스들 및 포트들과 같은 네트워크(105) 내에서 웹 실시간 통신기(115)와 웹 브라우저(125)를 식별하기 위한 후보자들(candidates)을 교환할 수 있다.The
시그널링이 성공적으로 수행된 후에, 웹 실시간 통신기(115)는 소스 장치(110)의 내부 구성 요소들에 의해 생성된 미디어 데이터를 캡쳐하고, 미디어 데이터를 실시간으로 싱크 장치(120)의 웹 브라우저(125)에 전송하여 웹 실시간 통신을 수행할 수 있다. 웹 브라우저(125)는 수신된 미디어 데이터를 싱크 장치(120)의 디스플레이와 음성 장비에 랜더링할 수 있다.After the signaling is successfully performed, the web real-
도 2는 본 발명의 실시 예에 따른 소스 장치(110)를 보여주는 블록도이다.2 is a block diagram illustrating a
도 2를 참조하면, 소스 장치(110)는 메모리(111, Memory), 미디어 인코더(112, Media Encoder), 스트리밍 서버(113, Streaming Server), 및 웹 실시간 통신기(115, Web Real-time Communicator)를 포함한다.Referring to FIG. 2, the
메모리(111)는 이 분야에서 알려지거나 개발되는 메모리 장치 또는 시스템의 형태일 수 있고, 영상 소스 및 음성 소스 중 어느 하나를 포함하는 미디어 소스를 저장할 수 있다. 소스 장치(110)는 영상 데이터를 제공하는 적어도 하나의 카메라 및 음성 데이터를 제공하는 적어도 하나의 마이크로폰을 더 포함할 수 있다. 예를 들면, 카메라는 렌즈를 통해 입력되는 광 신호들을 전기 신호들로 변환하여 영상 데이터를 생성하는 이미지 센서를 포함할 수 있다. 이미지 센서는 광 신호들을 전기 신호들로 변환할 수 있는 이 분야에서 알려지거나 개발되는, 전하 결합 소자(Charge-Coupled Device: CCD), 금속 산화물 반도체(Complementary Metal Oxide Semiconductor: CMOS) 등과 같은 반도체 장치일 수 있다. 예를 들면, 마이크로폰은 음성을 전기 신호들로 변환하여 음성 데이터를 생성할 수 있다. 생성된 영상 데이터와 음성 데이터는 소스 장치(110)의 하나 또는 그 이상의 프로세서들에 의해 처리되어 영상 소스 및 음성 소스를 제공할 수 있다.The
미디어 인코더(112)는 미디어 소스를 인코딩하고, 소정의 미디어 압축 표준에 기반하여 인코딩된 미디어 데이터(ECMD)를 생성한다. 실시 예들에서, 미디어 인코더(112)는 영상 압축 표준들인 H.263, H.264, H.265, VP8, VP9, AOMedia Video 1 (AV1) 등 중 하나에 기반하여 미디어 소스를 인코딩할 수 있다. 예를 들면, 미디어 인코더(112)는 메모리(111)와 함께 시스템 온 칩(System on Chip)에 통합될 수 있으며, 메모리(111)에 저장된 미디어 소스를 인코딩하여 인코딩된 미디어 데이터(ECMD)를 생성할 수 있다.
스트리밍 서버(113)는 인코딩된 미디어 데이터(ECMD)를 수신하고, 웹 실시간 통신기(115)의 요청에 응답하여 인코딩된 미디어 데이터(ECMD)를 패킷화(packetize)한다. 스트리밍 서버(113)는 미디어 캡쳐 드라이버(Media Capture Driver: MCD)(113a)를 포함할 수 있다. 미디어 캡쳐 드라이버(113a)는 미디어 인코더(112)에 미디어 소스를 인코딩할 것을 요청하고, 인코딩된 미디어 데이터(ECMD)를 캡쳐할 수 있다. 스트리밍 서버(113)는 RTP(Real-Time transport Protocol), RTSP(Real-Time Streaming Protocol), RTMP(Real-Time Messaging Protocol) 등과 같은 실시간 네트워크 프로토콜에 기반하여 인코딩된 미디어 데이터(ECMD)를 패킷화할 수 있다. 그러므로, 패킷화된 미디어 데이터(PKMD)는 실시간 네트워크 프로토콜에 대응하는 특정 포멧(format)을 가질 수 있다. 이에 따라, 패킷화된 미디어 데이터(PKMD)는 인코딩된 미디어 데이터(ECMD)뿐만 아니라 실시간 네트워크 프로토콜에 대응하는 헤더를 포함할 수 있다.The streaming
스트리밍 서버(113)는 도 1의 네트워크(105)에 연결된 스트리밍 클라이언트 서버들, 예를 들면 클라우드 서버들과 통신할 수 있다. 스트리밍 서버(113)는 앞서 설명된 바와 같이 인코딩된 미디어 데이터(ECMD)를 패킷화하고, 패킷화된 미디어 데이터(PKMD)를 스트리밍 클라이언트 서버로 전송하여 해당 영상을 스트리밍 클라이언트 서버에 업로드할 수 있다.The streaming
소스 장치(110)는 웹 실시간 통신기(115)를 더 포함한다. 웹 실시간 통신기(115)는 소스 장치(110)가 싱크 장치(120)의 웹 브라우저(125)와 단대단 통신을 수행할 수 있도록 하는 웹 실시간 통신 기능을 제공한다. 싱크 장치(120)의 웹 브라우저(125) 또한, 싱크 장치(120)가 플러그인 소프트웨어를 다운로드 및 설치하는 것 없이 웹 실시간 통신기(115)와 단대단 통신을 수행할 수 있게 하는 웹 실시간 통신 기능을 제공한다.
본 발명의 실시 예에 따르면, 웹 실시간 통신기(115)는 스트리밍 서버(113)로부터 패킷화된 미디어 데이터(PKMD)를 수신하고, 패킷화된 미디어 데이터(PKMD)를 이용하여 웹 실시간 통신을 수행한다. 도 1을 참조하여 설명된 바와 같이, 웹 실시간 통신기(115)는 웹 브라우저(125)와의 시그널링이 성공적으로 수행된 후에 웹 실시간 통신을 수행할 수 있다.According to an embodiment of the present invention, the web real
웹 실시간 통신기(115)는 스트리밍 클라이언트(Streaming Client: STRC)(115a)를 포함한다. 스트리밍 클라이언트(115a)는 스트리밍 서버(113)에 패킷화된 미디어 데이터(PKMD)를 요청할 수 있다. 요청에 응답하여, 스트리밍 서버(113)는 미디어 캡처 드라이버(113a)를 이용하여 인코딩된 미디어 데이터(ECMD)를 캡쳐하고 패킷화된 미디어 데이터(PKMD)를 생성할 수 있다. 이와 같이, 스트리밍 클라이언트(115a)는 스트리밍 서버(113)로부터 패킷화된 미디어 데이터(PKMD)를 수신할 수 있다.The web
웹 실시간 통신기(115)는 패킷화된 미디어 데이터(PKMD)를 디패킷화하여 인코딩된 미디어 데이터(ECMD)를 획득할 수 있다. 실시 예들에서, 웹 실시간 통신기(115)는 설정 정보, 예를 들면 메모리(111) 또는 소스 장치(110)의 다른 내부 스토리지에 저장된 구성 파일(configuration file)들을 읽고, 어떤 실시간 네트워크 프로토콜을 사용하여 패킷화된 미디어 데이터(PKMD)가 생성되었는지 여부를 결정할 수 있다. 설정 정보에 기반하여, 웹 실시간 통신기(115)는 패킷화된 미디어 데이터(PKMD)의 페이로드(payload)를 파싱(또는, 식별)할 수 있다. 웹 실시간 통신기(115)는 패킷화된 미디어 데이터(PKMD)의 헤더를 드롭하고, 패킷화된 미디어 데이터(PKMD)의 페이로드로부터 인코딩된 미디어 데이터(ECMD)를 획득할 수 있다.The web real-
웹 실시간 통신기(115)는 인코딩된 미디어 데이터(ECMD)를 싱크 장치(120)의 웹 브라우저(125)로 전송하여 웹 실시간 통신을 수행한다. 웹 브라우저(125)는 예를 들면 시그널링에서 결정된 미디어 압축 표준에 기반하여 인코딩된 미디어 데이터(ECMD)를 디코딩하고, 디코딩된 미디어 데이터를 싱크 장치(120)의 디스플레이 및 음성 장비에 랜더링할 수 있다.The web
미디어 인코더(112)는 하드웨어 인코더일 수 있다. 예를 들면, 메모리(111) 및 미디어 인코더(112)는 하드웨어 계층에 포함되고, 스트리밍 서버(113) 및 웹 실시간 통신기(115)는 소프트웨어 계층에 포함될 수 있다. 그러나, 소스 장치(110)의 실시 예들은 여기에 한정되지 않는다. 예를 들면, 미디어 인코더(112)는 소프트웨어, 펌웨어, 또는 그것들의 조합을 통해 구현될 수 있다. 이러한 경우, 해당 프로그램 코드들(또는 소프트웨어)은 메모리(111) 또는 소스 장치(110)의 또 다른 내부 메모리에 로딩되고, 인코딩에 최적화된 하나 또는 그 이상의 프로세서들은 프로그램 코드들의 명령어들을 실행하여 미디어 인코더(112)를 구현할 수 있다.
하나 또는 그 이상의 프로세서들(도 7의 1200 참조)에 의해 실행되는 소프트웨어를 통해 웹 실시간 통신기(115)가 구현될 수 있다. 웹 실시간 통신기(115)가 웹 실시간 통신을 위해 직접 미디어 소스를 인코딩한다고 가정하면, 미디어 소스를 인코딩하는 데에 상대적으로 많은 하드웨어 자원들이 요구된다. 예를 들면, 소스 장치(110)가 상대적으로 낮은 구동 성능을 가지는 프로세서를 포함하며 그 프로세서가 프로그램 코드들(또는 소프트웨어)을 실행하여 웹 실시간 통신기(115)를 구현하는 경우, 프로세서의 하드웨어 자원들 중 많은 부분들이 미디어 소스를 인코딩하는 데에 사용될 수 있다. 이러한 경우, 웹 실시간 통신은 원활하게 혹은 효율적으로 수행되지 못할 수 있으며, 이에 따라 소스 장치(110)의 전반적인 동작 성능들도 저하될 수 있다. 예를 들면, 소스 장치(110)는 상대적으로 낮은 동작 성능을 갖는 프로세서를 포함하는 IP 카메라, 네트워크 비디오 녹화기, 웹 카메라 등 중 하나일 수 있다.The web
한편, 미디어 인코더(112)는 하드웨어 인코더이거나 인코딩에 최적화된 하나 또는 그 이상의 프로세서들에 의해 실행되는 소프트웨어를 통해 구현되어 향상된 인코딩 성능을 제공할 수 있다. 예를 들면, 미디어 인코더(112)는 시스템 온 칩 내에 통합되어 미디어 소스들을 인코딩하는 기능들을 제공하되, 그러한 시스템 온 칩이 소스 장치(110)에 실장될 수 있다. 본 발명의 실시 예에 따르면, 웹 실시간 통신기(115)는 미디어 인코더(112)로부터 스트리밍 서버(113)를 통해 인코딩된 미디어 데이터(ECMD)를 수신한다. 이에 따라, 웹 실시간 통신기(115)는 미디어를 인코딩하는 데에 필요한 기능들을 수행하지 않으면서도, 인코딩된 미디어 데이터(ECMD)가 효율적인 전달을 위해 패킷화된 것을 전제로, 인코딩된 미디어 데이터(ECMD)를 획득할 수 있다. 따라서, 설사 웹 실시간 통신기(115)가 소프트웨어를 통해 구현되며 그 소프트웨어를 실행하는 프로세서가 상대적으로 낮은 동작 성능(또는, 상대적으로 적은 하드웨어 자원들)을 갖는다 하더라도, 웹 실시간 통신기(115)는 획득된 인코딩된 미디어 데이터(ECMD)를 이용하여 웹 실시간 통신을 효율적으로 수행할 수 있다. 따라서, 소스 장치(110)는 향상된 인코딩 효율을 가질 수 있다.The
미디어 인코더(112)는 다양한 방식들로 구현되어 소스 장치(110)에 실장될 수 있다. 예를 들면, 위 설명된 바와 같이, 미디어 인코더(112)는 다양한 하드웨어 인코더들 중 어느 하나이거나, 하나 또는 그 이상의 프로세서들에 의해 실행되는 소프트웨어를 통해 구현될 수 있다. 이러한 점을 고려할 때, 만약 웹 실시간 통신기(115)가 스트리밍 서버(113)가 아닌 미디어 인코더(112)로부터 인코딩된 미디어 데이터(ECMD)를 직접 수신한다면, 웹 실시간 통신기(115)는 다양한 타입들의 미디어 인코더(112)와 호환될 수 있도록 적절하게 디자인되어 인코딩된 미디어 데이터(ECMD)를 미디어 인코더(112)에 직접적으로 요청하고 수신할 수 있어야 한다(그러한 시스템의 예가 도 10에 도시되어 있다).The
소스 장치(110)는 미디어 인코더(112)로부터의 인코딩된 미디어 데이터(ECMD)를 클라우더 서버들과 같은 스트리밍 클라이언트 서버로 업로드할 수 있는 스트리밍 서버(113)를 포함하므로, 스트리밍 서버(113)는 웹 실시간 통신 시 사용될 인코딩된 미디어 데이터(ECMD)를 획득하기 위해 사용될 수도 있다. 본 발명의 실시 예에 따르면, 웹 실시간 통신기(115)는 패킷화된 미디어 데이터(PKMD)를 스트리밍 서버(113)에 요청하고, 패킷화된 미디어 데이터(PKDM)를 처리하여 인코딩된 미디어 데이터(ECMD)를 획득한다. 스트리밍 서버(113)가 미리 결정된 RTP, RTSP, 및 RTMP와 같은 실시간 네트워크 프로토콜들 중 하나에 기반하여 인코딩된 미디어 데이터(ECMD)를 패킷화하는 것으로 고려하면, 웹 실시간 통신기(115)는 몇몇 실시간 네트워크 프로토콜들만 고려하여 설계될 수 있고, 그에 따라 웹 실시간 통신기(115)의 호환성을 향상시킬 수 있으며, 이는 웹 실시간 통신기(115)가 다양한 타입들의 소스 장치들에 채용될 수 있음을 의미할 수 있다. 나아가, 웹 실시간 통신기(115)의 향상된 호환성에 의해, 웹 실시간 통신기(115) 및 그것을 포함하는 소스 장치(110)의 개발 비용은 감소할 수 있다.Since the
도 3은 본 발명의 실시 예에 따른 소스 장치(110)를 동작하는 방법을 보여주는 순서도이다.3 is a flowchart illustrating a method of operating a
도 2 및 도 3을 참조하면, S110단계에서, 싱크 장치(120)의 웹 브라우저(125)와 웹 실시간 통신을 위한 시그널링을 수행한다. 시그널링 동안, 웹 실시간 통신기(115)는 웹 브라우저(125)에 전송될 미디어 데이터에 적용될 미디어 압축 표준을 싱크 장치(120)의 웹 브라우저(125)와 협상한다. 웹 실시간 통신기(115)는 미디어 인코더(112)가 지원하는 미디어 압축 표준이 선택되도록 웹 브라우저(125)와 협상할 수 있다.2 and 3, in step S110, signaling for web real-time communication with the
S120단계에서, 미디어 인코더(112)에서, 소정의 미디어 압축 표준에 기반하여 미디어 소스가 인코딩된다. 이때 소정의 미디어 압축 표준은 시그널링 동안 협상되는 미디어 압축 표준일 수 있다.In step S120, in the
S130단계에서, 스트리밍 서버(113)에서, 실시간 네트워크 프로토콜에 기반하여 인코딩된 미디어 데이터(ECMD)가 패킷화된다. 스트리밍 서버(113)는 미디어 인코더(112)에 의해 생성되는 인코딩된 미디어 데이터(ECMD)를 캡쳐하고, RTP, RTSP, 및 RTMP와 같은 실시간 네트워크 프로토콜들 중 하나의 실시간 네트워크 프로토콜에 기반하여 인코딩된 미디어 데이터(ECMD)를 패킷화할 수 있다.In step S130, in the
S140단계에서, 패킷화된 미디어 데이터(PKMD)를 디패킷화하여 인코딩된 미디어 데이터(ECMD)를 획득한다. 웹 실시간 통신기(115)는 스트리밍 서버(113)에 대응하는 실시간 네트워크 프로토콜에 기반하여 디패킷화(또는 packet fragmentation)를 수행할 수 있다. 웹 실시간 통신기(115)는 패킷화된 미디어 데이터(PKMD)의 페이로드로부터 인코딩된 미디어 데이터(ECMD)를 획득할 수 있다.In operation S140, the packetized media data PKMD is depacketized to obtain encoded media data ECMD. The web real-
S150단계에서, 인코딩된 미디어 데이터(ECMD)를 이용하여 싱크 장치(120)의 웹 브라우저(125)와 웹 실시간 통신을 수행한다. 웹 실시간 통신기(115)는 인코딩된 미디어 데이터(ECMD)를 웹 실시간 통신의 특정 포멧으로 다시 패킷화하고, 다시 패킷화된 미디어 데이터를 싱크 장치(120)의 웹 브라우저(125)에 전송할 수 있다.In operation S150, web real-time communication is performed with the
싱크 장치(120)의 웹 브라우저(125)는 다시 패킷화된 미디어 데이터를 디패킷화하여 인코딩된 미디어 데이터(ECMD)를 획득할 수 있다. 웹 브라우저(125)는 인코딩된 미디어 데이터(ECMD)를 디코딩하여 미디어를 재생할 것이다.The
도 4는 본 발명의 실시 예에 따른 웹 실시간 통신기(115)의 동작 방법을 보여주는 순서도이다. 도 5는 단대단 웹 실시간 통신을 위한 시그널링의 일 실시 예를 보여주는 순서도이다. 도 6은 패킷화된 미디어 데이터를 수신 및 처리하기 위한 준비 동작의 실시 예를 보여주는 순서도이다.4 is a flowchart illustrating a method of operating a web real-
도 2 및 도 4를 참조하면, S210단계에서, 싱크 장치(120)의 웹 브라우저(125)와 웹 실시간 통신을 위한 시그널링을 수행한다. 시그널링에서, 웹 실시간 통신기(115)는 싱크 장치(120)의 웹 브라우저(125)와 세션 기술자 프로토콜(seesion description protocol)에 기반한 메시지들을 교환할 수 있다. 시그널링은 웹 실시간 통신기(115) 및 웹 브라우저(125) 모두가 시그널링 서버(130)에 액세스한 후에 수행될 수 있다.2 and 4, in step S210, signaling for web real-time communication with the
시그널링은 웹 실시간 통신의 단대단 통신을 위한 미디어 공유 세션을 수립한다. 도 5를 참조하면, 시그널링은 S311단계 내지 S318단계를 포함할 수 있다. S311단계에서, 웹 브라우저(125)는 세션 기술자 프로토콜에 기반한 오퍼(offer)를 시그널링 서버(130)에 전송할 수 있으며, 이때 오퍼는 웹 브라우저(125)의 미디어 관련 능력들, 예를 들면 웹 브라우저(125)가 지원 가능한 미디어 압축 표준과 미디어 데이터의 해상도 등을 알린다. S312단계에서, 시그널링 서버(130)는 웹 브라우저(125)로부터의 오퍼를 웹 실시간 통신기(115)에 중계(relay)할 수 있다. S313단계에서, 웹 실시간 통신기(115)는 세션 기술자 프로토콜에 기반한 대답(answer)을 시그널링 서버(130)에 전송할 수 있으며, 이때 대답은 웹 실시간 통신기(115) 및/또는 소스 장치(110)의 미디어 관련 능력들, 예를 들면 웹 실시간 통신기(115) 및/또는 소스 장치(110)가 지원 가능한 미디어 압축 표준과 미디어 데이터의 해상도 등을 알린다. 이러한 대답에서 나타나는 미디어 압축 표준은 소스 장치(110)에 실장된 미디어 인코더(112)에 대응하는 미디어 압축 표준을 포함할 수 있다. S314단계에서, 시그널링 서버(130)는 대답을 웹 브라우저(125)에 중계할 수 있다. 즉, S311단계 내지 S314단계를 통해, 웹 실시간 통신기(115) 및 웹 브라우저(125)는 미디어 압축 표준을 포함한 미디어 관련 능력들을 협상할 수 있다.The signaling establishes a media sharing session for end-to-end communication of web real time communication. Referring to FIG. 5, the signaling may include steps S311 to S318. In operation S311, the
S315단계에서, 웹 브라우저(125)는 네트워크(105) 내에서 웹 브라우저(125)를 식별하기 위한 후보자들(candidates), 예를 들면 웹 실시간 통신을 수행할 IP 어드레스 및 포트를 시그널링 서버(130)에 전송할 수 있다. S316단계에서, 시그널링 서버(130)는 웹 브라우저(125)의 후보자들을 웹 실시간 통신기(115)에 중계할 수 있다. S317단계에서, 웹 실시간 통신기(115) 또한 네트워크(105) 내에서 웹 실시간 통신기(115)를 식별하기 위한 후보자들을 전송할 수 있다. S318단계에서, 시그널링 서버(130)는 웹 실시간 통신기(115)의 후보자들을 웹 브라우저(125)에 중계할 수 있다. 실시 예들에서, 웹 실시간 통신기(115) 및 웹 브라우저(125) 각각은 STUN(Session Traversal Utilities for NAT) 서버들을 이용하여 후보자들을 결정할 수 있다. 예를 들면, STUN 서버들은 웹 실시간 통신기(115) 및 웹 브라우저(125)로부터의 요청들에 응답하여 후보자들을 리턴할 수 있다. S315단계 내지 S318단계를 통해, 웹 실시간 통신기(115) 및 웹 브라우저(125) 각각은 웹 실시간 통신이 수행될 IP 어드레스와 포트를 특정할 수 있다.In operation S315, the
앞서 설명된 실시 예에서, 웹 브라우저(125)가 오퍼를 전송하고 그 후 웹 실시간 통신기(115)가 오퍼에 응답하여 대답을 전송한다. 그러나, 본 발명의 실시 예들은 여기에 한정되지 않으며, S311단계 내지 S318단계의 순서는 다양하게 변경될 수 있다. 예를 들면, 웹 실시간 통신기(115)가 먼저 오퍼를 전송하여 시그널링을 시작하고, 웹 브라우저(125)가 오퍼에 응답하여 대답을 전송할 수 있다.In the embodiment described above, the
S320단계에서, 시그널링이 성공적으로 수행된 후에, 웹 실시간 통신기(115) 및 웹 브라우저(125)는 웹 실시간 통신에 기반하여 단대단 통신을 수행할 수 있다.In step S320, after the signaling is successfully performed, the web real
다시 도 4를 참조하면, S220단계에서, 패킷화된 미디어 데이터(PKMD)를 스트리밍 서버(113)에 요청한다. 이에 따라 웹 실시간 통신기(115)는 인코딩된 미디어 데이터(ECMD)를 포함하는 패킷화된 미디어 데이터(PKMD)를 스트리밍 서버로부터 수신한다.Referring back to FIG. 4, in step S220, the streaming
S230단계에서, 패킷화된 미디어 데이터를 디패킷화하여 인코딩된 미디어 데이터(ECMD)를 획득한다. 웹 실시간 통신기(115)는 스트리밍 서버(113)의 실시간 네트워크 프로토콜에 기반하여 패킷화된 미디어 데이터(PKMD)의 페이로드를 파싱하고, 페이로드로부터 인코딩된 미디어 데이터(ECMD)를 추출할 수 있다.In operation S230, the packetized media data is depacked to obtain encoded media data ECMD. The web
S220단계 또는 S230단계를 수행하기 전에, 도 6을 참조하면, 웹 실시간 통신기(115)는 스트리밍 서버(113)의 실시간 네트워크 프로토콜을 판별할 수 있다(S410단계). 판별된 실시간 네트워크 프로토콜에 기초하여, 웹 실시간 통신기(115)는 패킷화된 미디어 데이터(PKMD)의 페이로드를 식별할 수 있다. 실시 예들에서, 웹 실시간 통신기(115)는 구성 파일(configuration file)과 같은 설정 정보를 소스 장치(110) 내 임의의 종류들의 내부 스토리지들(도 7의 1300 및 1600 참조) 또는 소스 장치(110)와 연관된 임의의 종류들의 외부 스토리지들로부터 읽을 수 있으며, 읽어진 설정 정보에 기반하여 스트리밍 서버(113)의 실시간 네트워크 프로토콜을 판별할 수 있다. 다른 실시 예에서, 웹 실시간 통신기(115)는 다수의 실시간 네트워크 프로토콜들에 따르는 스트리밍 서버들을 순차적으로 호출(call)할 수 있으며, 그에 따른 응답이 수신되는지 여부에 따라 스트리밍 서버(113)의 실시간 네트워크 프로토콜을 판별할 수 있다.Before performing step S220 or step S230, referring to FIG. 6, the web
다시 도 4를 참조하면, S240단계에서, 인코딩된 미디어 데이터(ECMD)를 이용하여 웹 실시간 통신을 수행한다. 웹 실시간 통신기(115)는 인코딩된 미디어 데이터(ECMD)를 싱크 장치(120)의 웹 브라우저(125)에 전송할 수 있다.Referring back to FIG. 4, in step S240, web real time communication is performed using encoded media data ECMD. The web
본 발명의 실시 예에 따른 웹 실시간 통신기(115)를 포함하는 소스 장치(110)는 미디어 인코더(112)에 의해 인코딩된 미디어 데이터(ECMD)를 웹 실시간 통신에 사용함으로써 향상된 인코딩 효율을 가질 수 있다. 나아가, 스트리밍 서버(113)를 통해 인코딩된 미디어 데이터(ECMD)를 제공함으로써, 웹 실시간 통신기(115)의 호환성은 향상될 수 있다.The
도 7은 소스 장치(110)의 실시 예들을 구현하기 위한 컴퓨터 시스템(1000)의 실시 예를 보여주는 블록도이다.7 is a block diagram illustrating an embodiment of a
도 7을 참조하면, 컴퓨터 시스템(1000)는 버스(1100), 프로세서(1200, Processor), 시스템 메모리(1300, System Memory), 반도체 칩(1400), 미디어 녹화기(1500, Media Recorder), 저장 매체(1600, Storage Medium), 및 네트워크 인터페이스(1700, Network Interface)를 포함할 수 있다.Referring to FIG. 7, the
버스(1100) 혹은 그 밖의 통신 메커니즘은 데이터, 신호들, 및 정보의 통신을 위해 컴퓨터 시스템(1000)의 다양한 구성 요소들을 연결한다. 프로세서(1200)는 범용 프로세서 혹은 전용 프로세서 중 적어도 하나일 수 있으며, 컴퓨터 시스템(1000)의 제반 동작들을 제어할 수 있다. 시스템 메모리(1300)는 프로세서(1200)에 의해 실행될 정보 및 명령어들을 저장할 수 있다. 시스템 메모리(1300)는 RAM(Random Access Memory), ROM(Read Only Memory), 및 다양한 타입들의 컴퓨터에 의해 판독 가능한 매체들 중 적어도 하나의 임의의 조합일 수 있다.The
반도체 칩(1400)은 버스(1100)에 연결되어 인코딩된 미디어 데이터(도 2의 ECMD 참조)를 제공할 수 있다. 반도체 칩(1400)은 미디어 소스를 인코딩하는 미디어 인코더(1410)를 포함할 수 있다. 미디어 소스 및/또는 인코딩된 미디어 데이터는 반도체 칩(1400)의 내부 메모리(1420) 또는 컴퓨터 시스템(1000)의 시스템 메모리(1300) 내에 저장될 수 있다. 내부 메모리(1420) 및/또는 시스템 메모리(1300)는 도 2에 도시된 메모리(111)로서 제공될 수 있다.The
실시 예들에서, 미디어 인코더(1410)는 하드웨어 인코더일 수 있다. 다른 실시 예에서, 반도체 칩(1400)은 미디어 인코더(1410)에 대응하는 프로그램 코드들을 실행하는 하나 또는 그 이상의 프로세서들을 포함할 수 있다. 이러한 경우, 내부 메모리(1420)는 그러한 프로세서들의 워킹 메모리로서 제공될 수 있다.In embodiments,
시스템 메모리(1300)는 프로세서(1200)에 의해 실행될 때 특정 기능들을 제공하는 프로그램 코드들을 저장할 수 있다. 그러한 프로그램 코드들은 패킷화된 미디어 데이터(도 2의 PKMD 참조)를 처리하여 인코딩된 미디어 데이터(도 2의 ECMD 참조)를 생성하고, 인코딩된 미디어 데이터를 외부의 웹 브라우저(도 2의 120 참조)에 전송하여 웹 실시간 통신을 수행하는 기능들, 그리고 여기에 기재된 다른 기능들을 제공하기 위한 웹 실시간 통신 모듈(1310, WebRTC Module)을 포함할 수 있다. 즉, 웹 실시간 통신 모듈(1310)은 프로세서(1200)에 의해 실행될 때 도 2에 도시된 웹 실시간 통신기(1150)의 기능들을 제공할 수 있다. 시스템 메모리(1300)에 저장된 프로그램 코드들은 프로세서(1200)에 의해 실행될 때 도 2에 도시된 스트리밍 서버(1320)의 기능들을 제공하기 위한 스트리밍 모듈(1320, Streaming Module)을 더 포함할 수 있다. 또한, 시스템 메모리(1300)에 저장된 프로그램 코드들은 다른 기능들을 제공하기 위한 하나 또는 그 이상의 추가적인 기능 모듈들(Additaional Functional Modules)을 더 포함할 수 있다. 예를 들면, 시스템 메모리(1300)에 저장된 프로그램 코드들은 컴퓨터 시스템(1000)에 대해 운영 체제(operating system)을 제공하는 운영 체제 모듈을 더 포함할 수 있다.The
미디어 녹화기(1500)는 이미지들 및/또는 음성을 녹화하여 영상 데이터 및/또는 음성 데이터를 제공한다. 영상 데이터 및/또는 음성 데이터는 프로세서(1200)에 의해 처리되어 미디어 소스로 제공될 수 있다. 도 7에는 미디어 녹화기(1500)가 컴퓨터 시스템(1000)에 포함되는 것으로 도시되나, 본 발명의 실시 예들은 여기에 한정되지 않는다. 예를 들면, 미디어 녹화기(1500)는 컴퓨터 시스템(1000)과 분리될 수 있고, 네트워크를 통해 컴퓨터 시스템(1000)과 통신할 수 있다. 이러한 경우, 컴퓨터 시스템(1000)은 분리된 미디어 녹화기(1500)로부터의 영상 데이터 및/또는 음성 데이터를 네트워크 인터페이스(1700)를 통해 수신할 수 있다.The
저장 매체(1600)는 프로세서(1200)에 의해 액세스 가능한 다양한 매체들 중 적어도 하나일 수 있다. 저장 매체(1600)는 메모리 카드와 같은 불휘발성 스토리지를 포함할 수 있다. 예를 들면, 저장 매체(1600)는 컴팩트 플래쉬(Compact Flash: CF) 카드, 스마트 미디어(Smart Media: SM) 카드, 메모리 스틱, 멀티 미디어 카드(Multi Media Card: MMC), 보안 디지털(Secure Digital: SD) 카드, 유니버셜 플래시 스토리지(Universal Flash Storage: UFS) 등 중 적어도 하나를 포함할 수 있다. 또한, 저장 매체(1600)는 탈착 가능하거나 탈착 불가한 스토리지들을 포함할 수 있다.The
네트워크 인터페이스(1700)(또는 트랜시버)는 네트워크를 통해 컴퓨터 시스템(1000)과 다른 장치들 사이의 신호들을 송수신한다. 네트워크는 단일 네트워크 혹은 다수 네트워크들의 조합일 수 있다. 예를 들면, 네트워크는 공용 네트워크, 하나 또는 그 이상의 사설 네트워크들, 유선 네트워크, 무선 네트워크, 및/또는 컴퓨터 시스템(1000) 및 도 1에 도시된 네트워크 시스템(100)의 다양한 구성 요소들이 액세스 가능한 다른 적절한 타입들의 네트워크들을 포함할 수 있다.Network interface 1700 (or transceiver) transmits and receives signals between
실시 예들에서, 컴퓨터 시스템(1000)은 사용자 액션(user action), 예를 들면 키패드에서 키들을 선택하는 입력이나 버튼 및 이미지 등을 선택하는 입력을 처리하며, 해당 신호를 버스(1100)에 전송하는 입출력 구성 요소를 더 포함할 수 있다.In embodiments, the
도 8은 본 발명의 다른 실시 예에 따른 소스 장치(210)를 보여주는 블록도이다.8 is a block diagram illustrating a
도 8을 참조하면, 소스 장치(210)는 메모리(211, Memory), 미디어 인코더(212, Media Encoder), 스트리밍 서버(213, Streaming Server), 및 웹 실시간 통신기(215, Web Real-time Communicator)를 포함한다. 메모리(211), 미디어 인코더(212), 및 스트리밍 서버(213)는 도 2를 참조하여 설명된 메모리(111), 미디어 인코더(112), 및 스트리밍 서버(113)와 마찬가지로 구성될 수 있다. 이하, 간결한 설명을 위해 이 구성 요소들에 대한 설명은 생략된다.Referring to FIG. 8, the
웹 실시간 통신기(215)가 싱크 장치(120)의 웹 브라우저(125)와 시그널링을 수행할 때, 미디어 인코더(212)에 대응하지 않는 미디어 압축 표준이 선택될 수 있다. 예를 들면, 싱크 장치(120)의 웹 브라우저(125)가 미디어 인코더(212)에서 지원되는 미디어 압축 표준을 지원하지 않는 경우, 미디어 인코더(212)에서 지원되는 미디어 압축 표준은 웹 브라우저(125)와의 협상에서 선택할 수 없다. 이러한 경우, 미디어 인코더(212)에 대응하지 않는 다른 미디어 압축 표준이 선택될 수 있다.When the web real-
본 발명의 실시 예에 따르면, 웹 실시간 통신기(215)는 시그널링 결과에 따라 스트리밍 서버(213)에 패킷화된 미디어 데이터(PKMD)를 요청한다.According to an embodiment of the present invention, the web real
시그널링에서 미디어 인코더(212)에 대응하는 미디어 압축 표준이 선택될 때, 웹 실시간 통신기(215)의 스트리밍 클라이언트(215a)는 스트리밍 서버(213)에 패킷화된 미디어 데이터(PKMD)를 요청할 수 있다. 요청에 응답하여, 스트리밍 서버(213)는 미디어 캡쳐 드라이버(213a)를 이용하여 미디어 인코더(212)에 의해 제공되는 인코딩된 미디어 데이터(ECMD)를 캡쳐하고, 패킷화된 미디어 데이터(PKMD)를 생성한다. 웹 실시간 통신기(215)는 스트리밍 클라이언트(215a)를 통해 패킷화된 미디어 데이터(PKMD)를 수신하고 패킷화된 미디어 데이터(PKMD)를 이용하여 웹 실시간 통신을 수행할 수 있다.When the media compression standard corresponding to the
시그널링에서 미디어 인코더(212)에 대응하지 않는 다른 미디어 압축 표준이 선택될 때, 웹 실시간 통신기(215)는 메모리(211)로부터 직접 미디어 소스(MS)를 수신할 수 있다. 웹 실시간 통신기(215)도 미디어 캡쳐 드라이버(215b)를 포함할 수 있다. 웹 실시간 통신기(215)의 미디어 캡쳐 드라이버(215b)는 메모리(211)로부터 미디어 소스(MS)를 캡쳐할 수 있다. 웹 실시간 통신기(215)는 캡쳐된 미디어 소스(MS)를 시그널링에서 선택된 미디어 압축 표준에 기반하여 인코딩할 수 있다. 웹 실시간 통신기(215)는 인코딩된 미디어 데이터를 이용하여 웹 실시간 통신을 수행할 수 있다.When another media compression standard is selected that does not correspond to the
도 9는 본 발명의 다른 실시 예에 따른 웹 실시간 통신기(215)의 동작 방법을 보여주는 순서도이다.9 is a flowchart illustrating a method of operating a web real-
도 8 및 도 9를 참조하면, S510단계에서, 싱크 장치(120)의 웹 브라우저(125)와 웹 실시간 통신을 위한 시그널링을 수행한다. 시그널링에서 미디어 데이터에 적용될 미디어 압축 표준이 선택된다.8 and 9, in step S510, signaling for web real-time communication with the
S520단계에서, 시그널링에서 선택된 미디어 압축 표준이 미디어 인코더(212)에 대응하는지 여부를 판별한다. 만약 그렇다면, S530단계 및 S540단계가 수행된다. 시그널링에서 선택된 미디어 압축 표준이 미디어 인코더(212)에 대응할 때, 미디어 소스는 상대적으로 높은 처리 속도를 갖는 미디어 인코더(212)에 의해 인코딩될 수 있다. 실시 예들에서, 미디어 인코더(212)에 대응하는 미디어 압축 표준은 영상 압축 표준들 H.263, H.264, 및 H.265 중 적어도 하나일 수 있다. 이와 같이, S530단계 및 S540단계는 시그널링에서 선택된 미디어 압축 표준이 미디어 인코더(212)에 대응할 때 수행될 수 있다. S530단계 및 S540단계는 도 4의 S220단계 및 S230단계와 마찬가지로 설명되며, 그러므로 중복되는 설명은 생략된다.In step S520, it is determined whether the media compression standard selected in the signaling corresponds to the
S550단계에서, 시그널링에서 선택된 미디어 압축 표준이 미디어 인코더(212)에 대응하지 않을 때 미디어 소스를 캡쳐한다. S560단계에서, 선택된 미디어 압축 표준에 기반하여, 캡쳐된 미디어 소스를 인코딩한다. 예를 들면, 웹 실시간 통신기(215)에 의해 인코딩되는 미디어 압축 표준은 영상 압축 표준들 VP8, VP9, 및 AV1 중 적어도 하나일 수 있다.In operation S550, the media source is captured when the media compression standard selected in the signaling does not correspond to the
S570단계에서, 인코딩된 미디어 데이터를 이용하여 웹 실시간 통신을 수행한다. 웹 실시간 통신기(215)는 싱크 장치(120)의 웹 브라우저(125)에 인코딩된 미디어 데이터를 전송할 수 있다.In operation S570, web real time communication is performed using the encoded media data. The web
본 발명의 실시 예에 따르면, 시그널링에서 선택되는 미디어 압축 표준이 미디어 인코더(212)에 대응하지 않을 때, 웹 실시간 통신기(215)는 웹 실시간 통신을 위해 미디어 소스를 직접 인코딩할 수 있다. 이에 따라, 싱크 장치들의 다양한 웹 브라우저들에 대해 상대적으로 높은 호환성을 갖는 소스 장치가 제공될 수 있다.According to an embodiment of the present invention, when the media compression standard selected in the signaling does not correspond to the
도 10은 본 발명의 또 다른 실시 예에 따른 소스 장치(310)를 보여주는 블록도이다.10 is a block diagram illustrating a
도 10을 참조하면, 소스 장치(310)는 메모리(311, Memory), 미디어 인코더(312, Media Encoder), 스트리밍 서버(313, Streaming Server), 및 웹 실시간 통신기(315, Web Real-time Communicator)를 포함한다. 메모리(311), 미디어 인코더(312), 및 스트리밍 서버(313)는 도 2를 참조하여 설명된 메모리(111), 미디어 인코더(112), 및 스트리밍 서버(113)와 마찬가지로 구성될 수 있다. 이하, 간결한 설명을 위해 이 구성 요소들에 대한 설명은 생략된다.Referring to FIG. 10, the
미디어 인코더(312)로부터 인코딩된 미디어 데이터(ECMD)를 더 수신하는 것을 제외하면, 웹 실시간 통신기(315)는 도 8을 참조하여 설명된 웹 실시간 통신기(215)와 마찬가지로 구성된다. 웹 실시간 통신기(315)는 적어도 하나의 다양한 타입들의 미디어 인코더들에 액세스 가능하도록 설계될 수 있다. 웹 실시간 통신기(315)의 미디어 캡쳐 드라이버(315b)는 미디어 인코더(312)에 액세스 가능할 때 미디어 인코더(312)로부터 인코딩된 미디어 데이터(ECMD)를 캡쳐할 수 있다.Except for further receiving the encoded media data ECMD from the
도 11은 본 발명의 또 다른 실시 예에 따른 웹 실시간 통신기(315)의 동작 방법을 보여주는 순서도이다.11 is a flowchart illustrating a method of operating a web real-
도 10 및 도 11을 참조하면, S610단계에서, 싱크 장치(120)의 웹 브라우저(125)와 웹 실시간 통신을 위한 시그널링을 수행한다.10 and 11, in step S610, signaling for web real-time communication with the
S620단계에서, 시그널링에서 선택된 미디어 압축 표준이 미디어 인코더(312)에 대응하는지 여부를 판별한다. 만약 그렇다면, S630단계가 수행된다. S630단계에서, 스트리밍 서버(313)가 존재하는지 여부를 판별한다. 예를 들면, 도 6을 참조하여 설명된 바와 같이, 웹 실시간 통신기(315)는 설정 정보를 읽거나 여러 실시간 네트워크 프로토콜들에 따른 스트리밍 서버들을 순차적으로 호출하여 스트리밍 서버(313)가 존재하는지 여부를 판별한다. S640단계 및 S650단계는 스트리밍 서버(313)가 존재할 때 수행된다. S640단계 및 S650단계는 도 4의 S220단계 및 S230단계와 마찬가지로 설명되며, 그러므로 중복되는 설명은 생략된다.In step S620, it is determined whether the media compression standard selected in the signaling corresponds to the
선택된 미디어 압축 표준이 미디어 인코더(312)에 대응하지 않을 때, S660단계 및 S670단계가 수행된다. S660단계 및 S670단계는 도 9의 S550단계 및 S560단계와 마찬가지로 설명되며, 이하 중복되는 설명은 생략된다.When the selected media compression standard does not correspond to the
S680단계에서, 미디어 인코더(312)가 액세스 가능한지 여부를 판별한다. S690단계에서, 미디어 인코더(312)가 액세스 가능할 때, 인코딩된 미디어 데이터(ECMD)를 미디어 인코더(312)로부터 캡쳐한다. 좀 더 상세하게, 웹 실시간 통신기(315)는 다양한 타입들의 미디어 인코더들 중 적어도 하나에 액세스 가능하도록 설계될 수 있다. 그리고, 스트리밍 서버(313)가 존재하지 않지만 소스 장치(310) 내 미디어 인코더(312)가 상기 다양한 타입들의 미디어 인코더들 중 적어도 하나에 포함될 때, 웹 실시간 통신기(315)는 인코딩된 미디어 데이터(ECMD)를 미디어 인코더(312)로부터 캡쳐할 수 있다. 예를 들면, 웹 실시간 통신기(315)는 소스 장치(310)의 내부 스토리지들로부터 혹은 소스 장치(310)와 연관된 외부 스토리지들로부터 설정 정보를 읽어 소스 장치(310)에 액세스 가능한 미디어 인코더가 포함되는지 여부를 판별할 수 있다. 또는, 웹 실시간 통신기(315)는 하나 또는 그 이상의 타입들의 미디어 인코더들을 순차적으로 호출하여 소스 장치(310)에 액세스 가능한 미디어 인코더가 포함되는지 여부를 판별할 수 있다.In step S680, it is determined whether the
S700단계에서, 인코딩된 미디어 데이터(ECMD)를 이용하여 웹 실시간 통신을 수행한다.In operation S700, web real-time communication is performed using the encoded media data ECMD.
본 발명의 실시 예에 따르면, 웹 실시간 통신기(315)는 미디어 인코더(312)가 액세스 가능할 때 미디어 인코더(312)로부터 인코딩된 미디어 데이터(ECMD)를 캡쳐할 수 있다. 이에 따라, 비록 소스 장치(310)가 스트리밍 서버(312)를 포함하지 않는다 하더라도, 웹 실시간 통신기(315)를 포함하는 소스 장치(310)는 향상된 인코딩 효율을 가질 수 있고, 이에 따라 다양한 소스 장치들에 대한 웹 실시간 통신기(315)의 호환성은 향상된다.According to an embodiment of the present disclosure, the web real-
도 12는 소스 시스템(410)을 포함하는 네트워크 시스템(400)을 보여주는 블록도이다.12 is a block diagram illustrating a
도 12를 참조하면, 소스 시스템(410)은 네트워크(405)를 통해 싱크 장치(420)와 시그널링 서버(430)에 연결될 수 있다.Referring to FIG. 12, the
소스 시스템(410)은 미디어 소스들을 제공하는 하나 또는 그 이상의 소스 장치(SOURCE DEVICE)들(SD1~SDm) 및 그 소스 장치들(SD1~SDm)과 통신하는 웹 실시간 통신 장치(415, Web Real-time Communication Device)를 포함한다. 웹 실시간 통신 장치(415)는 제 1 내지 제 m 소스 장치들(SD1~SDm)에 웹 실시간 통신 기능을 제공한다. 웹 실시간 통신 장치(415)는 시그널링 서버(430, SIGNALING SERVER)를 통해 싱크 장치(420)의 웹 브라우저(425)와 시그널링을 수행한다.The
웹 실시간 통신 장치(415)는, 예를 들면 라우터들 뒷단의 사설 네트워크를 통해 제 1 내지 제 m 소스 장치들(SD1~SDm)에 연결될 수 있다. 웹 실시간 통신 장치(415)는 시그널링을 수행한 후에 패킷화된 미디어 데이터를 제 1 내지 제 m 소스 장치들(SD1~SDm) 각각에 요청할 수 있다. 그러한 요청에 응답하여, 제 1 내지 제 m 소스 장치들(SD1~SDm) 각각은 인코딩된 미디어 데이터를 포함하는 패킷화된 미디어 데이터를 웹 실시간 통신 장치(415)에 제공할 수 있다.The web real
도 13은 본 발명의 실시 예에 따른 소스 시스템(410)을 보여주는 블록도이다.13 is a block diagram illustrating a
도 13을 참조하면, 제 1 내지 제 m 소스 장치들(SD1~SDm) 각각은 메모리, 미디어 인코더, 및 스트리밍 서버를 포함할 수 있다. 제 1 소스 장치(SD1)는 제 1 메모리(511, First Memory), 제 1 미디어 인코더(512, First Media Encoder), 및 제 1 스트리밍 서버(513, First Streaming Server)를 포함한다. 제 2 소스 장치(SD2)는 제 2 메모리(521, Second Memory), 제 2 미디어 인코더(522, Second Media Encoder), 및 제 2 스트리밍 서버(523, Second Streaming Server)를 포함한다. 제 m 소스 장치(SDm)는 제 m 메모리(5m1, m-th Memory), 제 m 미디어 인코더(5m2, m-th Media Encoder), 및 제 m 스트리밍 서버(5m3, m-th Streaming Server)를 포함한다.Referring to FIG. 13, each of the first to m th source devices SD1 to SDm may include a memory, a media encoder, and a streaming server. The first source device SD1 includes a
웹 실시간 통신 장치(415)는 제 1 내지 제 m 채널들(CH1~CHm)을 통해 각각 제 1 내지 제 m 스트리밍 서버들(513~5m3)과 통신할 수 있다. 웹 실시간 통신 장치(415) 및 소스 장치들(SD1~SDm)은 제 1 내지 제 m 채널들(CH1~CHm)에 연결하기 위한 네트워크 포트들을 포함할 수 있다.The web real-
웹 실시간 통신 장치(415)는 시그널링을 수행한 후에 패킷화된 미디어 데이터를 해당 소스 장치의 스트리밍 서버에 요청할 수 있다. 요청을 수신한 소스 장치의 미디어 인코더는 메모리의 미디어 소스를 인코딩하고 인코딩된 미디어 데이터를 생성한다. 스트리밍 서버는 인코딩된 미디어 데이터를 패킷화하고 패킷화된 미디어 데이터를 웹 실시간 통신 장치(415)의 스트리밍 클라이언트(415a)에 전송한다. 도 13은 제 1 내지 제 m 미디어 인코더들(512~5m2)이 제 1 내지 제 m 인코딩된 미디어 데이터들(ECMD1~ECMDm)을 각각 제공하고, 제 1 내지 제 m 스트리밍 서버들(513~5m3)이 각각 제 1 내지 제 m 패킷화된 미디어 데이터들(PKMD1~PKMDm)을 웹 실시간 통신 장치(415)에 전송하는 것으로 도시된다. 웹 실시간 통신 장치(415)는 수신된 패킷화된 미디어 데이터를 처리하여 인코딩된 미디어 데이터를 생성하고, 인코딩된 미디어 데이터를 싱크 장치(420)의 웹 브라우저(425)에 전송하여 웹 실시간 통신을 수행할 수 있다.After performing the signaling, the web real
실시 예들에서, 웹 실시간 통신 장치(415)는, 제 1 내지 제 m 패킷화된 미디어 데이터(PKMD1~PKMDm)를 수신하기 전에, 제 1 내지 제 m 소스 장치들(SD1~SDm)로부터 제 1 내지 제 m 스트리밍 서버들(513~5m3)의 실시간 네트워크 프로토콜들의 정보를 수신할 수 있다.In embodiments, the web real-
도 14는 도 13의 소스 시스템(410)의 변형 실시 예(600)를 보여주는 블록도이다.FIG. 14 is a block diagram illustrating a modified example 600 of the
도 14를 참조하면, 제 1 내지 제 m 소스 장치들(SD1’~SDm’) 각각은 메모리와 미디어 인코더를 포함할 수 있다. 제 1 소스 장치(SD1’)는 제 1 메모리(611, First Memory)와 제 1 미디어 인코더(612, First Media Encoder)를 포함하고, 제 2 소스 장치(SD2’)는 제 2 메모리(621, Second Memory) 및 제 2 미디어 인코더(622, Second Media Encoder)를 포함하고, 제 m 소스 장치(SDm’)는 제 m 메모리(6m1, m-th Memory)와 제 m 미디어 인코더(6m2, m-th Media Encoder)를 포함한다.Referring to FIG. 14, each of the first to m th source devices SD1 ˜ SDm ′ may include a memory and a media encoder. The first source device SD1 ′ includes a
스트리밍 서버(713, Streaming Server)는 웹 실시간 통신 장치(700)에 통합될 수 있다. 웹 실시간 통신 장치(700)의 스트리밍 서버(713)는 제 1 내지 제 m 채널들(CH1~CHm)을 통해 제 1 내지 제 m 소스 장치들(SD1’~SDm’)과 각각 통신할 수 있다. 스트리밍 서버(713)는 제 1 내지 제 m 채널들(CH1~CHm)을 통해 제 1 내지 제 m 인코딩된 미디어 데이터들(ECMD1~ECMDm)을 각각 수신하고, 제 1 내지 제 m 패킷화된 미디어 데이터들(PKMD1~PKMDm)을 웹 실시간 통신 장치(700)의 웹 실시간 통신기(715, Web Real-time Communicator)에 제공한다.The streaming
실시 예들에서, 도 12 및 도 13에 도시된 소스 장치들(SD1~SDm, SD1’~SDm’)과 웹 실시간 통신 장치들(415, 700)은 도 7을 참조하여 설명된 컴퓨터 시스템(1000)을 통해 구현될 수 있다. 이러한 경우, 소스 장치들(SD1~SDm, SD1’~SDm’)은 도 12 및 도 13에 도시된 실시 예들에 따라 선택적으로 스트리밍 모듈(1320)을 포함할 수 있다. 웹 실시간 통신 장치(415, 700)는 반도체 칩(1400)을 포함하지 않으며, 도 12 및 도 13에 도시된 실시 예들에 따라 선택적으로 스트리밍 모듈(1320)을 포함할 수 있다. 실시 예들에서, 웹 실시간 통신 장치들(415, 700)의 기능들은 하드웨어 장치에 의해 제공될 수 있다.In embodiments, the source devices SD1 to SDm, SD1 'to SDm', and the web real
비록 특정 실시 예들 및 적용 례들이 여기에 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정들 및 변형들이 가능하다.Although specific embodiments and application examples have been described herein, these are provided only to aid a more general understanding of the present invention, and the present invention is not limited to the above embodiments and has ordinary skill in the art to which the present invention pertains. Many modifications and variations are possible in this disclosure from the disclosure.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the described embodiments, and all the things that are equivalent to or equivalent to the claims as well as the following claims will belong to the scope of the present invention. .
100: 네트워크 시스템
105: 네트워크
110: 소스 장치
111: 메모리
112: 미디어 인코더
113: 스트리밍 서버
115: 웹 실시간 통신기
120: 싱크 장치
125: 웹 브라우저100: network system
105: network
110: source device
111: memory
112: media encoder
113: streaming server
115: web real time communicator
120: sink device
125: web browser
Claims (21)
상기 소스 장치는 소정의 미디어 압축 표준에 기반한 인코딩을 수행하도록 구성되는 미디어 인코더를 포함하며,
상기 방법은,
네트워크를 통해 상기 웹 브라우저와 시그널링하여 상기 실시간 통신을 개시하는 단계;
상기 웹 브라우저와의 상기 시그널링의 결과 상기 실시간 통신에 대해 상기 소정의 미디어 압축 표준이 선택될 때 상기 미디어 인코더를 이용하여 미디어 소스를 인코딩함으로써 인코딩된 미디어 데이터를 생성하는 단계;
상기 인코딩된 미디어 데이터를 소정의 실시간 네트워크 프로토콜에 기반하여 패킷화하는 단계;
상기 패킷화된 미디어 데이터를 디패킷화하여 상기 인코딩된 미디어 데이터를 획득하는 단계; 및
상기 네트워크를 통해 상기 인코딩된 미디어 데이터를 상기 웹 브라우저에 전송함으로써 상기 실시간 통신을 수행하는 단계를 포함하는 방법.In a method of operating a source device that performs real time communication with an external web browser:
The source device comprises a media encoder configured to perform encoding based on a predetermined media compression standard,
The method,
Signaling with the web browser via a network to initiate the real time communication;
Generating encoded media data by encoding a media source using the media encoder when the predetermined media compression standard is selected for the real time communication as a result of the signaling with the web browser;
Packetizing the encoded media data based on a predetermined real time network protocol;
Depacketizing the packetized media data to obtain the encoded media data; And
Performing the real time communication by transmitting the encoded media data to the web browser via the network.
상기 패킷화된 미디어 데이터를 디패킷화하는 단계는 상기 패킷화된 미디어 데이터의 페이로드로부터 상기 인코딩된 미디어 데이터를 획득하는 단계인 방법.The method of claim 1,
Depacketizing the packetized media data is obtaining the encoded media data from a payload of the packetized media data.
내부 스토리지에 저장된 설정 정보를 읽어 상기 소정의 실시간 네트워크 프로토콜을 판별하는 단계를 더 포함하되,
상기 패킷화된 미디어 데이터의 상기 페이 로드는 상기 판별된 실시간 네트워크 프로토콜에 따라 식별되는 방법.The method of claim 2,
The method may further include determining the predetermined real-time network protocol by reading setting information stored in internal storage.
The payload of the packetized media data is identified according to the determined real-time network protocol.
상기 실시간 통신을 수행하는 단계는,
상기 인코딩된 미디어 데이터를 다시 패킷화하는 단계; 및
상기 다시 패킷화된 미디어 데이터를 상기 웹 브라우저로 전송하는 단계를 포함하는 방법.The method of claim 1,
The performing of the real time communication,
Repacketing the encoded media data; And
Sending the repackaged media data to the web browser.
상기 미디어 인코더는 하드웨어로 구성되는 방법.The method of claim 1,
The media encoder is configured in hardware.
상기 실시간 통신은 웹 실시간 통신(web real-time communication)을 포함하는 방법.The method of claim 1,
The real time communication comprises web real-time communication.
상기 소정의 실시간 네트워크 프로토콜은 RTP(Real-Time transport Protocol), RTSP(Real-Time Streaming Protocol), 및 RTMP(Real-Time Messaging Protocol) 중 하나인 방법.The method of claim 1,
The predetermined real time network protocol is one of a Real-Time Transport Protocol (RTP), a Real-Time Streaming Protocol (RTSP), and a Real-Time Messaging Protocol (RTMP).
상기 인코딩된 미디어 데이터는 영상 압축 표준들인 H.263, H.264, H.265, VP8, VP9, 및 AV1(AOMedia Video 1) 중 하나에 기반하는 방법.The method of claim 1,
The encoded media data is based on one of video compression standards H.263, H.264, H.265, VP8, VP9, and AV1 (AOMedia Video 1).
상기 웹 브라우저와 시그널링하여 상기 웹 실시간 통신을 개시하는 단계;
상기 시그널링의 결과에 따라 스트리밍 서버에 패킷화된 미디어 데이터를 요청하되, 상기 패킷화된 미디어 데이터는 소정의 미디어 압축 표준에 기반하여 인코딩된 미디어 데이터를 포함하는, 단계; 및
상기 패킷화된 미디어 데이터로부터 획득되는 상기 인코딩된 미디어 데이터를 상기 웹 브라우저에 전송함으로써 상기 웹 실시간 통신을 수행하는 단계를 포함하되,
상기 웹 브라우저와의 상기 시그널링 결과 상기 웹 실시간 통신에 대해 상기 소정의 미디어 압축 표준이 선택될 때 상기 스트리밍 서버에 상기 패킷화된 미디어 데이터가 요청되는 방법.In order to perform web real time communication with an external web browser:
Signaling with the web browser to initiate the web real time communication;
Requesting packetized media data from a streaming server according to a result of the signaling, wherein the packetized media data includes media data encoded based on a predetermined media compression standard; And
Performing the web real time communication by transmitting the encoded media data obtained from the packetized media data to the web browser,
The packetized media data is requested to the streaming server when the predetermined media compression standard is selected for the web real time communication as a result of the signaling with the web browser.
상기 스트리밍 서버에 대응하는 실시간 네트워크 프로토콜 정보를 상기 스트리밍 서버와 연관된 소스 장치로부터 수신하는 단계를 더 포함하되,
상기 인코딩된 미디어 데이터는 상기 패킷화된 미디어 데이터의 페이로드로부터 획득되고,
상기 패킷화된 미디어 데이터의 상기 페이로드는 상기 수신된 실시간 네트워크 프로토콜 정보에 기반하여 식별되는 방법.The method of claim 9,
Receiving real-time network protocol information corresponding to the streaming server from a source device associated with the streaming server,
The encoded media data is obtained from a payload of the packetized media data,
The payload of the packetized media data is identified based on the received real-time network protocol information.
내부 스토리지에 저장된 설정 정보를 읽어 상기 스트리밍 서버에 대응하는 실시간 네트워크 프로토콜을 판별하는 단계를 더 포함하되,
상기 인코딩된 미디어 데이터는 상기 패킷화된 미디어 데이터의 페이로드로부터 획득되고,
상기 패킷화된 미디어 데이터의 상기 페이로드는 상기 판별된 실시간 네트워크 프로토콜에 기반하여 식별되는 방법.The method of claim 9,
The method may further include determining a real-time network protocol corresponding to the streaming server by reading setting information stored in an internal storage.
The encoded media data is obtained from a payload of the packetized media data,
The payload of the packetized media data is identified based on the determined real-time network protocol.
상기 소정의 미디어 압축 표준은 영상 압축 표준들 H.263, H.264, 및 H.265 중 하나인 방법.The method of claim 9,
And the predetermined media compression standard is one of image compression standards H.263, H.264, and H.265.
상기 웹 브라우저와의 상기 시그널링의 결과 상기 웹 실시간 통신에 대해 상기 소정의 미디어 압축 표준과 상이한 미디어 압축 표준이 선택될 때, 미디어 소스를 수신하는 단계를 더 포함하는 방법.The method of claim 9,
Receiving a media source when a media compression standard different from the predetermined media compression standard is selected for the web real time communication as a result of the signaling with the web browser.
상기 상이한 미디어 압축 표준에 기반하여 상기 미디어 소스를 인코딩하는 단계; 및
상기 상이한 미디어 압축 표준에 기반하여 인코딩된 미디어 소스를 전송함으로써 상기 웹 실시간 통신을 수행하는 단계를 더 포함하는 방법.The method of claim 14,
Encoding the media source based on the different media compression standard; And
Performing the web real time communication by transmitting an encoded media source based on the different media compression standard.
제 1 미디어 압축 표준에 기반하여 미디어 소스를 처리하여 인코딩된 미디어 데이터를 생성하도록 구성되는 미디어 인코더;
소정의 실시간 네트워크 프로토콜에 기반하여 상기 인코딩된 미디어 데이터의 패킷화를 지원하도록 구성되는 스트리밍 서버; 및
상기 웹 브라우저와 시그널링하여 상기 웹 실시간 통신을 개시하고, 상기 웹 브라우저와의 상기 시그널링의 결과 상기 웹 실시간 통신에 대해 상기 제 1 미디어 압축 표준이 선택될 때 상기 스트리밍 서버에 상기 패킷화된 미디어 데이터를 요청하도록 구성되는 웹 실시간 통신기를 포함하되,
상기 웹 실시간 통신기는 상기 패킷화된 미디어 데이터를 이용하여 상기 웹 실시간 통신을 수행하도록 구성되는 소스 장치.In a source device that performs web real-time communication with an external web browser:
A media encoder configured to process the media source based on the first media compression standard to generate encoded media data;
A streaming server configured to support packetization of the encoded media data based on a predetermined real time network protocol; And
Initiating the web real time communication by signaling with the web browser and sending the packetized media data to the streaming server when the first media compression standard is selected for the web real time communication as a result of the signaling with the web browser. Include a web real-time communicator configured to request,
And the web real time communicator is configured to perform the web real time communication using the packetized media data.
상기 웹 실시간 통신기는 상기 시그널링의 결과 상기 웹 실시간 통신에 대해 상기 제 1 미디어 압축 표준과 상이한 제 2 미디어 압축 표준이 선택될 때 상기 미디어 소스를 수신하여 상기 웹 실시간 통신을 수행하도록 구성되는 소스 장치.The method of claim 16,
And the web real time communicator is configured to receive the media source and perform the web real time communication when a second media compression standard different from the first media compression standard is selected for the web real time communication as a result of the signaling.
상기 웹 실시간 통신기는,
상기 수신된 미디어 소스를 상기 제 2 미디어 압축 표준에 기반하여 인코딩하고,
상기 제 2 미디어 압축 표준에 기반하여 인코딩된 미디어 소스를 이용하여 상기 웹 실시간 통신을 수행하도록 구성되는 소스 장치.The method of claim 18,
The web real time communicator,
Encode the received media source based on the second media compression standard,
And perform the web real time communication using a media source encoded based on the second media compression standard.
상기 웹 실시간 통신기는,
상기 패킷화된 미디어 데이터의 페이로드로부터 상기 인코딩된 미디어 데이터를 추출하고,
상기 인코딩된 미디어 데이터를 상기 웹 브라우저에 전송하여 상기 웹 실시간 통신을 수행하도록 구성되는 소스 장치.The method of claim 16,
The web real time communicator,
Extract the encoded media data from the payload of the packetized media data,
And transmit the encoded media data to the web browser to perform the web real time communication.
소정의 미디어 압축 표준에 기반한 인코딩을 수행하도록 구성되는 미디어 인코더; 및
적어도 하나의 프로세서를 포함하되,
상기 적어도 하나의 프로세서는,
상기 웹 브라우저와 시그널링을 수행하고;
상기 웹 브라우저와의 상기 시그널링의 결과 상기 웹 실시간 통신에 대해 상기 소정의 미디어 압축 표준이 선택될 때 상기 미디어 인코더를 이용하여 미디어 소스를 인코딩함으로써 인코딩된 미디어 데이터를 생성하고;
상기 인코딩된 미디어 데이터를 소정의 실시간 네트워크 프로토콜에 기반하여 패킷화하고;
상기 패킷화된 미디어 데이터를 디패킷화하여 상기 웹 실시간 통신을 위한 상기 인코딩된 미디어 데이터를 획득하도록 구성되는 소스 장치.In a source device that performs web real-time communication with an external web browser:
A media encoder configured to perform encoding based on a predetermined media compression standard; And
Include at least one processor,
The at least one processor,
Perform signaling with the web browser;
Generate encoded media data by encoding a media source using the media encoder when the predetermined media compression standard is selected for the web real time communication as a result of the signaling with the web browser;
Packetize the encoded media data based on a predetermined real-time network protocol;
And depacketize the packetized media data to obtain the encoded media data for the web real time communication.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762500390P | 2017-05-02 | 2017-05-02 | |
US62/500,390 | 2017-05-02 | ||
US15/685,538 | 2017-08-24 | ||
US15/685,538 US10644928B2 (en) | 2017-05-02 | 2017-08-24 | Device, system, and method to perform real-time communication |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180122267A KR20180122267A (en) | 2018-11-12 |
KR102064284B1 true KR102064284B1 (en) | 2020-01-09 |
Family
ID=60051352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170134168A KR102064284B1 (en) | 2017-05-02 | 2017-10-16 | Device, system, and method to perform real-time communication |
Country Status (4)
Country | Link |
---|---|
US (1) | US10644928B2 (en) |
EP (1) | EP3399713B1 (en) |
KR (1) | KR102064284B1 (en) |
CN (1) | CN108809924B (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6749281B2 (en) * | 2017-03-23 | 2020-09-02 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | IoT device, signaling server, message bus management server, connection forming method, and program |
CN113727113A (en) * | 2020-05-26 | 2021-11-30 | 网易(杭州)网络有限公司 | Video decoding method, stream pushing method and system |
CN112073423A (en) * | 2020-09-15 | 2020-12-11 | 杭州二更网络科技有限公司 | Browser plug-flow method and system based on WebRTC |
CN117356085A (en) * | 2021-05-21 | 2024-01-05 | 克鲁德尔科技公司 | Peer-to-peer conference system and method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130163580A1 (en) * | 2009-10-06 | 2013-06-27 | Adobe Systems, Inc. | Client-server architecture for audio-video communications |
US20170078359A1 (en) * | 2015-09-16 | 2017-03-16 | Oracle International Corporation | Encapsulating and tunneling webrtc traffic |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7676590B2 (en) | 2004-05-03 | 2010-03-09 | Microsoft Corporation | Background transcoding |
CN101056231A (en) * | 2006-05-18 | 2007-10-17 | 华为技术有限公司 | Stream media-based public video system and its implementation method |
CN101212452B (en) * | 2006-12-31 | 2012-06-06 | 中兴通讯股份有限公司 | Real-time transport protocol based multimedia data transmission control method |
CN101257419B (en) * | 2007-02-27 | 2010-12-29 | 中国移动通信集团公司 | Wireless VOIP voice frame combining method as well as radio device |
EP2820859A1 (en) * | 2012-03-01 | 2015-01-07 | Telefonaktiebolaget LM Ericsson (PUBL) | Mixer for providing media streams towards a plurality of endpoints whereby the media streams originating from one or more media source and method therefore |
US10306239B2 (en) * | 2014-05-13 | 2019-05-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods, source device, target device and analyser for managing video coding |
US20150350288A1 (en) | 2014-05-28 | 2015-12-03 | Qualcomm Incorporated | Media agnostic display for wi-fi display |
US20160119399A1 (en) | 2014-10-24 | 2016-04-28 | Kevin J. Glass | Extending browser support of real time media to any available codec |
KR20160116493A (en) | 2015-03-30 | 2016-10-10 | 주식회사 넷시즌 | Multi-Access CCTV System Based on WebRTC |
US10110930B2 (en) * | 2015-07-02 | 2018-10-23 | Dialogic Corporation | Robust packet loss handling in recording real-time video |
EP3353964A4 (en) * | 2015-09-25 | 2019-05-01 | Telefonaktiebolaget LM Ericsson (publ) | Method and interworking network node for enabling bit rate adaption in media streaming |
-
2017
- 2017-08-24 US US15/685,538 patent/US10644928B2/en active Active
- 2017-10-04 EP EP17194662.7A patent/EP3399713B1/en active Active
- 2017-10-16 KR KR1020170134168A patent/KR102064284B1/en active IP Right Grant
- 2017-10-17 CN CN201710962485.6A patent/CN108809924B/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130163580A1 (en) * | 2009-10-06 | 2013-06-27 | Adobe Systems, Inc. | Client-server architecture for audio-video communications |
US20170078359A1 (en) * | 2015-09-16 | 2017-03-16 | Oracle International Corporation | Encapsulating and tunneling webrtc traffic |
Also Published As
Publication number | Publication date |
---|---|
CN108809924B (en) | 2021-01-29 |
KR20180122267A (en) | 2018-11-12 |
EP3399713A1 (en) | 2018-11-07 |
EP3399713B1 (en) | 2020-07-08 |
US10644928B2 (en) | 2020-05-05 |
CN108809924A (en) | 2018-11-13 |
US20180324024A1 (en) | 2018-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102064284B1 (en) | Device, system, and method to perform real-time communication | |
CN109981607B (en) | Media stream processing method and device, electronic equipment and storage medium | |
KR102157634B1 (en) | Image capturing method and local endpoint host device | |
US20140082052A1 (en) | Data redirection system and method for providing data redirection service | |
WO2011004886A1 (en) | Delivering system, method, gateway apparatus and program | |
KR20130097336A (en) | Method for transmitting stream between electronic devices and electronic device for the method thereof | |
EP3059945A1 (en) | Method and system for video surveillance content adaptation, and central server and device | |
WO2017092338A1 (en) | Data transmission method and apparatus | |
JP6179179B2 (en) | Information processing apparatus, information processing method, and program | |
US20180014063A1 (en) | Method and Apparatus for Accessing a Terminal Device Camera to a Target Device | |
US20120017249A1 (en) | Delivery system, delivery method, conversion apparatus, and program | |
KR101709244B1 (en) | Communication system, method, and program | |
CN114221909B (en) | Data transmission method, device, terminal and storage medium | |
WO2021073155A1 (en) | Video conference method, apparatus and device, and storage medium | |
KR101701742B1 (en) | Apparatus and method for live streaming between mobile communication terminals | |
CN114553839A (en) | RTC data processing method and device | |
JP5617920B2 (en) | Communication system and method and apparatus | |
JP2013012833A (en) | Transmission apparatus and control method for transmission apparatus | |
US9118803B2 (en) | Video conferencing system | |
US20220321420A1 (en) | System and method for sharing media resources for network based communication | |
US11265357B2 (en) | AV1 codec for real-time video communication | |
WO2012103670A1 (en) | Method, device and system for, based on cloud service, providing and processing multimedia data | |
EP4203479A1 (en) | Rendering media streams | |
WO2015196651A1 (en) | Data sharing method, device and system, and storage medium | |
KR100834295B1 (en) | Method for converting image in real time |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |