KR102064284B1 - Device, system, and method to perform real-time communication - Google Patents

Device, system, and method to perform real-time communication Download PDF

Info

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
Application number
KR1020170134168A
Other languages
Korean (ko)
Other versions
KR20180122267A (en
Inventor
장정환
이종호
Original Assignee
한화테크윈 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한화테크윈 주식회사 filed Critical 한화테크윈 주식회사
Publication of KR20180122267A publication Critical patent/KR20180122267A/en
Application granted granted Critical
Publication of KR102064284B1 publication Critical patent/KR102064284B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/607
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • H04L65/1003
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/608
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols 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

실시간 통신을 수행하는 장치, 시스템, 및 방법{DEVICE, SYSTEM, AND METHOD TO PERFORM REAL-TIME COMMUNICATION}DEVICE, SYSTEM, AND METHOD TO PERFORM REAL-TIME COMMUNICATION}

본 발명은 인코딩된 멀티미디어를 네트워크를 통해 제공하기 위한 장치들 및 방법들에 관한 것으로, 좀 더 구체적으로는 실시간으로, 예를 들면 웹 실시간 통신으로 인코딩된 미디어 데이터를 통신하는 경우 향상된 인코딩 효율을 제공하는 소스 장치, 네트워크 시스템, 및 방법에 관한 것이다.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 network system 100 for executing web real time communication between a source device 110 and a sink device 120 according to an embodiment of the present invention. The network system 100 may include a plurality of devices, servers, and / or software components that operate to perform the methods according to the embodiments described herein. The devices and servers shown in FIG. 1 may be deployed in other ways, and the operations and services provided by such devices and / or servers may be combined or separated to perform the embodiments described herein. And may be performed by more or fewer devices and servers. One or more devices and / or servers may be run by the same or other entities, for example companies.

도 1을 참조하면, 네트워크 시스템(100)은 네트워크(105, Network), 소스 장치(110, SOURCE DEVICE), 싱크 장치(120, SINK DEVICE), 및 시그널링 서버(130, SIGNALING SERVER)를 포함한다. 소스 장치(110) 및 싱크 장치(120) 각각은 하나 또는 그 이상의 프로세서들, 메모리들, 다른 적절한 구성 요소들을 포함함으로써 컴퓨터에 의해 판독 가능한 매체들에 저장된 프로그램 코드들 및/또는 데이터와 같은 명령어들을 수행할 수 있으며, 이에 따라 여기에 설명된 다양한 애플리케이션들 및 단계들을 수행한다. 예를 들면, 명령어들은 네트워크 시스템(100)의 다양한 구성 요소들의 내부 및/또는 외부의 하나 또는 그 이상의 컴퓨터에 의해 판독 가능한 매체에 저장될 수 있다.Referring to FIG. 1, the network system 100 includes a network 105, a source device 110, a sink device 120, and a signaling server 130. Each of source device 110 and sink device 120 includes instructions such as program code and / or data stored on computer-readable media by including one or more processors, memories, and other suitable components. And the various applications and steps described herein. For example, the instructions may be stored on one or more computers readable media inside and / or outside various components of the network system 100.

소스 장치(110)와 싱크 장치(120)는 네트워크(105)에 연결된다. 네트워크(105)는 공용 네트워크(public network), 하나 또는 그 이상의 사설 네트워크(private network)들, 유선 네트워크, 무선 네트워크, 다른 적합한 타입들의 네트워크들, 그것들의 조합들 중 적어도 하나를 포함하며, 이러한 네트워크들은 소스 장치(110), 싱크 장치(120), 및 시그널링 서버(130)에 의해 액세스 가능할 수 있다. 소스 장치(110) 및 싱크 장치(120)는 유선 통신 기능들 및 무선 통신 기능들 중 어느 하나를 포함할 수 있고, 네트워크(105)를 통해 서로 통신할 수 있다.Source device 110 and sink device 120 are connected to network 105. Network 105 includes at least one of a public network, one or more private networks, a wired network, a wireless network, other suitable types of networks, combinations thereof, and such a network. These may be accessible by source device 110, sink device 120, and signaling server 130. Source device 110 and sink device 120 may include any of wired and wireless communication functions, and may communicate with each other via network 105.

소스 장치(110)와 싱크 장치(120)는 웹 실시간 통신과 같은 실시간 통신으로 단대단 통신을 수행한다. 소스 장치(110)는 음성 데이터 및 영상 데이터 중 적어도 하나를 포함하는 미디어 데이터를 특정 미디어 공유 세션(media share session)에 참여한 싱크 장치(120)로 전송한다. 이때, 미디어 데이터는 멀티미디어(multimedia) 데이터를 포함할 수 있으나, 여기에 한정되지 않는다. 미디어 데이터는 싱크 장치(120)의 디스플레이에 디스플레이될 수 있다. 즉, 싱크 장치(120)는 수신된 미디어 데이터를 그것의 디스플레이 및 음성 장비에 랜더링(render)할 수 있다.The source device 110 and the sink device 120 perform end-to-end communication by real time communication such as web real time communication. The source device 110 transmits media data including at least one of audio data and video data to the sink device 120 participating in a specific media share session. In this case, the media data may include multimedia data, but is not limited thereto. The media data may be displayed on the display of the sink device 120. That is, the sink device 120 can render the received media data to its display and voice equipment.

예를 들면, 소스 장치(110)는 인터넷 프로토콜(Internet Protocol, 이하 IP라 한다) 카메라, 네트워크 비디오 녹화기, 웹 카메라 등 중 적어도 하나를 포함할 수 있으며, 이들은 미디어 데이터를 네트워크(105)를 통해 싱크 장치(120)로 전송할 수 있다. 예를 들면, 싱크 장치(120)는 포터블 컴퓨터, PDA, 스마트폰, 테블릿 PC, 비디오 게임 장치, 텔레비전, 데스크탑 컴퓨터, 모니터, 프로젝터 등을 포함하며, 이들은 수신된 미디어 데이터를 그것의 디스플레이 및 음성 장비에서 재생할 수 있다.For example, source device 110 may include at least one of an Internet Protocol (IP) camera, a network video recorder, a web camera, and the like, which sink media data through network 105. Transmit to device 120. For example, sink device 120 includes a portable computer, a PDA, a smartphone, a tablet PC, a video game device, a television, a desktop computer, a monitor, a projector, and the like, which receive received media data in its display and voice. Can be played on the device.

소스 장치(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 source device 110 includes a web real-time communicator 115 that performs web real-time communication with a web browser 125 of the sink device 120. The web real time communicator 115 may initiate web real time communication by signaling with the web browser 125 through the signaling server 130. For example, the web real time communicator 115 may define a media sharing session for end-to-end connection of web real time communication through signaling with the web browser 125. As described later with reference to FIG. 5, during signaling, the signaling server 130 relays the messages from the source device 110 to the sink device 120, and sources the messages from the sink device 120. Relay to device 110 may be performed. During signaling, web real-time communicator 115 and web browser 125 may support media related capabilities such as supportable media compression standards, bit rates for encoding and decoding media data, resolution of media data, and the like. media capabilities can be exchanged. Further, during signaling, the web real time communicator 115 and the web browser 125 may identify candidates for identifying the web real time communicator 115 and the web browser 125 within the network 105 such as IP addresses and ports. candidates can be exchanged.

시그널링이 성공적으로 수행된 후에, 웹 실시간 통신기(115)는 소스 장치(110)의 내부 구성 요소들에 의해 생성된 미디어 데이터를 캡쳐하고, 미디어 데이터를 실시간으로 싱크 장치(120)의 웹 브라우저(125)에 전송하여 웹 실시간 통신을 수행할 수 있다. 웹 브라우저(125)는 수신된 미디어 데이터를 싱크 장치(120)의 디스플레이와 음성 장비에 랜더링할 수 있다.After the signaling is successfully performed, the web real-time communicator 115 captures the media data generated by the internal components of the source device 110, and in real time the web browser 125 of the sink device 120. Web real-time communication can be performed. The web browser 125 may render the received media data on the display of the sink device 120 and the voice device.

도 2는 본 발명의 실시 예에 따른 소스 장치(110)를 보여주는 블록도이다.2 is a block diagram illustrating a source device 110 according to an embodiment of the present invention.

도 2를 참조하면, 소스 장치(110)는 메모리(111, Memory), 미디어 인코더(112, Media Encoder), 스트리밍 서버(113, Streaming Server), 및 웹 실시간 통신기(115, Web Real-time Communicator)를 포함한다.Referring to FIG. 2, the source device 110 may include a memory 111, a media encoder 112, a streaming server 113, and a web real-time communicator 115. It includes.

메모리(111)는 이 분야에서 알려지거나 개발되는 메모리 장치 또는 시스템의 형태일 수 있고, 영상 소스 및 음성 소스 중 어느 하나를 포함하는 미디어 소스를 저장할 수 있다. 소스 장치(110)는 영상 데이터를 제공하는 적어도 하나의 카메라 및 음성 데이터를 제공하는 적어도 하나의 마이크로폰을 더 포함할 수 있다. 예를 들면, 카메라는 렌즈를 통해 입력되는 광 신호들을 전기 신호들로 변환하여 영상 데이터를 생성하는 이미지 센서를 포함할 수 있다. 이미지 센서는 광 신호들을 전기 신호들로 변환할 수 있는 이 분야에서 알려지거나 개발되는, 전하 결합 소자(Charge-Coupled Device: CCD), 금속 산화물 반도체(Complementary Metal Oxide Semiconductor: CMOS) 등과 같은 반도체 장치일 수 있다. 예를 들면, 마이크로폰은 음성을 전기 신호들로 변환하여 음성 데이터를 생성할 수 있다. 생성된 영상 데이터와 음성 데이터는 소스 장치(110)의 하나 또는 그 이상의 프로세서들에 의해 처리되어 영상 소스 및 음성 소스를 제공할 수 있다.The memory 111 may be in the form of a memory device or system known or developed in the art, and may store a media source including any one of an image source and an audio source. The source device 110 may further include at least one camera for providing image data and at least one microphone for providing audio data. For example, the camera may include an image sensor that converts optical signals input through the lens into electrical signals to generate image data. An image sensor is a semiconductor device, such as a charge-coupled device (CCD), a complementary metal oxide semiconductor (CMOS), or the like, which is known or developed in this field capable of converting optical signals into electrical signals. Can be. For example, the microphone may convert voice into electrical signals to generate voice data. The generated image data and audio data may be processed by one or more processors of the source device 110 to provide an image source and an audio source.

미디어 인코더(112)는 미디어 소스를 인코딩하고, 소정의 미디어 압축 표준에 기반하여 인코딩된 미디어 데이터(ECMD)를 생성한다. 실시 예들에서, 미디어 인코더(112)는 영상 압축 표준들인 H.263, H.264, H.265, VP8, VP9, AOMedia Video 1 (AV1) 등 중 하나에 기반하여 미디어 소스를 인코딩할 수 있다. 예를 들면, 미디어 인코더(112)는 메모리(111)와 함께 시스템 온 칩(System on Chip)에 통합될 수 있으며, 메모리(111)에 저장된 미디어 소스를 인코딩하여 인코딩된 미디어 데이터(ECMD)를 생성할 수 있다.Media encoder 112 encodes a media source and generates encoded media data ECMD based on certain media compression standards. In embodiments, the media encoder 112 may encode the media source based on one of the video compression standards H.263, H.264, H.265, VP8, VP9, AOMedia Video 1 (AV1), and the like. For example, the media encoder 112 may be integrated into a System on Chip together with the memory 111 and encode the media source stored in the memory 111 to generate encoded media data ECMD. can do.

스트리밍 서버(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 server 113 receives the encoded media data ECMD and packetizes the encoded media data ECMD in response to a request of the web real-time communicator 115. The streaming server 113 may include a media capture driver (MCD) 113a. The media capture driver 113a can request the media encoder 112 to encode the media source and capture the encoded media data ECMD. The streaming server 113 may packetize the encoded media data (ECMD) based on a real-time network protocol such as Real-Time Transport Protocol (RTP), Real-Time Streaming Protocol (RTSP), Real-Time Messaging Protocol (RTMP), or the like. Can be. Therefore, the packetized media data PKMD may have a specific format corresponding to a real time network protocol. Accordingly, the packetized media data PKMD may include not only the encoded media data ECMD but also a header corresponding to the real time network protocol.

스트리밍 서버(113)는 도 1의 네트워크(105)에 연결된 스트리밍 클라이언트 서버들, 예를 들면 클라우드 서버들과 통신할 수 있다. 스트리밍 서버(113)는 앞서 설명된 바와 같이 인코딩된 미디어 데이터(ECMD)를 패킷화하고, 패킷화된 미디어 데이터(PKMD)를 스트리밍 클라이언트 서버로 전송하여 해당 영상을 스트리밍 클라이언트 서버에 업로드할 수 있다.The streaming server 113 can communicate with streaming client servers, such as cloud servers, connected to the network 105 of FIG. 1. As described above, the streaming server 113 may packetize the encoded media data ECMD, transmit the packetized media data PKMD to the streaming client server, and upload the corresponding video to the streaming client server.

소스 장치(110)는 웹 실시간 통신기(115)를 더 포함한다. 웹 실시간 통신기(115)는 소스 장치(110)가 싱크 장치(120)의 웹 브라우저(125)와 단대단 통신을 수행할 수 있도록 하는 웹 실시간 통신 기능을 제공한다. 싱크 장치(120)의 웹 브라우저(125) 또한, 싱크 장치(120)가 플러그인 소프트웨어를 다운로드 및 설치하는 것 없이 웹 실시간 통신기(115)와 단대단 통신을 수행할 수 있게 하는 웹 실시간 통신 기능을 제공한다.Source device 110 further includes a web real-time communicator 115. The web real time communicator 115 provides a web real time communication function that enables the source device 110 to perform end-to-end communication with the web browser 125 of the sink device 120. The web browser 125 of the sink device 120 also provides a web real time communication function that enables the sink device 120 to perform end-to-end communication with the web real time communicator 115 without downloading and installing plug-in software. do.

본 발명의 실시 예에 따르면, 웹 실시간 통신기(115)는 스트리밍 서버(113)로부터 패킷화된 미디어 데이터(PKMD)를 수신하고, 패킷화된 미디어 데이터(PKMD)를 이용하여 웹 실시간 통신을 수행한다. 도 1을 참조하여 설명된 바와 같이, 웹 실시간 통신기(115)는 웹 브라우저(125)와의 시그널링이 성공적으로 수행된 후에 웹 실시간 통신을 수행할 수 있다.According to an embodiment of the present invention, the web real time communication unit 115 receives packetized media data PKMD from the streaming server 113 and performs web real time communication using the packetized media data PKMD. . As described with reference to FIG. 1, the web real time communicator 115 may perform web real time communication after signaling with the web browser 125 is successfully performed.

웹 실시간 통신기(115)는 스트리밍 클라이언트(Streaming Client: STRC)(115a)를 포함한다. 스트리밍 클라이언트(115a)는 스트리밍 서버(113)에 패킷화된 미디어 데이터(PKMD)를 요청할 수 있다. 요청에 응답하여, 스트리밍 서버(113)는 미디어 캡처 드라이버(113a)를 이용하여 인코딩된 미디어 데이터(ECMD)를 캡쳐하고 패킷화된 미디어 데이터(PKMD)를 생성할 수 있다. 이와 같이, 스트리밍 클라이언트(115a)는 스트리밍 서버(113)로부터 패킷화된 미디어 데이터(PKMD)를 수신할 수 있다.The web real time communicator 115 includes a streaming client (STRC) 115a. The streaming client 115a may request the packetized media data PKMD from the streaming server 113. In response to the request, the streaming server 113 may use the media capture driver 113a to capture the encoded media data ECMD and generate the packetized media data PKMD. As such, the streaming client 115a may receive the packetized media data PKMD from the streaming server 113.

웹 실시간 통신기(115)는 패킷화된 미디어 데이터(PKMD)를 디패킷화하여 인코딩된 미디어 데이터(ECMD)를 획득할 수 있다. 실시 예들에서, 웹 실시간 통신기(115)는 설정 정보, 예를 들면 메모리(111) 또는 소스 장치(110)의 다른 내부 스토리지에 저장된 구성 파일(configuration file)들을 읽고, 어떤 실시간 네트워크 프로토콜을 사용하여 패킷화된 미디어 데이터(PKMD)가 생성되었는지 여부를 결정할 수 있다. 설정 정보에 기반하여, 웹 실시간 통신기(115)는 패킷화된 미디어 데이터(PKMD)의 페이로드(payload)를 파싱(또는, 식별)할 수 있다. 웹 실시간 통신기(115)는 패킷화된 미디어 데이터(PKMD)의 헤더를 드롭하고, 패킷화된 미디어 데이터(PKMD)의 페이로드로부터 인코딩된 미디어 데이터(ECMD)를 획득할 수 있다.The web real-time communicator 115 may depacketize the packetized media data PKMD to obtain encoded media data ECMD. In embodiments, the web real time communicator 115 may read configuration information, for example configuration files stored in memory 111 or other internal storage of source device 110, and may use a packet using any real time network protocol. It may be determined whether normalized media data PKMD is generated. Based on the configuration information, the web real time communicator 115 may parse (or identify) a payload of the packetized media data PKMD. The web real-time communicator 115 may drop the header of the packetized media data PKMD and obtain encoded media data ECMD from the payload of the packetized media data PKMD.

웹 실시간 통신기(115)는 인코딩된 미디어 데이터(ECMD)를 싱크 장치(120)의 웹 브라우저(125)로 전송하여 웹 실시간 통신을 수행한다. 웹 브라우저(125)는 예를 들면 시그널링에서 결정된 미디어 압축 표준에 기반하여 인코딩된 미디어 데이터(ECMD)를 디코딩하고, 디코딩된 미디어 데이터를 싱크 장치(120)의 디스플레이 및 음성 장비에 랜더링할 수 있다.The web real time communicator 115 transmits the encoded media data ECMD to the web browser 125 of the sink device 120 to perform web real time communication. The web browser 125 may decode the encoded media data (ECMD), for example, based on the media compression standard determined in the signaling, and render the decoded media data to the display and voice equipment of the sink device 120.

미디어 인코더(112)는 하드웨어 인코더일 수 있다. 예를 들면, 메모리(111) 및 미디어 인코더(112)는 하드웨어 계층에 포함되고, 스트리밍 서버(113) 및 웹 실시간 통신기(115)는 소프트웨어 계층에 포함될 수 있다. 그러나, 소스 장치(110)의 실시 예들은 여기에 한정되지 않는다. 예를 들면, 미디어 인코더(112)는 소프트웨어, 펌웨어, 또는 그것들의 조합을 통해 구현될 수 있다. 이러한 경우, 해당 프로그램 코드들(또는 소프트웨어)은 메모리(111) 또는 소스 장치(110)의 또 다른 내부 메모리에 로딩되고, 인코딩에 최적화된 하나 또는 그 이상의 프로세서들은 프로그램 코드들의 명령어들을 실행하여 미디어 인코더(112)를 구현할 수 있다.Media encoder 112 may be a hardware encoder. For example, the memory 111 and the media encoder 112 may be included in the hardware layer, and the streaming server 113 and the web real time communicator 115 may be included in the software layer. However, embodiments of the source device 110 are not limited thereto. For example, media encoder 112 may be implemented via software, firmware, or a combination thereof. In this case, the corresponding program codes (or software) are loaded into the memory 111 or another internal memory of the source device 110, and one or more processors optimized for encoding execute the instructions of the program codes to execute the media encoder. (112) may be implemented.

하나 또는 그 이상의 프로세서들(도 7의 1200 참조)에 의해 실행되는 소프트웨어를 통해 웹 실시간 통신기(115)가 구현될 수 있다. 웹 실시간 통신기(115)가 웹 실시간 통신을 위해 직접 미디어 소스를 인코딩한다고 가정하면, 미디어 소스를 인코딩하는 데에 상대적으로 많은 하드웨어 자원들이 요구된다. 예를 들면, 소스 장치(110)가 상대적으로 낮은 구동 성능을 가지는 프로세서를 포함하며 그 프로세서가 프로그램 코드들(또는 소프트웨어)을 실행하여 웹 실시간 통신기(115)를 구현하는 경우, 프로세서의 하드웨어 자원들 중 많은 부분들이 미디어 소스를 인코딩하는 데에 사용될 수 있다. 이러한 경우, 웹 실시간 통신은 원활하게 혹은 효율적으로 수행되지 못할 수 있으며, 이에 따라 소스 장치(110)의 전반적인 동작 성능들도 저하될 수 있다. 예를 들면, 소스 장치(110)는 상대적으로 낮은 동작 성능을 갖는 프로세서를 포함하는 IP 카메라, 네트워크 비디오 녹화기, 웹 카메라 등 중 하나일 수 있다.The web real time communicator 115 may be implemented through software executed by one or more processors (see 1200 in FIG. 7). Assuming the web real time communicator 115 encodes the media source directly for web real time communication, relatively many hardware resources are required to encode the media source. For example, if the source device 110 includes a processor having a relatively low driving capability and the processor executes program codes (or software) to implement the web real time communication device 115, the hardware resources of the processor. Many of these can be used to encode media sources. In this case, web real-time communication may not be performed smoothly or efficiently, and thus overall operating performances of the source device 110 may be degraded. For example, the source device 110 may be one of an IP camera, a network video recorder, a web camera, and the like including a processor having a relatively low operating performance.

한편, 미디어 인코더(112)는 하드웨어 인코더이거나 인코딩에 최적화된 하나 또는 그 이상의 프로세서들에 의해 실행되는 소프트웨어를 통해 구현되어 향상된 인코딩 성능을 제공할 수 있다. 예를 들면, 미디어 인코더(112)는 시스템 온 칩 내에 통합되어 미디어 소스들을 인코딩하는 기능들을 제공하되, 그러한 시스템 온 칩이 소스 장치(110)에 실장될 수 있다. 본 발명의 실시 예에 따르면, 웹 실시간 통신기(115)는 미디어 인코더(112)로부터 스트리밍 서버(113)를 통해 인코딩된 미디어 데이터(ECMD)를 수신한다. 이에 따라, 웹 실시간 통신기(115)는 미디어를 인코딩하는 데에 필요한 기능들을 수행하지 않으면서도, 인코딩된 미디어 데이터(ECMD)가 효율적인 전달을 위해 패킷화된 것을 전제로, 인코딩된 미디어 데이터(ECMD)를 획득할 수 있다. 따라서, 설사 웹 실시간 통신기(115)가 소프트웨어를 통해 구현되며 그 소프트웨어를 실행하는 프로세서가 상대적으로 낮은 동작 성능(또는, 상대적으로 적은 하드웨어 자원들)을 갖는다 하더라도, 웹 실시간 통신기(115)는 획득된 인코딩된 미디어 데이터(ECMD)를 이용하여 웹 실시간 통신을 효율적으로 수행할 수 있다. 따라서, 소스 장치(110)는 향상된 인코딩 효율을 가질 수 있다.The media encoder 112, on the other hand, may be implemented through software executed by one or more processors that are hardware encoders or optimized for encoding to provide improved encoding performance. For example, media encoder 112 may be integrated within a system on chip to provide functions for encoding media sources, but such system on chip may be mounted on source device 110. According to an embodiment of the present invention, the web real-time communicator 115 receives encoded media data ECMD from the media encoder 112 through the streaming server 113. Accordingly, the web real-time communicator 115 encodes the encoded media data ECMD on the assumption that the encoded media data ECMD is packetized for efficient delivery without performing the functions necessary to encode the media. Can be obtained. Thus, even if the web real time communicator 115 is implemented through software and the processor executing the software has a relatively low operating performance (or relatively less hardware resources), the web real time communicator 115 may obtain Encoded media data (ECMD) can be used to efficiently perform web real-time communication. Thus, source device 110 may have improved encoding efficiency.

미디어 인코더(112)는 다양한 방식들로 구현되어 소스 장치(110)에 실장될 수 있다. 예를 들면, 위 설명된 바와 같이, 미디어 인코더(112)는 다양한 하드웨어 인코더들 중 어느 하나이거나, 하나 또는 그 이상의 프로세서들에 의해 실행되는 소프트웨어를 통해 구현될 수 있다. 이러한 점을 고려할 때, 만약 웹 실시간 통신기(115)가 스트리밍 서버(113)가 아닌 미디어 인코더(112)로부터 인코딩된 미디어 데이터(ECMD)를 직접 수신한다면, 웹 실시간 통신기(115)는 다양한 타입들의 미디어 인코더(112)와 호환될 수 있도록 적절하게 디자인되어 인코딩된 미디어 데이터(ECMD)를 미디어 인코더(112)에 직접적으로 요청하고 수신할 수 있어야 한다(그러한 시스템의 예가 도 10에 도시되어 있다).The media encoder 112 may be implemented in various ways and mounted on the source device 110. For example, as described above, media encoder 112 may be implemented in software that is executed by one or more processors, or any one of a variety of hardware encoders. With this in mind, if the web real-time communicator 115 receives encoded media data (ECMD) directly from the media encoder 112 and not from the streaming server 113, the web real-time communicator 115 may use various types of media. Appropriately designed to be compatible with encoder 112, it should be possible to request and receive encoded media data ECMD directly from media encoder 112 (an example of such a system is shown in FIG. 10).

소스 장치(110)는 미디어 인코더(112)로부터의 인코딩된 미디어 데이터(ECMD)를 클라우더 서버들과 같은 스트리밍 클라이언트 서버로 업로드할 수 있는 스트리밍 서버(113)를 포함하므로, 스트리밍 서버(113)는 웹 실시간 통신 시 사용될 인코딩된 미디어 데이터(ECMD)를 획득하기 위해 사용될 수도 있다. 본 발명의 실시 예에 따르면, 웹 실시간 통신기(115)는 패킷화된 미디어 데이터(PKMD)를 스트리밍 서버(113)에 요청하고, 패킷화된 미디어 데이터(PKDM)를 처리하여 인코딩된 미디어 데이터(ECMD)를 획득한다. 스트리밍 서버(113)가 미리 결정된 RTP, RTSP, 및 RTMP와 같은 실시간 네트워크 프로토콜들 중 하나에 기반하여 인코딩된 미디어 데이터(ECMD)를 패킷화하는 것으로 고려하면, 웹 실시간 통신기(115)는 몇몇 실시간 네트워크 프로토콜들만 고려하여 설계될 수 있고, 그에 따라 웹 실시간 통신기(115)의 호환성을 향상시킬 수 있으며, 이는 웹 실시간 통신기(115)가 다양한 타입들의 소스 장치들에 채용될 수 있음을 의미할 수 있다. 나아가, 웹 실시간 통신기(115)의 향상된 호환성에 의해, 웹 실시간 통신기(115) 및 그것을 포함하는 소스 장치(110)의 개발 비용은 감소할 수 있다.Since the source device 110 includes a streaming server 113 that can upload encoded media data ECMD from the media encoder 112 to a streaming client server, such as cloud servers, the streaming server 113 It may be used to obtain encoded media data (ECMD) to be used in web real time communication. According to an embodiment of the present invention, the web real-time communicator 115 requests the packetized media data PKMD to the streaming server 113, processes the packetized media data PKDM, and encodes the encoded media data ECMD. ). Considering that streaming server 113 packetizes encoded media data (ECMD) based on one of predetermined RTP, RTSP, and RTMP real-time network protocols, web real-time communicator 115 may select some real-time network. Only protocols may be designed in consideration, thereby improving the compatibility of the web real time communicator 115, which may mean that the web real time communicator 115 may be employed in various types of source devices. Furthermore, due to the improved compatibility of the web real time communicator 115, the development cost of the web real time communicator 115 and the source device 110 including the same may be reduced.

도 3은 본 발명의 실시 예에 따른 소스 장치(110)를 동작하는 방법을 보여주는 순서도이다.3 is a flowchart illustrating a method of operating a source device 110 according to an embodiment of the present invention.

도 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 web browser 125 of the sink device 120 is performed. During signaling, the web real time communicator 115 negotiates with the web browser 125 of the sink device 120 a media compression standard to be applied to the media data to be sent to the web browser 125. The web real-time communicator 115 may negotiate with the web browser 125 such that a media compression standard supported by the media encoder 112 is selected.

S120단계에서, 미디어 인코더(112)에서, 소정의 미디어 압축 표준에 기반하여 미디어 소스가 인코딩된다. 이때 소정의 미디어 압축 표준은 시그널링 동안 협상되는 미디어 압축 표준일 수 있다.In step S120, in the media encoder 112, the media source is encoded based on a predetermined media compression standard. The predetermined media compression standard may then be a media compression standard negotiated during signaling.

S130단계에서, 스트리밍 서버(113)에서, 실시간 네트워크 프로토콜에 기반하여 인코딩된 미디어 데이터(ECMD)가 패킷화된다. 스트리밍 서버(113)는 미디어 인코더(112)에 의해 생성되는 인코딩된 미디어 데이터(ECMD)를 캡쳐하고, RTP, RTSP, 및 RTMP와 같은 실시간 네트워크 프로토콜들 중 하나의 실시간 네트워크 프로토콜에 기반하여 인코딩된 미디어 데이터(ECMD)를 패킷화할 수 있다.In step S130, in the streaming server 113, media data (ECMD) encoded based on the real-time network protocol is packetized. The streaming server 113 captures the encoded media data (ECMD) generated by the media encoder 112 and encodes the media based on the real time network protocol of one of the real time network protocols such as RTP, RTSP, and RTMP. Data ECMD can be packetized.

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-time communicator 115 may perform depacketization (or packet fragmentation) based on a real-time network protocol corresponding to the streaming server 113. The web real time communicator 115 may obtain encoded media data ECMD from the payload of the packetized media data PKMD.

S150단계에서, 인코딩된 미디어 데이터(ECMD)를 이용하여 싱크 장치(120)의 웹 브라우저(125)와 웹 실시간 통신을 수행한다. 웹 실시간 통신기(115)는 인코딩된 미디어 데이터(ECMD)를 웹 실시간 통신의 특정 포멧으로 다시 패킷화하고, 다시 패킷화된 미디어 데이터를 싱크 장치(120)의 웹 브라우저(125)에 전송할 수 있다.In operation S150, web real-time communication is performed with the web browser 125 of the sink device 120 using the encoded media data ECMD. The web real time communicator 115 may repacket the encoded media data ECMD in a specific format of the web real time communication and transmit the packetized media data to the web browser 125 of the sink device 120 again.

싱크 장치(120)의 웹 브라우저(125)는 다시 패킷화된 미디어 데이터를 디패킷화하여 인코딩된 미디어 데이터(ECMD)를 획득할 수 있다. 웹 브라우저(125)는 인코딩된 미디어 데이터(ECMD)를 디코딩하여 미디어를 재생할 것이다.The web browser 125 of the sink device 120 may depacketize the packetized media data to obtain encoded media data ECMD. The web browser 125 will decode the encoded media data ECMD to play the media.

도 4는 본 발명의 실시 예에 따른 웹 실시간 통신기(115)의 동작 방법을 보여주는 순서도이다. 도 5는 단대단 웹 실시간 통신을 위한 시그널링의 일 실시 예를 보여주는 순서도이다. 도 6은 패킷화된 미디어 데이터를 수신 및 처리하기 위한 준비 동작의 실시 예를 보여주는 순서도이다.4 is a flowchart illustrating a method of operating a web real-time communication device 115 according to an 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.

도 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 web browser 125 of the sink device 120 is performed. In signaling, the web real-time communicator 115 may exchange messages based on the session description protocol with the web browser 125 of the sink device 120. The signaling may be performed after both the web real time communicator 115 and the web browser 125 access the signaling server 130.

시그널링은 웹 실시간 통신의 단대단 통신을 위한 미디어 공유 세션을 수립한다. 도 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 web browser 125 may transmit an offer based on the session descriptor protocol to the signaling server 130, where the offer may include media related capabilities of the web browser 125, for example, a web browser ( 125) informs the media compression standards that can be supported and the resolution of media data. In operation S312, the signaling server 130 may relay the offer from the web browser 125 to the web real time communicator 115. In operation S313, the web real time communicator 115 may transmit an answer based on the session descriptor protocol to the signaling server 130, where the answer is media of the web real time communicator 115 and / or the source device 110. Relevant capabilities such as the web real-time communicator 115 and / or the source device 110 inform the media compression standard and the resolution of the media data and the like. The media compression standard shown in this answer may include a media compression standard corresponding to the media encoder 112 mounted in the source device 110. In operation S314, the signaling server 130 may relay the answer to the web browser 125. That is, through steps S311 to S314, the web real-time communicator 115 and the web browser 125 may negotiate media related capabilities including a media compression standard.

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 web browser 125 may display candidates for identifying the web browser 125 in the network 105, for example, an IP address and a port for performing web real-time communication. Can be sent to. In operation S316, the signaling server 130 may relay the candidates of the web browser 125 to the web real time communicator 115. In operation S317, the web real time communicator 115 may also transmit candidates for identifying the web real time communicator 115 in the network 105. In operation S318, the signaling server 130 may relay the candidates of the web real time communicator 115 to the web browser 125. In embodiments, each of the web real-time communicator 115 and the web browser 125 may determine candidates using Session Traversal Utilities for NAT (STUN) servers. For example, STUN servers may return candidates in response to requests from web real time communicator 115 and web browser 125. Through steps S315 to S318, each of the web real-time communicator 115 and the web browser 125 may specify an IP address and a port on which web real-time communication is to be performed.

앞서 설명된 실시 예에서, 웹 브라우저(125)가 오퍼를 전송하고 그 후 웹 실시간 통신기(115)가 오퍼에 응답하여 대답을 전송한다. 그러나, 본 발명의 실시 예들은 여기에 한정되지 않으며, S311단계 내지 S318단계의 순서는 다양하게 변경될 수 있다. 예를 들면, 웹 실시간 통신기(115)가 먼저 오퍼를 전송하여 시그널링을 시작하고, 웹 브라우저(125)가 오퍼에 응답하여 대답을 전송할 수 있다.In the embodiment described above, the web browser 125 sends the offer and then the web real-time communicator 115 sends an answer in response to the offer. However, embodiments of the present invention are not limited thereto, and the order of steps S311 to S318 may be variously changed. For example, the web real-time communicator 115 may first send an offer to begin signaling, and the web browser 125 may send an answer in response to the offer.

S320단계에서, 시그널링이 성공적으로 수행된 후에, 웹 실시간 통신기(115) 및 웹 브라우저(125)는 웹 실시간 통신에 기반하여 단대단 통신을 수행할 수 있다.In step S320, after the signaling is successfully performed, the web real time communication unit 115 and the web browser 125 may perform end-to-end communication based on the web real time communication.

다시 도 4를 참조하면, S220단계에서, 패킷화된 미디어 데이터(PKMD)를 스트리밍 서버(113)에 요청한다. 이에 따라 웹 실시간 통신기(115)는 인코딩된 미디어 데이터(ECMD)를 포함하는 패킷화된 미디어 데이터(PKMD)를 스트리밍 서버로부터 수신한다.Referring back to FIG. 4, in step S220, the streaming server 113 requests the packetized media data PKMD. Accordingly, the web real time communicator 115 receives the packetized media data PKMD including the encoded media data ECMD from the streaming server.

S230단계에서, 패킷화된 미디어 데이터를 디패킷화하여 인코딩된 미디어 데이터(ECMD)를 획득한다. 웹 실시간 통신기(115)는 스트리밍 서버(113)의 실시간 네트워크 프로토콜에 기반하여 패킷화된 미디어 데이터(PKMD)의 페이로드를 파싱하고, 페이로드로부터 인코딩된 미디어 데이터(ECMD)를 추출할 수 있다.In operation S230, the packetized media data is depacked to obtain encoded media data ECMD. The web real time communicator 115 may parse the payload of the packetized media data PKMD based on the real time network protocol of the streaming server 113 and extract the encoded media data ECMD from the payload.

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 real time communicator 115 may determine the real time network protocol of the streaming server 113 (step S410). Based on the determined real-time network protocol, the web real-time communicator 115 may identify the payload of the packetized media data (PKMD). In embodiments, the web real-time communicator 115 may transmit configuration information, such as a configuration file, to any kind of internal storage (see 1300 and 1600 in FIG. 7) or source device 110 in the source device 110. Read from any kind of external storage associated with the, and can determine the real-time network protocol of the streaming server 113 based on the read configuration information. In another embodiment, the web real-time communicator 115 may sequentially call streaming servers conforming to multiple real-time network protocols, depending on whether a response is received or not, according to the real-time network of the streaming server 113. The protocol can be determined.

다시 도 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 real time communicator 115 may transmit the encoded media data ECMD to the web browser 125 of the sink device 120.

본 발명의 실시 예에 따른 웹 실시간 통신기(115)를 포함하는 소스 장치(110)는 미디어 인코더(112)에 의해 인코딩된 미디어 데이터(ECMD)를 웹 실시간 통신에 사용함으로써 향상된 인코딩 효율을 가질 수 있다. 나아가, 스트리밍 서버(113)를 통해 인코딩된 미디어 데이터(ECMD)를 제공함으로써, 웹 실시간 통신기(115)의 호환성은 향상될 수 있다.The source device 110 including the web real-time communicator 115 according to an embodiment of the present invention may have improved encoding efficiency by using the media data (ECMD) encoded by the media encoder 112 for web real-time communication. . Furthermore, by providing the encoded media data ECMD via the streaming server 113, the compatibility of the web real time communicator 115 may be improved.

도 7은 소스 장치(110)의 실시 예들을 구현하기 위한 컴퓨터 시스템(1000)의 실시 예를 보여주는 블록도이다.7 is a block diagram illustrating an embodiment of a computer system 1000 for implementing embodiments of the source device 110.

도 7을 참조하면, 컴퓨터 시스템(1000)는 버스(1100), 프로세서(1200, Processor), 시스템 메모리(1300, System Memory), 반도체 칩(1400), 미디어 녹화기(1500, Media Recorder), 저장 매체(1600, Storage Medium), 및 네트워크 인터페이스(1700, Network Interface)를 포함할 수 있다.Referring to FIG. 7, the computer system 1000 may include a bus 1100, a processor 1200, a processor, a system memory 1300, a semiconductor chip 1400, a media recorder 1500, and a storage medium. (1600, Storage Medium), and a network interface (1700, Network Interface).

버스(1100) 혹은 그 밖의 통신 메커니즘은 데이터, 신호들, 및 정보의 통신을 위해 컴퓨터 시스템(1000)의 다양한 구성 요소들을 연결한다. 프로세서(1200)는 범용 프로세서 혹은 전용 프로세서 중 적어도 하나일 수 있으며, 컴퓨터 시스템(1000)의 제반 동작들을 제어할 수 있다. 시스템 메모리(1300)는 프로세서(1200)에 의해 실행될 정보 및 명령어들을 저장할 수 있다. 시스템 메모리(1300)는 RAM(Random Access Memory), ROM(Read Only Memory), 및 다양한 타입들의 컴퓨터에 의해 판독 가능한 매체들 중 적어도 하나의 임의의 조합일 수 있다.The bus 1100 or other communication mechanism connects various components of the computer system 1000 for the communication of data, signals, and information. The processor 1200 may be at least one of a general purpose processor and a dedicated processor, and may control various operations of the computer system 1000. The system memory 1300 may store information and instructions to be executed by the processor 1200. The system memory 1300 may be any combination of at least one of random access memory (RAM), read only memory (ROM), and various types of computer readable media.

반도체 칩(1400)은 버스(1100)에 연결되어 인코딩된 미디어 데이터(도 2의 ECMD 참조)를 제공할 수 있다. 반도체 칩(1400)은 미디어 소스를 인코딩하는 미디어 인코더(1410)를 포함할 수 있다. 미디어 소스 및/또는 인코딩된 미디어 데이터는 반도체 칩(1400)의 내부 메모리(1420) 또는 컴퓨터 시스템(1000)의 시스템 메모리(1300) 내에 저장될 수 있다. 내부 메모리(1420) 및/또는 시스템 메모리(1300)는 도 2에 도시된 메모리(111)로서 제공될 수 있다.The semiconductor chip 1400 may be connected to the bus 1100 to provide encoded media data (see ECMD of FIG. 2). The semiconductor chip 1400 may include a media encoder 1410 that encodes a media source. The media source and / or encoded media data may be stored in the internal memory 1420 of the semiconductor chip 1400 or the system memory 1300 of the computer system 1000. The internal memory 1420 and / or the system memory 1300 may be provided as the memory 111 shown in FIG. 2.

실시 예들에서, 미디어 인코더(1410)는 하드웨어 인코더일 수 있다. 다른 실시 예에서, 반도체 칩(1400)은 미디어 인코더(1410)에 대응하는 프로그램 코드들을 실행하는 하나 또는 그 이상의 프로세서들을 포함할 수 있다. 이러한 경우, 내부 메모리(1420)는 그러한 프로세서들의 워킹 메모리로서 제공될 수 있다.In embodiments, media encoder 1410 may be a hardware encoder. In another embodiment, the semiconductor chip 1400 may include one or more processors that execute program codes corresponding to the media encoder 1410. In such a case, internal memory 1420 may be provided as working memory of such processors.

시스템 메모리(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 system memory 1300 may store program codes that provide specific functions when executed by the processor 1200. Such program codes process the packetized media data (see PKMD in FIG. 2) to generate encoded media data (see ECMD in FIG. 2), and the encoded media data to an external web browser (see 120 in FIG. 2). Web real-time communication module 1310 (WebRTC Module) for providing the Web real-time communication, and other functions described herein to transmit to. That is, the web real time communication module 1310 may provide the functions of the web real time communicator 1150 illustrated in FIG. 2 when executed by the processor 1200. The program codes stored in the system memory 1300 may further include a streaming module 1320 for providing the functions of the streaming server 1320 illustrated in FIG. 2 when executed by the processor 1200. In addition, the program codes stored in the system memory 1300 may further include one or more additional functional modules for providing other functions. For example, the program codes stored in the system memory 1300 may further include an operating system module that provides an operating system for the computer system 1000.

미디어 녹화기(1500)는 이미지들 및/또는 음성을 녹화하여 영상 데이터 및/또는 음성 데이터를 제공한다. 영상 데이터 및/또는 음성 데이터는 프로세서(1200)에 의해 처리되어 미디어 소스로 제공될 수 있다. 도 7에는 미디어 녹화기(1500)가 컴퓨터 시스템(1000)에 포함되는 것으로 도시되나, 본 발명의 실시 예들은 여기에 한정되지 않는다. 예를 들면, 미디어 녹화기(1500)는 컴퓨터 시스템(1000)과 분리될 수 있고, 네트워크를 통해 컴퓨터 시스템(1000)과 통신할 수 있다. 이러한 경우, 컴퓨터 시스템(1000)은 분리된 미디어 녹화기(1500)로부터의 영상 데이터 및/또는 음성 데이터를 네트워크 인터페이스(1700)를 통해 수신할 수 있다.The media recorder 1500 records images and / or audio to provide image data and / or audio data. Image data and / or audio data may be processed by the processor 1200 and provided to a media source. Although FIG. 7 shows that the media recorder 1500 is included in the computer system 1000, embodiments of the present invention are not limited thereto. For example, the media recorder 1500 can be separate from the computer system 1000 and can communicate with the computer system 1000 via a network. In this case, the computer system 1000 may receive image data and / or audio data from the separated media recorder 1500 through the network interface 1700.

저장 매체(1600)는 프로세서(1200)에 의해 액세스 가능한 다양한 매체들 중 적어도 하나일 수 있다. 저장 매체(1600)는 메모리 카드와 같은 불휘발성 스토리지를 포함할 수 있다. 예를 들면, 저장 매체(1600)는 컴팩트 플래쉬(Compact Flash: CF) 카드, 스마트 미디어(Smart Media: SM) 카드, 메모리 스틱, 멀티 미디어 카드(Multi Media Card: MMC), 보안 디지털(Secure Digital: SD) 카드, 유니버셜 플래시 스토리지(Universal Flash Storage: UFS) 등 중 적어도 하나를 포함할 수 있다. 또한, 저장 매체(1600)는 탈착 가능하거나 탈착 불가한 스토리지들을 포함할 수 있다.The storage medium 1600 may be at least one of various media accessible by the processor 1200. The storage medium 1600 may include nonvolatile storage such as a memory card. For example, the storage medium 1600 may include a Compact Flash (CF) card, a Smart Media (SM) card, a memory stick, a Multi Media Card (MMC), and a Secure Digital: SD) card, Universal Flash Storage (UFS), and the like. In addition, the storage medium 1600 may include removable or non-removable storage.

네트워크 인터페이스(1700)(또는 트랜시버)는 네트워크를 통해 컴퓨터 시스템(1000)과 다른 장치들 사이의 신호들을 송수신한다. 네트워크는 단일 네트워크 혹은 다수 네트워크들의 조합일 수 있다. 예를 들면, 네트워크는 공용 네트워크, 하나 또는 그 이상의 사설 네트워크들, 유선 네트워크, 무선 네트워크, 및/또는 컴퓨터 시스템(1000) 및 도 1에 도시된 네트워크 시스템(100)의 다양한 구성 요소들이 액세스 가능한 다른 적절한 타입들의 네트워크들을 포함할 수 있다.Network interface 1700 (or transceiver) transmits and receives signals between computer system 1000 and other devices over a network. The network may be a single network or a combination of multiple networks. For example, the network may be a public network, one or more private networks, a wired network, a wireless network, and / or a computer system 1000 and other accessible by various components of the network system 100 shown in FIG. 1. It may include appropriate types of networks.

실시 예들에서, 컴퓨터 시스템(1000)은 사용자 액션(user action), 예를 들면 키패드에서 키들을 선택하는 입력이나 버튼 및 이미지 등을 선택하는 입력을 처리하며, 해당 신호를 버스(1100)에 전송하는 입출력 구성 요소를 더 포함할 수 있다.In embodiments, the computer system 1000 processes a user action, for example, an input for selecting keys on a keypad or an input for selecting a button and an image, and transmitting a corresponding signal to the bus 1100. It may further include an input / output component.

도 8은 본 발명의 다른 실시 예에 따른 소스 장치(210)를 보여주는 블록도이다.8 is a block diagram illustrating a source device 210 according to another exemplary embodiment.

도 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 source device 210 may include a memory 211, a media encoder 212, a streaming server 213, and a web real-time communicator 215. It includes. The memory 211, the media encoder 212, and the streaming server 213 may be configured similarly to the memory 111, the media encoder 112, and the streaming server 113 described with reference to FIG. 2. Hereinafter, for the sake of brevity, the description of these components is omitted.

웹 실시간 통신기(215)가 싱크 장치(120)의 웹 브라우저(125)와 시그널링을 수행할 때, 미디어 인코더(212)에 대응하지 않는 미디어 압축 표준이 선택될 수 있다. 예를 들면, 싱크 장치(120)의 웹 브라우저(125)가 미디어 인코더(212)에서 지원되는 미디어 압축 표준을 지원하지 않는 경우, 미디어 인코더(212)에서 지원되는 미디어 압축 표준은 웹 브라우저(125)와의 협상에서 선택할 수 없다. 이러한 경우, 미디어 인코더(212)에 대응하지 않는 다른 미디어 압축 표준이 선택될 수 있다.When the web real-time communicator 215 performs signaling with the web browser 125 of the sink device 120, a media compression standard that does not correspond to the media encoder 212 may be selected. For example, if the web browser 125 of the sink device 120 does not support the media compression standard supported by the media encoder 212, the media compression standard supported by the media encoder 212 is the web browser 125. You can't choose to negotiate with them. In such a case, another media compression standard may be selected that does not correspond to media encoder 212.

본 발명의 실시 예에 따르면, 웹 실시간 통신기(215)는 시그널링 결과에 따라 스트리밍 서버(213)에 패킷화된 미디어 데이터(PKMD)를 요청한다.According to an embodiment of the present invention, the web real time communication unit 215 requests the packetized media data PKMD from the streaming server 213 according to the signaling result.

시그널링에서 미디어 인코더(212)에 대응하는 미디어 압축 표준이 선택될 때, 웹 실시간 통신기(215)의 스트리밍 클라이언트(215a)는 스트리밍 서버(213)에 패킷화된 미디어 데이터(PKMD)를 요청할 수 있다. 요청에 응답하여, 스트리밍 서버(213)는 미디어 캡쳐 드라이버(213a)를 이용하여 미디어 인코더(212)에 의해 제공되는 인코딩된 미디어 데이터(ECMD)를 캡쳐하고, 패킷화된 미디어 데이터(PKMD)를 생성한다. 웹 실시간 통신기(215)는 스트리밍 클라이언트(215a)를 통해 패킷화된 미디어 데이터(PKMD)를 수신하고 패킷화된 미디어 데이터(PKMD)를 이용하여 웹 실시간 통신을 수행할 수 있다.When the media compression standard corresponding to the media encoder 212 is selected in the signaling, the streaming client 215a of the web real-time communicator 215 may request the packetized media data PKMD from the streaming server 213. In response to the request, the streaming server 213 captures the encoded media data ECMD provided by the media encoder 212 using the media capture driver 213a and generates the packetized media data PKMD. do. The web real time communication unit 215 may receive the packetized media data PKMD through the streaming client 215a and perform web real time communication using the packetized media data PKMD.

시그널링에서 미디어 인코더(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 media encoder 212 in the signaling, the web real-time communicator 215 may receive the media source MS directly from the memory 211. The web real time communicator 215 may also include a media capture driver 215b. The media capture driver 215b of the web real time communicator 215 may capture the media source MS from the memory 211. The web real time communicator 215 may encode the captured media source MS based on the media compression standard selected in the signaling. The web real time communicator 215 may perform web real time communication using the encoded media data.

도 9는 본 발명의 다른 실시 예에 따른 웹 실시간 통신기(215)의 동작 방법을 보여주는 순서도이다.9 is a flowchart illustrating a method of operating a web real-time communicator 215 according to another embodiment of the present invention.

도 8 및 도 9를 참조하면, S510단계에서, 싱크 장치(120)의 웹 브라우저(125)와 웹 실시간 통신을 위한 시그널링을 수행한다. 시그널링에서 미디어 데이터에 적용될 미디어 압축 표준이 선택된다.8 and 9, in step S510, signaling for web real-time communication with the web browser 125 of the sink device 120 is performed. The media compression standard to be applied to the media data in the signaling is selected.

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 media encoder 212. If so, steps S530 and S540 are performed. When the media compression standard selected in the signaling corresponds to the media encoder 212, the media source may be encoded by the media encoder 212 having a relatively high processing speed. In embodiments, the media compression standard corresponding to media encoder 212 may be at least one of image compression standards H.263, H.264, and H.265. As such, steps S530 and S540 may be performed when the media compression standard selected in the signaling corresponds to the media encoder 212. Steps S530 and S540 are described similarly to steps S220 and S230 of FIG. 4, and thus redundant descriptions are omitted.

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 media encoder 212. In operation S560, the captured media source is encoded based on the selected media compression standard. For example, the media compression standard encoded by the web real time communicator 215 may be at least one of the video compression standards VP8, VP9, and AV1.

S570단계에서, 인코딩된 미디어 데이터를 이용하여 웹 실시간 통신을 수행한다. 웹 실시간 통신기(215)는 싱크 장치(120)의 웹 브라우저(125)에 인코딩된 미디어 데이터를 전송할 수 있다.In operation S570, web real time communication is performed using the encoded media data. The web real time communicator 215 may transmit the encoded media data to the web browser 125 of the sink device 120.

본 발명의 실시 예에 따르면, 시그널링에서 선택되는 미디어 압축 표준이 미디어 인코더(212)에 대응하지 않을 때, 웹 실시간 통신기(215)는 웹 실시간 통신을 위해 미디어 소스를 직접 인코딩할 수 있다. 이에 따라, 싱크 장치들의 다양한 웹 브라우저들에 대해 상대적으로 높은 호환성을 갖는 소스 장치가 제공될 수 있다.According to an embodiment of the present invention, when the media compression standard selected in the signaling does not correspond to the media encoder 212, the web real time communicator 215 may directly encode a media source for web real time communication. Accordingly, a source device having a relatively high compatibility with various web browsers of the sink devices can be provided.

도 10은 본 발명의 또 다른 실시 예에 따른 소스 장치(310)를 보여주는 블록도이다.10 is a block diagram illustrating a source device 310 according to another exemplary embodiment.

도 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 source device 310 may include a memory 311, a media encoder 312, a streaming server 313, and a web real-time communicator 315. It includes. The memory 311, the media encoder 312, and the streaming server 313 may be configured similarly to the memory 111, the media encoder 112, and the streaming server 113 described with reference to FIG. 2. Hereinafter, for the sake of brevity, the description of these components is omitted.

미디어 인코더(312)로부터 인코딩된 미디어 데이터(ECMD)를 더 수신하는 것을 제외하면, 웹 실시간 통신기(315)는 도 8을 참조하여 설명된 웹 실시간 통신기(215)와 마찬가지로 구성된다. 웹 실시간 통신기(315)는 적어도 하나의 다양한 타입들의 미디어 인코더들에 액세스 가능하도록 설계될 수 있다. 웹 실시간 통신기(315)의 미디어 캡쳐 드라이버(315b)는 미디어 인코더(312)에 액세스 가능할 때 미디어 인코더(312)로부터 인코딩된 미디어 데이터(ECMD)를 캡쳐할 수 있다.Except for further receiving the encoded media data ECMD from the media encoder 312, the web real time communicator 315 is configured like the web real time communicator 215 described with reference to FIG. 8. The web real time communicator 315 may be designed to be accessible to at least one of various types of media encoders. The media capture driver 315b of the web real-time communicator 315 may capture encoded media data ECMD from the media encoder 312 when the media encoder 312 is accessible.

도 11은 본 발명의 또 다른 실시 예에 따른 웹 실시간 통신기(315)의 동작 방법을 보여주는 순서도이다.11 is a flowchart illustrating a method of operating a web real-time communication device 315 according to another embodiment of the present invention.

도 10 및 도 11을 참조하면, S610단계에서, 싱크 장치(120)의 웹 브라우저(125)와 웹 실시간 통신을 위한 시그널링을 수행한다.10 and 11, in step S610, signaling for web real-time communication with the web browser 125 of the sink device 120 is performed.

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 media encoder 312. If so, step S630 is performed. In step S630, it is determined whether the streaming server 313 exists. For example, as described with reference to FIG. 6, the web real time communicator 315 reads configuration information or sequentially calls streaming servers according to various real time network protocols to determine whether the streaming server 313 is present. Determine. Steps S640 and S650 are performed when the streaming server 313 is present. Steps S640 and S650 are described similarly to steps S220 and S230 of FIG. 4, and thus redundant descriptions are omitted.

선택된 미디어 압축 표준이 미디어 인코더(312)에 대응하지 않을 때, S660단계 및 S670단계가 수행된다. S660단계 및 S670단계는 도 9의 S550단계 및 S560단계와 마찬가지로 설명되며, 이하 중복되는 설명은 생략된다.When the selected media compression standard does not correspond to the media encoder 312, steps S660 and S670 are performed. Steps S660 and S670 are described in the same manner as steps S550 and S560 of FIG. 9, and overlapping descriptions are omitted.

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 media encoder 312 is accessible. In step S690, when the media encoder 312 is accessible, the encoded media data ECMD is captured from the media encoder 312. More specifically, the web real time communicator 315 may be designed to be accessible to at least one of the various types of media encoders. In addition, when the streaming server 313 does not exist but the media encoder 312 in the source device 310 is included in at least one of the various types of media encoders, the web real-time communicator 315 may generate the encoded media data (ECMD). ) Can be captured from the media encoder 312. For example, the web real time communicator 315 may include a media encoder that is accessible to the source device 310 by reading configuration information from internal storage of the source device 310 or from external storages associated with the source device 310. You can determine whether or not. Alternatively, the web real time communicator 315 may sequentially call one or more types of media encoders to determine whether a media encoder accessible to the source device 310 is included.

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-time communicator 315 may capture encoded media data ECMD from the media encoder 312 when the media encoder 312 is accessible. Accordingly, even if the source device 310 does not include the streaming server 312, the source device 310 including the web real-time communicator 315 may have improved encoding efficiency, and thus various source devices The compatibility of the web real time communicator 315 with respect to is improved.

도 12는 소스 시스템(410)을 포함하는 네트워크 시스템(400)을 보여주는 블록도이다.12 is a block diagram illustrating a network system 400 including a source system 410.

도 12를 참조하면, 소스 시스템(410)은 네트워크(405)를 통해 싱크 장치(420)와 시그널링 서버(430)에 연결될 수 있다.Referring to FIG. 12, the source system 410 may be connected to the sink device 420 and the signaling server 430 through the network 405.

소스 시스템(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 source system 410 is a web real-time communication device 415 that communicates with one or more source devices SD1 to SDm providing media sources and the source devices SD1 to SDm. time communication device). The web real time communication device 415 provides a web real time communication function to the first to m th source devices SD1 to SDm. The web real-time communication device 415 performs signaling with the web browser 425 of the sink device 420 through the signaling server 430 (signaling server).

웹 실시간 통신 장치(415)는, 예를 들면 라우터들 뒷단의 사설 네트워크를 통해 제 1 내지 제 m 소스 장치들(SD1~SDm)에 연결될 수 있다. 웹 실시간 통신 장치(415)는 시그널링을 수행한 후에 패킷화된 미디어 데이터를 제 1 내지 제 m 소스 장치들(SD1~SDm) 각각에 요청할 수 있다. 그러한 요청에 응답하여, 제 1 내지 제 m 소스 장치들(SD1~SDm) 각각은 인코딩된 미디어 데이터를 포함하는 패킷화된 미디어 데이터를 웹 실시간 통신 장치(415)에 제공할 수 있다.The web real time communication device 415 may be connected to the first to m th source devices SD1 to SDm through, for example, a private network behind the routers. The web real time communication device 415 may request packetized media data from each of the first to m th source devices SD1 to SDm after performing signaling. In response to such a request, each of the first to m th source devices SD1 to SDm may provide packetized media data including the encoded media data to the web real time communication device 415.

도 13은 본 발명의 실시 예에 따른 소스 시스템(410)을 보여주는 블록도이다.13 is a block diagram illustrating a source system 410 according to an embodiment of the present invention.

도 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 first memory 511, a first media encoder 512, and a first streaming server 513. The second source device SD2 includes a second memory 521, a second media encoder 522, and a second streaming server 523. The m-th source device (SDm) includes an m-th memory (5m1, m-th Memory), an m-th media encoder (5m2, m-th Media Encoder), and an m-th streaming server (5m3, m-th Streaming Server) do.

웹 실시간 통신 장치(415)는 제 1 내지 제 m 채널들(CH1~CHm)을 통해 각각 제 1 내지 제 m 스트리밍 서버들(513~5m3)과 통신할 수 있다. 웹 실시간 통신 장치(415) 및 소스 장치들(SD1~SDm)은 제 1 내지 제 m 채널들(CH1~CHm)에 연결하기 위한 네트워크 포트들을 포함할 수 있다.The web real-time communication device 415 may communicate with the first to m th streaming servers 513 to 5 m3 through the first to m th channels CH1 to CHm, respectively. The web real time communication device 415 and the source devices SD1 to SDm may include network ports for connecting to the first to m th channels CH1 to CHm.

웹 실시간 통신 장치(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 time communication device 415 may request the packetized media data from the streaming server of the corresponding source device. The media encoder of the source device that receives the request encodes a media source in memory and generates encoded media data. The streaming server packetizes the encoded media data and sends the packetized media data to the streaming client 415a of the web real time communication device 415. FIG. 13 illustrates that the first to mth media encoders 512 to 5m2 provide the first to mth encoded media data ECMD1 to ECMDm, respectively, and the first to mth streaming servers 513 to 5m3. Each of the first to m th packetized media data PKMD1 to PKMDm is illustrated as being transmitted to the web real-time communication device 415. The web real time communication device 415 processes the received packetized media data to generate encoded media data, and transmits the encoded media data to the web browser 425 of the sink device 420 to perform web real time communication. can do.

실시 예들에서, 웹 실시간 통신 장치(415)는, 제 1 내지 제 m 패킷화된 미디어 데이터(PKMD1~PKMDm)를 수신하기 전에, 제 1 내지 제 m 소스 장치들(SD1~SDm)로부터 제 1 내지 제 m 스트리밍 서버들(513~5m3)의 실시간 네트워크 프로토콜들의 정보를 수신할 수 있다.In embodiments, the web real-time communication device 415 may include the first to m th source devices SD1 to SDm from the first to m th source devices SD1 to SDm before receiving the first to m th packetized media data PKMD1 to PKMDm. Information of real-time network protocols of the m-th streaming servers 513 to 5m3 may be received.

도 14는 도 13의 소스 시스템(410)의 변형 실시 예(600)를 보여주는 블록도이다.FIG. 14 is a block diagram illustrating a modified example 600 of the source system 410 of FIG. 13.

도 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 first memory 611 and a first media encoder 612, and the second source device SD2 ′ includes a second memory 621. Memory) and a second media encoder 622, and the m-th source device SDm 'includes the m-th memory 6m1 and m-th memory and the m-th media encoder 6m2 and m-th Media. Encoder).

스트리밍 서버(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 server 713 may be integrated into the web real time communication device 700. The streaming server 713 of the web real-time communication device 700 may communicate with the first to m th source devices SD1 'to SDm' through the first to m th channels CH1 to CHm, respectively. The streaming server 713 receives the first to m th encoded media data ECMD1 to ECMDm through the first to m th channels CH1 to CHm, respectively, and the first to m th packetized media data. PKMD1 to PKMDm are provided to a web real-time communicator 715 of the web real-time communication device 700.

실시 예들에서, 도 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 time communication devices 415 and 700 illustrated in FIGS. 12 and 13 are the computer system 1000 described with reference to FIG. 7. It can be implemented through. In this case, the source devices SD1 to SDm and SD1 ′ to SDm ′ may optionally include a streaming module 1320 according to the embodiments shown in FIGS. 12 and 13. The web real time communication apparatuses 415 and 700 do not include the semiconductor chip 1400, and may optionally include a streaming module 1320 according to the embodiments illustrated in FIGS. 12 and 13. In embodiments, the functions of the web real time communication devices 415, 700 may be provided by a hardware device.

비록 특정 실시 예들 및 적용 례들이 여기에 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정들 및 변형들이 가능하다.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.
제 1 항에 있어서,
상기 패킷화된 미디어 데이터를 디패킷화하는 단계는 상기 패킷화된 미디어 데이터의 페이로드로부터 상기 인코딩된 미디어 데이터를 획득하는 단계인 방법.
The method of claim 1,
Depacketizing the packetized media data is obtaining the encoded media data from a payload of the packetized media data.
제 2 항에 있어서,
내부 스토리지에 저장된 설정 정보를 읽어 상기 소정의 실시간 네트워크 프로토콜을 판별하는 단계를 더 포함하되,
상기 패킷화된 미디어 데이터의 상기 페이 로드는 상기 판별된 실시간 네트워크 프로토콜에 따라 식별되는 방법.
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.
제 1 항에 있어서,
상기 실시간 통신을 수행하는 단계는,
상기 인코딩된 미디어 데이터를 다시 패킷화하는 단계; 및
상기 다시 패킷화된 미디어 데이터를 상기 웹 브라우저로 전송하는 단계를 포함하는 방법.
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.
제 1 항에 있어서,
상기 미디어 인코더는 하드웨어로 구성되는 방법.
The method of claim 1,
The media encoder is configured in hardware.
제 1 항에 있어서,
상기 실시간 통신은 웹 실시간 통신(web real-time communication)을 포함하는 방법.
The method of claim 1,
The real time communication comprises web real-time communication.
제 1 항에 있어서,
상기 소정의 실시간 네트워크 프로토콜은 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).
제 1 항에 있어서,
상기 인코딩된 미디어 데이터는 영상 압축 표준들인 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.
제 9 항에 있어서,
상기 스트리밍 서버에 대응하는 실시간 네트워크 프로토콜 정보를 상기 스트리밍 서버와 연관된 소스 장치로부터 수신하는 단계를 더 포함하되,
상기 인코딩된 미디어 데이터는 상기 패킷화된 미디어 데이터의 페이로드로부터 획득되고,
상기 패킷화된 미디어 데이터의 상기 페이로드는 상기 수신된 실시간 네트워크 프로토콜 정보에 기반하여 식별되는 방법.
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.
제 9 항에 있어서,
내부 스토리지에 저장된 설정 정보를 읽어 상기 스트리밍 서버에 대응하는 실시간 네트워크 프로토콜을 판별하는 단계를 더 포함하되,
상기 인코딩된 미디어 데이터는 상기 패킷화된 미디어 데이터의 페이로드로부터 획득되고,
상기 패킷화된 미디어 데이터의 상기 페이로드는 상기 판별된 실시간 네트워크 프로토콜에 기반하여 식별되는 방법.
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.
삭제delete 제 9 항에 있어서,
상기 소정의 미디어 압축 표준은 영상 압축 표준들 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.
제 9 항에 있어서,
상기 웹 브라우저와의 상기 시그널링의 결과 상기 웹 실시간 통신에 대해 상기 소정의 미디어 압축 표준과 상이한 미디어 압축 표준이 선택될 때, 미디어 소스를 수신하는 단계를 더 포함하는 방법.
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.
제 14 항에 있어서,
상기 상이한 미디어 압축 표준에 기반하여 상기 미디어 소스를 인코딩하는 단계; 및
상기 상이한 미디어 압축 표준에 기반하여 인코딩된 미디어 소스를 전송함으로써 상기 웹 실시간 통신을 수행하는 단계를 더 포함하는 방법.
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.
삭제delete 제 16 항에 있어서,
상기 웹 실시간 통신기는 상기 시그널링의 결과 상기 웹 실시간 통신에 대해 상기 제 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.
제 18 항에 있어서,
상기 웹 실시간 통신기는,
상기 수신된 미디어 소스를 상기 제 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.
제 16 항에 있어서,
상기 웹 실시간 통신기는,
상기 패킷화된 미디어 데이터의 페이로드로부터 상기 인코딩된 미디어 데이터를 추출하고,
상기 인코딩된 미디어 데이터를 상기 웹 브라우저에 전송하여 상기 웹 실시간 통신을 수행하도록 구성되는 소스 장치.
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.
KR1020170134168A 2017-05-02 2017-10-16 Device, system, and method to perform real-time communication KR102064284B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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