KR101569510B1 - 적응적 실시간 트랜스코딩 방법 및 이를 위한 스트리밍 서버 - Google Patents

적응적 실시간 트랜스코딩 방법 및 이를 위한 스트리밍 서버 Download PDF

Info

Publication number
KR101569510B1
KR101569510B1 KR1020130126142A KR20130126142A KR101569510B1 KR 101569510 B1 KR101569510 B1 KR 101569510B1 KR 1020130126142 A KR1020130126142 A KR 1020130126142A KR 20130126142 A KR20130126142 A KR 20130126142A KR 101569510 B1 KR101569510 B1 KR 101569510B1
Authority
KR
South Korea
Prior art keywords
media data
transcoding
play
time
image quality
Prior art date
Application number
KR1020130126142A
Other languages
English (en)
Other versions
KR20150046655A (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 KR1020130126142A priority Critical patent/KR101569510B1/ko
Priority to US15/030,969 priority patent/US10003626B2/en
Priority to PCT/KR2014/009941 priority patent/WO2015060638A1/ko
Publication of KR20150046655A publication Critical patent/KR20150046655A/ko
Application granted granted Critical
Publication of KR101569510B1 publication Critical patent/KR101569510B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/38Flow control; Congestion control by adapting coding or compression rate
    • 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
    • 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/70Media network packetisation
    • 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/752Media network packet handling adapting media to network capabilities
    • 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/80Responding to QoS
    • 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/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • 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
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • 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/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64769Control signals issued by the network directed to the server or the client directed to the server for rate control

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명은 미디어 스트리밍 서비스 상에서 트랜스코딩 연산의 설정 값을 네트워크 환경에 맞게 적응적으로 변화하여, 모바일 기기와 같은 환경에서 영상의 끊김을 최소로 줄여 서비스 질을 향상시키기 위한 적응적 실시간 트랜스코딩 방법 및 이를 위한 스트리밍 서버에 관한 것이다. 본 발명의 적응적 실시간 트랜스코딩 방법은, 스트리밍 서버에서 분할 및 트랜스코딩 된 미디어 데이터의 세그먼트를 네트워크를 통해 클라이언트 단으로 순차 전송하기 위한 실시간 트랜스코딩 방법이며, 전송된 미디어 데이터 세그먼트들의 재생 시간의 합과 스트리밍 개시 시점으로부터의 경과 시간을 비교함으로써 클라이언트 단의 플레이-백 버퍼 충진 정도를 판별하는 단계; 상기 판별된 플레이-백 버퍼 충진 정도를 기초로 상기 클라이언트 단으로 전송되지 않은 미디어 데이터 세그먼트의 화질을 결정하는 단계; 및 결정된 화질에 따라 전송되지 않은 미디어 데이터 세그먼트를 트랜스코딩하는 단계를 포함한다.

Description

적응적 실시간 트랜스코딩 방법 및 이를 위한 스트리밍 서버 {Method for adaptive real-time transcoding, and streaming server thereof}
본 발명은 멀티미디어 영상을 사용자 단말(PC 혹은 모바일 기기)로 전달하는 미디어 스트리밍 서비스 상에서, 모바일 기기 등의 환경에서도 영상의 끊김을 최소로 줄여 서비스 질을 향상시키기 위한 트랜스코딩 방법 및 이를 위한 스트리밍 서버에 관한 것이다.
멀티미디어 스트리밍은 스토리지 서버에 저장된 동영상 파일이나 혹은 영상 소스를 여러 사용자 단말(클라이언트)로 전송하고, 사용자 단말에서는 데이터 수신과 재생이 동시에 이루어지는 형태의 서비스를 말한다. 이러한 형태의 서비스는 최근 모바일 및 클라우드 환경의 확산과 함께 그 중요도가 널리 인식되고 있다.
이러한 스트리밍 서비스 기술로는 HLS(Http live streaming) 방식과, RTSP(Real-time Streaming Protocol) 방식 등이 있다. HLS 기술의 경우 기존의 웹 서버(Http 서버)를 큰 수정 없이 사용할 수 있고 프로토콜이 단순하여 최근에 많이 사용되고 있다.
트랜스코딩이란 멀티미디어 컨텐츠의 형식(파일 포맷)이나 해상도 및 화질 등을 변환하는 작업을 말한다. 스트리밍 서비스에서 스토리지 서버에 저장된 멀티미디어 파일은 대부분 고화질, 대용량인 경우가 많고 이는 모바일 단말로의 전송과 재생에 적합하지 않을 수 있다. 또한, 서버에 저장된 소스 컨텐츠의 포맷이 클라이언트가 지원할 수 없는 형태인 경우에도 이에 대한 변환이 필요하다.
이러한 트랜스코딩은 대개 막대한 연산자원이 필요한 작업이므로, 실시간으로 다수의 클라이언트들에 대해 서비스를 제공해야 하는 서버의 입장에서는 미리 트랜스코딩을 실행해서 결과 파일을 미리 저장한 다음 이를 그때그때 요구에 맞도록 서비스하는 형태가 대부분이었다. 하지만, 최근에는 클라우드 등 기술의 보급으로 사용자가 업로드하는 멀티미디어 파일에 대한 스트리밍 서비스 요구가 증가하고 사용자 단말 또한 태블릿PC, 스마트 폰, 스마트TV등으로 다변화됨에 따라 미리 트랜스코딩을 실시하기 어렵게 되고 있다. 그러므로 최근에는 사용자 요청 시 스트리밍의 실행과 동시에 트랜스코딩을 실시하는 실시간 트랜스코딩이 이루어지고 있으며, 서버의 연산성능 발전이 이를 가능하게 하고 있다.
모바일 기기의 경우 단말이 이동하기 때문에 네트워크 상태가 계속해서 변화하게 된다. 현재 재생하고 있는 영상의 비트레이트(Bitrate: 끊김 없이 재생에 필요한 대역폭의 크기)가 현재 네트워크 대역폭 보다 작은 경우에는 문제가 없지만, 반대로 와이파이(Wi-Fi)에서 3G로의 핸드오프(Handoff) 등으로 인해 가용한 대역폭이 대폭 감소하는 경우에는 영상의 화질을 낮추지 않으면 원활한 재생이 불가능하다. 이러한 환경에서 영상이 실시간 트랜스코딩 되고 있는 경우에는 이러한 상황 변화를 감지하여 자동으로 더 낮은 화질로 인코딩 하도록 하여 비트레이트(Bitrate)를 낮춤으로서 끊김을 방지하고 원활환 재생이 가능하도록 한다.
이러한 트랜스코딩에 관한 종래기술로는 특허출원 제10-2011-35112호, 특허출원 제10-2012-67789호 등을 들 수 있으나, 이러한 기술에는 대역폭 및 인코딩 서버의 성능을 고려하여 트랜스코딩 화질 등을 결정하며, 특히, 사용자 단말의 네트워크 대역폭을 검출하여 이를 기반으로 영상의 화질(비트레이트)를 변화시키는 기술에 기반하고 있다.
그러나, 네트워크 대역폭 검출 기반의 제어 방법은 실용적인 측면에서 여러 어려움이 존재한다. 대역폭을 클라이언트가 검출하는 시스템의 경우, 화질 조절을 위해서는 서버 측에서 클라이언트의 대역폭 정보에 대한 수신이 필요한데, 이는 네트워크 트래픽 및 서버의 부하를 증가시킨다. 또한, 서버 측의 클라이언트 대역폭 검출은 정확히 이루어지기가 어려운데, 이는 서버와 클라이언트 사이의 라우터와 같은 네트워크 장비에 의한 버퍼 효과로 인하여 정확하게 클라이언트에 전송이 완료되는 타이밍을 서버가 어플리케이션 수준에서 파악하기가 어렵기 때문이다. 이러한 문제점을 극복하기 위해서는 특별한 네트워크 프로토콜과 그에 따른 클라이언트와 서버의 소프트웨어/하드웨어 교체가 필요하지만 이는 일반적으로 서비스 제공자가 선택하기는 어려운 방법이다. 또한, 성능 측면에서 보더라도, 네트워크 대역폭 검출에 기반한 방법은 클라이언트의 상태를 고려하는 것은 아니기 때문에 실제 클라이언트 단에서의 영상 끊김 최소화를 달성하는 것이 어려울 수 있다는 한계가 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 네트워크 환경에 따라 화질을 적응적으로 변화하게 함으로서 클라이언트 단에서의 영상의 끊김 현상을 방지하고, 최적의 화질을 서버가 자동으로 결정할 수 있도록 하여 스트리밍 서비스의 질을 향상시키기 위한 것이다.
특히, 본 발명은 대역폭의 검출에 기반한 것이 아닌 클라이언트의 플레이-백 버퍼 상태를 서버 측에서 판단 내지 추정하고 이를 기반으로 영상 화질을 제어함으로써 대역폭 검출이 부정확하게 되는 경우라 하더라도 더 효과적으로 화질을 조절하여 클라이언트 단에서의 영상 끊김 현상을 방지할 수 있도록 하기 위한 것이다.
또한, 본 발명은 기존의 스트리밍 서버의 하드웨어 및 소프트웨어의 구성을 크게 변경하지 않고도 간단히 영상 끊김 현상을 방지할 수 있는 효율적인 방안을 제공하기 위한 것이다.
또한, 본 발명은 클라이언트 단에 별도 소프트웨어, 플러그 인 등의 설치나 변경 등 클라이언트 단에 대한 영향이 없이 서버 단에서 클라이언트 단의 플레이-백 버퍼의 상태 추정에 의해 효과적으로 끊김 현상을 방지할 수 있는 방안을 제공하기 위한 것이다.
상기 목적 외에 본 발명의 다른 목적 및 특징들은 첨부 도면을 참조한 실시형태에 관한 설명을 통하여 명백히 드러나게 될 것이다.
상술한 기술적 과제의 해결을 위한 본 발명의 특징을 요약하면, 본 발명의 한 특징에 의한 적응적 실시간 트랜스코딩 방법은, 스트리밍 서버에서 분할 및 트랜스코딩(transcoding) 된 미디어 데이터의 세그먼트(segment)를 네트워크를 통해 클라이언트 단으로 순차 전송하기 위한 실시간 트랜스코딩 방법이며, 전송된 미디어 데이터 세그먼트들의 재생 시간의 합과 스트리밍 개시 시점으로부터의 경과 시간을 비교함으로써 상기 클라이언트 단의 플레이-백 버퍼 충진 정도를 판별하는 단계; 상기 판별된 플레이-백 버퍼 충진 정도를 기초로 상기 클라이언트 단으로 전송되지 않은 상기 미디어 데이터 세그먼트의 화질을 결정하는 단계; 및 상기 결정된 화질에 따라 상기 전송되지 않은 미디어 데이터 세그먼트를 트랜스코딩하는 단계를 포함한다.
필요에 따라서는, 상기 분할 및 트랜스코딩 된 미디어 데이터의 세그먼트를 트랜스코딩 버퍼에 임시 저장하는 단계를 더 포함할 수 있으며, 상기 트랜스코딩 단계는, 상기 트랜스코딩 버퍼에 저장되어 있는 미디어 데이터 세그먼트를 추출하는 단계; 및 상기 추출된 미디어 데이터 세그먼트를 상기 결정된 화질에 따라 다시 트랜스코딩하는 단계를 포함할 수 있다.
필요에 따라서는, 상기 각 미디어 데이터 세그먼트는 재생시간 및 화질 데이터를 메타데이터로서 헤더에 포함하며, 상기 화질 데이터는 상기 결정된 화질 정보가 반영된 것일 수 있다.
또한, 상기 플레이-백 버퍼 충진 정도는, 상기 플레이-백 버퍼가 비어있는 상태이거나 또는 소정 시간 경과 후 비어있게 되는 상태인지를 상기 스트리밍 서버에서 추정하도록 하기 위한 기준 값일 수 있다.
또한, 상기 스트리밍 서버는, 상기 전송된 미디어 데이터 세그먼트들의 재생 시간의 합이 상기 스트리밍 개시 시점으로부터의 경과 시간에 비하여 큰 경우, 시간 축 상에서 적어도 두 개의 구간을 구분하여, 각각 화질의 조정 비율을 달리하는 것일 수 있다.
또한, 상기 스트리밍 서버는, 상기 전송된 미디어 데이터 세그먼트들의 재생 시간의 합이 상기 스트리밍 개시 시점으로부터의 경과 시간에 비하여 큰 경우에, 상기 전송된 미디어 데이터 세그먼트들의 재생 시간의 합과 상기 스트리밍 개시 시점으로부터의 경과 시간의 차이가 소정 기준보다 클 경우 및 작을 경우에 각각 화질의 조정 비율을 달리하며, 상기 전송된 미디어 데이터 세그먼트들의 재생 시간의 합과 상기 스트리밍 개시 시점으로부터의 경과 시간의 차이가 상기 소정 기준보다 클 경우에는, 상기 플레이-백 버퍼 충진 정도의 변화에 대한 상기 화질의 조정 비율이 상기 작을 경우에 비해 상대적으로 낮도록, 상기 화질을 미세 조정하며, 상기 소정 기준보다 작은 경우에는, 상기 플레이-백 버퍼 충진 정도의 변화에 대한 상기 화질의 조정 비율이 상기 클 경우에 비해 상대적으로 높도록, 상기 화질을 높은 조정 비율로 조정하는 것일 수 있다.
본 발명의 또 다른 한 특징에 의한 스트리밍 서버는, 스트리밍 서비스를 위하여 미디어 데이터의 세그먼트들을 클라이언트 단의 플레이-백 버퍼로 순차 전송하는 스트리밍 서버이며, 전송된 미디어 데이터 세그먼트들의 재생 시간의 합과 스트리밍 개시 시점으로부터의 경과 시간을 비교함으로써 상기 클라이언트 단의 플레이-백 버퍼 충진 정도를 판별하는 플레이-백 버퍼 추정부; 상기 판별된 플레이-백 버퍼 충진 정도를 기초로 상기 클라이언트 단으로 전송되지 않은 상기 미디어 데이터 세그먼트의 화질을 결정하는 화질 제어부; 및 상기 결정된 화질에 따라 상기 전송되지 않은 미디어 데이터 세그먼트를 트랜스코딩하는 트랜스코더를 포함한다.
필요에 따라서는, 상기 트랜스코더의 트랜스코딩 결과인 미디어 데이터 세그먼트들을 임시 저장하는 트랜스코딩 버퍼를 더 포함할 수 있으며, 상기 트랜스코더는 상기 트랜스코딩 버퍼에 저장되어 있는 미디어 데이터 세그먼트를 추출하여 상기 결정된 화질에 따라 다시 트랜스코딩하는 것일 수 있다.
또한, 상기 플레이-백 버퍼 충진 정도는, 상기 플레이-백 버퍼가 비어있는 상태이거나 또는 소정 시간 경과 후 비어 있게 되는 상태인지를 상기 스트리밍 서버에서 추정하도록 하기 위한 기준 값일 수 있다.
본 발명에 의하여, 네트워크 환경에 따라 화질을 적응적으로 변화하게 함으로서 클라이언트 단에서의 끊김 현상을 방지하고, 최적의 화질을 서버가 자동으로 결정할 수 있게 하여 스트리밍 서비스의 질을 향상시킬 수 있게 된다.
또한, 본 발명은 대역폭의 검출에 기반한 것이 아닌 클라이언트의 플레이-백 버퍼 상태를 서버 측에서 판단 내지 추정하고 이를 기반으로 영상 화질을 제어함으로써 대역폭 검출이 부정확한 경우라 하더라도 더 효과적으로 화질을 조절하여 클라이언트 단에서의 끊김 현상을 방지할 수 있도록 한다.
또한, 본 발명에 의해 기존의 스트리밍 서버의 하드웨어 및 소프트웨어의 구성을 크게 변경하지 않고도 간단히 끊김 현상을 방지할 수 있는 효율적인 방안이 제공된다.
또한, 본 발명에 의해, 클라이언트 단의 별도 소프트웨어, 플러그 인 등의 설치나 변경 등 영향이 없이 서버 단에서 클라이언트 단의 플레이-백 버퍼의 상태 추정에 의해 효과적으로 끊김 현상을 방지할 수 있는 방안이 제공된다.
도 1은 본 발명의 한 실시형태에 따른 스트리밍 서버, 클라이언트 단 및 소스 미디어를 포함하는 스트리밍 서비스 제공 환경을 설명하기 위한 도면이다.
도 2는 본 발명의 한 실시형태에 따른 트랜스코딩 버퍼 및 미디어 데이터 세그먼트의 구성을 설명하기 위한 도면이다.
도 3은 본 발명의 한 실시형태에 따른 적응적 실시간 트랜스코딩 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 한 실시형태에 따른 적응적 실시간 트랜스코딩 방법에서 플레이-백 버퍼 상태의 추정 알고리즘을 예시적으로 설명하기 위한 도면이다.
도 5는 본 발명의 한 실시형태에 따른 적응적 실시간 트랜스코딩 방법에서 플레이-백 버퍼 상태 추정 파라미터에 따라 각 구간 별로 화질을 구분 제어하기 위한 다이어그램의 예시이다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하지만, 본 발명의 기술사상이 실시예들에 의해 제한되거나 한정되는 것은 아니다.
비디오 스트리밍 서버 기술은 주로 웹 접근 표준 프로토콜인 HTTP를 통해 전달하는 방식이 대세라고 할 수 있는데, 스트리밍 서버에 접속된 클라이언트의 실질 통신 대역폭에 대응하여 동영상 서비스 품질을 변경하면서 서비스하는 적응적 HTTP 스트리밍(HTTP adaptive streaming)이 제안되어 있다. HTTP 스트리밍 기술로는 애플(Apple)의 HLS(HTTP Live Streaming)와 어도비(Adobe)의 HDS(HTTP Dynamic Streaming) 등을 들 수 있다.
이하에서는 설명의 편의를 위해 스트리밍 서비스는 Http Live Streaming (HLS) 방식을 기반으로 하여 설명하지만, 다른 스트리밍 기술의 경우도 기본적으로는 유사한 구조를 가지고 있으므로 본 발명의 기술은 일반적으로 적용 가능하며, 단지 예시적인 것임을 밝혀둔다.
도 1은 본 발명의 한 실시형태에 따른 스트리밍 서버, 클라이언트 단 및 소스 미디어를 포함하는 스트리밍 서비스 제공 환경을 설명하기 위한 도면이다.
본 실시형태의 스트리밍 서버(100)는 유선, 무선 등 네트워크(300)를 통하여 클라이언트(200)와 접속하며, 또한, 소스 미디어 데이터가 저장 및 관리되는 데이터베이스(10)와 연동한다.
여기서, 네트워크(300)란, WCDMA, HDPA, 3G, 4G 등 이동통신망, 블루투스(Bluetooth), 지그비(Zigbee), 와이파이(Wi-Fi) 등 근거리 통신망과, 인터넷이나 PSTN 등 유선 통신망을 포함한다.
또한, 여기서, 소스 미디어 데이터베이스(10)는 클라우드 미디어 서버가 될 수도 있고, 별도의 저장소가 될 수도 있는데, 소스 미디어 데이터를 구성하는 컨텐츠는 다양한 소스로부터 네트워크를 통하여 제공될 수 있다. 예를 들어, 다양한 소스로는 미디어 파일을 저장하고 있는 미디어 서버, 3G 카메라, IP 카메라, 아날로그 카메라, PC, 스토리지 서버, 노트북, 스마트 폰, 웹 하드, 스마트 폰 등이 포함될 수 있다. 또한, 생방송 스트림을 제공하는 셋-탑 박스나 카메라나 비디오 신호를 디지털로 압축하는 하드웨어 인코더, PC, 스마트 폰, 태블릿 PC 등이 포함될 수 있다.
본 실시형태의 스트리밍 서버(100)는, 스트리밍 서비스를 위하여 미디어 데이터의 세그먼트들(51, 52, 53)을 클라이언트 단(200)의 플레이-백 버퍼(210)로 순차 전송하는 것이며, 클라이언트 단(200)의 플레이-백 버퍼(210)의 충진 정도를 판별하는 플레이-백 버퍼 추정부(40), 플레이-백 버퍼(210)의 충진 정도에 따라 클라이언트 단(200)으로 전송되지 않은 미디어 데이터 세그먼트의 화질을 결정하는 화질 제어부(30)와, 결정된 화질에 따라 전송되지 않은 미디어 데이터 세그먼트를 트랜스코딩하는 트랜스코더(20), 트랜스코딩 결과물인 미디어 데이터 세그먼트들(52, 53)을 순차적으로 저장하는 트랜스코딩 버퍼(50)를 포함한다.
트랜스코더(20)는 생방송 스트림 및 미디어 파일 등의 복수의 컨텐츠를 실시간으로 복수의 클라이언트 단(200)의 디코딩 정보에 맞도록 최적화된 포맷으로 변환하는 역할을 수행할 수 있다.
스트리밍 서버(100)와 스트리밍 세션을 통하여 접속되어 있는 클라이언트 단(200)에는 플레이-백 버퍼(210)가 구비되어 있는데 재생을 위한 다음 순서의 미디어 데이터 세그먼트들(230, 240)이 저장되며, 플레이-백 버퍼(210)가 비게 되면(또는 거의 비어가는 상태가 되면) 재생의 끊김 등 문제 발생의 우려가 있게 된다.
스트리밍 서버(100)는 트랜스코딩 버퍼(50)에 저장된 미디어 데이터 세그먼트들의 재생시간 및 화질을 포함하는 메타데이터와, 전송 개시시간 및 전송 완료시간을 각 미디어 데이터 세그먼트의 전송 완료 시마다 플레이-백 버퍼 추정부(40)에 기록한다.
도 2는 본 발명의 한 실시형태에 따른 트랜스코딩 버퍼(150) 및 미디어 데이터 세그먼트(151 내지 153)의 구성을 설명하기 위한 도면이다.
도시된 바와 같이, 트랜스코딩 버퍼(150)는 트랜스코더(20)의 코딩 결과물인 미디어 데이터 세그먼트(151 내지 153)들이 순차적으로 임시 저장되는데, 각 미디어 데이터 세그먼트(151 내지 153)는 인코딩 포맷, 각 세그먼트의 인덱스, 재생시간 및 화질 등의 메타데이터를 기록하는 헤더(H)부와 각 세그먼트의 압축된 컨텐츠 데이터에 해당하는 미디어 데이터 비트 열(M)을 포함하게 된다.
각 세그먼트는 영상 및 음성 데이터를 동시에 포함할 수 있으며, 영상 데이터의 경우에는 해당 프레임의 모든 정보를 담고 있는 키 프레임과 압축 효율을 높이기 위해 키 프레임을 참조하여 변화량만을 저장하는 압축 프레임을 포함할 수 있다. 압축 프레임은 참조 대상인 키 프레임이 없으면 디코딩이 불가능하므로, 원활한 재생을 위해 각 세그먼트는 키 프레임과 해당 키 프레임을 참조하는 압축 프레임들의 집합 단위인 GOP (Group of Pictures)로 영상 데이터를 저장한다. 즉, 하나의 세그먼트는 하나 또는 여러 개의 GOP를 포함할 수 있다.
도 3은 본 발명의 한 실시형태에 따른 적응적 실시간 트랜스코딩 방법을 설명하기 위한 도면이다.
클라이언트 단(200)에서 스트리밍 서비스를 요청하면, 스트리밍 서버(100)는 각 사용자를 구별하기 위해 세션(Session)을 생성한다. 요청에 따라 스트리밍 서버(100)는 소스 미디어 데이터를 데이터베이스 등 각종 저장소(10)로부터 입력하여 디코딩 한다(S10).
또한, 트랜스코더(20)는 적당한 크기의 세그먼트(Segment)로 결과 영상을 분할하고(S20), 각각을 트랜스코딩하여 트랜스코딩 버퍼(50)에 임시 저장한다. 한편, 이러한 과정에서는 디코딩 한 소스 미디어 데이터 전체를 일단 트랜스코딩 한 후 각 세그먼트 별로 분할하여 저장하는 순서에 의할 수도 있다.
스트리밍 서버(100)는 이후로부터 각 미디어 데이터 세그먼트들을 클라이언트 단(200)으로 전송하며, 클라이언트 단(200)은 수신한 미디어 데이터 세그먼트를 플레이-백 버퍼(210)에 저장한다. 스트리밍 서버(100)는 각 세그먼트(가령 세그먼트 n)의 전송을 완료할 때마다, 전송 시작시간, 완료시간 및 각 조각에 대한 정보(재생시간, 화질 등의 메타데이터)를 플레이-백 버퍼 추정부(40)에 기록한다(S40).
클라이언트 단(200)은 적당한 개수의 미디어 데이터 세그먼트들이 플레이-백 버퍼(210)에 수신되면 이를 디코딩하여 재생을 개시한다. 이때, 만약 여러 가지 이유에 의해 플레이-백 버퍼(210)가 빈 상태가 되면 재생이 일시 정지될 것이므로 본 발명은 이를 방지하고자 하는 것이다.
각 미디어 데이터 세그먼트의 전송이 완료될 때마다, 스트리밍 서버(100)의 플레이-백 버퍼 추정부(40)에서는 클라이언트 단(200)의 버퍼 상태를 추정한다(S50). 이때, 각 미디어 데이터 세그먼트의 전송 시점에 따른 추정부(40)의 동작 시점은 적절히 조정될 수 있다. 또한, 상술한 클라이언트 단(200)에서의 재생 개시에 필요한 수 개의 미디어 데이터 세그먼트의 전송이 완료된 후에야 추정부(40)가 동작개시 되도록 설정할 수도 있다.
추정된 플레이-백 버퍼(210)의 상태에 따라 전송할 미디어 데이터 세그먼트(가령, 세그먼트 m, 여기서 m>n)의 화질을 조정하여 트랜스코딩을 수행한다(S70). 그리고 화질 조정된 미디어 데이터 세그먼트를 트랜스코딩 버퍼(50)에 저장한다. 이때, 해당 순서의 미디어 데이터 세그먼트가 이미 트랜스코딩 되어 버퍼에 저장되어 있다면 이를 제거하고 새로 화질이 조정된 세그먼트로 대체할 수도 있다(S80).
도 4는 본 발명의 한 실시형태에 따른 적응적 실시간 트랜스코딩 방법에서 플레이-백 버퍼 상태의 추정 알고리즘을 예시적으로 설명하기 위한 도면이다.
예컨대, 플레이-백 버퍼 추정부(40)에서는 플레이-백 버퍼의 상태를 나타내는 파라미터를 정하고 이를 이용하여 판단을 수행할 수 있는데(S52), 가령, 'T(플레이-백 버퍼)'라는 파라미터를 다음의 관계식과 같이 정의할 수 있다.
<관계식 1>
T(플레이-백 버퍼)=Σ(전송된 세그먼트들의 재생시간) - 스트리밍 개시시점으로부터의 경과 시간)
즉, 전송된 세그먼트들의 재생 시간을 누계한 값에서 스트리밍 개시시점으로부터의 경과 시간을 뺀 값을 'T(플레이-백 버퍼)' 파라미터 값으로 정하고, 이를 기준으로 플레이-백 버퍼의 상태를 추정하는 것이 가능하다.
우선, 'T(플레이-백 버퍼)' 파라미터 값이 0이하인지 여부를 판단하여(S54), 0이하인 경우에는 위험 상황으로 판단하고 화질 제어부(30)에 설정된 가능범위 내에서 가장 낮은 화질로 설정한다(S56). 이 과정에서, 현재 트랜스코딩 버퍼(50)에 이미 저장된 세그먼트를 꺼내어 다시 낮은 화질로 트랜스코딩을 실시하는 등의 동작을 수행할 수도 있다.
또한, 'T(플레이-백 버퍼)' 파라미터 값이 0보다는 크지만, 소정 값(α) 이하인 경우에는(S58) 플레이-백 버퍼의 회복이 필요한 상태로 판단하여 화질을 급격히 변동시킨다(S60).
또한, 'T(플레이-백 버퍼)' 파라미터 값이 0보다는 크고, 소정 값(α)보다도 큰 경우에는(S58), 미세 조정만이 필요한 상태로 판단하여 화질을 미세하게 변동시킨다(S62).
도 5는 본 발명의 한 실시형태에 따른 적응적 실시간 트랜스코딩 방법에서 플레이-백 버퍼 상태 추정 파라미터에 따라 각 구간 별로 화질을 구분 제어하기 위한 다이어그램의 한 예시이다.
상술한 'T(플레이-백 버퍼)' 파라미터 값에 따른 화질의 조정은 도 5에 나타낸 바와 같이, 소정 값(α)이하인 구간에서는 파라미터 값이 증가함에 따라 지수적인 조절 알고리즘을 사용하거나, 또는 다른 예로, 높은 기울기로 선형적으로 조절하는 방식을 적용함으로써 급격히 증가시킬 수 있다.
또한, 소정 값(α)을 넘는 구간에서는 파라미터 값이 증가함에 따라 낮은 기울기로 선형적 증가시키거나 특정 상수를 더하거나 빼는 방식을 적용할 수 있다.
구체적으로 어느 정도 화질 조정을 수행할 것인지는 서비스 제공자의 정책에 따라 여러 가지 변형이 있을 수 있다. 하나의 예로, 'T(플레이-백 버퍼)'를 일정 시간으로 유지하는 정책에 상술한 방법을 적용하는 경우를 생각할 수 있다. 예컨대, 서비스 정책에 따른 목표 'T(플레이-백 버퍼)' 값을 기호 P로 나타내면, 목표에서의 오차값 E를 다음의 관계식 2와 같이 정할 수 있다.
<관계식 2>
E = T(플레이-백 버퍼)- P
위와 같은 경우, 다음의 관계식 3과 같이 소정 값(α)을 기준으로 오차값 E에 비례하여 현재의 화질 값에 서로 다른 두 가지 변화량을 적용하는 방식을 적용할 수도 있다.
<관계식 3>
1. T(플레이-백 버퍼) < α인 경우: 현재 화질 Q 에서 높은 기울기 H를 적용하여 새로운 화질을 Q = Q+H*E로 설정
2. T(플레이-백 버퍼) ≥ α인 경우: 현재 화질 Q 에서 낮은 기울기 L를 적용하여 새로운 화질을 Q = Q+L*E로 설정
이상에서 설명된 서버 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
< 도면의 주요 부분에 대한 부호의 설명 >
100: 스트리밍 서버
200: 클라이언트 단
10: 소스 미디어
20: 트랜스코더
40: 플레이-백 버퍼 추정부
50: 트랜스코딩 버퍼
300: 네트워크
210: 플레이-백 버퍼
52, 53, 230, 240: 미디어 데이터 세그먼트

Claims (13)

  1. 스트리밍 서버에서 분할 및 트랜스코딩(transcoding) 된 미디어 데이터의 세그먼트(segment)를 네트워크를 통해 클라이언트 단으로 순차 전송하기 위한 실시간 트랜스코딩 방법에 있어서,
    전송된 미디어 데이터 세그먼트들의 재생 시간의 합과 스트리밍 개시 시점으로부터의 경과 시간을 비교함으로써 상기 클라이언트 단의 플레이-백 버퍼 충진 정도를 판별하는 단계;
    상기 판별된 플레이-백 버퍼 충진 정도를 기초로 상기 클라이언트 단으로 전송되지 않은 상기 미디어 데이터 세그먼트의 화질을 결정하는 단계; 및
    상기 결정된 화질에 따라 상기 전송되지 않은 미디어 데이터 세그먼트를 트랜스코딩하는 단계를 포함하는 적응적 실시간 트랜스코딩 방법.
  2. 제1항에 있어서,
    상기 분할 및 트랜스코딩 된 미디어 데이터의 세그먼트를 트랜스코딩 버퍼에 임시 저장하는 단계를 더 포함하며,
    상기 트랜스코딩 단계는, 상기 트랜스코딩 버퍼에 저장되어 있는 미디어 데이터 세그먼트를 추출하는 단계; 및
    상기 추출된 미디어 데이터 세그먼트를 상기 결정된 화질에 따라 다시 트랜스코딩하는 단계를 포함하는 적응적 실시간 트랜스코딩 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 각 미디어 데이터 세그먼트는 재생시간 및 화질 데이터를 메타데이터로서 헤더에 포함하며,
    상기 화질 데이터는 상기 결정된 화질 정보가 반영된 것임을 특징으로 하는 적응적 실시간 트랜스코딩 방법.
  5. 제1항에 있어서,
    상기 플레이-백 버퍼 충진 정도는, 상기 플레이-백 버퍼가 비어있는 상태이거나 또는 소정 시간 경과 후 비어있게 되는 상태인지를 상기 스트리밍 서버에서 추정하도록 하기 위한 기준 값인 것을 특징으로 하는 적응적 실시간 트랜스코딩 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 스트리밍 서버는, 상기 전송된 미디어 데이터 세그먼트들의 재생 시간의 합이 상기 스트리밍 개시 시점으로부터의 경과 시간에 비하여 작은 것으로 감지될 경우,
    상기 전송된 미디어 데이터 세그먼트의 화질보다 낮은 화질로 상기 미디어 데이터 세그먼트를 트랜스코딩하는 것을 특징으로 하는 적응적 실시간 트랜스코딩 방법.
  8. 제1항에 있어서,
    상기 스트리밍 서버는, 상기 전송된 미디어 데이터 세그먼트들의 재생 시간의 합이 상기 스트리밍 개시 시점으로부터의 경과 시간에 비하여 큰 경우,
    시간 축 상에서 적어도 두 개의 구간을 구분하여, 각각 화질의 조정 비율을 달리하는 것을 특징으로 하는 적응적 실시간 트랜스코딩 방법.
  9. 제1항에 있어서,
    상기 스트리밍 서버는, 상기 전송된 미디어 데이터 세그먼트들의 재생 시간의 합이 상기 스트리밍 개시 시점으로부터의 경과 시간에 비하여 큰 경우에, 상기 전송된 미디어 데이터 세그먼트들의 재생 시간의 합과 상기 스트리밍 개시 시점으로부터의 경과 시간의 차이가 소정 기준보다 클 경우 및 작을 경우에 각각 화질의 조정 비율을 달리하며,
    상기 전송된 미디어 데이터 세그먼트들의 재생 시간의 합과 상기 스트리밍 개시 시점으로부터의 경과 시간의 차이가 상기 소정 기준보다 클 경우에는, 상기 플레이-백 버퍼 충진 정도의 변화에 대한 상기 화질의 조정 비율이 상기 작을 경우에 비해 상대적으로 낮도록, 상기 화질을 미세 조정하며,
    상기 소정 기준보다 작은 경우에는, 상기 플레이-백 버퍼 충진 정도의 변화에 대한 상기 화질의 조정 비율이 상기 클 경우에 비해 상대적으로 높도록, 상기 화질을 높은 조정 비율로 조정하는 것을 특징으로 하는 적응적 실시간 트랜스코딩 방법.
  10. 스트리밍 서비스를 위하여 미디어 데이터의 세그먼트들을 클라이언트 단의 플레이-백 버퍼로 순차 전송하는 스트리밍 서버에 있어서,
    전송된 미디어 데이터 세그먼트들의 재생 시간의 합과 스트리밍 개시 시점으로부터의 경과 시간을 비교함으로써 상기 클라이언트 단의 플레이-백 버퍼 충진 정도를 판별하는 플레이-백 버퍼 추정부;
    상기 판별된 플레이-백 버퍼 충진 정도를 기초로 상기 클라이언트 단으로 전송되지 않은 상기 미디어 데이터 세그먼트의 화질을 결정하는 화질 제어부; 및
    상기 결정된 화질에 따라 상기 전송되지 않은 미디어 데이터 세그먼트를 트랜스코딩하는 트랜스코더를 포함하는 스트리밍 서버.
  11. 제10항에 있어서,
    상기 트랜스코더의 트랜스코딩 결과인 미디어 데이터 세그먼트들을 임시 저장하는 트랜스코딩 버퍼를 더 포함하며,
    상기 트랜스코더는 상기 트랜스코딩 버퍼에 저장되어 있는 미디어 데이터 세그먼트를 추출하여 상기 결정된 화질에 따라 다시 트랜스코딩하는 것을 특징으로 하는 스트리밍 서버.
  12. 제10항에 있어서,
    상기 플레이-백 버퍼 충진 정도는, 상기 플레이-백 버퍼가 비어있는 상태이거나 또는 소정 시간 경과 후 비어있게 되는 상태인지를 상기 스트리밍 서버에서 추정하도록 하기 위한 기준 값인 것을 특징으로 하는 스트리밍 서버.
  13. 삭제
KR1020130126142A 2013-10-22 2013-10-22 적응적 실시간 트랜스코딩 방법 및 이를 위한 스트리밍 서버 KR101569510B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130126142A KR101569510B1 (ko) 2013-10-22 2013-10-22 적응적 실시간 트랜스코딩 방법 및 이를 위한 스트리밍 서버
US15/030,969 US10003626B2 (en) 2013-10-22 2014-10-22 Adaptive real-time transcoding method and streaming server therefor
PCT/KR2014/009941 WO2015060638A1 (ko) 2013-10-22 2014-10-22 적응적 실시간 트랜스코딩 방법 및 이를 위한 스트리밍 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130126142A KR101569510B1 (ko) 2013-10-22 2013-10-22 적응적 실시간 트랜스코딩 방법 및 이를 위한 스트리밍 서버

Publications (2)

Publication Number Publication Date
KR20150046655A KR20150046655A (ko) 2015-04-30
KR101569510B1 true KR101569510B1 (ko) 2015-11-17

Family

ID=52993163

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130126142A KR101569510B1 (ko) 2013-10-22 2013-10-22 적응적 실시간 트랜스코딩 방법 및 이를 위한 스트리밍 서버

Country Status (3)

Country Link
US (1) US10003626B2 (ko)
KR (1) KR101569510B1 (ko)
WO (1) WO2015060638A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105898625B (zh) * 2016-04-29 2020-03-17 腾讯科技(深圳)有限公司 一种播放处理方法及终端设备
CN106899858A (zh) * 2017-02-14 2017-06-27 北京时间股份有限公司 视频转码方法、服务器及系统
KR101832453B1 (ko) * 2017-07-14 2018-02-26 주식회사 알엔웨어 네트워크 코딩을 이용하여 실시간 스트리밍 서비스를 제공하는 무선 멀티캐스트 시스템 및 그 방법
US10853439B2 (en) * 2017-08-08 2020-12-01 Nice Ltd. Systems and methods for fast play back of recorded data
KR102006449B1 (ko) 2017-11-29 2019-08-01 네이버 주식회사 분산 트랜스코딩 방법 및 분산 트랜스코딩 시스템
DE102018108784B4 (de) * 2018-04-13 2023-08-03 Exaring Ag Verfahren zum Senden eines digitalen Videosignals an ein Empfangsgerät, Recheneinheit und Computerprogrammprodukt
AU2018438001B2 (en) 2018-08-21 2024-08-01 Rovi Guides, Inc. Systems and methods for real-time adaptive bitrate transcoding and transmission of transcoded media
KR102165837B1 (ko) 2019-04-03 2020-10-14 네이버웹툰컴퍼니 주식회사 효과적인 적응형 비트레이트 스트리밍을 위한 방법 및 시스템
CN110784731B (zh) * 2019-11-05 2022-01-14 腾讯科技(深圳)有限公司 一种数据流转码方法、装置、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010000138A1 (en) * 1998-04-30 2001-04-05 U.S. Philips Corporation Transcoding of a data stream

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953506A (en) * 1996-12-17 1999-09-14 Adaptive Media Technologies Method and apparatus that provides a scalable media delivery system
KR100502186B1 (ko) 2003-11-28 2005-07-20 한국전자통신연구원 고화질 인터넷 방송 서비스 시스템
US8543723B2 (en) 2004-07-27 2013-09-24 Sony Corporation Home network system with transmission error recovery
DE602006020050D1 (de) * 2006-12-08 2011-03-24 Deutsche Telekom Ag Verfahren und System für Peer-to-Peer-Inhaltsverbreitung
US20090259764A1 (en) * 2008-04-11 2009-10-15 Mobitv, Inc. Intro outro merger with bit rate variation support
US8178797B2 (en) * 2009-12-30 2012-05-15 Mettler-Toledo, LLC Hermetically sealed scale platform
CN102118521B (zh) * 2010-01-05 2013-12-04 华为技术有限公司 一种呼叫路由方法,装置和系统
US8863256B1 (en) * 2011-01-14 2014-10-14 Cisco Technology, Inc. System and method for enabling secure transactions using flexible identity management in a vehicular environment
KR101403935B1 (ko) 2011-06-24 2014-06-09 김성한 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버
KR101297411B1 (ko) * 2011-10-06 2013-08-19 주식회사에어플러그 스트리밍 데이터의 미처리 상태에 따른 이종망(異種網)들의 선택적 사용을 제어하는 장치와 방법
KR101868149B1 (ko) 2011-12-14 2018-06-15 한국전자통신연구원 클라우드 환경에서 그리드 파일 시스템 방식의 분산 기반 실시간 트랜잭셔널 트랜스코딩 방법 및 장치와 그 시스템
CN105027610B (zh) * 2013-12-26 2019-11-19 华为技术有限公司 网络视频的下发方法、装置及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010000138A1 (en) * 1998-04-30 2001-04-05 U.S. Philips Corporation Transcoding of a data stream

Also Published As

Publication number Publication date
US10003626B2 (en) 2018-06-19
WO2015060638A1 (ko) 2015-04-30
US20160269462A1 (en) 2016-09-15
KR20150046655A (ko) 2015-04-30

Similar Documents

Publication Publication Date Title
KR101569510B1 (ko) 적응적 실시간 트랜스코딩 방법 및 이를 위한 스트리밍 서버
JP6469788B2 (ja) メディアコンテンツの適応型ストリーミングのための品質情報の使用
US9042449B2 (en) Systems and methods for dynamic transcoding of indexed media file formats
US20210076086A1 (en) Digital data streaming using server driven adaptive bitrate
US9674100B2 (en) Dynamic adjustment to multiple bitrate algorithm based on buffer length
US11218663B2 (en) Video chunk combination optimization
US20210051368A1 (en) Prediction-Based Dropped Frame Handling Logic In Video Playback
AU2018250308B2 (en) Video compression using down-sampling patterns in two phases
KR20220081930A (ko) 비디오 스트리밍에서의 다중 프로토콜 예측 및 세션내 적응
EP4068779A1 (en) Cross-validation of video encoding
US9247315B2 (en) Disabling of multiple bitrate algorithm for media programs while playing advertisements
EP3354033B1 (en) Dynamic seeking in video delivery systems
KR101640452B1 (ko) 스트리밍 미디어 서비스 장치 및 방법
US20230048428A1 (en) A method for estimating bandwidth between a video server and a video client
US11140060B2 (en) Dynamic variation of media segment durations for optimization of network round trip times
KR101251312B1 (ko) 동영상 변환 서버에서의 동영상 탐색요청 처리방법
US20240179331A1 (en) Optimized video transcoding based on a timing requirement

Legal Events

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

Payment date: 20181105

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 5