KR20060113678A - 멀티미디어 콘텐츠 사용자의 구성을 원격 결정하는 시스템,방법 및 컴퓨터 프로그램 제품 - Google Patents

멀티미디어 콘텐츠 사용자의 구성을 원격 결정하는 시스템,방법 및 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR20060113678A
KR20060113678A KR1020067008230A KR20067008230A KR20060113678A KR 20060113678 A KR20060113678 A KR 20060113678A KR 1020067008230 A KR1020067008230 A KR 1020067008230A KR 20067008230 A KR20067008230 A KR 20067008230A KR 20060113678 A KR20060113678 A KR 20060113678A
Authority
KR
South Korea
Prior art keywords
information
user
computer
timing block
determining
Prior art date
Application number
KR1020067008230A
Other languages
English (en)
Other versions
KR101089934B1 (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
Priority claimed from US10/700,409 external-priority patent/US7356575B1/en
Application filed by 소니 가부시끼 가이샤 filed Critical 소니 가부시끼 가이샤
Publication of KR20060113678A publication Critical patent/KR20060113678A/ko
Application granted granted Critical
Publication of KR101089934B1 publication Critical patent/KR101089934B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • 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/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법은 사용자의 컴퓨터로 플레이어 검출 코드를 전송하는 단계 및 사용자의 컴퓨터에 관한 구성 정보를 수신하는 단계를 포함한다. 컴퓨터의 연결 속도를 결정하는 방법은 추정된 대역폭에 기초하여 타이밍 블록의 크기를 결정하는 단계 및 타이밍 블록을 검색하는 단계를 포함한다. 연결 속도는 타이밍 블록 크기 및 전송이 시작되고 종료되는 시간에 기초하여 결정된다.
정보 시스템, 멀티미디어 콘텐츠, 미디어 플레이어, 전달 관리 서버

Description

멀티미디어 콘텐츠 사용자의 구성을 원격 결정하는 시스템, 방법 및 컴퓨터 프로그램 제품{SYSTEM, METHOD, AND COMPUTER PROGRAM PRODUCT FOR REMOTELY DETERMINING THE CONFIGURATION OF A MULTI-MEDIA CONTENT USER}
본 명세서에 기술된 본 발명은 정보 시스템에 관한 것으로서, 보다 상세하게는 멀티미디어 콘텐츠 클라이언트 구성 정보의 검출에 관한 것이다.
데이터 네트워크가 이용가능하고 또 고속 데이터 연결이 이용가능한 경우, 최종 사용자가 멀티미디어 콘텐츠에 액세스하는 것은 이제 통상적인 것이다. 다수의 웹 사이트는 이제 오디오 및 비디오를 사용자에게 제공한다. 이상적으로는, 사용자는 웹 페이지에 제공된 링크 또는 콘트롤을 단지 클릭만하고, 하나 이상의 멀티미디어 파일이 전달된다. 사용자가 적절한 하드웨어 및 소프트웨어 구성을 갖는다면, 그 파일은 플레이될 수 있다.
그렇지만, 현재 아주 다양한 사용자 구성이 있다. 어떤 사용자는 인텔 기반 퍼스널 컴퓨터(PC)를 가지는 반면, 다른 사용자는 애플 매킨토시 컴퓨터를 가지고 있을 수 있다. 서로 다른 운영 체제도 존재한다. 어떤 사용자는 마이크로소프트사로부터의 MICROSOFT WINDOWS의 버전을 가지고 있는 반면, 다른 사용자는 애플사로부터의 MAC OS의 버전을 가지고 있다. 게다가, 이들 운영 체제 각각은 이제 사 용자 커뮤니티에서 몇가지 버전을 가지고 있다. 또한, 사용자의 컴퓨터 상에서 멀티미디어를 플레이하는 데 다수의 소프트웨어 프로그램이 현재 이용가능하다. 이들 플레이어는 QUICKTIME(퀵 타임)(애플사), REALPLAYER(리얼 플레이어)(REALNEI WORKS사) 및 WINDOWS MEDIAPLAYER(윈도즈 미디어 플레이어)(마이크로소프트사)를 포함한다. 또한, 이들 플레이어 각각은 사용자 커뮤니티에서 현재 이용가능한 몇가지 버전을 갖는다. 어떤 사용자는 고속 광대역 연결을 가지는 반면, 다른 사용자는 56K 모뎀 연결을 가질 수 있다.
이와 같이 다양한 플랫폼, 운영 체제, 플레이어 및 데이터 속도가 주어진 경우, 콘텐츠 제공자는 전달될 콘텐츠를 어떻게 포맷할지의 문제에 부딪힌다. 잘못 포맷하면 그 결과 사용자의 구성과 호환되지 않는 콘텐츠가 전달되게 된다. 이 방식으로 하면 콘텐츠가 사용할 수 없는 것으로 된다. 콘텐츠가 사용할 수 있다고 하더라도, 그 콘텐츠는 사용자의 구성에서 이용가능한 모든 특징을 이용하지 못하는 포맷일 수 있으며, 따라서 사용자가 경험하게 되는 그 콘텐츠는 가능할 수 있는 것보다 훌륭하지 못하다.
과거에는, 콘텐츠 제공자가 공통적인 사용자 구성의 어떤 세트를 선택함으로써 이 문제를 해소하였다. 예를 들어, 콘텐츠 제공자는 가장 통상적인 미디어 플레이어 및 그의 버전을 식별할 수 있다. 이 제공자는 이들 플레이어 각각에 대해 콘텐츠를 포맷하고 그 콘텐츠의 이들 분류된 버전을 저장한다. 이 제공자는 이어서 사실상 사용자가 어느 미디어 플레이어를 가지고 있는지, 또는 사용자가 하나 이상을 가지고 있는 경우 어느 플레이어를 사용자가 선호하는지를 질문하는, 사용 자에게 제공될 메모를 작성한다. 이어서, 사용자는 선택을 하고, 이 선택된 포맷으로 사전 인코딩된 콘텐츠가 그 사용자에게 전달된다.
이 해결 방안은 한계가 있다. 첫째, 이는 비교적 유연성이 없다. 옵션의 수가 제한되어 있다. 사용자의 특정 구성이 메뉴에 옵션으로서 제공되지 않을 수 있다. 최종 사용자가 2개 이상의 미디어 플레이어를 이용할 수 있는 경우, 그 사용자의 선호된 선택 사항이 옵션으로서 열거되어 있지 않을 수 있다. 또한, 상기 해결 방안은 매번마다 사용자 입력을 필요로 한다. 사용자는 질의받는 것을 바라지 않을 수 있다. 사용자는 그 대신에 자기를 위해 포맷팅이 해결되어 있기를 선호할 수 있다. 다른 상황에서, 사용자는 메뉴에 의해 요청되는 정보를 모르고 있을 수 있다. 사용자는 그가 어느 버전의 미디어 플레이어를 가지고 있는지 모를 수 있다. 이 해결 방안에서는 또한 콘텐츠 제공자가 그의 메뉴를 변경해야 하고 또 새로운 플레이어(또는 기존의 플레이어의 새 버전)가 널리 보급될 때마다 콘텐츠를 재인코딩해야만 한다. 따라서, 상기한 해결 방안은 유연성이 없으며 사용자 및 제공자 둘다에 부담이 된다.
따라서, 최적의 감상 경험을 가져다주는 호환 포맷으로 콘텐츠를 사용자에게 제공하기 위해 사용자의 구성을 결정하는 방법이 필요하다. 게다가, 구성의 결정은 사용자 입력을 최소로 필요로 하고 또 다른 방식으로 사용자에게 친숙한 방식으로 행해져야만 한다. 게다가, 사용자의 연결 속도를 결정하는 효율적인 방식에 대해 기술하고 있다.
멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법이 제공된다. 본 방법은 사용자의 컴퓨터로 플레이어 검출 코드를 전송하는 단계를 포함한다. 사용자의 컴퓨터에 관한 구성 정보가 수신되며, 이 구성 정보는 OS 버전, 웹 브라우저 버전, 하드웨어 플랫폼, 사용자 인터페이스 언어 유형, 인코딩 포맷, 압축 알고리즘, 또는 이들의 조합에 관한 정보를 포함한다. 본 방법은 수신하는 단계 이전에 수행되는, 사용자의 컴퓨터에서의 쿠키를 전달 관리 서버의 도메인으로 설정하는 단계를 포함할 수 있으며, 구성 정보는 쿠키로 수신된다.
또한, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법이 제공되며, 이 방법은 사용자의 컴퓨터로 플레이어 검출 코드를 전송하는 단계, 사용자의 컴퓨터에 관한 구성 정보를 수신하는 단계, 및 수정된 정보 헤더 명령어를 전송하는 단계를 포함한다.
본 방법은 또한 고유의 클라이언트 ID를 전송하는 단계를 포함할 수 있다. 명령어는 명령어가 전송된 후에 수신될 수 있고, 수정된 정보는 전송된 정보에 포함되어 있지 않은 어떤 정보를 포함하고 있을 수 있고 및/또는 수정된 정보는 전송된 정보에 포함되어 있는 어떤 정보를 배제하고 있을 수 있다. 수정된 정보 헤더 명령어는 또한 수신하는 단계 이전에 전송될 수 있고, 수신된 구성 정보는 수정된 정보 헤더 명령어에 따라 준비될 수 있다.
수신된 구성 정보는 하드웨어 적응 및/또는 사용자 인터페이스 버전 적응 등의 하나 이상의 적응(adaptation)을 포함할 수 있다. 수정된 헤더 정보 명령어는 적응 정보에 따라 준비될 수 있다.
또한, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법이 제공되며, 본 방법은 사용자의 컴퓨터에서 제2 컴퓨터로부터 플레이어 검출 코드를 수신하는 단계, 사용자의 컴퓨터에 관한 구성 정보를 제2 컴퓨터로 전송하는 단계, 및 수정된 정보 헤더 명령어를 수신하는 단계를 포함한다.
고유의 클라이언트 ID가 수신될 수 있다. 클라이언트 ID 포인터 주소가 제2 컴퓨터로 전송하기 위한 구성 정보에 첨부될 수 있다. 수정된 헤더 정보가 수신된 헤더 명령어에 기초하여 준비될 수 있다. 첨부된 클라이언트 ID를 갖는 수정된 헤더 정보는 제2 컴퓨터로 전송될 수 있다. 수정된 헤더 정보를 전송하는 단계 이전에, 추가의 구성 정보 요청이 수신될 수 있다. 명령어는 구성 정보가 전송된 후에 수신될 수 있다. 수정된 정보는 전송된 정보에 포함되어 있지 않은 어떤 정보를 포함하고 있을 수 있고 및/또는 수정된 정보는 전송된 정보에 포함되어 있는 어떤 정보를 배제하고 있을 수 있다. 명령어는 또한 구성 정보가 전송되기 전에 수신될 수 있다. 전송된 구성 정보는 수정된 정보 헤더 명령어에 따라 준비될 수 있다. 구성 정보는 하드웨어 적응 및/또는 사용자 인터페이스 버전 적응 등의 하나 이상의 적응(adaptation)을 포함할 수 있으며, 수정된 헤더 정보 명령어는 적응 정보에 따라 준비될 수 있다.
또한, 컴퓨터의 연결 속도를 결정하는 방법이 제공되며, 이 방법은 추정된 대역폭에 기초하여 타이밍 블록의 크기를 결정하는 단계, 타이밍 블록의 전송이 시작되는 시간에 표시를 하는 단계, 타이밍 블록의 전송이 종료되는 시간에 표시를 하는 단계, 및 결정된 타이밍 블록 크기 및 전송이 시작되고 종료되는 시간에 기초하여 연결 속도를 결정하는 단계를 포함한다.
컴퓨터의 연결 속도를 결정하는 다른 방법이 제공되며, 이 방법은 기지의 크기를 갖는 데이터의 타이밍 블록을 수신하는 단계, 타이밍 블록의 전송이 시작되어야 하는 시작 시간을 수신하는 단계, 시작 시간에서 타이밍 블록 전송을 시작하는 단계, 타이밍 블록의 전송이 종료되는 시간에 표시를 하는 단계, 및 타이밍 블록 크기 및 전송이 시작되고 종료되는 시간에 기초하여 연결 속도를 결정하는 단계를 포함한다.
각각의 경우에, 타이밍 블록 크기는, 추정된 대역폭 정보를 가져오는 단계, 적합한 해상도로 연결 속도를 결정하기 위해 데이터를 검색하기 위한 추정 시간을 결정하는 단계, 및 검색하는 데 결정된 추정 시간이 걸리게 될 타이밍 블록 크기를 결정하는 단계에 의해 결정될 수 있다. 타이밍 블록은 환경 설정 페이지(preferences page)의 일부로서의 마크업 언어 코멘트(markup language comment)로 수신될 수 있다. 본 방법은 또한 연결 속도를 쿠키에 저장하는 단계를 포함할 수 있다. 본 방법은 쿠키를 전달 관리 서버로 전송하는 단계를 포함할 수 있다. 타이밍 블록은 랜덤 데이터를 포함할 수 있다.
본 발명의 다른 측면에 따르면, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법이 제공된다. 이 방법은 사용자의 컴퓨터로 플레이어 검출 코드를 전송하는 단계, 사용자의 컴퓨터에 관한 구성 정보를 수신하는 단계, 및 수신된 구성 정보에 기초하여 사용자의 컴퓨터 상의 디지털 저작권 관리 정보의 유형을 결정하는 단계를 포함한다.
또한, 프로세서 판독가능 코드가 그 위에 구현되어 있는 하나 이상의 프로세서 판독가능 저장 장치가 제공된다. 프로세서 판독가능 코드는 상기한 것 중 임의의 것에 따라, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하고 및/또는 컴퓨터의 연결 속도를 결정하는 방법을 수행하도록 하나 이상의 프로세서를 프로그램하기 위한 것이다.
도 1은 본 발명의 일 실시예의 일반 구조를 나타낸 도면.
도 2는 본 발명의 일 실시예의 컴퓨팅 환경을 나타낸 블록도.
도 3a는 본 발명의 일 실시예의 전체 프로세스를 나타낸 플로우차트.
도 3b는 전달 관리자 HTTP 요청을 수신하는 단계를 포함하는 일 실시예에 따른 서버측 요청 프로세싱을 나타낸 플로우차트.
도 3c는 검출 URL HTTP 요청을 수신하는 단계를 포함하는 일 실시예에 따른 서버측 요청 프로세싱을 나타낸 플로우차트.
도 3d는 본 발명의 일 실시예에 따른 다른 요청 프로세싱을 나타낸 플로우차트.
도 4a는 본 발명의 실시예에 따른, 멀티미디어 플레이어 검출의 프로세스를 나타낸 플로우차트.
도 4b는 본 발명의 예시적인 실시예에 따른 클라이언트측 윈도즈 미디어 플레이어(windows media player, WMP) 검출을 나타낸 플로우차트.
도 4c는 본 발명의 다른 예시적인 실시예에 따른 클라이언트측 리얼 플레이 어(RealPlayer)(Real) 검출을 나타낸 플로우차트.
도 4d는 본 발명의 예시적인 실시예에 따른 클라이언트측 퀵타임(QuickTime)(QT) 검출을 나타낸 플로우차트.
도 5a는 본 발명의 일 실시예에 따른, 환경 설정 페이지를 사용자에게 제공하는 프로세스를 나타낸 플로우차트.
도 5b는 본 발명의 일 실시예에 따른 대역폭 검출 방법을 일반적으로 나타낸 플로우차트.
도 6a 내지 도 6c는 본 발명의 일 실시예에 따른, 미디어 콘텐츠에 액세스하는 루틴에 대해 기술하는 플로우차트.
도 7은 본 발명의 실시예들에 따라 사용될 수 있는 예시적인 트랜스코더를 나타낸 도면.
도 8은 본 발명의 일 실시예에 따른 여러가지 게시 변수(publishing variable)에 대한 예시적인 트랜스코딩 소스 유형 및 목적지 유형을 나타낸 테이블.
도 9는 본 발명의 일 실시예에 따른 예시적인 클라이언트 환경 변수 유형을 나타낸 테이블.
본 명세서에 포함되어 본 명세서의 일부를 형성하고 있는 첨부 도면은 본 발명을 나타내고 있으며, 상세한 설명과 함께 본 발명의 원리들을 설명하고 또 당업자가 본 발명을 제조 및 사용할 수 있게 해주는 기능을 한다.
이제부터, 본 발명의 양호한 실시예들에 대해 첨부 도면을 참조하여 기술한다. 도면에서, 유사한 참조 번호는 동일하거나 기능상 유사한 구성요소를 가리킨다.
참조 문헌
이하의 것은 인용 문헌의 리스트이며, 이들 각각은, 발명의 배경, 요약서 및 발명의 요약으로서 기술된 것에 부가하여, 여기에 인용함으로써 이하에 다른 방식으로 상세히 기술하지 않은 양호한 실시예의 구성요소 또는 특징의 대체 실시예에 대해 기술하는 것처럼 그 전체 내용이 이하의 양호한 실시예들에 대한 상세한 설명에 포함된다. 본 명세서의 상세한 설명에 기술된 양호한 실시예의 변형을 획득하기 위해 이들 참조 문헌 중 단 하나 또는 2개 이상의 조합이 참고될 수 있다.
1968년 7월자로 특허된 미국 특허 제3,394,352호, 1976년 2월자로 특허된 제3,937,881호, 1997년 8월자로 특허된 제5,657,015호, 2003년 7월 15일자로 특허된 제6,593,860호, 2002년 6월자로 특허된 제6,407,680호, 2002년 10월 15일자로 특허된 제6,466,939호, 1999년 7월 27일자로 특허된 제5,928,330호, 2001년 11월 13일자로 특허된 제6,317,134호, 및 2000년 5월 30일자로 특허된 제6,070,002호, 및
2003년 8월 21일자로 공개된 미국 공개 출원 제2003/0158913호, 2003년 5월 15일자로 공개된 제2003/0093507호, 2002년 7월 25일자로 공개된 제2002/0099858호, 2002년 7월 25일자로 공개된 제2002/0099770호, 및 2002년 7월 11일자로 공개된 제2002/0091800호, 및
2003년 8월 20일자로 출원된 미국 특허 출원 제10/644,602호, 및
Chapman, Nigel 등의 "Digital Multimedia", John Wiley & Sons, Ltd., Copyright 2000, 및
Murray, James D. 등의 "Encyclopedia of Graphics File Formats: Second Edition," O'Reilly & Associates, Inc., Copyright 1994, 1996.
양호한 실시예의 개요
최종 사용자의 컴퓨터 시스템의 구성을 결정하는 시스템, 방법 및 컴퓨터 프로그램 제품이 제공된다. 상세하게는, 사용자의 미디어 플레이어 및 네트워크 연결 속도가 결정된다. 이어서, 이 구성 정보는 제2 컴퓨터, 양호하게는 전달 관리 서버에 의해 수신된다. 이 구성 정보는 사용자에게로 전달하기 위한 멀티미디어 콘텐츠를 포맷하는 데 사용된다. 이 콘텐츠가 구성 정보에 따라 포맷되기 때문에, 이 콘텐츠는 사용자의 구성과 호환된다. 구성 결정 프로세스는 콘텐츠 제공자의 웹 페이지에 배치된 서버 접촉 코드(server contact code)를 포함한다. 웹 페이지가 사용자에 의해 로드될 때, 서버 접촉 코드는 브라우저에 대해 전달 관리 서버로부터의 코드를 검색하도록 지시한다. 이 코드가 사용자에 의해 실행될 때, 사용자의 미디어 플레이어가 결정된다. 이 정보는 사용자에서 쿠키에 저장되고 전달 관리 서버로 전송된다. 구성 정보가 불확정적(indeterminate)이거나 불완전한 경우, 사용자는 사용자가 그 구성을 표시할 수 있는 환경 설정 페이지(preferences page)를 제공받는다. 환경 설정 페이지는 또한 사용자의 연결 속도를 결정하는 메카니즘을 포함한다. 이 환경 설정 페이지는 또한 사용자에게 특정의 추천을 할 수 있 다, 예를 들어 사용자가 특정의 미디어 플레이어를 선택하도록 추천할 수 있다. 이 환경 설정 페이지는 기지의 크기를 갖는 데이터 블록을 포함한다. 이 블록을 전송하는 데 요하는 시간이 측정되고, 이어서 연결 속도가 계산되어 전달 관리 서버로 제공된다.
양호한 실시예에 따르면, 구성 결정 프로세스는 콘텐츠 제공자의 웹 페이지에 배치되어 있는 서버 접촉 코드를 포함한다. 이 웹 페이지가 사용자에 의해 로드될 때, 서버 접촉 코드는 브라우저에 대해 전달 관리 서버로부터의 스크립트를 검색하도록 지시한다. 이 스크립트가 사용자에 의해 실행될 때, 사용자의 미디어 플레이어가 결정된다. 이 정보는 사용자에서 쿠키에 저장되고 전달 관리 서버로 전송된다. 이 구성 정보는 이어서 구성 정보에 따라 미디어 콘텐츠를 포맷하는 트랜스코더(transcoder)에 의해 사용될 수 있다.
구성 정보가 불확정적이거나 불완전한 경우, 사용자는 사용자가 그 구성을 표시할 수 있는 환경 설정 페이지를 제공받는다. 환경 설정 페이지를 통해 결정된 이 구성도 역시 쿠키에 저장되고 콘텐츠의 포맷을 할 수 있도록 전달 관리 서버로 전송된다. 이 환경 설정 페이지는 또한 사용자에게 특정의 추천을 할 수 있다, 예를 들어 사용자가 특정의 미디어 플레이어를 선택하도록 추천할 수 있다.
양호한 실시예에 대한 설명
본 명세서에 기술된 양호한 실시예들은 사용자의 컴퓨터 시스템 구성의 원격 결정을 가능하게 해주는 시스템, 방법 및 컴퓨터 프로그램 제품에 관한 것이다. 이것은 그 컴퓨터로 보내지는 멀티미디어 콘텐츠가 사용자의 구성과 호환하도록 포 맷될 수 있게 해준다. 충분한 구성 정보가 획득되면, 이 콘텐츠는 사용자에게 최상의 가능한 미디어 경험을 제공하도록 포맷될 수 있다.
유의할 점은 이하의 설명에서 사용자의 컴퓨터의 개념이 프로그램가능 또는 프로그램된 장치의 전 범위를 포함하도록 광의로 정의되어 있다는 것이다. 사용자의 컴퓨터는 퍼스널 컴퓨터 또는 다른 워크스테이션, 랩톱, 팜톱, 개인 휴대 단말기 또는 셀 전화일 수 있지만, 이에 한정되지 않는다.
양호한 실시예에 따르면, 서버 접촉 코드는 콘텐츠 제공자에 의해 사용자에게 전송된 웹 페이지에 포함되어 있다. 서버 접촉 코드는 전달 관리 서버로부터 하나 이상의 스크립트를 검색한다. 이 스크립트는 사용자의 컴퓨터 시스템의 구성 정보의 결정을 가능하게 해준다. 본 발명의 일 실시예에서, 이 구성 정보는 사용자의 미디어 플레이어(들)의 식별자 및 버전을 포함한다. 이 구성 정보는 이어서 전달 관리 서버로 반환된다. 이 구성 정보는 이어서 멀티미디어 콘텐츠를 적절히 포맷하는 데 사용될 수 있다. 본 발명의 실시예에서, 구성 정보는 또한 쿠키의 형태로 사용자의 컴퓨터에 로컬적으로 저장되어 있다. 후속하는 하이퍼텍스트 전송 프로토콜(HTTP) 요청에서, 이 쿠키는 구성 정보를 전달하는 방법으로서 전달 관리 서버로 전송될 수 있다.
이 구성 정보가 불완전하거나 아마도 오래된 것으로 결정되는 경우, 부가의 웹 페이지가 열린다. 이것은 환경 설정 페이지이며, 여기서 사용자는 그의 구성(예를 들어, 그의 이용가능한 또는 선호된 미디어 플레이어 유형 및 버전, 및/또는 양호한 연결 속도)을 지정하여 전달 관리 서버로 보낼 수 있다. 환경 설정 페이지 는 또한 사용자가 특정의 미디어 플레이어를 선택하도록 추천하는 데 사용될 수 있다.
양호한 실시예에 따르면, 환경 설정 페이지는 기지의 크기의 데이터 블록을 포함한다. 이 블록은 환경 설정 페이지의 일부로서 사용자의 컴퓨터 내로 전송된다. 사용자의 컴퓨터의 연결 속도를 결정하기 위해 이 데이터 블록이 전송되는 데 소요되는 시간이 측정된다. 이 연결 속도는 부가의 구성 정보를 나타낸다. 연결 속도는 또한 사용자의 컴퓨터에서 쿠키의 형태로 로컬적으로 저장된다. 이 쿠키는 또한 사용자의 연결 속도를 전달 관리 서버로 전달하는 한 방법으로서 전달 관리 서버로 전송될 수 있다.
양호한 실시예의 시스템은 기본적으로 2가지, 즉 서버에서 클라이언트로의 연결 속도(server-to-client connection speed)(대역폭) 및 클라이언트 상에 설치된 미디어 플레이어(플레이어 버전을 포함함)의 검출을 지원한다. 연결 속도 검출과 관련하여, 서버에서 클라이언트로의 추정만이 요망되는데, 그 이유는 미디어 스트림이 서버에 의해 클라이언트로 전송될 것이기 때문이다. 어떤 미디어 플레이어 제어 채널 데이터는 클라이언트로부터 다시 서버로 전송되지만, 데이터의 품질은 서버로부터 전송되는 실제 미디어 데이터보다 크게 낮다.
미디어 플레이어를 검출할 때, 이상적인 것은 이하의 것, 즉 설치된 미디어 플레이어(예를 들어, QuickTime, Windows Media Player, RealPlayer 등), 설치된 미디어 플레이어의 버전(예를 들어, QuickTime 5.01., Windows Media Player 6.4, 리얼 플레이어 8.0), 및 각각의 미디어 플레이어에 설치된 개개의 오디오 및 비디 오 코덱(QuickTime의 경우 Sorenson v3, Windows Media Video V8, RealPlayer의 경우 소니 ATRAC, 기타 등등) 모두를 검출할 수 있는 것이다.
Generic Media의 애플리케이션에 있어서, 클라이언트 환경의 상세를 아는 것도 유용하다. 유용한 정보는 운영 체제 버전, 웹 브라우저 버전, 하드웨어 플랫폼, 및 선호된 사용자 인터페이스 언어를 포함한다. 이 정보 중 어떤 것은 용이하게(일반적으로 클라이언트에 의해 서버로 전송되는 HTTP 헤더의 일부로서) 획득되지만, 다른 정보는 획득하기가 더 어렵거나 획득하는 데 시간이 많이 걸리며 주기적으로 행해지는 것이 최상이다(모든 요청에 대해 행해지지는 않음). 이들 경우에, 검출된 정보(뿐만 아니라 임의의 사용자 환경 설정)를 클라이언트의 웹 브라우저에 저장된 쿠키에 저장하는 것이 바람직하다. Generic Media 서버에 요청이 행해질 때, 웹 브라우저는 자동적으로 연관된 쿠키 데이터를 그 서버로 전송하게 된다.
검출 시스템
양호한 실시예에 따른 전체 아키텍처는 콘텐츠 제공자의 웹 페이지에 내장된 서버 접촉 코드를 포함한다. 서버 접촉 코드는 사용자의 브라우저를, 하나 이상의 스크립트를 사용자에게 전송하는 전달 관리 서버로 안내한다. 이 스크립트의 실행은 사용자의 미디어 플레이어의 유형 및 버전을 식별할 수 있다. 이 전달 관리 서버는 사용자로부터 이 정보를 수신한다. 이 구성 정보는 궁극적으로 사용자에게 전달하기 위한 멀티미디어 콘텐츠를 포맷하는 데 사용될 수 있다.
본 발명의 시스템의 일 실시예가 도 1에 도시되어 있다. 사용자(110)에게 정보를 전달하는 콘텐츠 제공자(105)가 도시되어 있다. 웹 페이지(115)에는 서버 접촉 코드(120)이 포함되어 있다. 사용자(110)의 브라우저가 서버 접촉 코드(120)에 액세스할 때, 브라우저는 전달 관리 서버(125)와의 접촉을 확립하고 하나 이상의 플레이어 검출 스크립트(140)를 요구한다. 서버(125)는 스크립트(140)를 사용자(110)에게 전송하는 것으로 응답한다. 이하에서 보다 상세히 기술되는 방식으로, 스크립트(140)는 실행될 때 사용자(110)에 대한 구성 정보를 결정한다. 본 발명의 일 실시예에서, 이 구성 정보는 구성 정보(135)를 포함하는 쿠키를 설정하는 프로세스에 의해 사용자(110)에 저장된다. 이 쿠키는 사용자(110)에 의해 보유되고, 사용자(110)가 콘텐츠에 액세스하기 위해 HTTP 요청(130)을 행할 때, 구성 정보(135)는 쿠키의 형태로 전달 관리 서버(125)로 전송된다. 트랜스코더(도시 생략)는 멀티미디어 콘텐츠를 구성 정보(135)에 의해 규정된 방식으로 포맷한다. 그 결과 얻어지는 포맷된 콘텐츠는 이어서 스트리밍 서버(도시 생략)를 통해 사용자(110)로 전달될 수 있다.
구성 정보(135)가 이용가능하지 않은 경우(또는 다른 방식으로 설명을 필요로 하는 경우), 사용자(110)에게 스크립트(140) 중 하나로서 제공되는 부가의 스크립트는 환경 설정 웹 페이지(150)를 로드하는 새로운 윈도우를 연다. 이 페이지에서, 사용자(110)는 환경 설정 페이지(150)에서의 사용자 인터페이스를 통해 구성 정보(135)(예를 들어, 플레이어 유형 및 버전)를 명확하게 식별할 수 있다. 이전과 같이, 구성 정보(135)는 쿠키의 형태로 사용자(110)에 보유되고 전달 관리 서버(125)로 전달될 수 있다.
본 발명의 일 실시예에서, 사용자가 선택할 수 있거나 선택해야만 하는 특정의 미디어 플레이어에 관하여 환경 설정 페이지(150)를 통해 전달 관리 서버에 의해 사용자에게 추천이 행해질 수 있다. 이러한 추천은 사용자의 옵션에 관해 알고 있는 것에 기초하고 있다. 환경 설정 페이지(150)의 이러한 실시예에서, 이 추천은 그 페이지의 일부분을 통해 전달될 수 있다. 이 일부분은 서버 인터페이스로서 생각될 수 있는데, 그 이유는 서버가 이 인터페이스를 통해 사용자로의 통신을 하기 때문이다.
이하에 보다 상세히 기술하는 바와 같이, 환경 설정 페이지는 기지의 크기를 갖는 데이터 블록(155)을 포함한다. 이 블록(155)의 전송은 사용자(10)의 연결 속도를 결정하기 위해 시간이 측정된다. 본 발명의 일 실시예에서, 블록(155)(이후부터 타이밍 블록이라고 함)은 환경 설정 페이지(150)에서의 HTML 코멘트에 포함되어 있다.
본 발명의 어떤 측면에서, 전달 관리 서버(125)는 일련의 이러한 서버 중 하나이다. 여기에서, 이 일련의 전달 관리 서버는 본 명세서에 기술된 본 발명에 의해 사용자의 커뮤니티에 서비스를 제공한다. 사용자의 콘텐츠 요청이 있는 경우, 그 사용자는 다수의 사용자에 의해 생성된 부하를 분산시키는 선택 메카니즘을 통해 특정의 전달 관리 서버에 배당되어진다.
본 발명의 일 실시예에서, 전달 관리 서버(125)의 기능은 트랜스코딩 엔진(transcoding engine)에 대한 시청자 웹 서버 인터페이스(viewer web server interface)에 구현되어 있다. 트랜스코딩 엔진은 일반적으로 콘텐츠 제공자로부터 콘텐츠를 수신하고 이 콘텐츠를 사용자(110)가 이용가능하게 되도록 포맷("트랜스코딩")한다. 시청자 웹 서버 인터페이스는 사용자(110)가 콘텐츠를 요청할 수 있게 해주는 트랜스코딩 엔진과 사용자(110) 간의 네트워크 인터페이스이다. 시청자 웹 서버 인터페이스는 사용자(110)로부터 콘텐츠 요청을 수신하고 이를 처리하며, 그에 따라 요청된 콘텐츠의 트랜스코딩 및 사용자(110)로의 전달을 개시한다. 시청자 웹 서버 인터페이스는 사용자(110)의 요청에 대한 응답을 전송하고, 사용자(110)를 적절한 스트리밍 서버(이로부터 요청된 미디어 콘텐츠를 수신함)로 리디렉션한다. 포맷된("트랜스코딩된") 콘텐츠는 이어서 스트리밍 서버 및/또는 프록시 서버(또한 트랜스코딩 엔진의 일부)에 의해 사용자(110)에게로 스트리밍된다. 이러한 트랜스코딩 엔진에 대해서는 미국 특허 제6,407,680호 및 제6,593,860호에 보다 상세히 기술되어 있으며, 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함된다. 다른 대안으로서, 전달 관리 서버(125) 및 시청자 웹 서버 인터페이스는 별개의 서버로서 구현될 수 있다.
유의할 점은 본 명세서에 기술된 본 발명이 다양한 조직적 맥락에서 구현될 수 있다는 것이다. 예를 들어, 상기한 트랜스코딩 및 전달 관리 동작은 전달 관리 서비스에 의해 수행될 수 있다. 이 서비스는 예를 들어 콘텐츠 제공자(105)와 무관한 별도의 조직 또는 비지니스 개체일 수 있다. 이 경우에, 웹 페이지(115)는 전달 관리 서비스와 무관하게 콘텐츠 제공자(105)에 의해 개발될 수 있다. 그러면, 웹 페이지(115)는 로고 또는 다른 상품화 이미지(branding image) 및/또는 콘텐츠 제공자(105)에 특유한 "룩 앤 필(look and feel)"을 포함할 수 있다. 이와 마찬가지로, 환경 설정 페이지(150)가 전달 관리 서버(125)에 의해 사용자(110)에게로 전달되지만, 이 페이지(150)도 역시 전달 관리 서비스와 무관하게 콘텐츠 제공자(105)에 의해 개발될 수 있다.
전달 관리 서비스 및 콘텐츠 제공자(105)의 독립성은 또한 전달 관리 서비스가 그 자체적으로 서비스 변경을 할 수 있게 해준다. 전달 관리 서비스는 기능을 추가하거나 또는 다른 방식으로 수정함으로써 그의 서비스를 자유롭게 업그레이드한다. 플레이어 검출 스크립트(140)는 예를 들어 특정의 콘텐츠 제공자(105)와 무관하게 플레이어 검출 프로세스를 더 빠르거나 더 포괄적이도록 만들기 위해 개선될 수 있다.
트랜스코딩 프로세스도 역시 예를 들어 부가의 미디어 포맷을 수용하거나 보다 빠른 트랜스코딩을 제공하기 위해 콘텐츠 제공자(105)와 무관하게 업그레이드될 수 있다. 전달 관리 서버(125)는 하드웨어, 소프트웨어 또는 이들의 조합을 사용하여 구현될 수 있다. 상세하게는, 서버(125)는 컴퓨터 시스템 또는 다른 프로세싱 시스템을 사용하여 구현될 수 있다. 이러한 컴퓨터 시스템(200)의 일례가 도 2에 도시되어 있다. 컴퓨터 시스템(200)은 프로세서(204) 등의 하나 이상의 프로세서를 포함한다. 이 프로세서(204)는 통신 기반구조(206)(예를 들어, 버스 또는 네트워크)에 연결되어 있다. 다양한 소프트웨어 실시예가 이 예시적인 컴퓨터 시스템과 관련하여 기술될 수 있다. 이러한 설명을 읽어본 후에, 다른 컴퓨터 시스템 및/또는 컴퓨터 아키텍처를 사용하여 본 발명을 어떻게 구현하는지가 당업자에게는 명백하게 될 것이다.
컴퓨터 시스템(200)은 또한 양호하게는 랜덤 액세스 메모리(RAM)인 메인 메모리(208)를 포함하고, 또한 2차 메모리(210)를 포함할 수 있다. 2차 메모리(210)는 예를 들어 하드 디스크 드라이브(212), 및/또는 자기 테이프 드라이브, 광학 디스크 드라이브, 기타 등등을 나타내는 분리형 저장 장치 드라이브(214)를 포함할 수 있다. 분리형 저장 장치 드라이브(214)는 공지의 방식으로 분리형 저장 장치(218)로부터 판독하고 및/또는 그에 기록한다. 분리형 저장 장치(218)는 자기 테이프, 광학 디스크, 기타 등등을 나타낸다. 잘 아는 바와 같이, 분리형 저장 장치(218)는 컴퓨터 소프트웨어 및/또는 데이터를 저장하는 컴퓨터 사용가능 저장 매체를 포함한다.
2차 메모리(210)는 또한 컴퓨터 프로그램 또는 데이터가 컴퓨터 시스템(200)에 로드될 수 있게 해주는 다른 유사한 수단을 포함할 수 있다. 이러한 수단은 예를 들어 분리형 저장 장치(222) 및 인터페이스(220)를 포함할 수 있다. 이러한 것의 예는 프로그램 카트리지 및 카트리지 인터페이스(비디오 게임 장치에서 볼 수 있는 것 등), 분리형 메모리 칩(EPROM 또는 PROM 등) 및 연관된 소켓, 및 다른 분리형 저장 장치(222) 및 소프트웨어 및 데이터가 분리형 저장 장치(222)로부터 컴퓨터 시스템(200)으로 전송될 수 있게 해주는 인터페이스(220)를 포함할 수 있다.
컴퓨터 시스템(200)은 또한 통신 인터페이스(224)를 포함할 수 있다. 통신 인터페이스(224)는 소프트웨어 및 데이터가 컴퓨터 시스템(200)과 외부 장치 사이에서 전송될 수 있게 해준다. 통신 인터페이스(224)의 예는 모뎀, 네트워크 인터페이스(이더넷 카드 등), 통신 포트, PCMCIA 슬롯 및 카드, 기타 등등을 포함할 수 있다. 통신 인터페이스(224)를 통해 전송된 소프트웨어 및 데이터는 통신 인터페이스(224)에 의해 수신될 수 있는 전자, 전자기, 광학 또는 기타 신호일 수 있는 신호(228) 형태이다. 이들 신호(228)는 통신 경로(즉, 채널)(226)를 통해 통신 인터페이스(224)로 제공된다. 이 채널(226)은 컴퓨터 시스템(200)으로 들어가는 및 그로부터 나오는 신호(228)를 전달하며, 또 유선이나 케이블, 광 섬유, 전화선, 셀룰러 전화 링크, RF 링크 및 다른 통신 채널을 사용하여 구현될 수 있다. 본 발명의 일 실시예에서, 신호(228)는 HTTP 요청(130) 및 구성 정보(135) 등의, 전달 관리 서버(125)에 의해 요구되는 정보를 전달할 수 있다. 신호(228)는 또한 스크립트(140) 및 환경 설정 페이지(150) 등의 정보를 사용자(110)에게 전달할 수 있다.
본 문서에서, 용어 "컴퓨터 프로그램 매체" 및 "컴퓨터 사용가능 매체"는 일반적으로 분리형 저장 장치 드라이브(214), 하드 디스크 드라이브(212)에 설치된 하드 디스크, 및 신호(228)를 지칭하는 데 사용된다. 이들 컴퓨터 프로그램 제품은 소프트웨어를 컴퓨터 시스템(200)에 제공하는 수단이다. 본 발명은 부분적으로 이러한 컴퓨터 프로그램 제품에 관한 것이다.
컴퓨터 프로그램(컴퓨터 제어 로직이라고도 함)은 메인 메모리(208) 및/또는 2차 메모리(210)에 저장되어 있다. 컴퓨터 프로그램은 또한 통신 인터페이스(224)를 통해 수신될 수 있다. 이러한 컴퓨터 프로그램은 실행될 때 컴퓨터 시스템(200)이 본 명세서에 기술된 본 발명의 특징들을 수행할 수 있게 해준다. 상세하게는, 컴퓨터 프로그램은 실행될 때 프로세서(204)가 본 발명의 특징들을 수행할 수 있게 해준다. 따라서, 이러한 컴퓨터 프로그램은 컴퓨터 시스템(200)의 제어기 를 나타낸다.
검출 방법
양호한 실시예에 따른 방법에서, 사용자의 컴퓨터의 구성 정보가 결정되고 전달 관리 서버로 전송된다. 이어서, 전달 관리 서버는 구성 정보에 따라 멀티미디어 콘텐츠를 포맷하는 트랜스코더로 이 구성 정보를 전달한다. 이 포맷된 콘텐츠는 이어서 사용자에게로 전송될 수 있다.
본 발명의 일 실시예에 따른 전체 프로세스에 대해 도 3a 내지 도 3d에 도시되어 있다. 이 프로세스는 단계(305)에서 시작한다. 단계(310)에서, 사용자는 콘텐츠 제공자의 웹 페이지를 로드하기 시작한다. 섹션 II에 기술되어 있는 바와 같이, 이 웹 페이지는 사용자의 브라우저를 전달 관리 서버로 안내하는 서버 접촉 코드를 포함하고 있다. 본 발명의 일 실시예에서, 이것은 콘텐츠 제공자의 웹 페이지의 HTML 헤더에서 달성된다. 예를 들어, HTML 헤더는 이하의 서버 접촉 코드를 포함할 수 있다.
<SCRIPT SRC="http://js.genericmedia.net/js"LANGUAGE=javascript/></SRC>,
여기서, js.geneicmedia. net"는 전달 관리 서버를 나타낸다.
본 발명의 일 실시예에서, 서버 접촉 코드의 실행은 콘텐츠 제공자의 웹 페이지에서의 콘트롤 또는 링크를 클릭하는 등의 사용자의 동작에 의해, 또는 명시적인 명령을 입력하는 것에 의해 개시된다. 대체 실시예에서, 서버 접촉 코드는 웹 페이지를 로드한 후에 자동적으로 실행된다. 단계(320)에서, 사용자의 브라우저는 전달 관리 서버(상기한 예에서 "js")로부터 플레이어 검출 코드를 가져온다. 단계 (325)에서, 사용자에 의해 사용될 수 있는 미디어 플레이어가 결정된다. 이 단계에 대해서는 이하에서 보다 상세히 기술된다. 단계(330)에서, 미디어 플레이어의 식별자는 사용자의 컴퓨터에서의 하나 이상의 쿠키에 기록된다. 이 단계에 대해서도 역시 이하에서 보다 상세히 기술한다.
이 단계와 관련하여, 전달 관리 서버에서, 수신된 구성 정보가 요청된 멀티미디어 콘텐츠를 포맷하는 데 충분한지 여부에 관한 결정이 행해진다(단계 331). 쿠키가 수신되고 유효한 설정을 갖는 것으로 확인되면, 유효성을 암시하는 최소한의 HTTP 응답이 반송된다. 수신된 구성 정보가 요청된 멀티미디어 콘텐츠를 포맷하기에 충분한 경우, 프로세싱은 이하에 기술하는 단계(335)에서 계속된다. 도 3a를 참조하여 기술되고 도시된 방법에서 부가의 결정점(단계 331와 유사함)이 단계(320)와 단계(325) 사이에 만들어질 수 있다. 즉, 충분한 정보가 수신되면, 일 실시예에서 플레이어 검출이 완전히 생략될 수 있다. 다른 실시예에서는, 충분한 정보가 수신된 경우조차도 어떤 간단한 플레이어 검출이 있다. 어느 경우든지, 클라이언트가 서버에 대해 플레이어 검출 코드를 요청할 때, 있는 경우, 어느 플레이어 검출 코드를 전송해야 하는지의 결정이 단계(320) 이후에 수행될 수 있다.
js가 유효한 쿠키를 수신하지 않는 경우(즉, 사용자에서의 구성 정보가 불충분하거나 존재하지 않는 경우), 본 방법은 단계(332)에서 계속된다. 단계(332)에서, 환경 설정 페이지가 사용자를 위해 디스플레이된다. 본 발명의 일 실시예에서, 이것은 환경 설정 페이지를 로드하는 새로운 윈도우를 여는 자바스크립트의 세그먼트를 사용자에게 전송함으로써 달성된다. 환경 설정 페이지는 사용자가 미디 어 플레이어에 관련한 사용자의 구성 또는 환경 설정, 및/또는 사용자의 연결 속도를 전달 관리 서버에 심사숙고하여 알려줄 수 있게 해준다. 본 발명의 일 실시예에서, 이 환경 설정 페이지는 또한 특정의 미디어 플레이어를 선택하도록 사용자에게 추천할 수 있다. 또한, 이하에서 보다 상세히 기술하는 바와 같이, 환경 설정 페이지는 사용자의 컴퓨터의 연결 속도가 결정되고 전달 관리 서버로 중계되는 메카니즘을 포함한다.
단계(333)에서, 사용자에 의해 제공된 환경 설정은 사용자의 컴퓨터에 의해 수신된다. 단계(334)에서, 이 환경 설정은 쿠키에 저장된다. 이어서, 프로세싱은 단계(335)에서 계속된다. 단계(335)에서, 사용자는, HTTP 요청을 행함으로써, 웹 페이지를 통해 콘텐츠 제공자에 의해 이용가능하게 만들어지는 멀티미디어 콘텐츠를 요청한다. 이러한 요청은 예를 들어 콘텐츠 제공자의 웹 페이지의 어떤 영역을 클릭하는 것에 의해 행해질 수 있다. 이 요청의 일부로서, 구성 정보를 포함하는 임의의 쿠키가 전달 관리 서버로 전송된다. 이 쿠키는 예를 들어 미디어 플레이어 유형 및 버전에 대해 기술할 수 있다. 이 쿠키는 또한 측정된 연결 속도는 물론 사용자가 가질 수 있는 임의의 선호된 연결 속도를 저장할 수 있다. 사용자는 또한 예를 들어 스트리밍을 위해 이용가능한 대역폭 중 일부분만을 사용하고자 할 수 있다. 여기에서, 사용자는 사용자의 구성에 의해 허용된 최대값보다 더 느린 속도를 선택하게 된다. 이 프로세스는 단계(370)에서 종료된다.
HTTP 요청("GET")의 일례는 다음과 같다. 기존의 쿠키(gmPlayers, gmPlayerPref, 및 gmBitratePref)가 GET 명령의 일부로서 전달 관리 서버로 전송된 다.
GET/xc?p=keith&s=media/Trailer.mov&v=l HTTP/1. 1
Accept: image/gif, image/x xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5. 5; Windows NT 5.0)
Host: xc.genericmedia.net
Connection: Keep-Alive
Cookie: grnPlayers=vl% 2F % 2FQuickTime-4.12% 2F % 2FReal-6.0.7.788% 2F % 2FWMP-6.4% 2F %2F; gm PlayerPref=real; gmBitratePref=300000
이 서버는 (사용자 Keith의 계정에서) 영화 "media/Trailer.mov"를 RealPlayer G2에 적합한 300 kbps 인코딩으로 트랜스코딩하는 데 URL 정보 및 쿠키 정보를 사용한다.
HTTP/l.l 200 OK
Date: Mon, Jul. 16, 2001 23:52:00 GMT
Server: Apache/1.3.14 (Unix) mod_per1/11.24
Connection: close
Expires: Thu, Dec: l, 1994 16:00:00 GMT
Pragma: no-cache, no-store, must-revalidate, no-transform
Transfer-Encoding: chunked
Content-Type: audio/x-pn-realaudio 41
rtsp://64.124.76.136:554/cache/MIk3JeFIY0209200d7dn-a/Trailer. rm O
유의할 점은 사용자가 2개 이상의 미디어 플레이어로 구성될 수 있다는 것이다. 그러한 경우, 콘텐츠를 어떻게 포맷할지, 즉 어느 플레이어를 선택할지 불명확할 수 있다. 게다가, 사용자는 한 플레이어를 다른 플레이어보다 특별히 선호할 수 있다. 환경 설정 페이지는 사용자로 하여금 플레이어 선호를 전달 관리 서버로 전달하게 함으로써 이들 상황을 해결하는 방법을 제공한다. 본 발명의 일 실시예에서, 환경 설정 페이지는 어느 미디어 플레이어가 최상의 결과를 제공할 수 있는지에 관하여 사용자에게 추천을 전달할 수 있다.
또한 상기 프로세스가 사용자의 구성을 확실하게 식별하지 못하는 경우가 있을 수 있다. 플레이어 검출 프로세스는 예를 들어 사용자의 미디어 플레이어를 명백하게 확인하지 못할 수 있으며, 사용자는 환경 설정 페이지에서의 질의에 답변할 정도로 충분히 알고 있지 못할 수 있다. 이러한 경우에, 전달 관리 서버는 사용자의 구성에 관하여 알고 있는 것에 기초하여 하나 이상의 추론을 할 수 있다. 예를 들어, 사용자가 매킨토시 플랫폼을 가지고 있는 것으로 알고 있는 경우, 일반적으로 그 플랫폼 상에서 퀵 타임이 이용가능한 것으로 가정될 수 있는데, 그 이유는 매킨토시 컴퓨터는 일반적으로 퀵 타임을 갖추고 있기 때문이다. 또한, 그렇지 않았으면 이용가능하지 않았을 구성 정보를 추론하기 위해 다른 이러한 연상이 사용 될 수 있다. 본 발명의 일 실시예에서, 환경 설정 페이지를 통해 사용자에게 확인하도록 요청함으로써 이러한 추론이 확인될 수 있다.
도 3b는 전달 관리자 HTTP 요청을 수신하는 단계(371)를 포함하는 본 발명의 일 실시예에 따른 서버측 요청 프로세싱을 나타낸 플로우차트이다. 단계(372)에서 전달 관리자 쿠키가 수신되었는지 여부가 검사된다. '아니오'인 경우, 단계(373)에서, 클라이언트를 검출 URL로 전송하는 코드를 포함하는 HTTP 응답이 전송된다. '예'인 경우, 단계(374)에서 비어있는 HTTP 응답이 반환된다.
도 3c는 검출 URL HTTP 요청을 수신하는 단계(375)를 포함하는 양호한 실시예에 따른 서버측 요청 프로세싱을 나타낸 플로우차트이다. 단계(376)에서, 클라이언트의 구성 정보를 결정하기 위해 HTTP 헤더가 분석된다. 결정된 정보 중에는 예시된 바와 같이 운영 체제, 플랫폼 및 HTTP 클라이언트 또는 사용자 에이전트가 있다. 본 명세서에서의 추가의 설명으로부터, 예를 들어 도 7 내지 도 9 및 다른 곳을 참조하면 알 수 있는 바와 같이, 단계(376)에서 결정될 수 있는 클라이언트 컴퓨터의 많은 특징, 특성 및 변화가 있다. 게다가, 서버에서 수신되기를 요망하는 특정의 정보 항목을 도 3d에 나타낸 바와 같이 클라이언트에 알려줄 수 있으며 이에 대해서는 이하에서 보다 상세히 기술한다.
클라이언트의 대역폭 또는 연결 속도를 결정하기 위해, 단계(377)에서 TimerStart 코드가 전송될 수 있다. 단계(378)에서, 데이터 블록 또는 타이밍 블록이 대역폭 측정을 위해 클라이언트로 전송된다. TimerStop 코드는 단계(379)에서 전송된다. 일 실시예에서, 이 대역폭은 단계(380)에서 TimerStop 시간과 TimerStart 시간 간의 차이로부터 결정되는 시간 동안에 전달되는 데이터의 양으로부터 계산되고, 쿠키에 저장된다. 이하에서 보다 상세히 기술하는 바와 같이, 시간을 고정시키고 그 시간 동안에 얼마나 많은 데이터가 전송되는지에 기초하여 대역폭을 결정하는 대신에, 청크 크기(chunk size) 또는 타이밍 블록 크기가 고정되고 이를 전달하는 데 시간이 얼마나 걸리는지에 기초하여 대역폭이 결정될 수 있다. 유리하게도, 이 동작이 허용가능할 정도로 정확한 대역폭 결정을 하는 데 필요한 최소 시간보다 약간 더 지속되도록 청크 크기 또는 타이밍 블록 크기가 선택될 수 있다. 단계(381)에서, 클라이언트측 미디어 플레이어 검출 코드가 전송된다.
검출 메카니즘 상세
예시적인 사용 시나리오에서, 사용자는 일반적으로 퍼스널 컴퓨터 또는 PDA(팜, 포켓PC)로부터 연결하고 있을 수 있다. 이 연결은 일반적으로 HTTP 요청을 할 수 있는 웹 브라우저 또는 미디어 플레이어로부터의 HTTP를 통할 수 있다.
이러한 유형의 환경의 어려운 측면은 클라이언트 장치 소프트웨어가 일반적으로 기입되거나 다른 방식으로 제어될 수 없으며 그 대신에 기존의 클라이언트의 제약 내에서 동작한다는 것이다. 보다 구체적으로는, 특정의 기존 웹 브라우저(예를 들어, 인터넷 익스플로러, 넷스케이프, 모질라, 기타 등등)에 대한 방법이 없을 수 있으며, 따라서 구성 검출 알고리즘은 자바스크립트의 지원 안에서 동작해야만 하고 또 개개의 브라우저 버전의 버그/쿼크(bug/quirk)를 피해 동작해야만 한다.
이와 마찬가지로, 여러가지 미디어 플레이어는 다양한 레벨의 버전 및 설치- 코덱 질의를 지원한다. 많은 경우에(특히 오래된 플레이어의 경우에), 특정의 코덱이 설치되어 있는지 여부를 직접 질의할 방법이 없다. 이것은 그 대신에 기지의 구성에 의존하여 간접적으로 행해진다. 예를 들어, 미디어 플레이어가 Windows Media Player 7.0인 경우, 그 버전은 Microsoft MPEG4v3, 및 Microsoft ISO-MPEG4v1 비디오 코덱과 함께 출하된다는 것을 알고 있다.
PDA의 경우, 미디어 플레이어 검출은 일반적으로 PDA에 대한 현재의 미디어 플레이어 지원이 제한되어 있다는 사실에 의해 간단화될 수 있다. 예를 들어, 팜 OS 기반 PDA에는, 이용가능하고 및/또는 지원될 수 있는 비디오 플레이어가 단지 하나밖에 없을 수 있다. 다른 예로서, 포켓 PC에는, 오랫동안 마이크로소프트의 Pocket Windows Media Player가 이용가능한 유일한 플레이어이었다. RealNetworks 및 PacketVideo는 또한 PDA를 위한 플레이어를 소개하였다. 플레이어 선택이 제한된 경우, 검출 로직은 종종 주어진 PDA와 (디폴트) 미디어 플레이어 간의 1:1 매핑으로 간단화될 수 있다.
대역폭 측정도 역시 HTTP 및 자바스크립트의 제약안에서는 추정하기가 쉽지 않다. 대역폭 측정 도구는 일반적으로 클라이언트가 기지의 양의 데이터를 수신하는 데 얼마나 걸리는지의 시간을 측정함으로써 이들 추정을 할 수 있다. 시간 측정이 데이터를 실제로 전송하는 데 소비된 시간으로만 제한하는 경우 및 데이터-크기가 전송된 실제 비트 수를 정확하게 추정하는 경우에, 더 높은 대역폭 추정 정확도가 달성가능할 수 있다. 이상적으로는, 변칙을 평균하여 없애기 위해 다수의 측정이 행해진다.
예시적인 구현에서, (검출 메카니즘에 대한) 설계 요건/제약은 이하의 것을 포함한다.
(웹 브라우저에서) 웹 페이지 내로부터 행해져야만 한다.
코드/스크립팅은 클라이언트의 기존의 웹 브라우저에 의해 이미 지원되는 언어(예를 들어, Javascript, VBscript, HTML)만을 사용해야만 한다.
사용자는 임의의 다운로드된 모듈/플러그인을 설치할 필요가 없어야만 한다.
검출은 가능한 한 신속히 또 가능한 한 최소한의 간섭만으로 행해져야만 한다(이상적으로는, 사용자가 검출 코드가 실행되고 있는지를 알지 못해야만 한다).
상기 제약 내에서 대역폭 측정을 하기 위해, HTML 및 Javascript 코드를 통해 대역폭을 측정하는 것이 한 방법일 수 있다. 작은 자바 애플릿이 보다 미세하고 보다 복잡한 측정 알고리즘을 가능하게 해줄 수 있지만, 다운로드된 애플릿 및 자바 런타임 환경을 필요로 할 수 있으며, 이 둘다는 설계 제약을 위반할 수 있다.
대역폭 측정은 유리하게도 HTML 데이터 청크가 클라이언트에 의해 수신되는 데 얼마나 걸리는지의 시간을 측정함으로써 행해질 수 있다. 양호하게는, "랜덤" ASCII 데이터 또는 다른 랜덤 데이터가 데이터-압축 모뎀, 라우터 및 웹 서버에 의한 압축(이는 수신된 실제 비트 수를 감소시키며 따라서 대역폭 계산에 영향을 줌)을 방지하는 데 사용될 수 있다. 사용자 영향을 최소로 하기 위해, 대역폭 측정 계산은 양호하게는 한번만 행해지며, 다른 대안으로서 여러번 행해진다. 데이터 청크의 크기는 약 300 kbps의 LAN 연결 속도 상에서의 사용자에 대한 정확한 측정의 필요성에 대해 모뎀 사용자에 대한 신속한 측정의 필요성이 균형을 이룰 수 있 도록 20 킬로바이트가 되도록 선택될 수 있다.
다시 말하면, 설계 제약으로 인해, 보다 진보된/정확한 대역폭 측정 기술이 바람직하지 않을 수 있다. 이 측정은 여전히 계산 오염(calculation corruption)에 취약하다. 다른 애플리케이션 또는 브라우저 윈도우는 데이터를 전송 중일 수 있으며, 따라서 예를 들어 전송 시간을 느려지게 할 수 있다. 또한, 중간 라우터는 데이터를 버퍼링하였다가 이를 대형 청크(large chunk)로 전송하고 있을 수 있다. 게다가, 데이터는 여전히 중간 라우터/모뎀에 의해 압축되어 있을 수 있다. 이 데이터는 마지막 네트워크 링크 상에서, 예를 들어 방화벽으로부터 컴퓨터까지에서 또는 브라우저에서 버스트(burst)될 수 있고, 예를 들어 이 데이터는 자바스크립트를 분해하여 파싱/실행할 수 있으며, 이들 중 임의의 것 또는 그 전부가 잘못하여 전송 시간을 감소시킬 수 있다.
자바스크립트를 지원하지 않는 클라이언트의 경우, 디폴트 검출 결과가 사용될 수 있다. 사용자는 웹 페이지를 변경하는 설정/환경 설정으로 가는 링크를 클릭함으로서 훗날에 그의 환경 설정을 변경할 수 있다. 디폴트 검출 결과는 유리하게도 HTTP 요청 헤더로부터 수집된 정보(운영 체제, 하드웨어 플랫폼, 기타 등등)에 기초하여 다른 클라이언트에 대해 커스터마이즈될 수 있다. 일 실시예에서, 매킨토시(Macintosh) 클라이언트는 디폴트로서 퀵 타임이 설치되어 있을 수 있지만, 포켓 PC(PocketPC) 클라이언트는 디폴트로서 포켓 윈도즈 미디어 플레이어(Pocket Windows Media Player)가 설치되어 있을 수 있다. 무선 모뎀 캐리어를 통한 연결의 경우, 디폴트 대역폭은 56 kbps일 수 있다.
영구적 데이터(persistent data)
양호한 구현은 사용자 세션들 간에 영구적 데이터를 저장하기 위해 "쿠키"를 이용한다. 쿠키는 도메인과 연관되어 있는 HTTP 클라이언트에 의해 저장되는 이름-값 쌍이다. 클라이언트가 후속하는 HTTP 요청을 할 때, 클라이언트는 그 요청과 함께 HTTP 서버의 도메인에 소속되어 있는 쿠키를 전송한다. 쿠키는 또한 어떤 일자 이후에 만료(삭제)되도록 지정될 수 있다.
예시적인 구현에서 측정된 대역폭, 검출된 미디어 플레이어(및 이들의 버전), 선호하는 사용자 비트레이트, 스트리밍에 대한 선호하는 사용자 미디어 플레이어, 및/또는 다운로드된 콘텐츠에 대한 선호하는 사용자 미디어 플레이어와 같은 것들의 저장을 위해 별도의 쿠키가 생성/사용될 수 있다. 각각의 쿠키는 검출된 정보의 일부분이 오래되어 재검출해야 하는 것으로 생각될 수 있는 빈도수를 설정하는 데 이용될 수 있는 그 자신의 만료일을 가질 수 있다.
구체적으로는, 검출하는 데 비교적 많은 시간을 소모하는 것들(대역폭 및 설치된 미디어 플레이어들의 버전)은 한번 행해질 수 있고, 그런 다음에는 주기적으로(또는 사용자의 요청 시에) 재검출되기만 할 수 있다. 일반적인 구성 검출 구현의 어려움 및 복잡성의 많은 부분은 서버측 환경을 기록/제어할 수 있을 뿐이라는 것에 기인한다. 유리하게도, 클라이언트측 플랫폼, 브라우저, 미디어 플레이어, 스크립팅 언어, 버그, 기타 등등은 양호한 실시예에 따라 항상 작동될 필요는 없다. 설계 요건에 따라, 클라이언트의 설치된 소프트웨어의 업그레이드/변경이 이제 허용될 수 있지만, 다른 대안으로서 구체적으로는 허용되지 않을 수 있다.
구현예
양호한 실시예에 따른 예시적인 구현에서, 클라이언트측 환경에서 훨씬 더 많은 자유가 있기 때문에 많은 장애가 회피될 수 있다. 클라이언트 소프트웨어 구성 또는 기능을 결정하기 위해 간접적인 질의 방법을 고안하는 대신에, 유리하게도 직접적인 질의 지원이 처음부터 설계되어 있다. 이와 유사하게, 클라이언트 HTTP 헤더 값이 상세한 클라이언트 정보를 제공하도록 지정될 수 있다(및/또는 새로운 헤더가 추가될 수 있다).
이 점에서 볼 때, 도 3d는 본 발명의 일 실시예에 따른 추가의 요청 프로세싱을 플로우차트이다. 단계(382)에서, 수정된 정보 헤더 명령어가 전송된다. 즉, 표준의 또는 이전의 요청에 기초하여 라이언트가 이미 전송하였거나 또는 전송할 준비를 하는 것이 아닌 다른 정보를 얻기 위해 클라이언트에 요청이 전송된다. 단계(383)에서 고유의 클라이언트 ID가 전송되고, 따라서 클라이언트에 요청되고 이어서 그로부터 수신된 특정의 정보는 그 클라이언트와 연관되어 있다. 예를 들어, 다른 클라이언트들에 대해 서로 다른 정보가 요청될 수 있다. 유리하게도, 서로 다른 최종 사용자 기계는 검출을 위한 고유의 ID 코드가 내장되어 있을 수 있다.
클라이언트 동작(384-386)은 서버 동작(382-383)에 기인한 클라이언트측 프로세싱에 대한 영향을 설명한다. 단계(384)에서, 클라이언트는 단계(382)에 기초하여 수신된 명령어에 대해 확인 응답을 하고 단계(383)에 기초하여 클라이언트 ID 포인터 주소 정보를 요청된 헤더 정보에 첨부한다. 단계(385)에서, 클라이언트는 단계(382)의 명령어에서 요청된 정보에 따라 수정된 헤더 정보를 준비한다. 단계 (386)에서, 클라이언트는 추가의 요청 시에 ID와 함께 수정된 헤더 정보를 전송한다. 이 서브루틴은 단계(387)에서 종료한다. 수정된 정보는 이미 수신된 정보에 포함되어 있지 않거나 서버에 의해 요망된 것으로 클라이언트가 이해하고 있던 정보를 포함할 수 있다. 이것은 유리하게도 서버가 원하는 정보 전부를 얻을 수 있게 해준다. 수정된 정보는 또한 이전에 포함되었거나 클라이언트가 그렇지 않았으면 서버로 전송할 것인 정보를 배제하고 있을 수 있다. 이것은 유리하게도 전송되는 데이터의 양을 감소시킬 수 있으며, 데이터 중 어떤 것이 서버에서의 프로세싱에서 또는 그렇지 않고 트랜스코딩 및/또는 다른 방식으로 미디어 트랜스코딩 서비스를 제공하는 데 있어서 요망되지 않을 때 특히 그렇다.
클라이언트 하드웨어, 클라이언트 사용자 인터페이스 버전 또는 다른 클라이언트 구성 특징의 적응(adaptation)이 서버에 의해 요청된 및/또는 클라이언트로부터 전송된 구성 정보에 포함되어 있을 수 있다. 이 적응 정보에 따라 수정된 헤더 정보 명령어가 준비될 수 있다. 예를 들어, 이들 적응은 클라이언트에서의 특정의 브라우저 구성에 따를 수 있다.
구현 아키텍처의 설계 요건은 커스텀 클라이언트 소프트웨어의 작성에 더 많은 자유를 제공하도록 설계될 수 있다. 예를 들어, 자바스크립트의 프로그래밍 제약이 없는 경우, 커스텀 확장(아마도 C/C++로 작성됨)은 보다 진보되거나 보다 정확한 대역폭 측정 알고리즘을 구현할 수 있다.
검출된 정보가 한 세션으로부터 다른 세션으로 저장될 수 있도록 한 형태의 영구적 저장이 제공될 수 있다. 이것은 유리하게도 대역폭 측정에 소비되는 시간 을 감소시킨다. 다른 대안으로서, 대역폭 추정치는 항상, 주기적으로 또는 서버로부터 클라이언트로 전송되는 데이터의 타이밍/타임스탬프에 기초하여 요청될 때 측정 및/또는 업데이트될 수 있다. 예를 들어, 주어진 세션 내에서, 검출 정보는 클라이언트에 의해 요청과 함께 서버로 전송될 수 있도록 메모리에 유지될 수 있다.
구현예 상세
전술한 바와 같이, 클라이언트 기능의 직접적인 보고는 일반적으로 간접적인 질의보다 더 쉽고 더 효율적이다. 미디어 플레이어 검출의 경우, 클라이언트는 유리하게도 클라이언트 상에 어느 미디어 플레이어가 설치되어 있는지를 신속/용이하게 알아내는 방법을 가질 수 있다. 일 실시예에 따르면, 어느 미디어 플레이어 소프트웨어가 설치되어 있는지, 그것이 어느 버전인지, 어느 버저너의 코덱이 설치되어 있는지, 및/또는 다른 구성 정보를 얻기 위해 검출 소프트웨어가 직접적으로 질의할 수 있도록 운영 체제(또는 소프트웨어 설치 관리자) 내에 후크(hook)가 제공되어 있다. 하나의 미디어 플레이어만이 설치되고 및/또는 부가의 설치가 가능하지 않도록 또는 검출 관리 소프트웨어가 미디어 플레이어 내에 통합되어 있도록 구현되어 있는 경우, 그 대신에 미디어 플레이어 소프트웨어가 이 정보를 직접 보고하게 하는 것이 유리할 수 있다.
서버측 상에서, 보고된 버전 정보로부터 클라이언트의 실제 미디어 플레이어 기능에 관하여 직접적인 상관 관계가 맺어질 수 있다. 예를 들어, V XYZ 비디오 코덱의 버전 1.0.4이 XYZ 알고리즘으로 압축된 비디오를 디코딩할 수 있지만 이 디코더는 비디오 프레임/크기 치수가 8 픽셀의 배수로 되어 있을 것을 요구함을 알 수 있다. 다른 예는 클라이언트가 오디오 코덱 A ABC 버전 1.1 및 오디오 코덱 A DEF 버전 3.0을 가지고 있는 것으로 보고하는 경우, 서버는 임의의 다른 오디오 코덱으로 인코딩된 데이터를 보내어서는 안되고 또 사용되는 압축 알고리즘이 클라이언트의 오디오 코덱 중 하나에 의해 디코딩될 수 있어야만 하는 것일 수 있다.
모든 대역폭 측정 알고리즘은 기본적으로 기지의 크기의 데이터 청크를 수신하는 데 얼마나 오래 걸리는지 또는 미리 정해진 기간에 얼마 만큼의 데이터가 전달되는지를 측정하는 것으로 요약된다. 유리하게도, 청크-크기 또는 타이밍 블록 크기가 현재의 추정된 대역폭에 따라 변동 또는 선택될 수 있도록 다수의 데이터 청크 중 하나 이상을 전송하는 것을 포함하는 알고리즘에 대해 도 5b를 참조하여 이하에서 보다 상세히 기술한다.
검출 정보는 서버측 상에서 트랜스코딩된 비트레이트 및 미디어 플레이어 포맷/버전에 관해 결정하는 데 사용될 수 있다. 대역폭 및 코덱의 모든 가능한 조합으로 트랜스코드를 제공하는 것은 일반적으로 비효율적이고 자원 집중적이다. 사용되는 코덱은 예를 들어 가장 흔하게 설치된 것으로 제한될 수 있고, 인코딩된 비트레이트는 가장 흔한 대상 수용자를 지원한 것으로 제한될 수 있다. 예를 들어, 28.8 모뎀에 대해서는 20 kbps, 56k 모뎀에 대해서는 34 kbps, ISDN에 대해서는 90 kbps, DSL에 대해서는 300 kbps, 및 케이블 모뎀에 대해서는 500 kpbs로 제한될 수 있다.
다시 도 3a의 단계(325)를 참조하여, 플레이어 검출을 수행하는 단계는 도 4a에 보다 상세히 기술되어 있다. 이 프로세스는 단계(405)에서 시작한다. 단계 (410)에서, 사용자가 어느 브라우저를 가지고 있는지에 관해 결정이 행해진다. 일반적으로, 사용자의 브라우저는 어떤 버전의 넷스케이프 내비게이터(Netscape Navigator) 또는 어떤 버전의 인터넷 익스플로러(Internet Explorer, IE)일 것이다. 사용자가 넷스케이프 내비게이터를 가지고 있는 경우, 프로세스는 단계(411)에서 계속된다. 단계(411)에서, 존재하는 마임 타입 어레이(mimetype array) 및 플러그인 어레이(plugin array)를 통해 주어진 미디어 플레이어에 대한 문자열 검색이 수행된다. 마임 타입 어레이는 주어진 마임 타입을 갖는 응답을 수신할 시에 어느 애플리케이션을 로드할지의 매핑이다. 임의의 주어진 미디어 플레이어는 일반적으로 그 자신의 마임 타입을 갖는다. 플러그인 어레이는 설치되어 있는 모든 브라우저 플러그인의 리스트이다. 일반적으로, 각각은 대응하는 마임 타입을 등록하고 있다. 그 결과, 이들 어레이는 일반적으로 사용자의 컴퓨터 상에 존재하는 미디어 플레이어(들)를 가리키는 문자열을 포함한다. 퀵 타임은 예를 들어 문자열 "QuickTime"에 의해 표시되고, 윈도즈 미디어 플레이어는 문자열 "video/x-mxvideo"에 의해 표시된다.
단계(413)에서, 문자열 검색이 성공적인 경우, 단계(415)에서 그 플레이어는 존재하는 것으로 결정된다. 그렇지 않은 경우, 프로세싱은 단계(416)에서 계속된다. 단계(416)에서, 다른 미디어 플레이어가 검색되어야 하는지 여부에 관해 결정이 행해진다. '예'인 경우, 프로세싱은 단계(411)로 되돌아가고, 다른 미디어 플레이어가 있는지 문자열 검색이 수행된다. 예시된 실시예에서는, 따라서 일반적으로 여러번의 문자열 검색이 수행되지만, 본 발명은 한번의 검색을 수행하도록 구현 될 수 있다. 이 프로세스는 단계(417)에서 종료한다.
유의할 점은 주어진 플레이어의 서로 다른 버전이 약간 서로 다른 이름 또는 속성을 사용하여 브라우저에 등록되어 있을 수 있다는 것이다. 문자열 검색에 의한 이들 차이의 검출은 특정의 버전에 관한 정보를 제공할 수 있다. 본 발명의 일 실시예에서, 문자열 검색은 자바스크립트를 사용하여 구현된다.
단계(410)에서, 사용자의 브라우저가 인터넷 익스플로러인 것으로 결정되는 경우, 프로세스는 단계(420)에서 계속된다. 여기에서, 브라우저는 주어진 미디어 플레이어 및 버전에 대한 객체를 인스턴스화하도록 요구받는다. 본 발명의 일 실시예에서, 이 인스턴스화는 Vbscript를 사용하여 행해진다. 예를 들어, 리얼 플레이어 버전 5 객체의 생성은 이하의 명령문으로 시도되어진다.
CreateObject("RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)".
단계(425)에서, 이 인스턴스화가 허용되는 경우, 이것은 단계(430)에 나타낸 바와 같이 그 미디어 플레이어가 사용자의 컴퓨터 상에 실제로 존재함을 의미한다. 이 프로세스는 이어서 단계(440)에서 시작된다. 단계(425)에서, 주어진 미디어 플레이어 객체의 인스턴스화가 허용되지 않는 경우, 그 미디어 플레이어는 사용자의 컴퓨터에 존재하지 않는 것으로 가정될 수 있다. 단계(440)에서, 임의의 다른 미디어 플레이어의 존재가 확인되어야 하는지 여부에 관해 결정이 행해진다. 존재하는 경우, 프로세스는 단계(420)로 되돌아가서, 또다른 시도가 행해지고, 이 때는 다른 미디어 플레이어에 대한 객체를 인스턴스화는 것이다. 단계(440)에서, 다른 미디어 플레이어가 검색되지 않은 것으로 결정되는 경우, 이 프로세스는 단계(417) 에서 종료된다. 유의할 점은 플레이어들 간의 차이, 특히 플레이어의 버전들 간의 차이가 단계(420)에서 플레이어 객체들이 어떻게 인스턴스화되는지에 있어서의 대응하는 차이에 의해 검출될 수 있다는 것이다. 또한, 버전 질의를 지원하는 플레이어 객체(예를 들어, 퀵 타임 및 리얼 플레이어)의 경우, 그 플레이어는 그의 버전에 관하여 직접 질문을 받을 수 있다.
윈도즈 미디어 플레이어 검출
도 4b는 본 발명의 예시적인 실시예에 따른 클라이언트측 윈도즈 미디어 플레이어(windows media player, WMP) 검출을 나타낸 플로우차트이다. 단계(441)에서, 이 클라이언트의 OS/플랫폼 상에서 WMP가 이용가능한지 여부가 검사된다. '아니오'인 경우, 단계(451)에서 WMP 버전이 'no'로 설정되고, 이 예에 따르면 본 방법은 리얼 플레이어 검출로 진행된다. '예'인 경우, 단계(442)에서, 클라이언트 브라우저 상에서 ActiveX가 이용가능한지 여부가 검사된다. '예'인 경우, 단계(443)에서 WMP 7.1 또는 WMP 8에 대한 ClassID가 생성될 수 있는지 여부가 검사된다. '예'인 경우, 단계(444)에서 WMP 버전은 버전 7.1로 설정되고 이 예에서 프로세스는 도 4c에 따르는 리얼 플레이어 검출로 진행한다. 단계(443)에서 WMP 7.1 또는 WMP 8에 대한 ClassID가 생성될 수 없는 것으로 결정되는 경우, 단계(445)에서 WMP 7에 대한 ClassID가 생성될 수 있는지 여부가 검사된다. '예'인 경우, WMP 버전은 WMP 7로 설정되고, 프로세스는 리얼 플레이어 검출로 진행한다. 단계(445)에서 WMP 7에 대한 ClassID가 생성될 수 없는 것으로 결정되는 경우, 단계(447)에서 WMP 6.4에 대해 생성될 수 있는지 여부가 검사되고, '예'인 경우, WMP 버전은 6.4로 설정되며, '아니오'인 경우 프로세스는 단계(449)로 진행한다. 단계(449)에서, WMP 객체가 생성될 수 있는지 여부가 검사되고, '예'인 경우, WMP 버전은 yes로 설정되고, '아니오'인 경우 WMP 버전은 no로 설정되며, 어느 경우든지 프로세스는 도 4c에 도시되어 있는 바와 같은 리얼 플레이어 검출로 진행한다.
단계(442)에서 ActiveX가 클라이언트 브라우저 상에서 이용가능한지 여부에 대한 검사 결과가 '아니오'인 경우, 프로세스는 단계(452)로 진행한다. 단계(452)에서 마임 타입 애플리케이션/x-ms-wmd가 플러그인에 의해 등록되어 있는지 여부가 검사된다. '예'인 경우, WMP 버전이 버전 7로 설정되고 WMP 검출 절차가 종료된다. '아니오'인 경우, 단계(453)에서 마임 타입 애플리케이션/x-ms-wmv가 플러그인에 등록되어 있는지 여부가 검사된다. '예'인 경우, WMP 버전은 버전 6.4로 설정되고 이 서브루틴이 종료된다. '아니오'인 경우, 단계(454)에서, 마임 타입 애플리케이션/x-msplayer2가 플러그인에 등록되어 있는지 여부가 검사된다. '예'인 경우, WMP 버전은 yes로 설정되고, '아니오'인 경우 EMP 버전이 no로 설정되며, 어느 경우든지 프로세스는 리얼 플레이어 검출로 진행한다.
리얼 플레이어 검출
도 4c는 본 발명의 예시적인 실시예에 따른 클라이언트측 리얼 플레이어(Real) 검출을 나타낸 플로우차트이다. 단계(455)에서, Real이 이 클라이언트의 OS/플랫폼 상에서 이용가능한지 여부가 검사된다. '아니오'인 경우, Realversion이 no로 설정되고 이 서브루틴을 종료하며, 이 프로세스는 퀵 타임 검출로 진행한다. '예'인 경우, 단계(456)에서 이 브라우저 상에서 ActiveX가 이용가능한지 여 부가 검사된다. '예'인 경우, 단계(457)에서, RealPlayer G2 객체가 생성될 수 있는지 여부가 검사된다. '예'인 경우, Realversion이 RealPlayerG2Object.GetVersioninfo()로 설정되고, 이 프로세스는 도 4d에 도시되어 있는 바와 같은 퀵 타임 검출로 진행한다. '아니오'인 경우, 단계(459)에서 RealPlayer 객체가 생성될 수 있는지 여부가 검사된다. '예'인 경우, Realversion은 버전 5로 설정되고 이 서브루틴을 종료하며, '아니오'인 경우, 프로세스는 단계(461)로 진행하여 RealVideo 객체가 생성될 수 있는지 여부가 검사된다. '예'인 경우, Realversion은 버전 4로 설정되고, '아니오'인 경우, Realversion은 no로 설정되며, 어느 경우든지 이 서브루틴은 종료된다.
단계(456)에서 ActiveX가 이 브라우저 상에서 이용가능하지 않은 것으로 결정되는 경우, 도 4c에 나타낸 바와 같이, 이 서브루틴은 단계(464)로 진행하여 마임 타입 오디오/x-pn-realaudio-plugin이 플러그인에 의해 등록되어 있는지 여부가 검사된다. 단계(465)에서 Realversion이 yes로 설정된다. 이어서, 단계(466)에서, "RealOne"을 포함하는 플러그인 이름이 있는지 여부가 검사된다. '예'인 경우, 단계(467)에서 Realversion은 One으로 설정되고 이 서브루틴이 종료된다. '아니오'인 경우, 단계(468)에서, "RealPlayerG2"를 포함하는 플러그인 이름이 있는지 여부가 검사되고, '예'인 경우, Realversion이 G2로 설정되며 이 서브루틴이 종료된다. '아니오'인 경우, 단계(470)에서, "RealPlayer"를 포함하는 플러그인 이름이 있는지 여부가 검사된다. '예'인 경우, Realversion은 버전 5로 설정되고, '아니오'인 경우, 단계(471)에서 "Realvideo"를 포함하는 플러그인 이름이 있는지 여 부가 검사된다. '예'인 경우, Realversion은 버전 4로 설정되고, '아니오'인 경우 Realversion은 no로 설정되며, 어느 경우든지 프로세스는 도 4d의 퀵 타임 검출로 진행한다.
퀵 타임 플레이어 검출
도 4d는 본 발명의 예시적인 실시예에 따른 클라이언트측 퀵 타임(QT)를 나타낸 플로우차트이다. 단계(472)에서, QT가 이 OS/플랫폼 상에서 이용가능한지 여부가 검사된다. '아니오'인 경우, QTversion이 no로 설정되고 이 서브루틴이 종료된다. '예'인 경우, 단계(473)에서, ActiveX가 이 브라우저 상에서 이용가능한지 여부가 검사된다. '예'인 경우, 단계(474)에서, QuickTimeCheck 객체가 생성될 수 있는지 여부가 검사된다. '아니오'인 경우, QTversion이 no로 설정되고, '예'인 경우 이 서브루틴은 단계(475)로 진행한다. 단계(475)에서, Call QuickTimeCheckObjectVersion.IsQuickTimeAvailable()를 사용하여 퀵 타임이 이용가능한지 여부가 검사된다. 단계(475) 에서의 검사 결과가 '아니오'인 경우, QTversion이 no로 설정되고, 단계(475)의 결과가 '예'인 경우, QTversion이 QuickTimeCheckObject.QuickTimeVersion으로 설정되며, 어느 경우든지 단계(482)에서 검출 결과를 저장하고서 이 서브루틴은 종료된다.
단계(473)에서, ActiveX가 이 브라우저 상에서 이용가능하지 않은 것으로 결정되는 경우, 단계(478)에서 마임 타임 비디오/퀵 타임이 플러그인에 의해 등록되어 있는지 여부가 검사된다. '아니오'인 경우, QTversion이 no로 설정되고, '예'인 경우, 단계(479)에서 QTversion은 yes로 설정된다. 이어서, 단계(480)에서, "QuickTime Plug-in"을 포함하는 플러그인 이름이 있는지 여부가 검사된다. '아니오'인 경우, 이 서브루틴은 종료되고, 단계(482)에서 검출 결과가 저장된다. '예'인 경우, QTversion이 퀵 타임 플러그-인 버전으로 설정되고, 이어서 단계(482)에서 결과가 저장되고, 도 4b 내지 도 4d에 도시한 이 프로세스 그룹이 종료된다.
도 3a의 단계(355)를 참조하여, 본 발명의 일 실시예에 따른, 사용자에게 환경 설정 페이지를 제공하는 단계가 도 5a에 보다 상세히 나타내어져 있다. 이 프로세스는 단계(505)에서 시작한다. 단계(510)에서, 환경 설정 페이지는 전달 관리 서버로부터 로드된다. 단계(515)에서, 환경 설정 페이지 내에 저장되어 있는 기지의 크기의 데이터 블록의 전송이 시작한다. 사용자의 연결 속도를 결정하기 위해 이 블록의 전송의 시간이 측정된다. 이 블록은 이후부터 타이밍 블록이라고 한다. 본 발명의 일 실시예에서, 타이밍 블록은 HTML 코멘트로서 환경 설정 페이지에 포함되어 있다. 그 결과, 브라우저는 프로세싱 목적상 타이밍 블록을 무시한다.
타이밍 블록의 전송이 시작하는 것과 동시에, 브라우저는 타이밍 블록의 전송이 시작되는 시간을 기록한다. 단계(520)에서, 타이밍 블록의 전송이 종료되고, 그 전송이 종료되는 시간도 역시 브라우저에 의해 기록된다. 단계(530)에서, 타이밍 블록을 전송하는 데 걸리는 시간 및 그의 기지의 크기에 기초하여 연결 속도, 데이터 전송 레이트에 관하여 계산이 행해진다. 단계(535)에서, 환경 설정 페이지의 로드가 종료되고, 사용자가 가질 수 있는 가능한 구성이 사용자를 위해 디스플레이된다. 단계(540)에서, 구성에 관련한 사용자의 입력이 수신된다. 이 프로세스는 단계(545)에서 종료된다.
환경 설정 페이지는 또한 도 3a와 관련하여 상기한 것과 다른 때에 디스플레이될 수 있다. 본 발명의 일 실시예에서, 사용자는 콘텐츠 제공자의 웹 페이지에서 링크를 제공받으며, 이 링크를 통해 사용자는 원할 때마다 환경 설정 페이지에 액세스할 수 있다. 이렇게 함으로써 사용자는 지정된 환경 설정을 마음대로 변경할 수 있다. 본 발명의 다른 실시예에서, 이 환경 설정 페이지는 규칙적인 간격으로, 예를 들어 6개월마다 사용자에게 디스플레이된다. 이렇게 함으로써 사용자는 구성 정보의 주기적인 업데이트를 할 수 있다.
쿠키의 설정과 관련하여, 브라우저가 서버에 요청을 할 때, 브라우저는 서버의 도메인과 연관되어 있는 쿠키를 전송할 뿐이다. 쿠키는 이하의 2가지 방식 중 하나로 새로운 도메인과 연관될 수 있다.
1) Set-Cookie: 헤더가 새로운 도메인 내의 서버로부터 수신되거나, 또는
2) 이 쿠키는 새로운 도메인 내의 서버로부터 로드된 페이지에 의해 자바스크립트를 통해 설정된다.
플레이어 검출 코드가 전달 관리 서버 페이지로부터 항상 실행되고는 있지 않기 때문에(예를 들어, 플레이어 검출이 콘텐츠 제공자의 웹 페이지의 헤더의 일부로서 로드되어 있는 경우), 쿠키를 설정하는 방법이 필요하다. 목표는 써드 파티 쿠키이고, 그에 따라 그렇지 않았으면 원래의 도메인(original domain)으로 설정될 것인 쿠키가 그 대신에 전달 관리 서버의 도메인으로 설정된다. 본 발명의 실시예에서, 이것은 자바스크립트 내로부터의 dummy image() 요청을 함으로써 행해질 수 있다. 전달 관리 서버의 도메인으로부터 이미지가 로드되어야 한다는 요청 이 있는 경우, 전달 관리 서버는 Set-Cookie: 헤더를 반송하는 것으로 응답할 수 있다.
이것은 상기 단계(330, 334)에서 적용될 수 있다. 예를 들어, URL은 전달 관리 서버에서의 쿠키 세트 스크립트(cookie set script)에 관한 사용자의 컴퓨터에서 작성될 수 있다. 그 다음에, 사용자의 컴퓨터에서 더미 이미지(dummy image) 객체가 생성될 수 있다. 이 객체는 자바스크립트 내로부터 전달 관리 서버의 도메인으로의 더미 이미지 요청이 행해질 수 있게 해주는 것을 제외하고는 아무런 일도 하지 않는다. 이어서, 브라우저는 더미 이미지가 전달 관리 서버의 도메인으로부터 로드되도록 요구하는 HTTP 요청을 하며, 이 요청은 쿠키 세트 스크립트에 대한 요청을 포함한다. 전달 관리 서버는 이 쿠키들을 서버와 연관시키는 것으로(즉, Set-Cookie: 헤더를 반송하는 것으로) 응답한다. 이렇게 하면 쿠키가 전달 관리 서버로 전송될 수 있게 되지만, 사용자의 컴퓨터에 이들 존재하는지는 최초로 콘텐츠 제공자 또는 어떤 다른 도메인에 의해 결정될 수도 있다. 이 구성 정보는 쿠키에 저장되어 있다.
사용자와 전달 관리 서버 간의 이러한 교환의 예가 이하에 예시되어 있다.
GET/ssp/cookieset?gmPlayerPref=real HTTP/l.l
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, applicatior/vnd.ms-excel, application/msword, */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Host: js.genericmedia.net
Connection: Keep-Alive
Cookie:gmPlayers=vl% 2F % 2FQuickTime-4:12% 2F % 2FReal-6.0.7.788% 2F % 2FWM P-6.4% 2E % 2F;gmPlayerPref=wmf; gmBitratePref=300000
이어서 서버가 응답한다.
HTTP/1.1 200 OK
Date: Tue, Jun. 12, 2001 20:08:29 GMT
Server: Apache/1.3.14 (Unix) mod_perl/1.24
Set-Cookie: gmPlayers=vl% 2F % 2FQuickTime-4.12% 2F % 2FReal-6.0.7.788% 2F % 2 FWMP-6.4% 2F % 2F; domain=.genericmedia.net; path=/; expires=Mon, Sep. 10, 2001 20:08:29 GMT
P3P: CP="IND OUR PRE UNI ONL COM"
Set-Cookie: gmPlayerPref=real; domain=.genericmedianet; path=/; expires=Mon, Sep. 10, 2001 20:08:29 GMT
Connection: close
Cache-Control: no-cache, max-age=l
Transfer-Encoding: chunked
Content-Type: text/html
도 5b는 본 발명의 일 실시예에 따른 대역폭 검출 방법을 전체적으로 나타낸 플로우차트이다. 이 실시예에서, 서브루틴은 단계(550)에서 시작하고 단계(552)로 진행하여, 예를 들어 이전의 대역폭 검출로부터 또는 다른 방식으로 결정된, 추정된 대역폭 정보를 가져온다. 단계(554)에서, 적절한 해상도로, 즉 추정된 대역폭 정보를 사용하여 연결 속도를 결정하기 위해 데이터를 검색하기 위한 추정 시간이 결정된다. 여기서, 이렇게 하는 이유는 이 단계의 결과에 기초하여 타이밍 블록 또는 청크-크기가 선택되기를 원하고 이 추정 시간이 대역폭 정보가 허용가능한 해상도 내에서 결정될 수 있는 최소 시간보다 짧지도 않고 또 그다지 더 길지도 않기를 원하기 때문이다. 예를 들어, 추정 시간이 느린 연결 속도를 갖는 클라이언트에 대해 너무 긴 경우, 대역폭 측정은 사용자에 대해 성가시고 불필요한 지연을 수반할 가능성이 있다. 그렇지만, 예를 들어 아주 빠른 연결 속도를 갖는 사용자에 대해 추정 시간이 너무 짧은 경우, 이 결정에서의 에러가 너무 크게 되거나 허용가능한 에러 한계(margin of error)를 벗어나게 된다.
추정 시간이 결정되면, 단계(556)에서, 전달하는 데 이 추정 시간이 걸리게 되는 청크-크기 또는 타이밍 블록 크기가 결정된다. 양호한 실시예에 따르면, 랜덤 ASCII 데이터 등의 랜덤 데이터가 타이밍 블록 또는 청크에서 사용되며, 따라서 모뎀은 데이터를 압축하지도 않고 통신 시간을 추정 시간보다 급격히 더 짧게 만들지도 않으며 또 그 결과가 해상도 허용 오차(resolution tolerance)를 벗어나게 하지도 않는다.
대략적으로 이 추정 시간이 걸리는 타이밍 블록 크기 또는 청크-크기가 결정 되면, 단계(558)에서 그 결정된 크기의 타이밍 블록 또는 데이터 청크가 클라이언트로 전달된다. 타이밍 블록을 전달하는 데 걸리는 실제 시간이 측정된다. 이어서, 단계(558)에서 전송된 데이터 청크 또는 타이밍 블록의 크기 및 클라이언트에 의한 측정된 검색 시간에 기초하여 단계(560)에서 대역폭이 결정된다. 도 5b에 예시된 서브루틴은 단계(562)에서 종료된다.
실시예들에 따른 미디어 콘텐츠의 액세스
본 명세서에 기술한 바와 같이, 양호한 실시예들에 따른 시스템 및 방법은 미디어 콘텐츠에 액세스하기 위한 시청자의 요청에 응답하여, 주문 시에 미디어 콘텐츠의 트랜스코딩을 수행한다. 게다가, 양호한 실시예는 기본적으로 미디어 콘텐츠의 게시 이후에 미디어 콘텐츠 전달 프로세스의 일부로서 미디어 콘텐츠의 트랜스코딩을 "실시간으로" 수행한다. 특정의 실시예에서, 미디어 콘텐츠를 보여달라는 요청의 미디어 트랜스코딩 엔진(미국 특허 제6,407,680호 및 미국 특허 출원 제10/644,602호를 참조할 것, 이는 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함됨)으로의 전송과 미디어 콘텐츠의 시청자 클라이언트로의 전달 간의 지연은 대략 30초 이하가 된다. 그렇지만, 본 발명은 특정의 전달 시간에 한정되지 않으며, 30초 이상 또는 그 이하의 다양한 전달 시간을 포괄할 수 있다.
도 6a 내지 도 6c는 본 발명의 실시예들에 따른, 미디어 콘텐츠가 시청자에 의해 액세스되는 방법의 플로우차트(1500)를 나타낸 것이다. 그렇지만, 본 발명은 플로우차트(1500)에 의해 제공되는 설명으로 한정되지 않는다. 오히려, 당업자에게는 본 명세서의 개시 내용으로부터 다른 기능적 흐름들이 본 발명의 범위 및 정 신 내에 속함은 명백할 것이다.
도 6a의 단계(1502)에서, 시청자는 미디어 콘텐츠에 액세스하기 위한 요청을 시청자 클라이언트를 통해 미디어 트랜스코딩 엔진 내의 시청자 웹 서버 인터페이스로 전송한다. 실시예들에서, 이 요청은 시청자가 콘텐츠 제공자의 웹 사이트 상의 URL을 클릭할 때 시청자 클라이언트에 의해 생성되는 HTTP 요청이다. 상기한 바와 같이, 미디어 콘텐츠 게시 프로세스 동안에 미디어 트랜스코딩 엔진에 의해 콘텐츠 제공자에게 제공될 수 있는 URL 링크는 미디어 트랜스코딩 엔진에게 시청자 클라이언트를 알려주는 주소 정보 및 소스 정보를 포함하고 또 미디어 트랜스코딩 엔진에게 요청된 미디어 콘텐츠의 소스에 관한 정보를 제공한다. 시청자 웹 서버 인터페이스가 이 요청을 수신할 때, 이 인터페이스는 그 요청을 작업 관리자에게 전달한다(또다시 미국 특허 제6,407,680호 및 미국 특허 출원 제10/644,602호를 참조할 것, 이는 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함됨).
단계(1504)에서, 작업 관리자는 그 요청에 서비스하기 위해 필요한 요청 정보가 포함되어 있는지를 결정하기 위해 그 요청을 파싱한다. 이 요청이 HTTP 요청을 포함하는 본 발명의 실시예들에서, 작업 관리자는 그 요청에 서비스하기 위해 필요한 정보가 포함되어 있는지를 결정하기 위해 HTTP 요청의 헤더를 파싱한다. 실시예들에서, 이 필요한 정보는 적어도 소스 위치, 소스 유형, 목적지 위치 및 목적지 유형을 포함한다. 소스 유형 및 목적지 유형 각각은 적어도 하나의 게시 변수에 의해 정의된다. 실시예들에서, 미디어 콘텐츠에 대한 게시 변수는 파일 포맷, 비트 레이트, 통신 프로토콜(들), 물리 매체, 압축 알고리즘, 디지털 저작권 관리 정보, 또는 이들의 임의의 조합을 포함할 수 있지만, 이에 한정되는 것은 아니다. 일 실시예에서, 이 요청에 서비스하는 데 요구되는 정보는 적어도 소스 위치, 소스 포맷, 소스 비트레이트, 목적지 위치, 목적지 포맷, 및 목적지 비트레이트를 포함한다.
단계(1506, 1508)에 나타낸 바와 같이, 작업 관리자가 요청 정보가 완전하지 않은 것으로 결정하는 경우, 작업 관리자는 필요한 정보를 가져오게 된다. 예를 들어, 소스 유형 또는 소스 위치가 그 요청에 포함되어 있지 않고 또 요청된 미디어 콘텐츠가 미디어 트랜스코딩 엔진 내에 저장되어 있는 경우, 작업 관리자는 필요한 소스 정보를 찾기 위해 데이터베이스에 조회할 수 있다. 다른 대안으로서, 미디어 콘텐츠가 미디어 트랜스코딩 엔진에 대해 외부에 저장되어 있는 경우, 작업 관리자는 콘텐츠 제공자의 웹 사이트로부터 필요한 정보를 가져오기 위해 네트워크 요청을 수행할 수 있다. 예를 들어, 작업 관리자는 HTTP 요청, RTSP 요청 또는 임의의 다른 표준 네트워크 애플리케이션 프로토콜을 사용하는 요청을 수행할 수 있다. 게다가, 목적지 유형이 이용가능하지 않은 경우, 작업 관리자는 시청자 클라이언트에 질의함으로써 필요한 정보를 가져올 수 있다. 전술한 바와 같이, 실시예들에서, 목적지 위치에 대한 최적의 목적지 유형이 시청자 클라이언트 상에 "쿠키"로서 저장될 수 있으며, 이 쿠키는 작업 관리자에 의해 액세스될 수 있다.
단계(1510)에서, 작업 관리자가 요청에 서비스하기 위해 필요한 정보를 가지고 있는 경우, 작업 관리자는 요청된 미디어 콘텐츠를 전달하기 위해 어느 작업을 실행할 필요가 있는지를 결정한다. 이 작업은 요청된 미디어 콘텐츠를 전달하는 데 필요한 모든 단계를 포함하며 또 요청된 미디어 콘텐츠를 가져오는 단계, 요청된 미디어 콘텐츠를 소스 유형으로부터 목적지 유형으로 트랜스코딩하는 단계, 및 트랜스코딩된 미디어 콘텐츠를 시청자 클라이언트로 스트리밍하는 단계를 포함할 수 있다. 작업 관리자가 어느 작업이 실행될 필요가 있는지를 결정한 경우, 작업 관리자는 자원 관리자(다시 미국 특허 제6,407,680호 및 미국 특허 출원 제10/644,602호를 참조할 것, 이는 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함됨)와 인터페이스하여 이 자원 관리자에게 요구된 작업을 실행하도록 지시한다.
자원 관리자는 작업 관리자로부터 요구된 작업을 실행하라는 지시를 수신하고, 단계(1512)에서 각각의 작업을 기계 팜(machine farm) 내의 하나 이상의 기계에 할당한다. 자원 관리자는 이용가능한 자원에 의한 작업의 효율적인 실행을 달성하도록 프로그램되어 있다. 실시예들에서, 자원 관리자에 의한 주어진 작업에의 자원의 할당은 어느 기계가 요구된 작업을 수행하는 데 필요한 유틸리티를 지원하는지, 어느 기계가 이용가능한 자원(예를 들어, 이용가능한 CPU)을 가지고 있는지, 및 실행을 위해 협조가 필요할 때 어느 기계가 작업을 수행하기 위해 서로 협조할 수 있는지(이에 한정되는 것은 아님)를 비롯한 다양한 요인에 기초하여 결정된다. 자원 관리자는 또한 네트워크 혼잡의 회피를 비롯한 다양한 다른 기준에 기초하여 작업을 분배하도록 프로그램될 수 있다. 예를 들어, 자원 관리자는 압축 해제된 데이터를 미디어 트랜스코딩 엔진의 내부 네트워크 내에서 한 기계로부터 다른 기계로 전송하는 것으로부터 일어날 수 있는 네트워크 혼잡을 피하기 위해 압축 해제 및 압축 작업을 동일한 기계에 할당하도록 프로그램될 수 있다.
양호한 실시예에 따르면, 자원 관리자는 작업이 적절히 실행되도록 보장하기 위해 작업이 할당된 후에 작업을 감독한다. 자원 관리자는 모든 할당된 작업의 리스트를 데이터베이스에 유지하고 또 그 작업의 상태를 결정하기 위해 주어진 작업을 실행하는 각각의 기계의 슬레이브 모니터와 주기적으로 통신함으로써 할당된 작업의 실행을 감독한다.
실시예들에서, 자원 관리자는 작업의 상태를 결정하기 위해 작업이 할당된 기계의 슬레이브 모니터에 주기적으로 폴링한다. 대체 실시예에서, 슬레이브 모니터 자체는 주기적인 상태 메시지를 자원 관리자에 전송하여, 자원 관리자에 할당된 작업의 상태를 알려준다. 자원 관리자는 필요한 작업을 할당하고 모니터링하는 그의 기능을 지원하기 위해 데이터베이스 내의 각각의 작업 및 각각의 기계의 상태에 관해 슬레이브 모니터로부터 수신하는 정보를 저장한다.
대체 실시예에서, 슬레이브 모니터는 자원 관리자로부터 수신된 작업을 개시하기만 하며, 작업들 자체가 슬레이브 모니터가 아니라 자원 관리자에게 직접 보고한다.
자원 관리자가 문제점을 정정하고 요청된 미디어 콘텐츠의 전달을 보장하기 위해 작업이 언제 실패하였는지를 결정하고 또 필요한 단계를 실행할 수 있게 해주는 장애 허용 루틴(fault tolerant routine)에 따라, 자원 관리자는 각각의 할당된 작업을 모니터링한다. 예를 들어, 작업이 할당된 기계가 미리 정해진 기간 동안 상태 질의에 응답하지 않는 경우, 자원 관리자는 그 작업을 다른 기계에 재할당하 고 응답하지 않는 그 기계를 재부팅하도록 프로그램될 수 있다. 게다가, 작업의 실패의 결과 일련의 분배된 종속적인 작업의 실패가 일어나는 경우, 자원 관리자는 요청된 미디어 콘텐츠의 전달을 보장하기 위해 모든 종속적인 작업을 중단하고 일련의 전체 작업을 재할당하도록 프로그램될 수 있다. 이들 예는 제한적인 것이 아니며, 다른 장애 허용 방식이 본 명세서에 포함된 개시 내용에 기초하면 당업자에게는 자명할 것이며, 본 발명은 이러한 다른 장애 허용 방식에 관한 것이다.
다른 실시예에서, 개별적인 작업 각각은 우선순위를 할당받는다. 자원 관리자는 새로운 작업을 모니터링하고, 기존의 작업의 우선순위가 할당될 필요가 있는 새로운 작업의 우선순위보다 낮을 때, 자원 관리자는 기존의 작업에 새로운 더 높은 우선순위의 작업을 수용하기 위해 그 자신을 중단(kill)시키도록 지시를 하게 된다. 다른 대안으로서, 슬레이브 모니터는 기존의 작업을 중단시킬 수 있다. 낮은 우선순위 작업의 예는 시청자가 요청된 콘텐츠를 보는 것을 중지한 후에 시청자를 위해 미디어 콘텐츠를 트랜스코딩하는 것을 포함한다.
단계(1514)에서, 모든 작업이 할당된 후에, 작업 관리자는 시청자 클라이언트로부터 수신된 미디어 콘텐츠에 액세스하라는 최초의 요청에 대한 응답을 작성한다. 이 응답은 시청자 클라이언트를 스트리밍 서버 또는 프록시 서버(이로부터 요청된 미디어 콘텐츠가 궁극적으로 시청자 클라이언트에 의해 수신됨)로 리디렉션하는 기능을 한다. 실시예들에서, 이 응답은 HTTP 응답을 포함한다.
단계(1532)에서, 양호한 실시예에 따른 자동 소스 유형 검출이 온(on)으로 되어 있는지 여부에 대한 결정이 행해진다. 본 시스템은 영구적으로 자동 소스 유 형 검출 온 또는 자동 소스 유형 검출 오프로 설정될 수 있거나 또는 선택적으로 토글될 수 있다. 자동 소스 유형 검출이 영국적으로 온 또는 오프되어 있는 경우, 이 결정은 필요하지 않으며 본 방법은 대응하는 단계(1534 또는 1536)로 진행할 수 있다. 도 6b에 도시된 방법에서, 이 결정이 행해진 후에, 본 방법은 그 다음 대응하는 단계로 진행한다. 즉, 자동 소스 유형 검출이 온으로 되어 있는 경우, 단계(1534)에서, 소스 유형 정보가 소스 서버 또는 클라이언트로부터 자동적으로 가져와진다. 이점은 이것이 사용자에게는 보다 빠르고 간단하다는 것이다. 다른 대안으로서, 자동 소스 유형 검출이 오프되어 있는 경우, 단계(1536)에서, 콘텐츠를 요구하고 있는 사용자로부터 소스 사용자 인터페이스를 통해 입력이 요청된다. 이점은 소스 유형이 사용자 입력으로 용이하게 검출될 수 없도록 소스가 방화벽을 갖는 경우 콘텐츠에 대해 다수의 소스 유형을 갖는 사용자가 이들 중에 선택할 수 있다는 것이다.
단계(1538)에서, 양호한 실시예에 따른 자동 목적지 유형 검출이 온으로 되어 있는지 여부가 결정된다. 본 시스템은 영구적으로 자동 목적지 유형 검출 온 또는 자동 목적지 유형 검출 오프로 설정될 수 있거나 또는 선택적으로 토글될 수 있다. 자동 목적지 유형 검출이 영국적으로 온 또는 오프되어 있는 경우, 이 결정은 필요하지 않으며 본 방법은 대응하는 단계(1540 또는 1542)로 진행할 수 있다. 도 6b에 도시된 방법에서, 이 결정이 행해진 후에, 본 방법은 그 다음 대응하는 단계로 진행한다. 즉, 자동 목적지 유형 검출이 온으로 되어 있는 경우, 단계(1540)에서, 목적지 유형 정보가 목적지 서버 또는 클라이언트로부터 자동적으로 가져와 진다. 이점은 이것이 사용자에게는 보다 빠르고 간단하다는 것이다. 다른 대안으로서, 자동 목적지 유형 검출이 오프되어 있는 경우, 단계(1542)에서, 콘텐츠를 요구하고 있는 사용자로부터 목적지 사용자 인터페이스를 통해 입력이 요청된다. 이점은 목적지 유형이 사용자 입력으로 용이하게 검출될 수 없도록 목적지가 방화벽을 갖는 경우 콘텐츠에 대해 다수의 목적지 유형을 갖는 사용자가 이들 중에 선택할 수 있다는 것이다.
예를 들어 미디어 콘텐츠의 게시자(publisher)에 의해 상설된 바와 같은 지정된 규칙에 기초하여 또는 다른 방식으로 비지니스 규칙에 기초하여 목적지 유형과 무관한 추가의 기준이 검출되어 적용될 수 있다. 예를 들어, 대역폭 기준은 고객의 계약에 기초할 수 있거나 또는 예고편 또는 클립 또는 둘다는 게시자에 의해 요청이 있을 시에 트랜스코딩된 미디어 콘텐츠와 함께 삽입될 수 있다.
도 6c의 단계(1516-1526)에서, 기계 팜 내의 기계들은 자원 관리자로부터 수신된 할당된 작업에 따라 요청된 미디어 콘텐츠를 전달하는 데 필요한 단계들을 수행한다. 본 발명의 실시예들에서, 미디어 콘텐츠의 전달은 동일한 미디어 콘텐츠 스트림의 서로 다른 부분의 가져오기(fetch), 트랜스코딩 및 스트리밍이 동시에 일어날 수 있는 파이프라인 방식의 프로세스이다. 자원 관리자는 미디어 트랜스코딩 엔진 내에서의 자원 할당을 통해 이들 단계의 파이프라이닝을 조정한다. 이들 단계의 파이프라이닝의 결과 미디어 트랜스코딩 엔진에 의한 요청된 미디어의 전달 시간이 더 빨라지게 된다.
단계(1516)에 나타낸 바와 같이, 요청된 미디어 콘텐츠가 적절한 목적지 유 형(예를 들어, 적절한 목적지 포맷 및 비트 레이트 또는 다른 적절한 게시 변수)으로 트랜스코딩되어 있는 트랜스코딩된 캐쉬에 이미 존재하는 경우, 콘텐츠의 전달은 단계(1524)에서 스트리밍 서버에 의해 달성되며, 이 스트리밍 서버는 트랜스코딩된 미디어 콘텐츠를 시청자 클라이언트로 스트리밍한다.
그렇지만, 요청된 미디어 콘텐츠가 적절한 목적지 유형으로 트랜스코딩되어 있는 트랜스코딩된 캐쉬에 존재하지 않는 경우, 기계 팜 내의 하나 이상의 송신기 서버는 단계(1518)에 나타낸 바와 같이 소스 위치로부터 데이터 스트림으로서 요청된 미디어 콘텐츠를 가져오기 시작한다. 도 3a, 도 3b 및 도 4a 내지 도 4d와 관련하여 전술한 바와 같이, 본 발명의 실시예들에서, 요청된 미디어 콘텐츠는 처음에 미디어 트랜스코딩 엔진 내의 마스터 아카이브(master archive) 내에, 미디어 트랜스코딩 엔진 외부의 아카이브에 존재하거나 또는 콘텐츠 제공자 클라이언트로부터 직접 스트리밍 피드로서 수신될 수 있다. 요청된 미디어 콘텐츠가 마스터 아카이브 내에 존재하는 경우, 송신기 서버 중 하나가 미디어 트랜스코딩 엔진의 내부 네트워크를 거쳐 요청된 미디어 콘텐츠를 가져온다.
요청된 미디어 콘텐츠가 미디어 트랜스코딩 엔진 외부의 아카이브에 존재하는 경우, 송신기 서버 중 하나는 게시 프로세스 동안에 제공된 액세스 정보를 사용하여 요청된 미디어 콘텐츠를 가져온다. 실시예들에서, 송신기 서버가 액세스 정보를 사용하여 요청된 미디어 콘텐츠를 가져온 후에, 요청된 미디어 콘텐츠는 일시적으로 마스터 아카이브에 캐싱될 수 있으며, 그에 따라 동일한 미디어 콘텐츠에 대한 차후의 요청이 미디어 트랜스코딩 엔진에 의해 수신될 때 미디어 콘텐츠로의 신속한 액세스가 가능하게 된다.
요청된 미디어 콘텐츠가 콘텐츠 제공자 클라이언트로부터 직접오는 스트리밍 피드인 경우, 송신기 서버 중 하나는 콘텐츠 제공자 웹 서버 인터페이스로부터 스트리밍 데이터를 가져온다. 본 발명의 실시예들이 스트리밍 데이터가 시청자에 의해 실제로 요청될 때가지 이를 가져와 트랜스코딩하지 않기 때문에, 그에 따라 미디어 콘텐츠의 불필요한 트랜스코딩이 회피된다.
단계(1520)에 나타낸 바와 같이, 송신기 서버가 요청된 미디어 콘텐츠를 가져오기 시작한 후에, 소스 유형이 목적지 유형과 동일한 경우(예를 들어, 소스 포맷 및 비트레이트가 목적지 포맷 및 비트레이트와 동일한 경우), 트랜스코딩이 필요하지 않으며 미디어 콘텐츠는 가져오자마자 스트리밍 서버로 전송된다. 이어서, 단계(1524)에서 스트리밍 서버는 그 콘텐츠를 시청자 클라이언트로 스트리밍하며, 이에 대해서는 이하에서 기술한다. 그렇지만, 소스 유형이 목적지 유형과 동일하지 않은 경우, 단계(1522)에 나타낸 바와 같이, 기계 팜 내의 트랜스코딩 서버 중 하나는 그 미디어 콘텐츠를 소스 유형으로부터 목적지 유형으로 트랜스코딩한다. 단계(1512)와 관련하여 설명한 바에 따라, 자원 관리자는 게시 변수의 적절한 변환을 수행하는 데 필요한 트랜스코더 소프트웨어를 실행하는 트랜스코더 서버에 트랜스코딩 작업을 할당한다. 실시예들에서, 트랜스코딩은 미디어 콘텐츠를 트랜스코딩하는 종래의 코덱 루틴을 비롯한, 한 유형의 미디어 콘텐츠를 다른 유형으로 변환하는 다양한 공지의 방법 중 하나를 사용하여 수행된다. 트랜스코딩 및 예들에 대한 추가의 설명은 이하에서 제공된다. 실시예들에서, 트랜스코딩이 완료된 후 에, 트랜스코딩된 미디어 콘텐츠의 복사본이 일시적으로 트랜스코딩된 캐쉬에 저장되며, 그에 따라 동일한 목적지 유형으로 트랜스코딩된 동일한 미디어 콘텐츠에 대한 차후의 요청이 미디어 트랜스코딩 엔진에 의해 수신될 때 미디어 콘텐츠의 신속한 전달이 가능하게 된다.
단계(1524)에서, 스트리밍 서버 중 하나는 미디어 콘텐츠가 트랜스코더, 송신기 또는 트랜스코딩된 캐쉬로부터 수신되자마자 그 미디어 콘텐츠를 적절한 목적지 유형으로 시청자 클라이언트로 스트리밍한다. 실시예들에서, 트랜스코딩된 미디어 콘텐츠는 선택적인 프록시 서버를 통해 시청자 클라이언트로 스트리밍된다. 또다른 실시예들에서, 스트리밍 서버 또는 선택적인 프록시 서버는 전달되고 있는 미디어 콘텐츠는 물론 이 미디어 콘텐츠가 전달되고 있는 목적지 유형에 관한 사용 통계를 유지하며, 이는 캐쉬 관리를 위해 자원 관리자에 의해 사용된다.
실시예들에서, 미디어를 시청자 클라이언트로 스트리밍하고 또 송신기 서버, 트랜스코더 서버 및 스트리밍 서버 간에 데이터를 스트리밍하는 데 사용되는 프로토콜은 RTSP 등의 미디어를 스트리밍하기 위한 표준 프로토콜이다. 다른 대안으로서, TCP/UDP와 같은 표준 네트워크 프로토콜 상부에 정의된 독점적 프로토콜이 사용될 수 있다. 다른 실시예들에서, 다른 네트워크 기반구조 필요성을 수용하기 위해 다른 프로토콜이 사용될 수 있다. 예를 들어, 네트워크 트래픽 상황에 따라 동적으로 변하는 프로토콜이 구현될 수 있다. 그렇지만, 이들 예는 예시적인 것이다. 본 발명은 특정의 통신 프로토콜 또는 애플리케이션에 한정되는 것으로 보아서는 안되며, 다른 독점적 또는 비독점적 네트워크 통신 프로토콜이 사용될 수 있 다.
단계(1526)에서, 시청자 클라이언트는 스트리밍 서버 또는 프록시 서버로부터 스트리밍 미디어 콘텐츠를 수신한다. 이 때, 시청자 클라이언트는 시청자 클라이언트 상에 존재하는 미디어 플레이어와 연관된 목적지 유형에 따라 미디어 콘텐츠를 재생한다. 본 발명의 대체 실시예에서, 미디어 콘텐츠는 수신되고 나중에 재생하기 위해 또는 대안의 미디어 플레이 장치로 전송하기 위해 시청자 클라이언트 상에 저장될 수 있다. 단계(1526) 후에, 플로우차트(1500)는 종료된다.
미디어 콘텐츠 예
미국 특허 제6,407,680호에 기술되어 있는 바와 같이, 예를 들어 미디어 트랜스코딩 엔진은 하나 이상의 트랜스코더를 포함할 수 있다. 트랜스코더는 어떤 유형의 미디어 콘텐츠(본 명세서에서 소스 유형이라고 함)를 다른 유형의 미디어 콘텐츠(본 명세서에서 목적지 유형이라고 함)로 변환한다. 트랜스코딩은 다수의 서로 다른 변환 동작을 포함할 수 있다. 사용된 특정의 변환 동작은 변환되고 있는 미디어 콘텐츠 및 관련 게시 변수에 의존한다. 이러한 이유는 목적지가 될 수 있는 클라이언트의 구성 정보의 효율적인 검출이 유리하기 때문이다. 본 명세서에서 사용되는 바와 같이 게시 변수란 미디어 콘텐츠의 여러가지 특성을 말한다.
양호한 실시예에 따르면, 미디어 콘텐츠는 네트워크를 통해 게시되는 디지털 데이터이다. 이 경우, 공개물은 네트워크를 통해 전달하기 위해 또 목적지 미디어 플레이어로 시청하기 위해 포맷되어 있는 디지털 데이터를 말한다. 미디어 콘텐츠의 게시 변수는 파일 포맷, 비트 레이트, 통신 프로토콜(들), 물리 매체, 압축 알 고리즘, 및/또는 디지털 저작권 관리 정보를 포함할 수 있지만, 이에 한정되는 것은 아니다.
이 디지털 데이터는 컨테이너 포맷, 비트맵 포맷, 비디오 포맷, 오디오 포맷, 벡터 포맷, 메타파일 포맷, 장면 포맷, 애니메이션 포맷, 멀티미디어 포맷, 하이브리드 포맷, 하이퍼텍스트 및 하이퍼미디어 포맷, 3차원 데이터(3D) 포맷, 가상 현실 모델링 언어(VRML) 포맷, 폰트 포맷(비트맵 폰트, 스트로크 폰트(stroke font), 스플라인-기반 윤곽 폰트(spline-based outline font)), 페이지 기술 언어(page description language, PDL) 포맷, 및 임의의 다른 유형의 그래픽 파일 포맷 또는 다른 파일 포맷(이에 한정되는 것은 아님)을 비롯한 임의의 유형의 파일 포맷일 수 있다. 표 1은 본 발명의 실시예들에서 사용될 수 있는 이러한 파일 포맷의 예들을 열거한 것이다.
<표 1> 예시적인 파일 포맷들
포맷 유형
ADOBE ILLUSTRATOR 메타파일
ADOBE PHOTOSHOP 비트맵
ATARI ST GRAPHICS FORMATS 비트맵 및 애니메이션
AUTOCAD DXF 벡터
AUTODESK 3D STUDIO 장면 설명
BDF 비트맵
BRL-CAD 기타
BUFR 기타
CALS RASTER 비트맵
CGM 메타파일
CMU FORMATS 멀티미디어
DKB 장면 설명
DORE RASTER FILE FORMAT 비트맵
DPX 비트맵
DR. HALO 비트맵
DVM MOVIE 애니메이션
ENCAPSULATED POSTSCRIPT 메타파일 (페이지 기술 언어)
FACESAVER 비트맵
FAX FORMATS 비트맵
FITS 기타
FLI 애니메이션
GEM RASTER 비트맵
GEM VDI 메타파일
GIF 비트맵
GRASP 애니메이션
GRIB 기타
HARVARD GRAPHICS 메타파일
HIERARCHICAL DATA FORMAT 메타파일
IFF 비트맵
IGES 기타
INSET PIX 비트맵
INTEL DVI 멀티미디어
JPEG FILE INTERCHANGE 비트맵
FORMAT
KODAK PHOTO CD 비트맵
KODAK YCC 비트맵
LOTUS DIF 벡터
LOTUS PIC 벡터
LUMENA PAINT 비트맵
MACINTOSH PAINT 비트맵
MACINTOSH PICT 메타파일
MICROSOFT PAINT 비트맵
MICROSOFT RIFF 멀티미디어
MICROSOFT RTF 메타파일
MICROSOFT SYLK 벡터
MICROSOFT WINDOWS 비트맵
BITMAP
MICROSOFT WINDOWS 메타파일
METAFILE MIFF 비트맵
MPEG 기타
MTV 장면 설명
NAPLPS 메타파일
NFF 장면 설명
OFF 장면 설명
OS/2 BITMAP 비트맵
P3D 장면 설명
PBM., PGM. , PNM. , 및 PPM. 비트맵
PCX Bitmap PDS 기타
PICTOR PC PAINT 비트맵
PIXAR RIB 장면 설명
PLOT-10 벡터
PNG 비트맵
POV 벡터
PRESENTATION MANAGER 메타파일
METAFILE PRT 장면 설명
QRT 장면 설명
QUICK TIME 기타
RADIANCE 장면 설명
RAYSHADE 장면 설명
RIX Bitmap RTRACE 장면 설명
SAF 비트맵 및 기타
SENSE8 NFF 장면 설명
SGI IMAGE FILE FORMAT 비트맵
SGI INVENTOR 장면 설명
SGI YAODL 장면 설명
SGO 벡터
SPIFF 비트맵
SUN ICON 비트맵
SUN RASTER 비트맵
TDDD 벡터 및 애니메이션
TGA 비트맵
TIFF 비트맵
TTDDD 벡터 및 애니메이션
URAY 장면 설명
UTAH RLE 비트맵
VICAR2 비트맵
VIFF 비트맵
VIS-5D 벡터
VIVID AND BOB 장면 설명
WAVEFRONT OBJ 벡터
WAVEFRONT RLA 비트맵
WORDPERFECT GRAPHICS 메타파일
METAFILE
XBM 비트맵
XPM 비트맵
XWD 비트맵
ZBR 메타파일
Murray 및 vanRyper, 페이지 12-26을 참조하기 바란다. 이들 예는 예시적인 것으로서 본 발명을 제한하려는 것이 아니다. 본 설명을 살펴보면 당업자에게는 자명한 바와 같이, 다른 파일 포맷(현재 알려져 있거나 장래에 개발될 것들)이 사용될 수 있다.
동일한 파일 포맷 내에서도, 디지털 데이터는 서로 다른 압축 알고리즘에 따라 압축될 수 있다. 예를 들어, 퀵 타임 포맷된 파일에서, 비디오는 H.263, CINEPAK, JPEG, QT ANIMATION, 또는 QT VIDEO 표준에 따라 압축될 수 있다. 다른 예로서, WINDOWS MEDIA ASF 포맷된 파일에서, 오디오는 MICROSOFT AUDIO FORMAT, ACELP, VOXWARE, 또는 MP3 표준에 따라 압축될 수 있다. 압축 알고리즘 선택은 지트 레이트 선택에 따른 또는 콘텐츠의 특성에 따른 최적화에 기초하여 행해질 수 있다. 예를 들어, 움직임이 거의 없는 비디오 파일("인터뷰 장면(talking head)") 및 움직임이 상당한 비디오 파일("움직임이 많은(high-motion)" 비디오) 각각은 서로 다른 압축 알고리즘을 사용하여 보다 효율적으로 압축될 수 있다.
임의의 한 압축 알고리즘 내에서, 다른 변형예가 있을 수 있다. 예를 들어, JPEPG 표준에 따라 압축된 파일은 YUV-기반이거나 RGB-기반일 수 있다.
양호한 실시예의 디지털 저작권 관리 시스템과 관련하여, 본 발명의 한 측면에 따라 검출된 클라이언트 컴퓨터 상의 미디어 플레이어는 이 플레이어가 처리할 수 있는 DRM 정보 유형 또는 사용 규칙 유형을 결정한다. 예를 들어, 윈도즈 미디어 플레이어가 마이크로소프트 윈도즈 미디어 DRM 시스템에 의해 제공되는 사용 규칙을 해석 및/또는 처리할 수 있지만, 일반적으로 Real의 Helix DRM 시스템에 의해 제공되는 것을 해석 및/또는 처리할 수 없다. 게다가, RealOne 플레이어는 Real의 Helix DRM 시스템에 의해 제공되는 것을 해석 및/또는 처리할 수 있지만, 마이크로소프트 윈도즈 미디어 DRM 시스템에 의해 제공되는 것을 해석 및/또는 처리할 수 없다. 즉, 미디어 플레이어 유형은 일반적으로 그것이 해석할 수 있는 DRM 유형에 일대일 대응관계를 갖는다.
게다가, DRM 정보 또는 사용 규칙 정보는 태그 및 그의 값을 포함하는 XrML, XML, 기타 등등으로 기술될 수 있다. DRM 정보 또는 사용 규칙 정보는 또한 콘텐츠에 첨부될 수 있다. 그렇지 않고, 이 정보는 물리적으로 콘텐츠와 분리될 수 있고 또 콘텐츠 ID, 기타 등등을 통해 콘텐츠에 논리적으로 연관되어 있다. DRM 정보 또는 사용 규칙 정보는 또한 사용자가 관련 콘텐츠를 어떻게 및/또는 언제 사용 할 수 있는지를 정의할 수 있다.
본 발명의 한 측면에 따르면, 서버 시스템은 클라이언트 컴퓨터 상의 미디어 플레이어 유형을 자동적으로 검출하고 또 미디어 플레이어 유형에 기초하여 클라이언트 컴퓨터 상의 DRM 유형을 결정할 수 있으며 또 클라이언트 컴퓨터 상에서 DRM 정보 또는 사용 규칙 정보를 해석 및/또는 처리할 수 있도록 하기 위해 이를 자동적으로 트랜스코딩할 수 있다. 미국 특허 제6,407,680호에 기술되어 있는 바와 같이, DRM 정보는 소스 유형(예를 들어, MSFT 윈도즈 미디어 DRM)으로부터 목적지 유형(예를 들어, Real Helix)으로 트랜스코딩될 수 있다.
본 발명의 이 측면에 따르면, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법이 제공된다. 이 유익한 방법은 사용자의 컴퓨터로 플레이어 검출 코드를 전송하는 단계, 사용자의 컴퓨터에 관한 구성 정보를 수신하는 단계, 및 수신된 구성 정보에 기초하여 사용자의 컴퓨터의 디지털 저작권 관리 정보의 유형을 결정하는 단계를 포함한다.
전술한 게시 변수 이외에, 비디오 데이터 및 오디오 데이터에 고유한 게시 변수도 있다. 비디오 데이터에 대한 게시 변수는 비디오 이미지의 폭 및 높이(픽셀 단위)는 물론 비디오의 프레임 레이트를 포함한다. 비트레이트 요건 및 데이터의 속성에 따라, 최상의 화상 품질을 보장하기 위해 서로 다른 설정이 필요할 수 있다. 예를 들어, 어떤 비디오는 160x120 픽셀로 초당 15 프레임으로 보는 것이 보다 양호할 수 있지만, 어떤 다른 것들은 동일한 비트 레이트에서도 320x240 픽셀로 초당 5 프레임으로 보는 것이 보다 양호할 수 있다. 비트 레이트가 56K bps인 경우, 화질은 아주 제한되게 되고, 이는 640x480 픽셀 해상도로 비디오를 전달하기에 대체로 최적이지 않다. 비디오 데이터에 대한 또다른 게시 변수는 성분별 비트 수이다.
오디오 데이터에 대한 게시 변수는 초당 샘플의 수, 채널의 수(예를 들어, 모노, 스테레오, 5-채널) 및 샘플 크기(8-비트, 16-비트, 기타)를 포함한다. 특정의 콘텐츠 유형 및 비트 레이트를 고려하여 오디오 품질을 보장하기 위해 서로 다른 설정이 필요할 수 있다. 게시 변수는 또한 전송되는 데이터 패킷의 크기 및 선택된 전송 프로토콜(예를 들어, TCP 대 UDP)을 포함할 수 있다.
도 7은 주문 시에 소스 유형 미디어 콘텐츠(610)를 목적지 유형 미디어 콘텐츠(650)로 트랜스코딩하는 예시적인 트랜스코더를 나타낸 것이다. 소스 유형 미디어 콘텐츠(610)는 네트워크를 통해 하나 이상의 패킷으로 전달되는 디지털 데이터이다. 소스 유형 미디어 콘텐츠(610)를 형성하는 디지털 데이터는 하나 이상의 게시 변수에 의해 정의된다. 도 7에 도시된 바와 같은 게시 변수는 이하의 변수, 즉 소스 파일 포맷, 소스 비트 레이트, 소스 물리 매체, 소스 통신 프로토콜, 소스 인코딩, 또는 이들의 임의의 조합 중 하나 이상을 포함한다. 목적지 유형 미디어 콘텐츠(650)는 미디어 콘텐츠를 요구하는 최종 사용자로 네트워크를 통해 하나 이상의 패킷으로 전달되는 디지털 데이터이다. 목적지 유형 미디어 콘텐츠(650)를 형성하는 디지털 데이터도 역시 하나 이상의 게시 변수에 의해 정의된다. 도 7에 도시된 바와 같은 게시 변수는 이하의 변수, 즉 목적지 파일 포맷, 목적지 비트 레이트, 목적지 물리 매체, 목적지 통신 프로토콜, 목적지 인코딩, 또는 이들의 임의의 조합 중 하나 이상을 포함한다.
도 8은 하나 이상의 트랜스코더가 주문 시에 소스 유형 미디어 콘텐츠(710)에서 제1 목적지 유형(750)으로 트랜스코딩하는 예시적인 구현의 테이블을 나타낸 것이다. 도 8은 또한 하나 이상의 트랜스코더가 주문 시에 소스 유형 미디어 콘텐츠(710)에서 제2 목적지 유형(760)으로 트랜스코딩하는 예시적인 구현의 테이블을 나타낸 것이다. 소스 유형 미디어 콘텐츠(710)는 이하의 소스 게시 변수에 따라 게시된 디지털 데이터를 포함한다. 즉, 물리 매체는 로컬 디스크이고, 통신 프로토콜은 파일 I/O를 포함하며, 파일 포맷은 초당 128 킬로비트(kbps)의 비트 레이트의 MP3 인코딩을 사용하는 MP3이다. 제1 목적지 유형 미디어 콘텐츠(750)는 이하의 목적지 게시 변수에 따라 게시를 위해 트랜스코딩된 디지털 데이터를 포함한다. 즉, 물리 매체는 패킷-교환 네트워크(인터넷)이고, 통신 프로토콜은 WINDOWS MEDIA STREAMING MMS 프로토콜을 포함하며, 파일 포맷은 56kbps의 비트 레이트의 MP3 인코딩을 사용하는 WINDOWS MEDIA FILE이다. 제2 목적지 유형 미디어 콘텐츠(760)는 이하의 목적지 게시 변수에 따라 게시를 위해 트랜스코딩된 디지털 데이터를 포함한다. 즉, 물리 매체는 무선 네트워크이고, 통신 프로토콜은 HTTP를 포함하며, 파일 포맷은 12kbps의 비트 레이트의 MP3 인코딩을 사용하는 MP3이다.
다른 예들은 이하의 표에 나타내어져 있다.
<표 2-5> 예시적인 트랜스코더 동작
<표 2>
게시 변수 소스 유형 목적지 유형
물리 매체 디스크 네트워크
통신 프로토콜 파일 I/O RTSP
컨테이너 포맷 MPEG1 QUICK TIME
인코딩 MPEG1 SORENSON (비디오)
QDESIGN (오디오)
비트 레이트 1.5 Mbps 300 kbps
<표 3>
게시 변수 소스 유형 목적지 유형
물리 매체 유선 네트워크 무선 네트워크
통신 프로토콜 HTTP MMS
컨테이너 포맷 MPEG1 WINDOWS MEDIA
인코딩 MPEG1 MPEG4 (비디오)
MSAUDIO (오디오)
비트 레이트 1.5 Mbps 100 kbps
<표 4>
게시 변수 소스 유형 목적지 유형
물리 매체 유선 네트워크 유선 네트워크
통신 프로토콜 HTTP RTSP
컨테이너 포맷 QUICK TIME REAL
인코딩 H.263 REAL
PROPRIETARY G2
비디오/오디오
비트 레이트 56 kbps 56 kbps
<표 5>
게시 변수 소스 유형 목적지 유형
물리 매체 디스크 무선 네트워크
통신 프로토콜 파일 I/O HTTP
컨테이너 포맷 MPEG1 MP3
인코딩 MPEG1 오디오 전용-MP3
비트 레이트 1.5 Mbps 16 kbps
도 9는 본 발명의 일 실시예에 따른 예시적인 클라이언트 환경 변수 유형을 나타낸 테이블이다. 양호한 실시예의 시스템은 운영 체제(OS) 버전, 웹 브라우저 버전, 하드웨어 플랫폼 및 사용자 인터페이스 언어를 비롯한 클라이언트 시스템의 추가의 특성들을 결정할 수 있다. 이 기능은 클라이언트 기계 상에서 사용되고 있는 OS의 유형이 어느 것인지, 예를 들어 윈도즈, 맥 또는 리눅스인지를 구별할 수 있는 유익한 기능을 포함하는 시스템보다도 유익한 개선이다. 예를 들어, 시스템이 윈도즈를 사용함을 알고 있더라도, 클라이언트가 실제로 가지고 있는 것보다 최 신의 버전이라고 가정하면 미디어 스트림이 완전히 실패할 수 있고, 훨씬 이전의 버전이라고 보수적으로 가정하면 비효율성이 야기될 수 있다.
예를 들어 미디어 콘텐츠가 처음에 윈도즈 XP를 그의 OS 버전으로 가지고, 네비게이터 3.0을 그의 브라우저 버전으로 가지며, 펜티엄 4 프로세싱 칩이 설치되어 있고 또 네비게이터 3.0의 자바스크립트를 그의 사용자 인터페이스 언어로서 사용하는 것으로부터 수신되고 그에 대해 구성되어 있는 소스 유형(810)의 예가 제공되어 있다. 이들 소스 유형은 본 명세서의 실시예에 따라 기술된 클라이언트 구성의 결정과 유사하게 제공되거나 결정될 수 있다. 이어서, 목적지 유형(850)은 맥 OS X 운영 체제, Omniweb 4.1 웹 브라우저 버전, G3 프로세서 칩, 및 Omniweb 4.1의 사용자 인터페이스 언어 XSLT인 것으로 나타내어져 있다. 목적지 유형(850)이 본 명세서에서의 실시예에 따라 원격적으로 결정되고 소스 유형(850)도 역시 결정되면, 양호하게는 미국 특허 출원 제10/644,602호(여기에 인용함으로써 그 전체 내용이 본 명세서에 포함됨)에 기술된 것 등의 유익한 트랜스코딩 프로세스가 서로 다른 유형의 하드웨어 및 소프트웨어가 사용됨에도 불구하고 소스로부터 목적지로 제공된 미디어 콘텐츠를 스트리밍하는 데 사용될 수 있다.
이들 예는 예시적인 것이며 본 발명을 한정하기 위한 것이 아니다. 본 설명을 살펴보면 당업자에게는 명백하게 되는 바와 같이, 현재 알려져 있거나 장래에 개발될 것인 다른 유형의 주문형 트랜스코딩 동작이 사용될 수 있다.
이들 예는 예시적인 것이며 본 발명을 한정하기 위한 것이 아니다. 본 설명을 살펴보면 당업자에게는 명백하게 되는 바와 같이, 현재 알려져 있거나 장래에 개발될 것인 다른 유형의 주문형 트랜스코딩 동작이 사용될 수 있다.
대체 실시예
본 발명의 방법 및 시스템의 예시적인 실시예에 대해 본 명세서에 기술되어 있다. 다른 곳에서 기술되어 있는 바와 같이, 이들 예시적인 실시예는 단지 예시적인 목적으로만 기술되어 있으며 제한적인 것이 아니다. 본 명세서에 기술된 것들과 약간 또는 실질적으로 서로 다른 대체 실시예들은 본 명세서에 포함된 개시 내용에 기초하면 당업자에게는 자명하게 될 것이다. 예를 들어, 당업자라면 본 발명의 트랜스코딩 시스템 및 방법이 멀티미디어 콘텐츠의 트랜스코딩 및 전달에만 한정되지 않고 압축된 파일, 전자 문서, HTML 페이지, XML 문서, 및 복수의 포맷으로 저장될 수 있고 전자적으로 전달될 수 있는 임의의 다른 정보(이에 한정되는 것은 아님)를 비롯한 모든 유형의 정보의 트랜스코딩 및 전달을 포괄한다는 것을 잘 알 것이다. 다른 대체 실시예는 본 발명의 방법, 시스템 및 컴포넌트의 하드웨어, 소프트웨어 및 하드웨어/소프트웨어 구현을 포함하지만, 이에 한정되는 것은 아니다. 이러한 대체 실시예는 본 발명의 범위 및 정신 내에 속한다.
또한, 소스 유형에서 목적지 유형으로의 미디어 콘텐츠의 주문형 트랜스코딩 시스템 및 방법이 제공될 수 있으며, 이 시스템은 복수의 소스 유형에서 복수의 목적지 유형으로 트랜스코딩하는 복수의 트랜스코더를 포함하고, 이 시스템은 미디어 콘텐츠에 대한 트랜스코딩 요청을 수신하고, 트랜스코딩 요청에 응답하여 미디어 콘텐츠를 가져오며, 소스 유형 및 목적지 유형에 기초하여 이 미디어 콘텐츠를 복수의 트랜스코더 중 하나로 전송하고, 이 미디어 콘텐츠를 소스 유형에서 목적지 유형으로 트랜스코딩하며, 그에 따라 트랜스코딩된 미디어 콘텐츠를 생성하고, 트랜스코딩된 미디어 콘텐츠를 전송한다. 이 시스템은 파이프라인 방식으로 미디어 콘텐츠를 가져오고, 전송하며, 트랜스코딩할 수 있으며, 또 트랜스코딩된 미디어 콘텐츠를 전송할 수 있다. 이 시스템은 또한 시스템 효율을 향상시키기 위해 미디어 콘텐츠의 디지털 데이터의 파일 또는 스트림으로서의 게시, 미디어 콘텐츠의 아카이브(archive), 및 트랜스코딩된 미디어 콘텐츠의 캐싱을 제공한다.
게다가, 본 명세서 내의 양호한 실시예에 따라 수행될 수 있고 또 전술한 바와 같은 방법에서, 동작들은 선택된 인쇄 순서로 기술되어 있다. 그렇지만, 이 순서는 인쇄 편의상 선택되고 그와 같이 정렬되어 있으며 동작들을 수행하는 임의의 특정 순서를 암시하기 위한 것이 아니다.

Claims (74)

  1. 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법으로서,
    (a) 상기 사용자의 컴퓨터로 플레이어 검출 코드를 전송하는 단계, 및
    (b) 상기 사용자의 컴퓨터에 관한 구성 정보를 수신하는 단계를 포함하며,
    상기 구성 정보는,
    (1) OS 버전,
    (2) 웹 브라우저 버전,
    (3) 하드웨어 플랫폼,
    (4) 사용자 인터페이스 언어 유형,
    (5) 인코딩 포맷,
    (6) 압축 알고리즘, 또는
    (7) 이들의 조합
    을 포함하는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  2. 제1항에 있어서, 상기 수신하는 단계 이전에 수행되는, 상기 사용자의 컴퓨터에서의 쿠키를 전달 관리 서버의 도메인으로 설정하는 단계를 더 포함하며,
    상기 구성 정보는 상기 쿠키로 수신되는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  3. 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법을 수행하도록 하나 이상의 프로세서를 프로그램하는 프로세서 판독가능 코드를 그 위에 구현하고 있는 하나 이상의 프로세서 판독가능 저장 장치로서,
    상기 방법은,
    (a) 상기 사용자의 컴퓨터로 플레이어 검출 코드를 전송하는 단계, 및
    (b) 상기 사용자의 컴퓨터에 관한 구성 정보를 수신하는 단계를 포함하며,
    상기 구성 정보는,
    (1) OS 버전,
    (2) 웹 브라우저 버전,
    (3) 하드웨어 플랫폼,
    (4) 사용자 인터페이스 언어 유형,
    (5) 인코딩 포맷,
    (6) 압축 알고리즘, 또는
    (7) 이들의 조합
    을 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  4. 제3항에 있어서, 상기 방법은, 상기 수신하는 단계 이전에 수행되는, 상기 사용자의 컴퓨터에서의 쿠키를 전달 관리 서버의 도메인으로 설정하는 단계를 더 포함하며,
    상기 구성 정보는 상기 쿠키로 수신되는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  5. 컴퓨터의 연결 속도를 결정하는 방법으로서,
    (a) 추정된 대역폭에 기초하여 타이밍 블록의 크기를 결정하는 단계,
    (b) 상기 타이밍 블록의 전송이 시작되는 시간에 표시를 하는 단계,
    (c) 상기 타이밍 블록의 전송이 종료되는 시간에 표시를 하는 단계, 및
    (d) 상기 결정된 타이밍 블록 크기 및 전송이 시작되고 종료되는 상기 시간에 기초하여 상기 연결 속도를 결정하는 단계를 포함하는, 컴퓨터의 연결 속도를 결정하는 방법.
  6. 제5항에 있어서, 상기 타이밍 블록 크기 결정 단계는,
    (1) 추정된 대역폭 정보를 가져오는 단계,
    (2) 적합한 해상도로 연결 속도를 결정하기 위해 데이터를 검색하기 위한 추정 시간을 결정하는 단계, 및
    (3) 검색하는 데 상기 결정된 추정 시간이 걸리게 될 상기 타이밍 블록 크기를 결정하는 단계를 포함하는 것인, 컴퓨터의 연결 속도를 결정하는 방법.
  7. 제5항에 있어서, 상기 타이밍 블록은 환경 설정 페이지(preferences page)의 일부로서의 마크업 언어 코멘트(markup language comment)로 수신되는 것인, 컴퓨터의 연결 속도를 결정하는 방법.
  8. 제5항에 있어서, 상기 연결 속도를 쿠키에 저장하는 단계를 더 포함하는, 컴퓨터의 연결 속도를 결정하는 방법.
  9. 제8항에 있어서, 상기 쿠키를 전달 관리 서버로 전송하는 단계를 더 포함하는, 컴퓨터의 연결 속도를 결정하는 방법.
  10. 제5항에 있어서, 상기 타이밍 블록은 랜덤 데이터를 포함하는 것인, 컴퓨터의 연결 속도를 결정하는 방법.
  11. 컴퓨터의 연결 속도를 결정하는 방법을 수행하도록 하나 이상의 프로세서를 프로그램하는 프로세서 판독가능 코드를 그 위에 구현하고 있는 하나 이상의 프로세서 판독가능 저장 장치로서,
    상기 방법은,
    (a) 추정된 대역폭에 기초하여 타이밍 블록의 크기를 결정하는 단계,
    (b) 상기 타이밍 블록의 전송이 시작되는 시간에 표시를 하는 단계,
    (c) 상기 타이밍 블록의 전송이 종료되는 시간에 표시를 하는 단계, 및
    (d) 상기 결정된 타이밍 블록 크기 및 전송이 시작되고 종료되는 상기 시간 에 기초하여 상기 연결 속도를 결정하는 단계를 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  12. 제11항에 있어서, 상기 타이밍 블록 크기 결정 단계는,
    (1) 추정된 대역폭 정보를 가져오는 단계,
    (2) 적합한 해상도로 연결 속도를 결정하기 위해 데이터를 검색하기 위한 추정 시간을 결정하는 단계, 및
    (3) 검색하는 데 상기 결정된 추정 시간이 걸리게 될 상기 타이밍 블록 크기를 결정하는 단계를 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  13. 제11항에 있어서, 상기 타이밍 블록은 환경 설정 페이지(preferences page)의 일부로서의 마크업 언어 코멘트(markup language comment)로 수신되는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  14. 제11항에 있어서, 상기 방법은 상기 연결 속도를 쿠키에 저장하는 단계를 더 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  15. 제14항에 있어서, 상기 방법은 상기 쿠키를 전달 관리 서버로 전송하는 단계를 더 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  16. 제11에 있어서, 상기 타이밍 블록은 랜덤 데이터를 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  17. 컴퓨터의 연결 속도를 결정하는 방법으로서,
    (a) 기지의 크기를 갖는 데이터의 타이밍 블록을 수신하는 단계,
    (b) 상기 타이밍 블록의 전송이 시작되어야 하는 시작 시간을 수신하는 단계,
    (c) 상기 시작 시간에서 상기 타이밍 블록 전송을 시작하는 단계,
    (d) 상기 타이밍 블록의 전송이 종료되는 시간에 표시를 하는 단계, 및
    (e) 상기 타이밍 블록 크기 및 전송이 시작되고 종료되는 상기 시간에 기초하여 상기 연결 속도를 결정하는 단계를 포함하는, 컴퓨터의 연결 속도를 결정하는 방법.
  18. 제17항에 있어서, 상기 타이밍 블록의 상기 기지의 크기는,
    (1) 추정된 대역폭 정보를 가져오는 단계,
    (2) 적합한 해상도로 연결 속도를 결정하기 위해 데이터를 검색하기 위한 추정 시간을 결정하는 단계, 및
    (3) 검색하는 데 상기 결정된 추정 시간이 걸리게 될 상기 타이밍 블록 크기를 결정하는 단계에 의해 결정되는 것인, 컴퓨터의 연결 속도를 결정하는 방법.
  19. 제17항에 있어서, 상기 타이밍 블록은 환경 설정 페이지(preferences page)의 일부로서의 마크업 언어 코멘트(markup language comment)로 수신되는 것인, 컴퓨터의 연결 속도를 결정하는 방법.
  20. 제17항에 있어서, 상기 연결 속도를 쿠키에 저장하는 단계를 더 포함하는, 컴퓨터의 연결 속도를 결정하는 방법.
  21. 제20항에 있어서, 상기 쿠키를 전달 관리 서버로 전송하는 단계를 더 포함하는, 컴퓨터의 연결 속도를 결정하는 방법.
  22. 제17항에 있어서, 상기 타이밍 블록은 랜덤 데이터를 포함하는 것인, 컴퓨터의 연결 속도를 결정하는 방법.
  23. 컴퓨터의 연결 속도를 결정하는 방법을 수행하도록 하나 이상의 프로세서를 프로그램하는 프로세서 판독가능 코드를 그 위에 구현하고 있는 하나 이상의 프로세서 판독가능 저장 장치로서,
    상기 방법은,
    (a) 기지의 크기를 갖는 데이터의 타이밍 블록을 수신하는 단계,
    (b) 상기 타이밍 블록의 전송이 시작되어야 하는 시작 시간을 수신하는 단계,
    (c) 상기 시작 시간에서 상기 타이밍 블록 전송을 시작하는 단계,
    (d) 상기 타이밍 블록의 전송이 종료되는 시간에 표시를 하는 단계, 및
    (e) 상기 타이밍 블록 크기 및 전송이 시작되고 종료되는 상기 시간에 기초하여 상기 연결 속도를 결정하는 단계를 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  24. 제23항에 있어서, 상기 타이밍 블록의 상기 기지의 크기는,
    (1) 추정된 대역폭 정보를 가져오는 단계,
    (2) 적합한 해상도로 연결 속도를 결정하기 위해 데이터를 검색하기 위한 추정 시간을 결정하는 단계, 및
    (3) 검색하는 데 상기 결정된 추정 시간이 걸리게 될 상기 타이밍 블록 크기를 결정하는 단계에 의해 결정되는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  25. 제23항에 있어서, 상기 타이밍 블록은 환경 설정 페이지(preferences page)의 일부로서의 마크업 언어 코멘트(markup language comment)로 수신되는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  26. 제23항에 있어서, 상기 방법은 상기 연결 속도를 쿠키에 저장하는 단계를 더 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  27. 제26항에 있어서, 상기 방법은 상기 쿠키를 전달 관리 서버로 전송하는 단계를 더 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  28. 제23에 있어서, 상기 타이밍 블록은 랜덤 데이터를 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  29. 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법으로서,
    (a) 상기 사용자의 컴퓨터로 플레이어 검출 코드를 전송하는 단계,
    (b) 상기 사용자의 컴퓨터에 관한 구성 정보를 수신하는 단계, 및
    (c) 수정된 정보 헤더 명령어를 전송하는 단계를 포함하는, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  30. 제29항에 있어서, 고유의 클라이언트 ID를 전송하는 단계를 더 포함하는, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  31. 제29항에 있어서, 상기 명령어 수신 단계는 상기 전송하는 단계 이후에 일어 나며,
    상기 수정된 정보는 상기 전송된 정보에 포함되어 있지 않은 어떤 정보를 포함하고 있는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  32. 제29항에 있어서, 상기 명령어 수신 단계는 상기 전송하는 단계 이후에 일어나며,
    상기 수정된 정보는 상기 전송된 정보에 포함되어 있는 어떤 정보를 배제하고 있는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  33. 제29항에 있어서, 상기 수정된 정보 헤더 명령어는 상기 수신하는 단계 이전에 전송되고,
    상기 수신된 구성 정보는 상기 수정된 정보 헤더 명령어에 따라 준비되는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  34. 제29항에 있어서, 상기 수신된 구성 정보는 하나 이상의 적응(adaptation)을 포함하는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  35. 제34항에 있어서, 상기 하나 이상의 적응은 하드웨어 적응을 포함하는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  36. 제34항에 있어서, 상기 하나 이상의 적응은 사용자 인터페이스 버전 적응을 포함하는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  37. 제34항에 있어서, 상기 수정된 헤더 정보 명령어는 상기 적응 정보에 따라 준비되는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  38. 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법으로서,
    (a) 사용자의 컴퓨터에서 제2 컴퓨터로부터 플레이어 검출 코드를 수신하는 단계,
    (b) 상기 사용자의 컴퓨터에 관한 구성 정보를 상기 제2 컴퓨터로 전송하는 단계, 및
    (c) 수정된 정보 헤더 명령어를 수신하는 단계를 포함하는, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  39. 제38항에 있어서, 고유의 클라이언트 ID를 수신하는 단계를 더 포함하는, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  40. 제39항에 있어서, 상기 제2 컴퓨터로 전송하기 위한 구성 정보에 클라이언트 ID 포인터 주소를 첨부하는 단계를 더 포함하는, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  41. 제38항에 있어서, 상기 수신된 헤더 명령어에 기초하여 수정된 헤더 정보를 준비하는 단계를 더 포함하는, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  42. 제41항에 있어서, 첨부된 클라이언트 ID를 갖는 상기 수정된 헤더 정보를 상기 제2 컴퓨터로 전송하는 단계를 더 포함하는, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  43. 제42항에 있어서, 상기 수정된 헤더 정보를 전송하는 단계 이전에, 추가의 구성 정보 요청을 수신하는 단계를 더 포함하는, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  44. 제38항에 있어서, 상기 명령어 수신 단계는 상기 전송하는 단계 이후에 일어 나고,
    상기 수정된 정보는 상기 전송된 정보에 포함되어 있지 않은 어떤 정보를 포함하고 있는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  45. 제38항에 있어서, 상기 명령어 수신 단계는 상기 전송하는 단계 이후에 일어나고,
    상기 수정된 정보는 상기 전송된 정보에 포함되어 있는 어떤 정보를 배제하고 있는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  46. 제38항에 있어서, 상기 수정된 정보 헤더 명령어는 상기 전송하는 단계 이전에 수신되고,
    상기 전송된 구성 정보는 상기 수정된 정보 헤더 명령어에 따라 준비되는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  47. 제38항에 있어서, 상기 전송된 구성 정보는 하나 이상의 적응(adaptation)을 포함하는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  48. 제47항에 있어서, 상기 하나 이상의 적응은 하드웨어 적응을 포함하는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  49. 제47항에 있어서, 상기 하나 이상의 적응은 사용자 인터페이스 버전 적응을 포함하는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  50. 제47항에 있어서, 상기 수정된 헤더 정보 명령어는 상기 적응 정보에 따라 준비되는 것인, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  51. 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법으로서,
    (a) 상기 사용자의 컴퓨터로 플레이어 검출 코드를 전송하는 단계,
    (b) 상기 사용자의 컴퓨터에 관한 구성 정보를 수신하는 단계, 및
    (c) 상기 수신된 구성 정보에 기초하여 상기 사용자의 컴퓨터 상의 디지털 저작권 관리 정보의 유형을 결정하는 단계를 포함하는, 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법.
  52. 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법을 수행하도록 하나 이상의 프로세서를 프로그램하는 프로세서 판독가능 코드를 그 위에 구현하고 있는 하나 이상의 프로세서 판독가능 저장 장치로서,
    상기 방법은,
    (a) 상기 사용자의 컴퓨터로 플레이어 검출 코드를 전송하는 단계,
    (b) 상기 사용자의 컴퓨터에 관한 구성 정보를 수신하는 단계, 및
    (c) 수정된 정보 헤더 명령어를 전송하는 단계를 포함하는, 하나 이상의 프로세서 판독가능 저장 장치.
  53. 제52항에 있어서, 상기 방법은 고유의 클라이언트 ID를 전송하는 단계를 더 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  54. 제52항에 있어서, 상기 명령어 수신 단계는 상기 전송하는 단계 이후에 일어나며,
    상기 수정된 정보는 상기 전송된 정보에 포함되어 있지 않은 어떤 정보를 포함하고 있는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  55. 제52항에 있어서, 상기 명령어 수신 단계는 상기 전송하는 단계 이후에 일어나며,
    상기 수정된 정보는 상기 전송된 정보에 포함되어 있는 어떤 정보를 배제하고 있는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  56. 제52항에 있어서, 상기 수정된 정보 헤더 명령어는 상기 수신하는 단계 이전에 전송되고,
    상기 수신된 구성 정보는 상기 수정된 정보 헤더 명령어에 따라 준비되는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  57. 제52항에 있어서, 상기 수신된 구성 정보는 하나 이상의 적응(adaptation)을 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  58. 제57항에 있어서, 상기 하나 이상의 적응은 하드웨어 적응을 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  59. 제57항에 있어서, 상기 하나 이상의 적응은 사용자 인터페이스 버전 적응을 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  60. 제57항에 있어서, 상기 수정된 헤더 정보 명령어는 상기 적응 정보에 따라 준비되는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  61. 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법을 수행하도록 하나 이상의 프로세서를 프로그램하는 프로세서 판독가능 코드를 그 위 에 구현하고 있는 하나 이상의 프로세서 판독가능 저장 장치로서,
    상기 방법은,
    (a) 사용자의 컴퓨터에서 제2 컴퓨터로부터 플레이어 검출 코드를 수신하는 단계,
    (b) 상기 사용자의 컴퓨터에 관한 구성 정보를 상기 제2 컴퓨터로 전송하는 단계, 및
    (c) 수정된 정보 헤더 명령어를 수신하는 단계를 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  62. 제61항에 있어서, 상기 방법은 고유의 클라이언트 ID를 수신하는 단계를 더 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  63. 제62항에 있어서, 상기 방법은 상기 제2 컴퓨터로 전송하기 위한 구성 정보에 클라이언트 ID 포인터 주소를 첨부하는 단계를 더 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  64. 제61항에 있어서, 상기 방법은 상기 수신된 헤더 명령어에 기초하여 수정된 헤더 정보를 준비하는 단계를 더 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  65. 제64항에 있어서, 상기 방법은 첨부된 클라이언트 ID를 갖는 상기 수정된 헤더 정보를 상기 제2 컴퓨터로 전송하는 단계를 더 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  66. 제65항에 있어서, 상기 방법은 상기 수정된 헤더 정보를 전송하는 단계 이전에, 추가의 구성 정보 요청을 수신하는 단계를 더 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  67. 제61항에 있어서, 상기 명령어 수신 단계는 상기 전송하는 단계 이후에 일어나고,
    상기 수정된 정보는 상기 전송된 정보에 포함되어 있지 않은 어떤 정보를 포함하고 있는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  68. 제61항에 있어서, 상기 명령어 수신 단계는 상기 전송하는 단계 이후에 일어나고,
    상기 수정된 정보는 상기 전송된 정보에 포함되어 있는 어떤 정보를 배제하고 있는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  69. 제61항에 있어서, 상기 수정된 정보 헤더 명령어는 상기 전송하는 단계 이전에 수신되고,
    상기 전송된 구성 정보는 상기 수정된 정보 헤더 명령어에 따라 준비되는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  70. 제61항에 있어서, 상기 전송된 구성 정보는 하나 이상의 적응(adaptation)을 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  71. 제70항에 있어서, 상기 하나 이상의 적응은 하드웨어 적응을 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  72. 제70항에 있어서, 상기 하나 이상의 적응은 사용자 인터페이스 버전 적응을 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  73. 제70항에 있어서, 상기 수정된 헤더 정보 명령어는 상기 적응 정보에 따라 준비되는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
  74. 멀티미디어 콘텐츠 사용자의 컴퓨터의 구성을 원격적으로 결정하는 방법을 수행하도록 하나 이상의 프로세서를 프로그램하는 프로세서 판독가능 코드를 그 위에 구현하고 있는 하나 이상의 프로세서 판독가능 저장 장치로서,
    상기 방법은,
    (a) 상기 사용자의 컴퓨터로 플레이어 검출 코드를 전송하는 단계,
    (b) 상기 사용자의 컴퓨터에 관한 구성 정보를 수신하는 단계, 및
    (c) 상기 수신된 구성 정보에 기초하여 상기 사용자의 컴퓨터 상의 디지털 저작권 관리 정보의 유형을 결정하는 단계를 포함하는 것인, 하나 이상의 프로세서 판독가능 저장 장치.
KR1020067008230A 2003-10-31 2004-10-29 정보 처리 방법, 프로세서 판독가능 저장 장치, 및 프로그램이 기록되어 있는 기록 매체 KR101089934B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US51601703P 2003-10-31 2003-10-31
US60/516,017 2003-10-31
US10/700,409 US7356575B1 (en) 2001-11-09 2003-11-03 System, method, and computer program product for remotely determining the configuration of a multi-media content user
US10/700,409 2003-11-03
PCT/US2004/036087 WO2005043329A2 (en) 2003-10-31 2004-10-29 System, method, and computer program product for remotely determining the configuration of a multi-media content user

Publications (2)

Publication Number Publication Date
KR20060113678A true KR20060113678A (ko) 2006-11-02
KR101089934B1 KR101089934B1 (ko) 2011-12-05

Family

ID=34556076

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067008230A KR101089934B1 (ko) 2003-10-31 2004-10-29 정보 처리 방법, 프로세서 판독가능 저장 장치, 및 프로그램이 기록되어 있는 기록 매체

Country Status (4)

Country Link
EP (3) EP2278461A1 (ko)
JP (2) JP4761158B2 (ko)
KR (1) KR101089934B1 (ko)
WO (1) WO2005043329A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991891B2 (en) 2006-02-02 2011-08-02 Microsoft Corporation Version-specific content searching
JPWO2007132661A1 (ja) * 2006-05-12 2009-09-24 株式会社Access 端末、ネットワークシステム、コンテキスト情報提供方法、及び、コンテキスト情報提供プログラム
US8139487B2 (en) * 2007-02-28 2012-03-20 Microsoft Corporation Strategies for selecting a format for data transmission based on measured bandwidth
EP2469845B1 (en) * 2008-06-27 2015-04-01 Kabushiki Kaisha Toshiba Television receiver and method of controlling the receiver
CN102387121B (zh) * 2010-08-30 2014-07-23 株式会社日立制作所 管理服务器、影像分发控制系统及影像分发控制方法
CN102571769A (zh) * 2010-12-31 2012-07-11 北京华夏未来信息技术有限公司 一种自适应终端分辨率的方法及系统
IN2014KN02382A (ko) * 2012-04-23 2015-05-01 Affirmed Networks Inc
EP2763376B1 (en) 2013-01-31 2018-02-21 Samsung Electronics Co., Ltd Method and device for providing service
CN105099602A (zh) * 2014-04-25 2015-11-25 阿里巴巴集团控股有限公司 一种基于网速传输文件的方法及系统
KR101986995B1 (ko) * 2017-01-20 2019-09-30 한화테크윈 주식회사 웹 브라우저 상에서 비디오와 오디오를 동기화하여 재생하는 미디어 재생 장치 및 방법
US11089349B2 (en) 2017-01-20 2021-08-10 Hanwha Techwin Co., Ltd. Apparatus and method for playing back and seeking media in web browser

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3394352A (en) 1965-07-22 1968-07-23 Electronic Image Systems Corp Method of and apparatus for code communication
FR2234708B1 (ko) 1973-06-22 1976-09-17 Thomson Csf
JP3208039B2 (ja) 1995-03-09 2001-09-10 ケイディーディーアイ株式会社 画像符号化データのレート変換装置
US5928330A (en) 1996-09-06 1999-07-27 Motorola, Inc. System, device, and method for streaming a multimedia file
US6070002A (en) 1996-09-13 2000-05-30 Silicon Graphics, Inc. System software for use in a graphics computer system having a shared system memory
US6317134B1 (en) 1996-09-13 2001-11-13 Silicon Graphics, Inc. System software for use in a graphics computer system having a shared system memory and supporting DM Pbuffers and other constructs aliased as DM buffers
US6466939B1 (en) 2000-03-31 2002-10-15 Microsoft Corporation System and method for communicating video data in a digital media device
JP2001333410A (ja) * 2000-05-22 2001-11-30 Sony Corp メディアデータの提供を最適化するためのメタデータ使用方法及びシステム
US6925495B2 (en) * 2000-07-13 2005-08-02 Vendaria Media, Inc. Method and system for delivering and monitoring an on-demand playlist over a network using a template
US20050091666A1 (en) 2000-08-14 2005-04-28 Transvirtual Technologies, Inc. Portable operating environment for information devices
US20020099770A1 (en) 2000-09-08 2002-07-25 Muse Corporation Hybrid communications and interest management system and method
US6407680B1 (en) 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US7092987B2 (en) * 2001-02-13 2006-08-15 Educational Testing Service Remote computer capabilities querying and certification
US20020170065A1 (en) * 2001-05-08 2002-11-14 Pinnick Skyler D. Apparatus and method of managing compression of video and delivery of video over the internet
US20020099858A1 (en) 2001-08-06 2002-07-25 Muse Corporation Network communications protocol
JP2003141011A (ja) * 2001-11-08 2003-05-16 Nec Soft Ltd リモートセットアップシステム及びプログラム
US7730165B2 (en) * 2001-11-09 2010-06-01 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user
EP1326185A1 (en) * 2002-01-08 2003-07-09 Alcatel Offline behaviour analysis for online personalisation of value added services
US7155475B2 (en) 2002-02-15 2006-12-26 Sony Corporation System, method, and computer program product for media publishing request processing

Also Published As

Publication number Publication date
JP2011066916A (ja) 2011-03-31
EP1682980A4 (en) 2008-03-26
JP4761158B2 (ja) 2011-08-31
KR101089934B1 (ko) 2011-12-05
JP5477655B2 (ja) 2014-04-23
JP2007517276A (ja) 2007-06-28
WO2005043329A3 (en) 2006-10-19
EP1682980A2 (en) 2006-07-26
EP2278461A1 (en) 2011-01-26
WO2005043329A2 (en) 2005-05-12
EP2026535A1 (en) 2009-02-18

Similar Documents

Publication Publication Date Title
US8843589B2 (en) System, method, and computer program product for remotely determining the configuration of a multi-media content user
US7356575B1 (en) System, method, and computer program product for remotely determining the configuration of a multi-media content user
JP5477655B2 (ja) 情報処理方法および記録媒体
US7242324B2 (en) Distributed on-demand media transcoding system and method
US7647386B2 (en) System, method, and computer program product for remotely determining the configuration of a multi-media content user
US20110140937A1 (en) Distributed on-demand media transcoding system and method
US10826748B2 (en) Service gateway for interactive television
US9247277B2 (en) System for the delivery and dynamic presentation of large media assets over bandwidth constrained networks
US7783772B2 (en) Session description message extensions
CA2826552C (en) Method and apparatus for receiving presentation metadata
EP1239619A2 (en) Apparatus and method for media distribution in the form requested by a client
US20040162910A1 (en) Methods, data structures, and systems for processing media data streams
WO1998022880A1 (en) A method and apparatus for compressing a continuous, indistinct data stream
CN102473159A (zh) 媒体内容流播的系统和方法
CN100458747C (zh) 用于确定计算机的连接速度的方法
KR20000015610A (ko) 웹을 이용한 데이빅 시스템 및 그 데이빅 서버액세스 방법

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: 20141125

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151120

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161118

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171116

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181120

Year of fee payment: 8