KR20190030039A - 웹소켓을 이용하여 중간 서버를 경유하는 미디어 스트리밍 방법 - Google Patents

웹소켓을 이용하여 중간 서버를 경유하는 미디어 스트리밍 방법 Download PDF

Info

Publication number
KR20190030039A
KR20190030039A KR1020170117256A KR20170117256A KR20190030039A KR 20190030039 A KR20190030039 A KR 20190030039A KR 1020170117256 A KR1020170117256 A KR 1020170117256A KR 20170117256 A KR20170117256 A KR 20170117256A KR 20190030039 A KR20190030039 A KR 20190030039A
Authority
KR
South Korea
Prior art keywords
web socket
intermediate server
camera
socket connection
client device
Prior art date
Application number
KR1020170117256A
Other languages
English (en)
Other versions
KR102335670B1 (ko
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 한화테크윈 주식회사
Priority to KR1020170117256A priority Critical patent/KR102335670B1/ko
Publication of KR20190030039A publication Critical patent/KR20190030039A/ko
Application granted granted Critical
Publication of KR102335670B1 publication Critical patent/KR102335670B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64715Protecting content from unauthorized alteration within the network

Abstract

본 발명은 TCP 방식의 릴레이를 사용하는 중간 서버를 이용하여 카메라에서 클라이언트 기기로 미디어를 스트리밍하는 방법에 관한 발명이다. 본 발명에서는 중간 서버와 카메라, 중간서버와 클라이언트 기기 간에 웹소켓 연결을 이용한 터널링 방법을 제안한다. 본 발명에 따르면 카메라와 클라이언트 기기 모두 방화벽 내부에 위치하거나, 방화벽 환경이 이중 NAT, SNAT이더라도 TCP 방식으로 카메라로부터 클라이언트 기기로 미디어를 스트리밍 하는 것이 가능하다.

Description

웹소켓을 이용하여 중간 서버를 경유하는 미디어 스트리밍 방법{Method for video streaming via intermediate server using WebSocket}
본 발명은 미디어 스트리밍 방법에 관한 것으로서, 보다 상세하게는 중간 서버와 카메라 간의 웹소켓 연결 및 중간 서버와 클라이언트 기기 간의 웹소켓 연결을 이용한 미디어 스트리밍 방법에 관한 것이다.
방화벽이 구성되어 있는 경우 방화벽 내부에 있는 장치가 공인 네트워크에 연결되어 있는 장치에 접속하는 것은 가능하지만, 반대로 공인 네트워크에 연결되어 있는 장치가 방화벽 내부에 연결되어 있는 장치에 접속하는 것은 제한된다.
카메라에 방화벽이 설정되어 있는 경우 원격지에 있는 클라이언트 기기가 방화벽 내부에 있는 카메라에 접속하여 미디어 스트리밍을 요청하는 것은 방화벽의 별도 설정 없이는 가능하지 않다.
클라이언트 기기가 카메라에 접속할 수 있도록 Network Address Translation(NAT) 또는 라우터 등의 방화벽 장치에서 port forwarding이나 demilitarized zone(DMZ)를 설정하여 접속 경로를 생성할 수 있다. 그런데 port forwarding이나 DMZ를 설정하면 port가 고정되기 때문에 유동 IP 구조를 갖는 환경에서는 적용이 어렵다. 유동 IP 구조를 같는 환경에서 port forwarding 기능을 자동으로 설정할 수 있도록 Universal Plug & Play(UPnP) 등과 같은 프로토콜을 사용할 수 있지만, 이 경우에도 이중 NAT 환경에서는 적용이 어렵다.
이러한 문제를 해결하기 위한 방법으로 Session Traversal Utilities for NAT(STUN)과 Traversal Using Relays around NAT(TURN)을 이용한 Interactive Connectivity Establishment(ICE) 프로토콜을 사용할 수 있다.
STUN은 STUN 클라이언트와 STUN 서버로 구성된다. STUN 클라이언트는 방화벽 내부에, STUN 서버는 공인 네트워크에 연결되어 방화벽 외부에 위치한다. STUN 클라이언트는 공인 IP 주소를 이용하여 STUN 서버에 접속한다. STUN 서버에 접속한 STUN 클라이언트는 Reflexive Transport Address 또는 Mapped Address 등의 외부 접속 주소를 알 수 있다.
따라서 카메라와 클라이언트 기기에 STUN을 이용할 경우, 클라이언트 기기는 STUN 서버를 통해서 STUN 클라이언트에 해당하는 방화벽 내부에 위치한 카메라의 외부 접속 주소를 확인하고 해당 주소로 접근할 수 있다.
그런데 클라이언트 기기에도 NAT 환경이 설정되어 있는 경우에는 STUN이 동작하지 않을 수 있다. 또한 방화벽 장치가 Symmetric NAT(SNAT)을 수행하는 장치인 경우에도 STUN이 동작하지 않을 수 있다. SNAT은 클라이언트가 서로 다른 목적지로 패킷을 전송할 경우에 NAT Mapping Table 이 매번 변경되기 때문이다. 이런 경우에는 TURN을 이용한 릴레이(relay) 기능을 사용할 수 있다.
그러나 TURN을 이용하는 경우에는 UDP 방식의 릴레이만 사용할 수 있기 때문에 네트워크 상에서 데이터 손실이 발생할 수 있고 고해상도의 미디어 전송에는 적합하지 않다.
이에 본 발명에서는 이중 NAT, SNAT 환경에서도 적용이 가능하고, TCP 방식의 사용이 가능한 미디어 스트리밍 방법을 제안하고자 한다.
한국등록특허 제10-1366803호
본 발명이 해결하고자 하는 과제는, TCP/IP 방식의 릴레이가 가능한 터널링을 통해 미디어를 스트리밍하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는, 이중 NAT 또는 SNAT의 방화벽 환경에서도 사용이 가능한 터널링을 통해 미디어를 스트리밍하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 과제는, 미디어 스트림에 RTP/RTSP를 사용하고 카메라 컨트롤 명령에 SOAP을 사용하는 시스템에 적용 가능한 터널링을 통해 미디어를 스트리밍하는 방법을 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 실시예에 따른 미디어 스트리밍 방법은, 카메라의 식별 정보를 갖지 않은 클라이언트 기기가 상기 카메라로부터 미디어 스트림을 제공받을 수 있도록, 중간 서버를 경유하는 미디어 스트리밍 방법으로서, 상기 중간 서버와 상기 카메라 간에 미디어 스트림 전송을 위한 제1 웹소켓 연결을 수립하는 단계; 상기 중간 서버와 상기 클라이언트 기기 간에 미디어 스트림 전송을 위한 제2 웹소켓 연결을 수립하는 단계; 상기 중간 서버가 상기 클라이언트 기기로부터 상기 제2 웹소켓 연결을 통해 상기 미디어 스트림에 대한 전송 요청을 수신하는 단계; 상기 중간 서버가 상기 전송 요청에 따라 상기 카메라에 상기 제1 웹소켓 연결을 통해 상기 미디어 스트림에 대한 전송을 요청하는 단계; 상기 중간 서버가 상기 카메라로부터 상기 제1 웹소켓 연결을 통해 상기 미디어 스트림을 수신하는 단계; 및 상기 중간 서버가 상기 제1 웹소켓 연결을 통해 전송 받은 미디어 스트림을 상기 제2 웹소켓 연결을 통해 상기 클라이언트 기기로 전송하는 단계를 포함한다.
또한 상기 과제를 해결하기 위한 본 발명의 실시예에 따른 미디어 스트리밍 방법은, 상기 제1 웹소켓 연결을 수립하는 단계 이전에, 상기 중간 서버와 상기 카메라 간에 컨트롤 명령 전송을 위한 제3 웹소켓 연결을 수립하는 단계를 더 포함할 수 있다.
또한 상기 과제를 해결하기 위한 본 발명의 실시예에 따른 미디어 스트리밍 방법은, 상기 제1 웹소켓 연결을 수립하는 단계 이전에, 상기 중간 서버와 상기 클라이언트 기기 간에 컨트롤 명령 전송을 위한 제4 웹소켓 연결을 수립하는 단계를 더 포함할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 실시예들에 의하면 적어도 다음과 같은 효과가 있다.
본 발명에 따르면 TCP/IP 방식 통신이 가능하므로 HTTP 기반의 프로토콜에 따른 데이터 전송이 가능하다. 특히 HTTP 기반인 SOAP을 사용하여 카메라 컨트롤 명령을 전송하는 것이 가능하다.
또한 본 발명에서는 카메라의 UUID를 ID로 사용하여 카메라를 중간 서버에 등록하므로, 분산된 환경에서도 고유한 ID를 통해 카메라를 식별하는 것이 가능하다.
또한 본 발명에서는 클라이언트 기기가 중간 서버에 접속하여 미디어 스트림을 전송 받고자 하는 경우, 중간 서버에 대한 접속번호와 카메라에 대한 접속번호를 요구하므로 보안된 환경에서 미디어를 스트리밍하는 것이 가능하다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 미디어 전송 시스템을 나타낸다.
도 2는 기기들 간의 통신을 위해 계층적으로 정의되는 TCP/IP 4계층 모델을 보여주는 도면이다.
도 3은 중간 서버와 카메라 간의 웹소켓 연결이 이루어지는 과정을 나타낸다.
도 4는 웹소켓 상에서 전송되는 데이터를 나타낸다.
도 5는 컨트롤 명령 전송을 위한 흐름을 나타낸다.
도 6은 미디어 스트림 전송을 위한 흐름을 나타낸다.
도 7은 중간 서버에서 카메라 등록을 해지하는 방법을 나타낸다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 미디어 전송 시스템을 나타낸다. 미디어 전송 시스템은 카메라(1), 카메라 측 방화벽(4), 클라이언트 기기(2), 클라이언트 측 방화벽(5), 및 중간 서버(3)를 포함한다.
카메라(1)는 촬영된 미디어를 컴퓨터 네트워크를 통해 송신할 수 있는 Internet Protocol(IP) 카메라를 포함한다. IP 카메라는 디지털 비디오 카메라의 일종으로 감시 카메라로 주로 사용되는 카메라이다. IP 카메라는 아날로그 카메라인 Closed Circuit Television(CCTV) 카메라와 달리 컴퓨터 네트워크와 인터넷을 통해 데이터를 송수신 하는 것이 가능하다.
일 실시예에 따른 미디어 전송 시스템은 미디어 촬영이 가능한 카메라(1)를 포함하나, 다른 실시예로 카메라(1)를 대신하여 미디어 전송 기능을 갖는 Network Video Recorder(NVR) 또는 Digital Video Recorder(DVR)을 포함할 수 있다.
카메라(1)는 카메라 측 방화벽(4)의 내부에 위치할 수 있다. 상기 방화벽(4)은 비정상적이고 불법적인 접근으로부터 카메라(1)를 보호할 수 있도록, 유입되고 유출되는 네트워크 트래픽을 제어할 수 있는 모든 종류의 방화벽을 포함한다. 예를 들면, 상기 방화벽(4)은 NAT, 이중 NAT, SNAT, 또는 라우터를 포함할 수 있다.
클라이언트 기기(2)는 카메라(1)로부터 미디어 스트림을 전송 받기 위한 장치로, 네트워크를 통해 다른 컴퓨팅 기기들과 상호작용할 수 있도록 적합한 컴퓨팅 또는 프로세싱 장치를 포함한다. 예를 들면, 클라이언트 기기(2)는 데스크톱 컴퓨터, 스마트폰, Personal Digital Assistant(PDA), 랩톱 컴퓨터, 태블릿 컴퓨터, 또는 미디어 관제를 위한 Video Management System(VMS), Central Monitoring System(CMS) 등을 포함할 수 있다.
클라이언트 기기(2)는 클라이언트 기기 측 방화벽(5) 내부에 위치할 수 있다. 클라이언트 기기 측 방화벽(5)은 카메라 측 방화벽(4)과 동일하게, 유입되고 유출되는 네트워크 트래픽을 제어할 수 있는 모든 종류의 방화벽을 포함한다.
중간 서버(3)는 방화벽 내부에 각각 위치한 카메라(1)와 클라이언트 기기(2) 사이의 터널링을 위해 사용된다. 중간 서버(3)는 카메라(1)와 웹소켓 연결을 수립하고, 클라이언트 기기(2)와 웹소켓 연결을 수립한 뒤, 각각의 웹소켓 연결을 릴레이하여 카메라(1)와 클라이언트 기기(2) 사이에 네트워크 통신 터널을 생성한다. 생성된 네트워크 통신 터널을 통해 카메라(1)에서 클라이언트 기기(2)로 미디어 스트림이 전송될 수 있다.
카메라(1)와 클라이언트 기기(2) 간의 데이터 전송은 P2P 방식이 아닌 중간 서버(3)를 경유한 방식을 이용하므로 카메라 측 방화벽(4)과 클라이언트 측 방화벽(5)이 이중 NAT이나 SNAT이더라도 터널링이 가능하다.
중간 서버(3)와 카메라(1), 중간 서버(3)와 클라이언트 기기(2) 사이의 연결에 사용되는 웹소켓은 TCP 기반의 전이중 통신 채널(full-duplex communication channel)을 제공하는 통신 프로토콜이다. 전이중 통신 채널에 대한 예를 들면, 웹소켓 연결이 웹 서버와 웹 브라우저 간에 수립되면 웹 서버와 웹 브라우저는 지속적인 통신이 가능하다. 따라서 중간 서버(3)와 카메라(1), 중간 서버(3)와 클라이언트 기기(2) 간에 웹소켓 연결이 수립되면 TCP/IP 통신을 이용한 지속적인 데이터 전송이 가능하다. 웹소켓 연결에 대해서 보다 자세히 살펴보기 위해 도 2 및 도 3을 참조한다.
도 2는 기기들 간의 통신을 위해 계층적으로 정의되는 TCP/IP 4계층 모델을 보여주는 도면이다. 4계층은 네트워크 인터페이스 계층(11), 인터넷 계층(12), 전송 계층(13) 및 어플리케이션 계층(14)으로 이루어져 있다. 웹소켓 연결은 전송 계층(13) 연결의 상부에 위치하며 웹소켓 연결을 사용하기 위해서는, TCP 전송 연결이 중간 서버와 카메라 또는 중간 서버와 클라이언트 기기 사이에서 먼저 수립되어야 한다. 일단 웹소켓 연결이 예를 들어, 3-way 핸드쉐이크(hand-shake) 과정을 통해 중간 서버와 카메라 간에 수립되면, 웹소켓 통신은 웹소켓 패킷들을 전송함에 의해 수행된다.
도 3은 중간 서버(3)와 카메라(1) 간의 웹소켓 연결이 이루어지는 과정을 나타낸다. 카메라(1)는 중간 서버(3)에 웹소켓 URI를 사용하여 웹소켓 연결을 개시하는 요청을 한다. 웹소켓 URI는 GetServiceCapabilities 명령을 사용하면 획득이 가능하다. 웹소켓 URI는 예를 들어 "ws://192.168.0.5/webSocketServer"와 같은 방식으로 표현된다(S1).
카메라(1)는 중간 서버(3)에 웹소켓 업그레이드 요청을 한다. 중간 서버(3)는 프로토콜 전환 요청에 대해 승인한다는 상태코드인 101 코드로 응답한다(S2). 카메라(1)와 중간 서버(3) 간에 웹소켓 연결이 이루어진 후부터는 HTTP/1.1 프로토콜이 아닌 웹소켓 상에서 전송되는 프로토콜로 데이터를 주고받을 수 있다.
도 3에 도시된 웹소켓 연결 과정에서 카메라(1)에서 보내는 요청 메세지와 중간 서버(3)의 응답 메세지의 예는 다음의 표 1에 기재된 바와 같다.
카메라(1) -> 중간 서버(3)
GET /webSocketServer HTTP/1.1
Host: 192.168.0.1
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: http://example.com
Sec-WebSocket-Protocol: rtsp.onvif.org
Sec-WebSocket-Version: 13.

중간 서버(3) -> 카메라(1)
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Sec-WebSocket-Protocol: rtsp.onvif.org
이러한 웹소켓 연결은 HTML5 표준인 웹소켓 프로토콜에 따라 이루어진다. 특히, 웹소켓 연결은 양방향 통신을 지속적으로 지원하기 때문에, 중간 서버(3)와 카메라(1) 간에 연결이 끊기지 않고 계속적으로 데이터를 송수신할 수 있도록 할 수 있다. 마찬가지의 방법으로 중간 서버(3)와 클라이언트 기기 간의 웹소켓 연결이 이루어질 수 있다.
중간 서버와 카메라, 중간 서버와 클라이언트 기기 간에 웹소켓 연결이 이루어지면, 중간 서버는 카메라와 클라이언트 기기간에 데이터 전송이 가능하도록 각각의 웹소켓 연결을 릴레이 한다. 웹소켓 상에서 카메라와 클라이언트 기기 간에 전송되는 데이터의 종류 및 데이터 전송 프로토콜을 도 4를 참조하여 설명한다.
도 4는 웹소켓 상에서 전송되는 데이터를 나타낸다. 전송되는 데이터는 미디어 스트림과 컨트롤 명령을 포함한다.
미디어 스트림은 스트리밍 되는 미디어 데이터를 의미한다. 미디어 스트림은 비디오 스트림과 오디오 스트림을 포함할 수 있다. 미디어 스트림은 웹소켓 상의 Real Time Transport Protocol/Real Time Streaming Protocol(RTP/RTSP)를 통해 전송될 수 있다.
RTP는 실시간 또는 저장된 미디어를 전송하는 표준으로써, MJPEG, MPEG-4, H.264, H.265 등의 미디어를 전송할 수 있는 프로토콜이다. RTSP는 실시간 또는 저장된 미디어를 수신하기 위하여 카메라와 클라이언트 기기 사이의 네트워크 포트를 설정하고, 재생과 관련된 명령들(PLAY, PAUSE, TEARDOWN, SETUP, OPTION, DESCRIBE 등)을 제어하기 위한 프로토콜이다. 이 중에서 재생(PLAY)은 미디어 스트리밍을 시작하기 위해, 일시정지(PAUSE)는 시작된 미디어 스트리밍을 일시 중단하기 위해, 해체(TEARDOWN)는 특정 미디어 세션을 해체/파괴하기 위해 사용되는 명령이다. 또한, 셋업(SETUP)은 미디어 세션 파라미터들을 설정하기 위해, 옵션(OPTION)은 옵션 메쏘드 기능을 획득하고 추후 다른 버전을 허용하기 위해, 디스크라이브(DESCRIBE)는 지정된 프로파일로 미디어 파라미터들을 획득하기 위해 사용되는 명령이다.
이와 같이, RTP 프로토콜은 미디어 스트림을 패킷화하여 실제로 전송하는 것을 위한 프로토콜임에 비해, RTSP 프로토콜은 이러한 전송을 시작/종료하거나 이미 전송되고 있는 미디어 스트림의 재생을 제어하기 위한 프로토콜로 사용된다.
컨트롤 명령은 미디어 스트림에 대한 프로파일을 요청하거나, pan, tilt, zoom 등 카메라 제어를 위한 각종 기능들을 수행하기 위해 사용되는 명령을 의미한다. 컨트롤 명령은 웹소켓 상의 Simple Object Access Protocol(SOAP)을 통해 전송될 수 있다.
SOAP은 분산환경에서 정보를 교환할 목적으로 만들어진 Extensible Markup Language(XML) 기반의 초경량 프로토콜이다. SOAP은 Hypertext Transfer Protocol(HTTP) 기반으로 동작하기 때문에 web 연결이 필요하다.
SOAP은 envelope, header, body로 구조화 된다. SOAP header는 선택사항으로 반복이나 보안 및 트랜잭션(transaction)을 정보로 하는 메타정보를 가지고 있다. SOAP body는 중요 정보가 포함되는 부분으로, 컨트롤 명령이 포함된다. SOAP envelope은 말 그대로 header와 body를 동봉하는 태그이다.
앞서 도 2 및 도 3을 참조한 설명에서 살펴보았듯이, 웹소켓은 HTTP 기반의 기술로 TCP/IP 통신을 사용하므로 중간 서버는 카메라와 클라이언트 기기 사이에 웹소켓 연결을 수립하여 TCP 기반의 릴레이가 가능하다. 따라서 카메라와 클라이언트 기기는 웹소켓 상의 RTP/RTSP를 통해 미디어 스트림을, 웹소켓 상의 SOAP을 통해 컨트롤 명령을 주고 받으며 TCP 방식으로 통신하는 것이 가능하다.
지금까지 도 1 내지 도 4를 참조하여 미디어 스트리밍을 위한 시스템의 구성, 중간 서버와 웹소켓을 이용한 TCP 기반의 터널링 방법, 및 카메라와 클라이언트 기기 간에 전송되는 데이터의 종류에 대해 살펴보았다. 이상의 설명을 바탕으로 카메라와 클라이언트 기기 간의 미디어 스트리밍 방법을 도 5 및 도 6을 참조하여 자세히 살펴본다.
도 5는 컨트롤 명령 전송을 위한 흐름(sequence)을 나타낸다. 도 5는 중간 서버와 카메라, 중간 서버와 클라이언트 기기 간에 웹소켓 연결을 수립하고 웹소켓 상의 SOAP을 통해 컨트롤 명령을 전송하는 과정을 도시한다.
중간 서버와 카메라 간의 컨트롤 명령 전송을 위한 웹소켓 연결에 앞서, 카메라를 중간 서버에 등록하는 과정이 필요하다. 카메라를 중간 서버에 등록하는 과정은, 카메라가 IP 주소 등의 접속 주소를 통해 중간 서버에 접속하고, 카메라의 고유 식별 번호를 ID로 사용하여 중간 서버에 등록을 요청하면(S11), 중간 서버가 카메라의 고유 식별 번호 등의 등록 정보를 저장하는 단계(S12)로 이루어질 수 있다.
카메라는 연결하려는 중간 서버의 접속 주소를 설정하는 기능을 포함할 수 있다. 카메라는 기 설정된 접속 주소를 통해 카메라의 실행 시 자동으로 중간 서버에 접속하는 기능을 포함할 수 있다.
카메라의 등록에 사용되는 고유 식별 번호에 시리얼 넘버(serial number) 또는 UUID를 사용할 수 있다. 시리얼 넘버는 제품의 제조번호를 의미하고, UUID는 인터넷 상에서 객체를 식별하기 위해 사용되는 128비트의 숫자를 의미한다. UUID는 128비트의 숫자가 5개의 그룹으로 나뉘어지고 각 그룹 사이에는 '-'로 연결된다. 예를 들면, UUID는 164f4855-e81b-64x5-a954-115644800060로 표현될 수 있다.
카메라에 UUID 표준에 따라 고유 식별 번호를 부여하면, 고유성, 유일성을 완벽하게 보장할 수는 없지만, 실제 사용에서 중복될 가능성이 거의 없는 ID의 사용이 가능하다. 따라서 동시다발적이고 독립적으로 카메라가 사용되는 분산된 환경에서 카메라를 구별하는 것이 가능하다.
카메라가 중간 서버에 등록되면, 카메라와 중간 서버 간에 컨트롤 명령 전송을 위한 웹소켓 연결이 수립될 수 있다. 카메라와 중간 서버 간에 컨트롤 명령 전송을 위해 연결되는 웹소켓 연결을 다른 웹소켓 연결들과 구분하기 위해 제3 웹소켓 연결이라 칭한다.
제3 웹소켓 연결은 앞서 도 3을 참조한 설명에 따른 방법으로 이루어진다. 카메라는 중간 서버로부터 웹소켓 URI를 획득하고(S13), 중간 서버에 제3 웹소켓 연결을 요청하면(S14), 중간 서버는 카메라에 제3 웹소켓 연결이 성공적으로 이루어졌다는 응답 메시지를 전달한다(S16).
중간 서버는 제3 웹소켓 연결이 수립된 경우 카메라의 상태 정보를 연결 가능한 상태로 업데이트하는 기능을 포함할 수 있다. 중간 서버는 카메라로부터 제3 웹소켓 연결을 요청받은 경우 카메라의 상태 정보를 연결 가능 상태로 업데이트 할 수 있고(S15), 또는 카메라에 제3 웹소켓 연결에 대한 응답 메시지를 전달한 후 카메라의 상태 정보를 연결 가능 상태로 업데이트 할 수 있다.
클라이언트 기기의 경우에도 카메라의 경우와 마찬가지로, 중간 서버와 클라이언트 기기 간의 컨트롤 명령 전송을 위한 웹소켓 연결에 앞서 클라이언트 기기가 중간 서버에 접속하는 과정이 필요하다. 클라이언트 기기가 중간 서버에 접속하는 과정은 클라이언트 기기가 IP 주소 등의 접속 주소를 통해 중간 서버에 접속하여 연결하고자 하는 카메라의 고유 식별 번호를 입력하고(S17), 중간 서버가 입력된 고유 식별 번호를 인증하는 단계(S18)로 이루어질 수 있다.
중간 서버는 클라이언트 기기에게 중간 서버에 접속하기 위한 중간 서버의 접속번호와, 클라이언트 기기에 의해 입력된 고유 식별 번호로 지정된 카메라에 대한 접속번호를 요구하는 보안 기능을 포함할 수 있다. 예를 들면, 클라이언트 기기가 IP 주소를 통해 중간 서버에 접근한 경우, 클라이언트 기기는 중간 서버에 접속하기 위한 일종의 비밀번호인 접속번호와, 카메라의 고유 식별 번호, 고유 식별 번호로 지정된 카메라에 접속하기 위한 일종의 비밀번호인 접속번호를 입력해야 중간 서버에 접속할 수 있다.
클라이언트 기기가 중간 서버에 접속하고 클라이언트 기기에서 입력한 카메라의 고유 식별 번호가 인증되면, 클라이언트 기기와 중간 서버 간에 컨트롤 명령 전송을 위한 웹소켓 연결이 수립될 수 있다. 클라이언트 기기와 중간 서버 간에 컨트롤 명령 전송을 위한 웹소켓 연결을 다른 웹소켓 연결들과 구분하기 위해 제4 웹소켓 연결이라 칭한다.
제4 웹소켓 연결은 앞서 도 3을 참조한 설명에 따른 방법으로 이루어진다. 클라이언트 기기는 중간 서버로부터 웹소켓 URI를 획득하고(S19), 중간 서버에 제4 웹소켓 연결을 요청한다(S20). 중간 서버는 제4 웹소켓 연결 요청에 따라 클라이언트 기기에 제4 웹소켓 연결이 성공적으로 이루어졌다는 응답 메시지를 전달한다(S21).
제3 웹소켓 연결 및 제4 웹소켓 연결을 통해 전송되는 컨트롤 명령은 웹소켓 상의 SOAP을 통해 전달된다. SOAP은 HTTP 기반의 동작하기 때문에 SOAP에 HTTP header가 부가될 수 있다. 표 2는 HTTP header가 부가된 SOAP의 구조를 나타낸다.
HTTP/x.x
Content-Type: text/xml; charset="utf-8"
Content-Length: n
 
<SOAP-ENV:Envelope xmlns: SOAP-ENV ="xx" >
 < SOAP-ENV:Body>
<getProductDetails xmlns="xx">
<productId>xx</ProductId>
        </getProductDetails>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
그런데 중간 서버의 터널링으로 인해 HTTP header가 중복되어 부가될 수 있다. 이 경우 중간 서버는 SOAP에 부가된 HTTP header를 제거하고 중간 서버의 터널링으로 인해 부가되는 HTTP header만을 사용하여 데이터의 중복 없이 컨트롤 명령을 전송할 수 있다. 또는 중간 서버는 중간 서버의 터널링에서 HTTP header 대신 데이터들을 식별할 수 있는 message ID를 부가하여 데이터의 중복 없이 컨트롤 명령을 전송할 수 있다.
제3 웹소켓 연결과 제4 웹소켓 연결은 각각, 카메라의 개수에 따라 서로 다른 복수의 웹소켓 연결을 포함할 수 있다. 예를 들면, 중간 서버에 등록된 카메라가 2대인 경우, 제3 웹소켓 연결은 중간 서버와 각각의 카메라 사이에 연결되어 2개의 서로 다른 웹소켓 연결을 포함하게 되고, 제4 웹소켓 연결은 제3 웹소켓 연결과 대응되도록 중간 서버와 클라이언트 기기 사이에 2개의 서로 다른 웹소켓 연결을 포함하게 된다.
마찬가지의 방식으로 제3 웹소켓 연결과 제4 웹소켓 연결은 각각, 클라이언트 기기의 개수에 따라 서로 다른 복수의 웹소켓 연결을 포함할 수 있다. 예를 들면, 중간 서버에 접속한 클라이언트 기기가 2대인 경우, 제4 웹소켓 연결은 중간 서버와 각각의 클라이언트 기기 사이에 연결되어 2개의 서로 다른 웹소켓 연결을 포함하게 되고, 제3 웹소켓 연결은 제4 웹소켓 연결과 대응되도록 중간 서버와 카메라 사이에 2개의 서로 다른 웹소켓 연결을 포함하게 된다.
중간 서버는 제3 웹소켓 연결과 제4 웹소켓 연결이 복수의 웹소켓 연결을 포함하는 경우, 클라이언트 기기에서 전송되는 컨트롤 명령이 목적 된 카메라로 전송되고, 카메라에서 전송되는 컨트롤 명령에 대한 응답이 목적된 클라이언트 기기로 전송되도록, 제3 웹소켓 연결과 제4 웹소켓 연결을 릴레이하는 기능을 포함한다. 따라서 복수의 카메라 또는 복수의 클라이언트 기기에 대하여 터널링을 통한 미디어 스트리밍이 가능하다.
도 6은 미디어 스트림 전송을 위한 흐름(sequence)을 나타낸다. 도 6은 중간 서버와 카메라, 중간 서버와 클라이언트 기기 간에 웹소켓 연결을 수립하고 웹소켓 상의 RTP/RTSP를 통해 미디어 스트림을 전송하는 과정을 도시한다.
먼저 클라이언트 기기는 제4 웹소켓 연결을 통해 특정 영상 프로파일에 대한 스트림 셋업을 중간 서버에 요청한다(S31). 중간 서버는 클라이언트 기기의 요청에 따라 미디어 스트림 전송을 위한 새로운 웹소켓 URI를 생성한다(S32). 중간 서버와 카메라는 새로운 웹소켓 URI를 통해 제3 웹소켓 연결과 구별되는 새로운 웹소켓 연결을 수립한다(S33, S34, S35). 중간 서버와 카메라 간의 새로운 웹소켓 연결을 제1 웹소켓 연결이라 칭한다. 다음으로 중간 서버는 클라이언트 기기와의 연결을 위한 새로운 웹소켓 URI를 생성하고(S36) 새로운 웹소켓 URI를 통해 제4 웹소켓 연결과 구별되는 새로운 웹소켓 연결을 수립한다(S37, S38, S39). 중간 서버와 클라이언트 기기 간의 새로운 웹소켓 연결을 제2 웹소켓 연결이라 칭한다.
클라이언트 기기는 중간 서버에 제2 웹소켓 연결을 통해 미디어 스트림의 전송을 요청한다(S40). 중간 서버는 클라이언트 기기부터 받은 요청에 따라 제1 웹소켓 연결을 통해 카메라에 미디어 스트림의 전송을 요청한다(S41). 카메라는 요청된 영상 프로파일의 미디어 스트림을 제1 웹소켓 연결을 통해 중간 서버에 전송한다(S42). 중간 서버는 카메라로부터 수신한 미디어 스트림을 제2 웹소켓 연결을 통해 클라이언트 기기에 전송한다(S43).
제1 웹소켓 연결과 제2 웹소켓 연결을 통해 미디어 스트림은 웹소켓 상의 RTP/RTSP 방식에 따라 전송될 수 있다. 제1 웹소켓 연결과 제2 웹소켓 연결은 RTSP의 TEARDOWN 명령 또는 Keep Alive의 시간 제한으로 연결이 종료될 수 있다(S44, S45).
제1 웹소켓 연결과 제2 웹소켓 연결은 각각, 클라이언트 기기에서 요청하는 영상 프로파일의 종류에 따라 서로 다른 복수의 웹소켓 연결을 포함할 수 있다. 예를 들면, 클라이언트 기기에서 해상도 1280x720, 프레임 레이트 30fps, 비트 레이트 26Mbps의 영상 프로파일과 해상도 720x480, 프레임 레이트 10fps, 비트 레이트 192kbps의 두가지 종류의 영상 프로파일을 요청한 경우, 제1 웹소켓 연결은 중간 서버와 카메라 사이에 서로 다른 2개의 웹소켓 연결을 포함하고, 제2 웹소켓 연결은 중간 서버와 클라이언트 기기 사이에 서로 다른 2개의 웹소켓 연결을 포함할 수 있다.
중간 서버는 제1 웹소켓 연결과 제2 웹소켓 연결이 복수의 웹소켓 연결을 포함하는 경우, 요청된 영상 프로파일을 갖는 미디어 스트림이 카메라에서 클라이언트 기기로 전송되도록, 제1 웹소켓 연결과 제2 웹소켓 연결을 릴레이하는 기능을 포함한다. 따라서 복수의 영상 프로파일에 대하여 터널링을 통한 미디어 스트리밍이 가능하다.
다음으로 카메라를 중간 서버에서 등록 해지하는 방법을 도 7을 참조하여 살펴본다. 카메라도 7은 중간 서버에서 카메라 등록을 해지하는 방법을 나타낸다.
카메라는 UUID가 변경되거나 더 이상 중간 서버를 사용하지 않으려는 이유 등으로 중간 서버에서 등록을 해지하는 것이 가능하다. 카메라 등록 해지를 위해 카메라는 중간 서버에 등록 해지를 요청한다(S51). 중간 서버는 등록 해지 요청에 대하여 카메라의 고유 식별 번호로 등록된 UUID를 삭제하고(S56) 등록 해지가 완료되었음을 카메라에 전달할 수 있다(S57).
카메라와 관련하여 웹소켓 연결이 수립되어 있는 상태에서 카메라가 등록 해지 요청을 한 경우에는, 중간 서버와 카메라 간의 웹소켓 연결을 닫고(S52, S53) 중간 서버와 클라이언트 기기 간에 웹소켓 연결을 닫은 뒤(S52, S53) 카메라의 UUID를 삭제할 수 있다(S56).
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
1: 카메라 2: 클라이언트 기기
3: 중간 서버 4: 카메라 측 방화벽
5: 클라이언트 측 방화벽 11: 인터페이스 계층
12: 인터넷 계층 13: 전송 계층
14: 어플리케이션 계층

Claims (19)

  1. 카메라의 식별 정보를 갖지 않은 클라이언트 기기가 상기 카메라로부터 미디어 스트림을 제공받을 수 있도록, 중간 서버를 경유하는 미디어 스트리밍 방법으로서,
    상기 중간 서버와 상기 카메라 간에 미디어 스트림 전송을 위한 제1 웹소켓 연결을 수립하는 단계;
    상기 중간 서버와 상기 클라이언트 기기 간에 미디어 스트림 전송을 위한 제2 웹소켓 연결을 수립하는 단계;
    상기 중간 서버가 상기 클라이언트 기기로부터 상기 제2 웹소켓 연결을 통해 상기 미디어 스트림에 대한 전송 요청을 수신하는 단계;
    상기 중간 서버가 상기 전송 요청에 따라 상기 카메라에 상기 제1 웹소켓 연결을 통해 상기 미디어 스트림에 대한 전송을 요청하는 단계;
    상기 중간 서버가 상기 카메라로부터 상기 제1 웹소켓 연결을 통해 상기 미디어 스트림을 수신하는 단계; 및
    상기 중간 서버가 상기 제1 웹소켓 연결을 통해 전송 받은 미디어 스트림을 상기 제2 웹소켓 연결을 통해 상기 클라이언트 기기로 전송하는 단계를 포함하는 미디어 스트리밍 방법.
  2. 제1항에 있어서, 상기 제1 웹소켓 연결을 수립하는 단계 이전에,
    상기 중간 서버와 상기 카메라 간에 컨트롤 명령 전송을 위한 제3 웹소켓 연결을 수립하는 단계를 더 포함하는 미디어 스트리밍 방법.
  3. 제2항에 있어서, 상기 제1 웹소켓 연결을 수립하는 단계 이전에,
    상기 중간 서버와 상기 클라이언트 기기 간에 컨트롤 명령 전송을 위한 제4 웹소켓 연결을 수립하는 단계를 더 포함하는 미디어 스트리밍 방법.
  4. 제3항에 있어서,
    상기 중간 서버가 상기 클라이언트 기기로부터 상기 제4 웹소켓 연결을 통해 영상 프로파일에 대한 스트림 셋업을 요청받는 단계를 더 포함하는 미디어 스트리밍 방법.
  5. 제4항에 있어서,
    상기 중간 서버가 상기 스트림 셋업 요청에 따라 상기 카메라에 상기 제3 웹소켓 연결을 통해 상기 영상 프로파일을 요청하는 단계를 더 포함하는 미디어 스트리밍 방법.
  6. 제2항에 있어서,
    상기 제3 웹소켓 연결을 수립하는 단계 이전에 상기 중간 서버에 상기 카메라를 등록하는 단계를 더 포함하는 미디어 스트리밍 방법.
  7. 제6항에 있어서,
    상기 중간 서버에 상기 카메라를 등록하는 단계는 상기 카메라의 고유 식별 번호인 Universally Unique Identifier(UUID)를 ID로 사용하여 등록하는 단계인 미디어 스트리밍 방법.
  8. 제3항에 있어서,
    상기 제4 웹소켓 연결을 수립하는 단계 이전에 상기 중간 서버에 상기 클라이언트 기기가 접속하는 단계를 더 포함하는 미디어 스트리밍 방법.
  9. 제8항에 있어서,
    상기 클라이언트 기기는 상기 카메라의 접속번호와 상기 중간 서버의 접속번호를 입력해야 상기 중간 서버에 접속이 가능한 미디어 스트리밍 방법.
  10. 제1항에 있어서,
    상기 제1 웹소켓 연결 및 상기 제2 웹소켓 연결을 통해 전송되는 미디어 스트림은 웹소켓 상의 RTP/RTSP을 통해 전송되는 미디어 스트리밍 방법.
  11. 제3항에 있어서,
    상기 제3 웹소켓 연결 및 상기 제4 웹소켓 연결을 통해 전송되는 컨트롤 명령은 웹소켓 상의 SOAP을 통해 전송되는 미디어 스트리밍 방법.
  12. 제11항에 있어서,
    상기 중간 서버에서 상기 웹소켓 상의 SOAP을 통해 전송되는 컨트롤 명령은 HTTP header를 제거하고 전송되는 컨트롤 명령인 미디어 스트리밍 방법.
  13. 제1항에 있어서, 상기 제1 웹소켓 연결 및 상기 제2 웹소켓 연결은 각각,
    상기 클라이언트 기기로부터 요청되는 영상 프로파일의 개수에 따라 수립된 서로 다른 복수의 웹소켓 연결을 포함하는 미디어 스트리밍 방법.
  14. 제3항에 있어서, 상기 제3 웹소켓 연결 및 상기 제4 웹소켓 연결은 각각,
    상기 카메라의 개수에 따라 수립된 서로 다른 복수의 웹소켓 연결을 포함하는 미디어 스트리밍 방법.
  15. 제7항에 있어서,
    상기 중간 서버에서 카메라 등록을 해지하는 단계를 더 포함하고, 상기 카메라 등록을 해지하는 단계는,
    상기 중간 서버와 상기 카메라 사이에 연결되어 있는 웹소켓 연결을 닫는 단계;
    상기 중간 서버와 상기 클라이언트 기기 사이에 연결되어 있는 웹소켓 연결을 닫는 단계; 및
    상기 카메라의 UUID 정보를 상기 중간 서버에서 삭제하는 단계를 포함하는 미디어 스트리밍 방법.
  16. 제1항에 있어서,
    상기 제1 웹소켓 연결 및 상기 제2 웹소켓 연결은 RTSP의 TEARDOWN 명령 또는 Keep Alive의 시간 제한으로 연결이 종료되는 미디어 스트리밍 방법.
  17. 제1항에 있어서,
    상기 중간 서버는 상기 중간 서버와 상기 카메라에 상기 제3 웹소켓 연결이 수립된 경우 상기 카메라의 상태 정보를 연결 가능한 상태로 설정하는 기능을 포함하는 미디어 스트리밍 방법.
  18. 제13항에 있어서,
    상기 중간 서버는 상기 제1 웹소켓 연결 및 상기 제2 웹소켓 연결이 복수의 웹소켓 연결을 포함하는 경우, 요청된 영상 프로파일을 갖는 미디어 스트림이 카메라에서 클라이언트 기기로 전송되도록 상기 제1 웹소켓 연결과 상기 제2 웹소켓 연결을 릴레이(relay)하는 기능을 포함하는 미디어 스트리밍 방법.
  19. 제14항에 있어서,
    상기 중간 서버는 상기 제3 웹소켓 연결 및 상기 제4 웹소켓 연결이 복수의 웹소켓 연결을 포함하는 경우, 컨트롤 명령이 클라이언트 기기에서 목적 된 카메라로 전송되도록 상기 제3 웹소켓 연결과 상기 제4 웹소켓 연결을 릴레이(relay)하는 기능을 포함하는 미디어 스트리밍 방법.
KR1020170117256A 2017-09-13 2017-09-13 웹소켓을 이용하여 중간 서버를 경유하는 미디어 스트리밍 방법 KR102335670B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170117256A KR102335670B1 (ko) 2017-09-13 2017-09-13 웹소켓을 이용하여 중간 서버를 경유하는 미디어 스트리밍 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170117256A KR102335670B1 (ko) 2017-09-13 2017-09-13 웹소켓을 이용하여 중간 서버를 경유하는 미디어 스트리밍 방법

Publications (2)

Publication Number Publication Date
KR20190030039A true KR20190030039A (ko) 2019-03-21
KR102335670B1 KR102335670B1 (ko) 2021-12-06

Family

ID=66036880

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170117256A KR102335670B1 (ko) 2017-09-13 2017-09-13 웹소켓을 이용하여 중간 서버를 경유하는 미디어 스트리밍 방법

Country Status (1)

Country Link
KR (1) KR102335670B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114745361A (zh) * 2022-03-25 2022-07-12 朗新数据科技有限公司 一种用于html5浏览器的音视频播放方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101366803B1 (ko) 2007-04-16 2014-02-24 삼성전자주식회사 Http를 이용한 통신 방법 및 장치
KR20160075559A (ko) * 2013-11-13 2016-06-29 엘지전자 주식회사 네트워크로 연결된 방송 수신 디바이스와 다른 디바이스 간 연결을 관리하는 방법 및 장치
KR20160135811A (ko) * 2014-03-20 2016-11-28 삼성전자주식회사 Http 스트리밍을 사용하는 dash 스트리밍을 위한 방법 및 장치
KR20160149013A (ko) * 2015-06-17 2016-12-27 주식회사 노버스 웹 기반 실시간 서비스 시스템 및 이를 지원하는 서버 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101366803B1 (ko) 2007-04-16 2014-02-24 삼성전자주식회사 Http를 이용한 통신 방법 및 장치
KR20160075559A (ko) * 2013-11-13 2016-06-29 엘지전자 주식회사 네트워크로 연결된 방송 수신 디바이스와 다른 디바이스 간 연결을 관리하는 방법 및 장치
KR20160135811A (ko) * 2014-03-20 2016-11-28 삼성전자주식회사 Http 스트리밍을 사용하는 dash 스트리밍을 위한 방법 및 장치
KR20160149013A (ko) * 2015-06-17 2016-12-27 주식회사 노버스 웹 기반 실시간 서비스 시스템 및 이를 지원하는 서버 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114745361A (zh) * 2022-03-25 2022-07-12 朗新数据科技有限公司 一种用于html5浏览器的音视频播放方法及系统

Also Published As

Publication number Publication date
KR102335670B1 (ko) 2021-12-06

Similar Documents

Publication Publication Date Title
US20210377619A1 (en) Controlling Networked Media Capture Devices
CN1913533B (zh) 基于会话初始化协议的远程视频监控系统及其实现方法
CN103368937B (zh) 通信系统和在通信系统中发送和接收数据的方法
EP2116006B1 (en) Method for remotely controlling multimedia communication across local networks.
JP5931077B2 (ja) 監視ビデオルータ
US7558862B1 (en) Method and apparatus for remotely controlling a computer with peer-to-peer command and data transfer
US9246915B2 (en) Streaming media for portable devices
Shacham et al. Session initiation protocol (SIP) session mobility
US9660873B2 (en) Method and apparatus for providing remote access service
US10878678B2 (en) Method and system for controlling cameras
KR102335670B1 (ko) 웹소켓을 이용하여 중간 서버를 경유하는 미디어 스트리밍 방법
TWI648984B (zh) 多媒體串流系統及方法
EP3529963B1 (en) Methods and apparatus for facilitating real time multimedia communications
JP6543585B2 (ja) 通信制御システム及び方法
JP5570399B2 (ja) 記録装置
US9900373B2 (en) System for providing a service, such as a communication service
JP2011086197A (ja) ネットワークセキュリティシステム
TWI513322B (zh) Universal plug and play network monitoring system and its control method
JP3950345B2 (ja) インターネットの双方向通信方法
TW201714447A (zh) 網路系統、閘道器及資料傳輸方法

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant