KR100820350B1 - 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍서버 및 스트리밍 구현방법 - Google Patents

다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍서버 및 스트리밍 구현방법 Download PDF

Info

Publication number
KR100820350B1
KR100820350B1 KR1020070013266A KR20070013266A KR100820350B1 KR 100820350 B1 KR100820350 B1 KR 100820350B1 KR 1020070013266 A KR1020070013266 A KR 1020070013266A KR 20070013266 A KR20070013266 A KR 20070013266A KR 100820350 B1 KR100820350 B1 KR 100820350B1
Authority
KR
South Korea
Prior art keywords
engine
rtp
http
streaming server
vod
Prior art date
Application number
KR1020070013266A
Other languages
English (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 (주)센텍
Priority to KR1020070013266A priority Critical patent/KR100820350B1/ko
Application granted granted Critical
Publication of KR100820350B1 publication Critical patent/KR100820350B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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
    • H04L65/762Media network packet handling at the source 
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 스트리밍 서버(Streaming Server)에 관한 것으로서, 실시간 스트리밍(Real Time Streaming)이 가능하도록 구현된 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버 및 스트리밍 구현방법(Multi Container Format Integration Streaming Server)에 있어서,
AVI와 같은 컨테이너 포맷(Container Format)은 원초적으로 스트리밍(Streaming)이 가능한 트랙별 색인키인 힌티드(hinted) 정보를 포함하고 있지 않아, 실시간 동영상 재생이 불가능하여 다수의 동영상 솔루션 업체 또는 서비스 업체들은 일반적으로 일부분을 먼저 다운로드받아 먼저 재생 후 나머지 분량을 받는 다운로드 펜딩(Download Pending) 방식[즉, 나머지 분량을 다운로드받아 이어 재생하는 방식]으로 재생하기 때문에 다수의 시간적 차이는 있겠지만 동영상 재생 중 앞으로 또는 뒤로 이동시 버퍼링(buffering)이 끝날 때까지 기다려야 하는 불편함이 있었다.
또한 스트리밍 서버와 플레이어(Player)를 제공하는 업체가 정하는 특정한 코덱(Codec)만을 제공하므로 그 서버 등을 사용하는 서비스를 제공하는 업체는 서버/클라이언트(Server/Client) 환경에 맞춰 트랜스코딩(Transcoding, 코덱 변환장치)을 해 주어야 한다는 단점이 있었다. 이러한 시간적 금전적 손해를 줄이기 위해 올 파일 컨테이너 포맷(all file container format), 올 코덱 스트리밍 서비스(All Codec Streaming Service)가 가능한 새로운 스트리밍 서비스가 기술인 "RTP 오브 RTSP 온 RTSP 크로싱 컨트롤(RTP Over RTSP On RTSP Crossing Control)" 과 "RTP 오버 HTTP 온 HTTP 크로싱 컨트롤(RTP Over HTTP ON HTTP Crossing Control)"이라는 새로운 통합 서버 엔진을 장착하여, 다시 말해, 새로운 서버 알고리즘을 적용하여 실시간 스트리밍(Real Time Streaming)이 가능한 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버 및 스트리밍 구현방법(Multi Contaniner Format Integration Streaming Server)에 관한 것이다.
리얼 스트리밍, 스트리밍 서버

Description

다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버 및 스트리밍 구현방법{Multi Contaniner Format Integration Streaming Server and Streaming Method}
도 1은 본 고안에 따른 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버의 전체 구성도.
도 2는 본 고안에 따른 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버의 실시예를 나타난 구성도.
도 3은 본 고안에 따른 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 구현방법을 나타낸 순서도.
<도면의 주요부분에 대한 부호의 설명
10: 제어 장치부 11: HTTP 리퀘스트(HTTP request) 12: HTTP 세션 인터페이스(HTTP Session Interface)
13: HTTP 프로토콜(HTTP Protocol) 엔진 20: 재생 및 제어전송 장치부 21: RTP 세션 인터페이스(RTP Session Interface)
삭제
삭제
22: RTCP 태스크(RTCP Task) 30: 재생장치부
31: 포인트 레지스트리(point registry)
32: 데이터 플로우 레이트 컨트롤(Data flow Rate Control)
33: 레지스트리 히프(Registry Heap)
본 발명은 다양한 파일 컨테이너 포멧(예를 들면, avi, mp4 확장자를 가진 파일)을 지원하기 위한 통합 스트리밍 서버 및 스트리밍 구현방법에 관한 것으로서, 올 파일 컨테이너 포맷(All File Container Format), 올 코덱 스트리밍 서비스(All Codec Streaming Service)가 가능한 새로운 스트리밍 서비스가 기술인 "RTP 오브 RTSP 온 RTSP 크로싱 컨트롤(RTP Over RTSP On RTSP Crossing Control)"과 "RTP 오브 HTTP 온 HTTP 크로싱 컨트롤(RTP Over HTTP ON HTTP Crossing Control)"이라는 새로운 통합 서버 엔진을 장착하여, 다시 말해, 새로운 서버 알고리즘을 적용함으로써 실시간 스트리밍(Real Time Streaming)이 가능하도록 구현된 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버 및 스트리밍 구현방법(Multi Container Format Integration Streaming Server)를 제공하는 것이다.
기존의 리얼 스트리밍 서버(Real Streaming Server)는 스트리밍 힌티드(Streaming Hinted) 정보를 가지고 있는 파일을 리얼 라이브(real live) 또는 파일 라이브(file live) 방식으로 전송하는 방식을 의미하며, 다음과 같은 특정 포멧을 지원하는 전문 스트리밍 서버에 한해서만 가능했다.
1. MP4 컨테이너 파일(MP4 Container File)
멀티 컨테이너라 하며 다양한 디코더(decoder) 정보와 힌티드 정보를 컨테이너 헤드(Container Header)에 포함하고 각종 디코더를 탑재할 수 있는 구조로 되어 있으며, RTP MP4 페이로드(Payload)를 지원하는 MP4 전용 스트리밍 서버에서만 서비스가 가능하며, 지원포멧은 비디오(:H.264, X264, MPEG4, MP3), 오디오(:AAC, AC3, MP3)등의 디코더를 탑재할 수 있다.
2. MP2-TS 컨테이너 파일
으로 많이 활용되며, 일반적인 스트리밍 서버에서는 지원되지 않아 MP2-TS전용 MPEG2 디코더만 스트리밍이 가능한 컨테이너로 라이브 캐스트(Live Caster)와 같은 기능 스트리밍 서버에서 서비스가 가능하다.
3. MOV 컨테이너 파일
퀵 타임 스트리밍 서버(Quick Time Streaming Server) 전용 컨테이너
4. WMV 컨테이너 파일
Windows 2003 스트리밍 전용 서버에서 지원하는 윈도우 미디어 플레이어 전용 컨테이너로 MicroSoft사의 MPEG-4 레이어 디코더(Layer Decoder)만 지원한다.
상기 기술한 바와 같이 4가지의 컨테이너가 각각의 전용 스트리밍 서버에서 스트리밍 서비스가 가능할 뿐 전혀 호환되지 않으며, 그 이외의 AVI와 같은 로컬(Local) 전용 컨테이너의 경우 리얼 스트리밍을 할 수 없기 때문에 일정부분을 미리 내려받아 미리 재생하는 방식인 다운로드 펜딩 방식을 이용하여 서비스하는 것이 일반적인 방식이었으며, 원초적으로 스트리밍이 가능한 힌티드 정보를 포함하고 있지 않아, 실시간 동영상 재생이 불가능하여, 다수의 동영상 솔루션 업체 또는 서비스 업체들은 일반적으로 일부분을 먼저 다운로드 받아 먼저 재생 후 나머지 분량을 받는 다운로드 펜딩 방식으로 재생하기 때문에 다수의 시간적 차이는 있겠지만 동영상 재생 중 앞으로 또는 뒤로 이동 시 버퍼링이 끝날 때까지 기다려야 하는 불편함이 있었다.
일반적으로 스트리밍이라 함은 RTSP/RTP기반에 VOD 패킷(VOD Packet)에 대해 힌티드 정보 단위의 바이너리(Binary) 단위로 잘라 RTP 페이로드(RTP Payload)에 올려 전송하고, 상기 VOD 패킷 속에 포함되어 있는 헤더(Header) 정보에는 캐리어 프레임 커런트 엔드(Carrier Frame Current End)라고 하는 프레임 정보와 페이로드 타임 라인(Payload Time Line) 정보, 그리고 전체 프레임의 분할정보, 엔드(End) 프레임 정보 등을 담고 있는 상기 힌티드라는 것을 포함하고 있어, 상기 힌티드를 근거로 미디어 플레이어가 재생을 재생하는 것이 일반적인 동작 방식이다.
상기 VOD 파일들은 반드시 힌티드 정보들을 가지고 있어야 리얼 타임 스트리밍을 할 수 있고, 상기 VOD 파일들을 스트리밍 파일 구조라고 하며, 상기 힌티드 정보를 가지고 있는 상기 스트리밍 파일로는 일반적으로 MP2-TS, MP4, MPEG4, WMV와 같은 것들이 있으며, 보편적으로 H.264, X.264, MPEG4, DVIX, XVID와 같은 코덱을 담을 수 있는 프로그램을 파일 컨테이너(File Container)라고 한다.
엔터테인먼트(Entertainment)사에서 수입 또는 제작 배급하고 있는 영화나 기타 영상 저작물들의 대부분이 AVI 파일 컨테이너에 DVIX, XVID 또는 H.264, X.264등의 코덱을 사용하여 인코딩(Encoding)되어 많이 배포되어 있으나 이들 파일 컨테이너들은 힌티드정보를 담을 수 없어 동영상 파일의 전체를 다운로드 받아야만 감상이 가능했다.
상기 변환(transcoding)작업 수행시, 1시간 20분의 재생시간을 갖는 동영상을 기준으로 변환 작업을 한다면 약 1시간 30분 정도의 시간이 소요되고, 상기 파일들을 실시간 스트리밍이 가능하도록 하려면 AVI(:H.264, X.264, MPEG4, DVIX, XDIX - 코덱을 포함)컨테이너를 MP4(:H.264, X.264, MPEG4, DVIX, XDIX)컨테이너 힌티드 정보를 포함하여 변환시켜 주여야 한다. 상기 변환 작업시 한 편당의 변환 비용은 대략 70,000원에서 100,000원 정도의 비용이 발생한다.
이러한 문제점을 해결하기 위해 일부 동영상 솔루션 개발업체는 일정부분을 미리 일부분을 먼저 다운로드 받아 먼저 재생 후 나머지 분량을 받는 다운로드 펜딩 방식을 사용하여 동영상 파일의 일부를 서버에 처음 접속 시 스타트 타임 헤더(Start Time Header)와 엔드 타임 헤더(End Time Header)를 포함하여 미리 내려받아 일정 부분을 사용자 PC에 버퍼링하게 함으로써 동영상을 지속적으로 볼 수 있도록 하였다.
또한 동영상 감상 중 포지션 바를 감상하고자 하는 앞 또는 뒤 방향으로 이동시 매번 버퍼링하기 때문에 그 시간만큼 영상이 멈춘 상태로 기다렸다가 다시 감상을 해야 하는 불편함이 있었고, 상기와 같은 서비스를 수행하기 위해서는 특정한 코덱 포맷만이 서비스가 가능하기 때문에, 콘텐츠 제공업체들은 상기 변환 비용과 시간 손실을 감수해야 한다는 불편함이 발생하였다. 상기 불편함은 AVI 컨테이너 파일이 실시간 스트리밍 서비스를 할 수 있도록 구조화되어 있지 않기 때문에 발생하였다.
또한, 스트리밍 서버와 플레이어를 제공하는 업체는 정해진 특정 코덱만을 제공하므로 그 서버 등을 사용하는 서비스를 제공하는 업체는 그 서버/클라이언트 환경에 맞춰 변환(Transcoding)을 해주어야 한다는 단점이 있었다.
본 발명은 상기 문제점을 해결하기 위해 발명된 것으로, 실시간 스트리밍이 가능하도록 구현된 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버 및 스트리밍 구현방법(Multi Container Format Integration Streaming Server)에 있어서,
AVI와 같은 컨테이너 포맷은 원초적으로 스트리밍이 가능한 힌티드정보를 포함하고 있지않아, 실시간 동영상 재생이 불가능하여 다수의 동영상 솔루션 업체 또는 서비스 업체들은 일반적으로 일부분을 먼저 다운로드받아 먼저 재생 후 나머지 분량을 받는 다운로드 펜딩 방식으로 재생하기 때문에 다수의 시간적 차이는 있겠지만 동영상 재생 중 앞으로 또는 뒤로 이동시 버퍼링이 끝날 때까지 기다려야 하는 불편함이 있었다.
또한 스트리밍 서버와 플레이어를 제공하는 업체가 정하는 특정한 코덱만을 제공하므로 그 서버 등을 사용하는 서비스를 제공하는 업체는 서버/클라이언트 환경에 맞춰 트렌스코딩(Transcoding)을 해 주어야 한다는 단점이 있었다. 이러한 시간적 금전적 손해를 줄이기 위해 올 파일 컨테이너 포맷, 올 코덱 스트리밍 서비스가 가능한 새로운 스트리밍 서비스가 기술인 "RTP Over RTSP On RTSP Crossing Control" 과 "RTP Over HTTP ON HTTP Crossing Control"이라는 새로운 통합 서버 엔진을 장착하여, 다시 말해, 새로운 서버 알고리즘을 적용함으로써 실시간 스트리밍이 가능한 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버 및 스트리밍 구현방법(Multi Contaniner Format Integration Streaming Server)을 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위해 발명된 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버 및 스트리밍 구현방법에 있어서,
HTTP 프로토콜을 이용한 다양한 파일포멧을 리얼 스트리밍으로 구현하기 위 한 전송 및 프로토콜 제어장치부(10)와;
HTTP 프로토콜 상에서 클라이언트 플레이어가 버퍼링없이 구간탐색 및 재생을 가능하게 해주는 재생 및 제어전송 장치부(20)와;
다양한 컨테이너 포멧을 리얼 스트리밍으로 전송하기 위한 색인키인 힌티드 정보 및 타임라인 정보 등을 생성하여 해당 컨테이너를 재구성 및 생성하는 재생장치부(30);로 이루어진 것을 특징으로 한다.
본 발명은 종래의 RTP/RTSP 스트리밍 서버에 HTTP 프로토콜을 처리할 수 있는 RTP 오브 HTTP 온 HTTP 크로싱 컨트롤(RTP Over HTTP on HTTP Crossing Control)" 엔진이 적용된다. 본 발명에 있어서, 상기 "RTP Over HTTP on HTTP Crossing Control"은 실시간 동영상 송출 장치로 많이 사용되고 있는 종래의 "RTP/RTSP"프로토콜 중 RTSP(Real Time Streaming Protocol)로 종래에 구현되고 있는 동영상 실시간 송출 장치와 실시간 사용자 수신 단말 장치간의 요구/응답(재생, 일시정지, 정지, 앞으로 감기 등) 전달 장치를 HTTP를 이용해 사용할 수 있도록 해주는 엔진이다. 보다 구체적으로, 본 발명의 "RTP Over HTTP on HTTP Crossing Control"은 프로토콜 변환 장치로서 설명될 수 있다. 즉, RTSP를 HTTP로, HTTP를 RTSP로 변환시키는 장치로 설명될 수 있다.
다시 말해, 상기 "RTP Over HTTP on HTTP Crossing Control"은 HTTP를 RTSP와 비슷하게 동작시킴으로써 수신 단말 장치로부터 "재생", "정지", "일시정지"와 같은 요구/응답 지시자를 실시간 프로토콜(RTP) 장치로 보내 동영상 데이터를 실시간 수신 단말 장치로 AVI, WMV, MP4, MP3 등과 같은 포맷을 송출한다.
첨부 도면을 참조하며 본 발명을 상세하게 설명하기에 앞서, 본 발명의 특징을 종래 방식과 비교하여 간략히 설명하면, 종래의 실시간 스트리밍 프로토콜(RTSP)은 요구/응답 지시자가 "재생", "정지", "일시정지"와 같은 요구와 응답을 통해 실제 영상 데이터를 송출해주는 실시간 프로토콜(RTP)장치 및 사용자 동영상 수신 장치와 연결됨으로써 동영상이 재생되었다.
그러나, 이러한 종래의 동영상 재생 방식은 AVI, WMV, MP4, MP3와 같은 다양한 동영상 포맷이 스트리밍되지 못하고, 상기 AVI, WMV, MP4, MP3 동영상 포맷 각각에 대응되는 서버가 필요하다는 단점이 있다. 또한, 이들 모두의 포맷을 스트리밍하려면 "윈도우 미디어 서버", "다윈 스트리밍 서버", "퀵타임 스트리밍 서버" 등을 별도로 구입해서 스트리밍 서버 시스템을 구축하거나, "파일 포맷과 코덱"을 동시에 변환할 수 있는 "트랜스코더"를 구입해서 파일 포맷을 변환하여 동영상 서비스를 진행해야만 한다.
이러한 종래 방식에 비해, 본 발명의 "RTP Over RTSP On RTSP Crossing Control" 및 "RTP Over HTTP on HTTP Crossing Control" 통합 서버 엔진은 AVI, WMV, MP4, MP3 동영상 포맷에 대응되는 각각의 서버를 구축할 필요없이 본 발명의 통합 서버 엔진 하나만으로 모든 다양한 동영상 포맷을 재생시킬 수 있고, 동영상 재생시 포지션 탐색바를 이동시켜도 버퍼링하는 부분이 없어지며 다운로딩 펜딩(download pending)없이 RTP Over HTTP on HTTP Crossing Control 방식으로 리얼 타임 스트리밍될 수 있다.
또한, 본 출원 명세서에 기재되는 힌티드(hinted) 정보를 간략히 설명하면, 상기 힌티드 정보는 비디오 및 오디오 내용과 정보를 감싸고 있는 포맷(예컨대, 확장자 wmv, mp3, avi 등)은 두개의 트랙과 하나의 타임라인으로 구성되며, 트랙1-비디오 프레임, 트랙2-오디오, 트랙3-타임라인(타임스탬프)과 정보 헤더로 구성되어 임의(프레임) 또는 매 30, 50, 100... 비디오 프레임과 오디오 트랙에 각각의 인덱스 키(index key)를 "타임 스탬프" 단위로 삽입하는 것을 말한다. 즉, 힌티드 정보는 트랙별 인덱스 키 신호를 말하며, 본 발명에 있어서는 비재생파일에 이러한 힌티드 정보를 강제로 삽입시키게 된다.
이하, 본 고안의 바람직한 실시예를 첨부한 도면을 참조하면서 상세히 설명한다.
도 1은 본 고안에 따른 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버의 구성도이다.
상기 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버를 사용하는 사용자(Client)가 VOD 스트리밍 서버에 VOD 리얼 스트리밍(VOD Real Streaming)할 것을 요청하면, 상기 VOD 스트리밍 서버는 상기 사용자로부터 요청된 HTTP 프로토콜(13) 엔진을 가져와 헤더 파서 엔진(Header Parser engine)[= 헤더 분석/분해 엔진]으로 연결해 헤드 정보를 분석한다.
상기 헤드 파서는 컴파일러(Compiler)의 일부로서, 원시 프로그램의 명령문이나 온라인 명령문의 입력을 받아들여서 다른 프로그램에 의해 처리될 수 있도록 여러 부분으로 나눠주는 역할을 하는 엔진이며 상기 헤드 파서에 의해 분석된 메세지를 축출해 HTTP 리퀘스트(11) 엔진으로 보낸다.
상기 HTTP 리퀘스트(11) 엔진은 미디어 플레이어의 요구사항을 상기 VOD 스트리밍 서버에 요청하고 그 결과를 상기 사용자에게 알려주는 엔진으로 그 동작의 흐름은 상기 HTTP 프로토콜(13) 엔진과 인터페이스(interface)되어 구동되며, 상기 HTTP 프로토콜(13) 엔진의 최상위 계층에는 HTTP 섹션 인터페이스(12) 엔진이 주 엔진으로 구성되어 동작되는 구조이며, 상기 HTTP 섹션 인터페이스(12) 엔진이 다른 계층의 엔진인 상기 HTTP 프로토콜(13) 엔진과 상기 HTTP 리퀘스트(11)와 같은 엔진 등을 인터페이스하고 그 동작은 다음과 같은 구조로 동작한다.
1. HTTP 리퀘스트 매체(HTTP Request Method)는 HTTP 섹션 인터페이스(12)의 요구 응답을 받기 위한 요구 지시자를 생성하고, 그 저장 포인터를 초기화하여 서버의 헤드 필드(Header Field)로 그 포인터를 이동시키고, 응답 헤드(response Header)를 생성시킨다.
2. HTTP 리퀘스트 클래스(HTTP Request class)의 분석체(Parse Method)를 이용해 요청 메시지를 분석하고, 헤더에 설정되어 있는 정보를 분석 후, 필드 밸류 어레이(Field Value Array)로 옮긴다.
3. HTTP 리퀘스트 클래스의 파스 리퀘스트 라인 매체(Parse Request Line Method)는 다음과 같은 매체를 인터페이스해 HTTP 변환기(HTTP method)와 파라미터(parameter)들을 다음과 같이 인터페이스되어 있는 매체들을 이용해 추출한다.
4. HTTP 리퀘스트 클래스의 헤더 분석체(Parse Headers Method)를 호출해 상기 HTTP 프로토콜(13) 엔진 상의 질의(Query)들을 분석한다.
5. 상기 HTTP 프로토콜(13) 엔진 상의 질의에 대한 분석이 끝나면 사용자에게 응답할 수 있도록 응답 헤드 생성체(Create response Header Method)로 응답 헤드를 생성한다.
6. 응답 헤드가 생성되면, 어펜드 응답 헤더(Append Response Header)로 헤더를 저장(Appending)한다.
상기 메세지는 겟, 포스트(Get, Post)와 같은 함수들을 포함하고 있으며 상기 함수(method)들을 근거로 세션 인터페이스 엔진에게 상기 사용자에게 VOD 스트리밍 서버로부터 랜덤하게 발생하도록 처리된 신규 세션(Session)을 생성하도록 요청하여 VOD 스트리밍 서버와 상기 사용자간의 연결을 유지하도록 한다.
RTP Over HTTP On HTTP Crossing Control이 발생할 수 있도록 상기 HTTP 프로토콜(13) 엔진을 호출해 생성된 상기 사용자의 세션(Session)을 넘버링(Numbering)하고, 서버상의 힌티드 정보를 연산 처리할 수 있도록 VOD 단위별 히프 메모리 블럭(Heap Memory Block)을 처리해 주는 엔진인 포인트 레지스트리(point registry)(31)라고 하는 추상 클래스 엔진(Class Engine)을 생성한다.
이렇게 생성된 상기 추상 클래스 엔진은 상기 사용자로부터 요청받은 메시지인 플레이, 스톱, 포즈, 리뷰, 포워드(Play, Stop, Pause, Review, Forward)와 레이트 포지션(Rate Position)의 이동값 등과 같은 함수 변환기(String Method Control)들의 파라미터를 데이터 플로우 레이트 컨트롤(Data flow Rate Control)(32)과 컨트롤 통신을 주고 받으며 현재 프레임 위치 및 힌티드와 같은 정보를 공유한다.
상기 파라미터를 상기 사용자와 VOD 스트리밍 서버간의 세션 연결이 유지되는 동안만 존재하고 상기 사용자에 의해 테어다운(Teardown)이 발생해 세션이 끊기면 상기 추상 매체(method)는 메모리 히프(memory Heap)으로부터 영구 제거된다.
상기 사용자와 상기 VOD 스트리밍 서버간 세션이 연결이 되고 포인트 레지스트리(31)인 클래스 엔진이 생성되면 VOD 스트리밍 서버는 RTP 세션 엔진을 통해 RTP 세션 인터페이스(21) 엔진과 RTCP 태스크(RTCP Task)(22) 엔진을 생성하고 인터페이스한 다음 VOD 스트리밍 서버와의 연결을 유지할 수 있는 RTP 서버로부터 랜덤하게 발행하도록 처리된 RTP 세션을 생성한다.
상기 RTP 세션 인터페이스(21)는 RTP 서버와 연결할 수 있는 로컬 포트(Local Port)를 포함한 로컬 서버 주소와 원격지 포트를 포함한 원격지(RTSP) 서버 주소, 그리고 세션 타입(Session type) 및 입/출력 TCP 콘솔 소켓(Input/output TCP Console Socket), 라이브 소켓(Live Socket)등을 다루는 메인 서버의 인터페이스 엔진이다.
RTP 세션 엔진은 VOD 스트림 패킷(VOD Stream Packet)을 입출력하기 위해 UDP 소켓 페어(UDP Socket Pair)를 열도록 요청하고 상기 RTCP 태스크(22) 엔진을 초기화하며, VOD 헤더 정보를 HTTP로 3분할(third parting)을 하기 위해 RTP 써드 파스(RTP Third Parse) 엔진을 초기화하고, 네트워크 통신망의 대역폭이 10M 이하의 작은 지역 등에서도 초기 VOD 로딩 타임(VOD Loading Time)을 3초 이내 영상이 보이도록 최소화하기 위해 지원되는 엔진 등의 순으로 동작한다.
상기 RTCP 태스크(22)는 RTP 소켓 풀 엔진(RTP Socket Pool Engine)에서 사용되며 UDP 소켓 페어에 의해 UDP 입출력(Input/output)처리를 위한 두 개의 UDP 소켓을 쌍으로 사용해 UDP 1번 소켓으로 로컬 데이터(local data)를 받고 UDP 2번 소켓의 데이터를 받아 RTP 페이로드에 연결함으로써 데이터가 전송되며, RTP 컨트롤인 RTCP는 RTCP-SR(Send Report)를 상기 사용자에게 알려 줌으로써 데이터를 받고 상기 사용자는 데이터를 받은 직후 RTCP-RR(Receive Report)을 RTP 서버 핸들(RTP Server Handle)에게 알려줌으로써 그 다음 UDP 데이터를 읽어 준비한 후 전송하는 리미트 RTP 세션 멀티 써레드(Limit RTP Session Multi Thread) 엔진이다.
상기 RTP 소켓 풀 엔진은 RTSP는 오디오나 비디오와 같은 연속형 미디어의 시간에 동기화된 스트리밍들을 설정하고 제어하는 역할을 한다. 즉, RTSP는 스트리밍 서버의 리모트 컨트롤 역할을 하며, 하나의 RTSP 세션 동안, 서버로 RTSP 요청을 보내기 위해 여러 개의 UDP 페어 소켓(또는 TCP) 연결을 열고 닫을 수 있으며, RTSP에 의해 제어되는 미디어 스트림(Media Stream)은 RTP일 수 있지만, RTSP는 미디어 스트리밍을 위한 트랜스포트 메카니즘(Transport Mechanism)에 의존하지 않으며, HTTP의 확장이 대부분일 경우에 RTSP에도 추가될 수 있다.
RTP 스트림 엔진은 RTP 세션 엔진과 인터페이스되어 로컬 에리어(local area)에서 VOD 파일을 로딩(loading)하는 엔진인 스트리밍 파일 엔진에 의해 VOD 디렉토리로부터 클라이언트가 요청한 파일을 로딩하여 상기 UDP 소켓 페어 엔진과 연결된다.
데이터 패킷을 상기 UDP 소켓 페어 중 1번 소켓으로 입력받아 2번 소켓을 통해 RTP와 연결한 다음 상기 데이터 패킷을 RTP 페이로드에 올릴 것인지 RTP 오버 런(RTP Over Run)을 통해 HTTP로 연결할 것인지를 판별한다. 상기 RTP 오버 런은 RTP 엔진을 구동시키는 매개체로서, RTP 전송체 또는 RTP 전송 장치로 설명될 수 있다.
RTP 스트림에 의해 UDP 소켓 페어를 열고 스트리밍 파일 엔진이 구동되고 데이터 플로우 레이트 컨트롤(32) 엔진을 호출해 제일 먼저 상기 사용자가 요청한 페어 패킷(Pair Packet) 정보와 힌티드 정보 및 VOD 헤더 정보가 있는지의 여부를 판별한 다음 상기 페어 패킷 정보와 힌티드 정보 및 VOD 헤더 정보가 없으면, 상기 VOD 파일을 로딩하고 가상 힌티드 맵(Hinted Map)을 각각의 프레임에 맵핑(Mapping)한다.
상기 맵핑 넘버링을 작성한 다음 VOD 파일의 헤더를 분할할 수 있도록 가상 헤더를 포함해 타임 라인(Time Line)을 구성한다. 이때, 상기 사용자는 이러한 힌티드 정보를 해독하고 플레이어 커맨드(Player Command) 지시자에 의해 동작하며 그 동작 결과를 서버로 전달할 수 있도록 플레이어 엔진을 구성한다.
도 2는 본 고안에 따른 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버의 실시예를 나타낸 구성도이다.
포인터 프레임(point Frame)을 구하는 공식은 다음과 같다.
((현재위치/(Duration))×포지션 BOX 길이
포지션 박스 길이를 포인터 프레임 역순 구하는 공식은 다음과 같다.
(Duration)×(((현재 BOX 포인터 위치)))/(BOX 총길이))
상기 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버기법은 MP4 파일 내부에 존재하는 힌티드를 이용한 프레임 색인기능을 상기 VOD 스트리밍 서버가 대신하는 방식으로 AVI 파일 포멧(File Format)뿐만 아니라 WMV, MP2등 모든 포멧을 별도의 힌티드 정보없이 스트리밍을 지원한다.
도 3는 본 고안에 따른 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버 구현방법의 실시예를 나타낸 순서도이다.
다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 구현방법에 있어서,
사용자가 VOD 스트리밍 서버에 VOD 스트리밍할 것을 요청하는 1단계(S1);
상기 VOD 스트리밍 서버는 상기 사용자로부터 요청된 상기 HTTP 프로토콜(13) 엔진을 가져와 헤더 파싱(Header Parsing) 엔진을 이용하여 연결하여 헤더 정보를 분석하고, 상기 헤더 정보에서 분석된 메세지를 축출해 HTTP 리퀘스트(11) 엔진으로 상기 메세지를 보내는 2단계(S2);
겟, 포스트(Get, Post)와 같은 함수를 포함한 상기 메세지를 근거로 세션 인터페이스 엔진이 HTTP 섹션 인터페이스(12) 엔진에게 상기 사용자와 상기 VOD 스트리밍 서버로부터 랜덤하게 생성되도록 처리된 신규 세션을 생성하도록 요청해 상기 VOD 스트리밍 서버와 상기 사용자간의 연결을 유지하도록 하는 3단계(S3);
RTP Over HTTP Crossing Control이 발생할 수 있도록 HTTP 프로토콜(13) 엔진을 호출해 생성된 상기 사용자 세션(Client Session)을 넘버링하고, RTP Over HTTP Crossing Control이 발생할 수 있도록 상기 HTTP 프로토콜(13) 엔진 상의 힌티드 정보를 연산처리할 수 있도록 VOD 단위별 히프 메모리 블럭(Heap Memory Block)을 처리해 주는 엔진인 포인트 레지스트리(31)가 추상 클래스 엔진을 생성하는 4단계(S4);
상기 생성된 클래스 엔진 클라이언트(Class Engine Client)로부터 요청받은 플레이어, 스톱, 포즈, 리뷰, 포워드, 레이트 포지션(PLAY, STOP, PAUSE, RREVIEW, FORWARD, Rate Position)과 같은 함수 변환기들의 파라미터를 데이터 플로우 레이트 컨트롤(32)과 컨트롤 통신을 주고받으며 현재의 프레임 위치 및 힌티드와 같은 정보 등을 공유하는 5단계(S5);
상기 사용자와 상기 VOD 스트리밍 서버간 세션이 연결이 되고 상기 포인트 레지스트리(31)인 클래스 엔진이 생성된 후, 상기 VOD 스트리밍 서버는 RTP 세션 엔진을 통해 RTP 세션 인터페이스(21) 엔진과 RTCP 태스크(22) 엔진을 생성하며, 상기 RTP 세션 인터페이스(21) 엔진과 상기 RTCP 태스크(22) 엔진이 인터페이스한 다음 상기 VOD 스트리밍 서버와의 연결을 유지할 수 있는 상기 RTP 세션을 생성하는 6단계(S6);
상기 RTP 세션 엔진은 VOD 스트림 패킷을 입출력하기 위해 UDP 소켓 페어를 열도록 요청하고 상기 RTCP 태스크(22) 엔진을 초기화하고, VOD 헤더 정보를 HTTP로 3분할(Third Parting)을 하기 위해 RTP 써드 파스 엔진을 초기화하며, 네트워크 통신망의 대역폭에서 10M 이하의 대역폭이 작은 지역 등에서도 초기 VOD 로딩 타임을 3초 이내 영상이 보이도록 최소화하기 위해 지원되는 엔진 순으로 동작하는 7단계(S7);
RTP 스트림 엔진은 상기 RTP 세션 엔진과 인터페이스되어, 로컬 에리어에서 VOD 파일을 로딩하는 엔진인 스트리밍 파일 엔진에 의해 VOD 디렉토리로부터 상기 사용자가 요청한 파일을 로드해 UDP 소켓을 UDP 페어 중 1번 소켓으로 입력받아 2번 소켓을 통해 RTP와 연결한 다음, 상기 패킷을 RTP 페이로드에 올릴것인지 RTP 전송체인 RTP 오버 런(RTP Over Run)을 통해 HTTP로 연결할 것인지를 판별하는 8단계(S8);
상기 RTP 스트림 엔진에 의해 상기 UDP 소켓 페어를 열고 스트리밍 파일 엔진이 구동되며, 데이터 플로우 레이트 컨트롤(32) 엔진을 호출해 제일 먼저 사용자가 요청한 페어 패킷 정보와 힌티드 정보 및 상기 VOD 헤더 정보가 있는지의 여부를 판별하는 9단계(S9);
상기 정보들이 없으면 상기 VOD 파일을 로딩하고 가상 힌티드 맵을 각각의 프레임에 맵핑하고 맵핑 넘버링을 작성한 다음 VOD 파일의 헤더를 분할할 수 있도록 스타트, 루프, 엔드(Start, Loop, End) 타임과 가상 힌티드 그리고 미디어 길이(Media Length) 및 전체 프레임(Total Frame) 등의 정보를 상기 사용자에게 응답할 수 있도록 가상 헤더를 포함해 타임 라인(time line)을 구성하는 10단계(S10);
상기 10단계(S10)에서 상기 사용자는 상기 힌티드정보를 해독하고 플레이어 커맨드 지시자에 의해 동작하며 그 동작결과를 서버로 전달할 수 있도록 플레이어 엔진을 구성하는 11단계(S11);로 구성된다.
이상의 본 발명인 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버 및 스트리밍 구현방법(Multi Contaniner Format Integration Streaming Server)에 대한 바람직한 실시예를 설명하였지만, 본 발명의 범위는 상기에 기재된 실시예 및 하기의 청구범위에 한정되지 않으며, 본 발명에 속하는 분야에서 통상의 지식을 가진 자라면 본 발명으로부터 다양한 변경 및 균등한 실시가 가능하다.
본 발명은 올 파일 컨테이너 포맷, 올 코덱 스트리밍 서비스가 가능한 새로운 스트리밍 서비스가 기술인 "RTP Over RTSP On RTSP Crossing Control" 과 "RTP Over HTTP ON HTTP Crossing Control"이라는 새로운 통합 서버 엔진을 장착하여, 일부분을 먼저 다운로드받아 먼저 재생 후 나머지를 받는 다운로드 펜딩 방식으로 동영상을 재생하지 않고, 리얼 타임 스트리밍 방식으로 상기 동영상을 재생할 수 있는 효과가 있다.

Claims (13)

  1. 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버에 있어서,
    HTTP 프로토콜을 이용한 다양한 파일포멧을 리얼 스트리밍으로 구현하기 위한 전송 및 프로토콜 제어장치부(10);
    HTTP 프로토콜 상에서 클라이언트 플레이어가 버퍼링없이 구간탐색 및 재생을 가능하게 해주는 재생 및 제어전송 장치부(20);
    다양한 컨테이너 포멧을 리얼 스트리밍으로 전송하기 위한 색인키 신호인 힌티드(hinted) 정보 및 타임라인 정보등을 생성하여 해당 컨테이너를 재구성 및 생성하는 재생장치부(30);로 이루어진 것을 특징으로 하는 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버.
  2. 제 1항에 있어서,
    상기 전송 및 프로토콜 제어장치부(10)는 미디어 플레이어의 요구사항을 스트리밍 서버에 요청하고 그 결과를 상기 미디어 플레이어에게 알려주는 엔진인 HTTP 리퀘스트(11)부, 상기 HTTP 리퀘스트(11)의 상위 계층이며 주 엔진으로 사용되는 HTTP 섹션 인터페이스(12)부, 상기 HTTP 리퀘스트(11)의 하위계층 엔진인 HTTP 프로토콜(13) 엔진으로 이루어진 것을 특징으로 하는 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버.
  3. 제 2항에 있어서,
    상기 HTTP 리퀘스트(11)부는 상기 HTTP 섹션 인터페이스(12)의 요구 응답을 받기 위한 요구 지시자를 생성하고, 그 저장 포인터를 초기화해 서버의 헤드 필드로 그 포인터를 이동시키며, 응답 헤드를 크레이션(Creation)하며 HTTP 리퀘스트 클래스의 분석체(parse method)를 이용해 요청 메시지를 분석하고, HTTP 리퀘스트 클래스의 헤더 분석체(Parse Headers Method)를 호출해 상기 HTTP 프로토콜(13) 엔진 상의 질의들을 분석하며, 프로토콜상의 질의에 대한 분석이 끝나면 사용자에 응답할 수 있도록 응답 헤드 생성체(Create Response Header Method)로 응답 헤드를 생성하는 것을 특징으로 하는 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버.
  4. 제 2항에 있어서,
    상기 HTTP 섹션 인터페이스(12)부는 RTSP 섹션 인터페이스 엔진(RTSP Session Interface Engine)과 인터페이스되어 하나의 엔진으로 동작되며, 상기 스트리밍 서버에 접근하는 사용자에 의해 그 작동 여부가 결정되는 것을 특징으로 하는 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버.
  5. 제 2항에 있어서,
    상기 HTTP 프로토콜(13) 엔진은 HTTP 프로토콜로 연결되어 있는 사용자와 상기 스트리밍 서버간의 질의의 내용을 주고 받도록 하는 엔진으로 상기 질의의 내용은 질의요구 응답체(Query Method)들이 포함되어 있는 것을 특징으로 하는 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버.
  6. 제 1항에 있어서,
    상기 재생 및 제어 전송장치부(20)는 RTSP 프로토콜을 통해 RTP 서버를 실행시킬 것을 지시하는 RTP 세션 인터페이스부(21), RTP 소켓풀 엔진(RTP SocketPool Engine)에서 사용되며 UDP 소켓페어(UDP SocketPair)에 의해 UDP 입/출력 처리를 위한 두 개의 UDP 소켓을 쌍으로 사용해 UDP 1번 소켓으로 로컬 데이터를 받고 UDP 2번 소켓의 데이터를 받아 RTP 페이로드(RTP Payload)에 연결함으로써 데이터를 전송하는 RTCP 태스크(RTCP Task)(22)로 이루어진 것을 특징으로 하는 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버.
  7. 제 6항에 있어서,
    상기 RTP 세션 인터페이스부(21)는 RTSP 프로토콜을 통해 사용자로부터 받은 요청을 RTP 서버가 실행할 것을 요청하는 엔진으로 상기 사용자로부터 요청된 메시지를 해석하고 겟, 헤드, 포스트, 풋, 옵션, 딜레이트, 트레이스(GET, HEAD, POST, PUT, OPTIONS, DELETE, TRACE)와 같은 HTTP 변환기(HTTP method)도 동시에 해석하며, 파스 네트워크 모드 서브헤더(Parse Network Mode Subheader)를 통해 요청된 파라미터를 유니캐스트(unicast) 또는 멀티캐스트(multicast)로 서비스할 것인지 여부를 판별하는 것을 특징으로 하는 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버.
  8. 제 6항에 있어서,
    상기 RTCP 태스크부(22)는 RTP 소켓 풀 엔진에서 사용되며, UDP 소켓 페어에 의해 UDP 입/출력 처리를 위한 두 개의 UDP 소켓을 쌍으로 사용해 UDP 1번 소켓으로 로컬 데이터를 받고, UDP 2번 소켓의 데이터를 받아 RTP 페이로드에 연결함으로써 데이터가 전송되며, RTP 컨트롤인 RTCP는 RTCP-SR(Send Report)를 사용자에게 알려줌으로써 상기 데이터를 받고, 상기 사용자는 상기 데이터를 받은 직후 RTCP-RR(Receive Report)을 RTP 서버 핸들(RTP Server Handle)에게 알려줌으로써 그 다음 UDP 데이터를 읽고 전송하는 것을 특징으로 하는 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버.
  9. 제 1항에 있어서,
    상기 재생 장치부(30)는 포인트 레지스트리(31), 데이터 플로우 레이트 컨트롤(32), 레지스트리 히프(33)으로 이루어진 것을 특징으로 하는 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버.
  10. 제 9항에 있어서,
    상기 포인트 레지스트리(31)는 RTP 오버 HTTP 온 HTTP 크로싱 컨트롤(RTP Over HTTP On HTTP Crossing Control)이 발생할 수 있도록 HTTP 프로토콜(13) 엔진을 호출해 생성된 사용자 세션(Client Session)을 넘버링하고 상기 VOD 스트리밍 서버상의 힌티드 정보를 연산 처리할 수 있도록 VOD 단위별 히프 메모리 블럭(Heap Memory Block)을 처리해 주는 것을 특징으로 하는 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버.
  11. 제 9항에 있어서,
    상기 데이터 플로우 레이트 컨트롤(32)은 플레이어, 스톱, 포즈, 리뷰, 포워드, 레이트 포지션(PLAY, STOP, PAUSE, REVIEW, FORWARD, Rate Position)과 같은 함수 변환기(String Method Control)들을 상기 포인트 레지스트리(31)와 컨트롤 통신을 주고받으며 현재 프레임 위치 및 힌티드와 같은 정보 등을 공유하는것을 특징으로 하는 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버.
  12. 제 9항에 있어서,
    상기 레지스트리 히프(33)는 사용자(client)가 상기 통합 스티리밍 서버에 접속하여 동영상을 감상할 경우, 포인터 히프(Pointer heap)와 포인터 맵(Pointer Map)으로 구성되는 것을 특징으로 하는 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버.
  13. 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버 구현방법에 있어서,
    사용자가 VOD 스트리밍 서버에 VOD 스트리밍할 것을 요청하는 1단계(S1);
    상기 VOD 스트리밍 서버는 상기 사용자로부터 요청된 HTTP 프로토콜(13) 엔진을 가져와 헤더 파싱 엔진을 이용하여 연결하여 헤더 정보를 분석하고, 상기 헤더 정보에서 분석된 메세지를 축출해 HTTP 리퀘스트(11) 엔진으로 상기 메세지를 보내는 2단계(S2);
    겟, 포스트(Get, Post)와 같은 함수를 포함한 상기 메세지를 근거로 세션 인터페이스 엔진이 HTTP 섹션 인터페이스(12) 엔진에게 상기 사용자와 상기 VOD 스트리밍 서버로부터 랜덤하게 생성되도록 처리된 신규 세션을 생성하도록 요청해 상기 VOD 스트리밍 서버와 상기 사용자간의 연결을 유지하도록 하는 3단계(S3);
    RTP 오버 HTTP 온 HTTP 크로싱 컨트롤(RTP Over HTTP On HTTP Crossing Control)이 발생할 수 있도록 상기 HTTP 프로토콜(13) 엔진을 호출해 생성된 상기 사용자 세션을 넘버링하고 상기 VOD 스트리밍 서버상의 힌티드 정보를 연산처리할 수 있도록 VOD 단위별 히프 메모리 블럭(Heap Memory Block)을 처리해 주는 엔진인 포인트 레지스트리(31)가 추상 클래스 엔진을 생성하는 4단계(S4);
    상기 생성된 클래스 엔진 클라이언트로부터 요청받은 플레이어, 스톱, 포즈, 리뷰, 포워드, 레이트 포지션(PLAY, STOP, PAUSE, RREVIEW, FORWARD, Rate Position)과 같은 함수 변환기(String Method Control)들의 파라미터를 데이터 플로우 레이트 컨트롤(32)과 컨트롤 통신을 주고받으며 현재의 프레임 위치 및 힌티드와 같은 정보 등을 공유하는 5단계(S5);
    상기 사용자와 상기 VOD 스트리밍 서버간 세션이 연결이 되고 상기 포인트 레지스트리(31)인 클래스 엔진이 생성된 후, 상기 VOD 스트리밍 서버는 RTP 세션 엔진을 통해 RTP 세션 인터페이스(21) 엔진과 RTCP 태스크(22)엔진을 생성하고, 상기 RTP 세션 인터페이스(21) 엔진과 상기 RTCP 태스크(22) 엔진이 인터페이스된 다음 상기 VOD 스트리밍 서버와의 연결을 유지할 수 있는 상기 RTP 세션을 생성하는 6단계(S6);
    상기 RTP 세션 엔진은 VOD 스트림 패킷을 입출력하기 위해 UDP 소켓 페어를 열도록 요청하고 상기 RTCP 태스크(22) 엔진을 초기화하며, VOD 헤더 정보를 HTTP로 3분할(Third Parting)을 하기 위해 RTP 써드 파스(RTP Third Parse)엔진을 초기화하며, 이는 네트워크 통신망의 대역폭이 10M 이하의 작은 지역 등에서도 초기 VOD 로딩 타임을 3초 이내 영상이 보이도록 최소화하기 위해 지원되는 엔진 순으로 동작하는 7단계(S7);
    RTP 스트림 엔진은 상기 RTP 세션 엔진과 인터페이스되어, 로컬 에리어에서 VOD 파일을 로딩하는 엔진인 스트리밍 파일 엔진에 의해 VOD 디렉토리로부터 상기 사용자가 요청한 파일을 로딩하여 UDP 소켓을 UDP 페어 중 1번 소켓으로 입력받아 2번 소켓을 통해 RTP와 연결한 다음, 상기 패킷을 RTP 페이로드에 올릴것인지 RTP 전송체인 RTP 오버 런(RTP Over Run)을 통해 HTTP로 연결할 것인지를 판별하는 8단계;(S8)
    상기 RTP 스트림 엔진에 의해 상기 UDP 소켓 페어를 열고 스트리밍 파일 엔진이 구동되며, 데이터 플로우 레이트 컨트롤(32) 엔진을 호출해 제일 먼저 상기 사용자가 요청한 페어 패킷(Pair Packet) 정보와 힌티드 정보 및 상기 VOD 헤더 정보가 있는지의 여부를 판별하는 9단계(S9);
    상기 정보들이 없으면 상기 VOD 파일을 로딩하고 가상 힌티드 맵을 각각의 프레임에 맵핑하고 맵핑 넘버링을 작성한 다음 VOD 파일의 헤더를 분할할 수 있도록 스타트, 루프, 엔드(Start, Loop, End) 타임과 가상 힌티드 그리고 미디어 길이(Media Length) 및 전체 프레임(Total Frame) 등의 정보를 상기 사용자에게 응답할 수 있도록 가상 헤더를 포함해 타임 라인을 구성하는 10단계(S10);
    상기 10단계(S10)에서 상기 사용자는 상기 힌티드 정보를 해독하고 플레이어 커맨드(Player Commamd) 지시자에 의해 동작하며 그 동작결과를 서버로 전달할 수 있도록 플레이어 엔진을 구성하는 11단계(S11);로 이루어진 것을 특징으로 하는 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍 서버 구현방법.
KR1020070013266A 2007-02-08 2007-02-08 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍서버 및 스트리밍 구현방법 KR100820350B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070013266A KR100820350B1 (ko) 2007-02-08 2007-02-08 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍서버 및 스트리밍 구현방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070013266A KR100820350B1 (ko) 2007-02-08 2007-02-08 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍서버 및 스트리밍 구현방법

Publications (1)

Publication Number Publication Date
KR100820350B1 true KR100820350B1 (ko) 2008-04-08

Family

ID=39534148

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070013266A KR100820350B1 (ko) 2007-02-08 2007-02-08 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍서버 및 스트리밍 구현방법

Country Status (1)

Country Link
KR (1) KR100820350B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015093637A1 (ko) * 2013-12-16 2015-06-25 삼성전자 주식회사 컨텐츠 공유를 위한 서버 장치, 클라이언트 장치 및 그 컨텐츠 공유 방법
KR20190016618A (ko) * 2015-02-13 2019-02-18 상하이 지아오통 유니버시티 멀티미디어 컨텐츠 개성화 프레젠테이션의 실현 방법 및 응용
CN113141358A (zh) * 2021-04-20 2021-07-20 中国科学院上海高等研究院 多协议兼容的服务引导发现传输接收、发送方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030030270A (ko) * 2001-10-09 2003-04-18 주식회사 엘지이아이 이메일 계정의 변경 관리를 위한 서비스 시스템 및 그운영 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030030270A (ko) * 2001-10-09 2003-04-18 주식회사 엘지이아이 이메일 계정의 변경 관리를 위한 서비스 시스템 및 그운영 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
10-2003-30270

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015093637A1 (ko) * 2013-12-16 2015-06-25 삼성전자 주식회사 컨텐츠 공유를 위한 서버 장치, 클라이언트 장치 및 그 컨텐츠 공유 방법
US10028002B2 (en) 2013-12-16 2018-07-17 Samsung Electronics Co., Ltd. Server device for sharing contents, client device, and method for sharing contents
KR20190016618A (ko) * 2015-02-13 2019-02-18 상하이 지아오통 유니버시티 멀티미디어 컨텐츠 개성화 프레젠테이션의 실현 방법 및 응용
KR102378107B1 (ko) * 2015-02-13 2022-03-25 상하이 지아오통 유니버시티 멀티미디어 컨텐츠 개성화 프레젠테이션의 실현 방법 및 응용
CN113141358A (zh) * 2021-04-20 2021-07-20 中国科学院上海高等研究院 多协议兼容的服务引导发现传输接收、发送方法及装置
CN113141358B (zh) * 2021-04-20 2023-09-01 中国科学院上海高等研究院 多协议兼容的服务引导发现传输接收、发送方法及装置

Similar Documents

Publication Publication Date Title
KR100928998B1 (ko) 사용자 단말기에 멀티미디어 컨텐츠와 코덱을 제공하는적응적 멀티미디어 시스템 및 그 방법
US9854018B2 (en) System and method of media content streaming with a multiplexed representation
US9596522B2 (en) Fragmented file structure for live media stream delivery
US8560729B2 (en) Method and apparatus for the adaptation of multimedia content in telecommunications networks
RU2622621C2 (ru) Система и способ для потоковой передачи воспроизводимого контента
CN108769616A (zh) 一种基于rtsp协议的实时视频无插件预览方法及系统
CN104396263B (zh) 用于流送媒体内容的实时复用变换的方法和系统
JP5341186B2 (ja) プロキシ機能
US9277260B2 (en) Media convergence platform
CN101697549B (zh) 流媒体的展示方法、系统以及流媒体管理服务器
US20150113104A1 (en) Method and system for live streaming video with dynamic rate adaptation
US9462302B2 (en) Efficient delineation and distribution of media segments
US20110299586A1 (en) Quality adjustment using a fragmented media stream
CN109587514B (zh) 一种视频播放方法、介质和相关装置
CN101600092A (zh) 网络视频录像的生成和播放方法及系统
KR100820350B1 (ko) 다양한 파일 컨테이너 포멧을 지원하기 위한 통합 스트리밍서버 및 스트리밍 구현방법
KR101164746B1 (ko) 실시간 스트리밍 프로토콜을 기반으로 한 동영상 재생 서비스에서 동영상 재생 지연 보상 시스템 및 방법
Prasad et al. Social Educational Streaming Platform Using HTML Live Streaming
WO2016090912A1 (zh) 一种直播视频的生成及播放方法、装置、终端及系统
KR20120008432A (ko) 스트리밍 서비스 송/수신 장치 및 방법
Castagno et al. An architecture based on IETF protocols for the transport of MPEG-4 content over the Internet
KR20120083959A (ko) 유니/멀티캐스팅 기반의 통신 프로토콜 변환장치
Ho Mobile Multimedia Streaming Library
Li et al. Research and development of an online video network platform based on the streaming media technology
CN108206957A (zh) 一种hls播放ngod视频文件的方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110401

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee