KR101962717B1 - 미디어 파일의 업로드 및 트랜스코딩 - Google Patents

미디어 파일의 업로드 및 트랜스코딩 Download PDF

Info

Publication number
KR101962717B1
KR101962717B1 KR1020177035494A KR20177035494A KR101962717B1 KR 101962717 B1 KR101962717 B1 KR 101962717B1 KR 1020177035494 A KR1020177035494 A KR 1020177035494A KR 20177035494 A KR20177035494 A KR 20177035494A KR 101962717 B1 KR101962717 B1 KR 101962717B1
Authority
KR
South Korea
Prior art keywords
multimedia file
transcoding
computing device
client computing
configuration information
Prior art date
Application number
KR1020177035494A
Other languages
English (en)
Other versions
KR20170140425A (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 페이스북, 인크.
Publication of KR20170140425A publication Critical patent/KR20170140425A/ko
Application granted granted Critical
Publication of KR101962717B1 publication Critical patent/KR101962717B1/ko

Links

Images

Classifications

    • H04L67/42
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/32
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration

Abstract

일실시예로, 방법은 호스트 컴퓨팅 서버에 의해, 클라이언트 컴퓨팅 장치로부터, 클라이언트 컴퓨팅 장치에서 서비스로 멀티미디어 파일을 업로드하기 위한 요청을 수신하는 단계; 호스트 컴퓨팅 서버에 의해, 하나 이상의 제3자 트랜스코딩 서버를 식별하는 단계; 호스트 컴퓨팅 서버에 의해, 클라이언트 컴퓨팅 장치로 제3자 트랜스코딩 서버의 주소와 작업 구성 정보를 포함하는 응답을 전송하는 단계를 포함하고, 상기 트랜스코딩 서버는 클라이언트 컴퓨팅 장치로부터 멀티미디어 파일을 수신하고 트랜스코딩하며 트랜스코딩된 멀티미디어 파일을 저장하도록 구성되며, 상기 작업 구성 정보는 하나 이상의 업로드 정책을 특정하고, 클라이언트 컴퓨팅 장치가 트랜스코딩 서버에 액세스할 수 있도록 하는 액세스 토큰을 포함한다.

Description

미디어 파일의 업로드 및 트랜스코딩{UPLOADING AND TRANSCODING MEDIA FILES}
본 명세서는 일반적으로 미디어 파일의 업로드 및 트랜스코딩에 관한 것이다.
소셜 네트워킹 웹사이트를 포함할 수 있는 소셜 네트워킹 시스템은 사용자들(가령, 개인들 또는 단체들)이 소셜 네트워킹 시스템과 상호작용하고, 소셜 네트워킹 시스템을 통해 서로 상호작용할 수 있게 해줄 수 있다. 소셜 네트워킹 시스템은 사용자로부터의 입력으로 사용자와 연관된 사용자 프로필을 생성하고 소셜 네트워킹 시스템에 저장할 수 있다. 사용자 프로필은 사용자의 인구학적 정보, 통신-채널 정보 및 개인 관심사에 대한 정보를 포함할 수 있다. 또한, 소셜 네트워킹 시스템은 사용자로부터의 입력으로 소셜 네트워킹 시스템의 다른 사용자들과의 사용자의 관계에 대한 기록을 생성하고 저장할 수 있을 뿐만 아니라 서비스(예컨대, 담벼락 게시물, 비디오-공유, 사진-공유, 이벤트 조직, 메시징, 게임 또는 광고)를 제공하여 사용자들 사이의 소셜 상호작용을 용이하게 할 수 있다.
스마트폰, 태블릿 컴퓨터 또는 랩톱 컴퓨터와 같은 모바일 컴퓨팅 장치는 GPS(Global Positioning System) 수신기, 나침판, 자이로스코프, 또는 가속도계와 같이 그 위치, 방향 또는 방위를 결정하기 위한 기능을 포함할 수 있다. 이런 장치는 또한, BLUETOOTH 통신, 근거리 통신(NFC), 또는 적외선(IR) 통신이나 WLAN(wireless local area network) 또는 셀룰러-전화 네트워크를 구비한 통신 등과 같이 무선 통신을 위한 기능을 포함할 수 있다. 또한, 이런 장치는 하나 이상의 카메라, 스캐너, 터치스크린, 마이크로폰 또는 스피커를 포함할 수 있다. 또한, 모바일 컴퓨팅 장치는 게임, 웹 브라우저 또는 소셜 네트워킹 애플리케이션과 같은 소프트웨어 애플리케이션들을 실행할 수 있다. 소셜 네트워킹 애플리케이션으로, 사용자는 그들의 소셜 네트워크에서 다른 사용자들과 연결, 통신 및 정보를 공유할 수 있다.
본 발명의 내용 중에 포함되어 있다.
디지털 카메라를 포함하는 모바일 컴퓨팅 장치(클라이언트 컴퓨팅 장치라고도 함)가 가령 예컨대, 디지털 비디오 클립과 같은 멀티미디어 파일을 기록하는데 사용될 수 있다. 클라이언트 컴퓨팅 장치의 사용자는 멀티미디어 파일을 네트워크상의 서비스에 업로드할 수 있다. 특정 실시예로, 클라이언트 컴퓨팅 장치는, 서비스에 멀티미디어 파일을 업로드하기 위한 업로드 요청을 서비스와 관련된 호스트 컴퓨팅 서버에 전송한다. 특정 실시예로, 호스트 컴퓨팅 장치는, 업로드 요청을 수신하면, 서비스와 연계하여 멀티미디어 파일의 업로드, 트랜스코드 및 저장을 수행하는 활성의 디커플링되거나 제3자의 트랜스코딩 서버의 리스트를 식별한다. 특정 실시예로, 활성의 트랜스코팅 서버의 리스트가 일단 식별되면, 호스트 컴퓨팅 서버는 식별된 트랜스코딩 서버의 리스트와 고정된 만기 시간을 갖는 하나 이상의 정책(policy)과 액세스 토큰을 더 포함하는 작업 구성 정보를 갖는 응답을 클라이언트 컴퓨팅 장치에 전송할 수 있다. 액세스 토큰은, 클라이언트 컴퓨팅 장치가 주어진 기간 동안 멀티미디어 파일의 업로드를 위해 식별된 트랜스코딩 서버 각각을 액세스하는 것을 인가하도록 이용될 수 있다.
특정 실시예로, 클라이언트 컴퓨팅 장치는 리스트로부터 트랜스코딩 서버를 선택할 수 있고, 선택된 트랜스코딩 서버로 작업 구성 정보를 전송할 수 있다. 선택된 트랜스코딩 서버는 액세스 토큰을 검증(validate)하고; 이후 네트워크를 사용하여 클라이언트 컴퓨팅 장치로부터의 멀티미디어 파일의 업로드를 인가할 수 있다. 업로드가 완료되면, 트랜스코딩 서버는 타겟 인코딩 포맷으로 멀티미디어 파일을 트랜스코딩하고, 연결된 저장 시스템에 트랜스코딩된 멀티미디어 파일을 저장하며, 업로드의 완료를 표시하는 작업 응답을 클라이언트 컴퓨팅 장치로 전송할 수 있다.
특정 실시예로, 클라이언트 컴퓨팅 장치는 트랜스코딩 서버로부터 수신된 작업 응답을 호스트 컴퓨팅 장치로 포워딩할 수 있다. 이후, 선택된 트랜스코딩 서버는 다른 작업을 위해 이용가능해질 수 있다.
특정 실시예로, 호스트 컴퓨팅 장치에 의해 전송되고 클라이언트 컴퓨팅 장치에 의해 수신된 응답은, 클라이언트 컴퓨팅 장치에서 트랜스코딩 서버로의 업로드 동안에 장애가 발생하는 경우에 장애복구를 인가한다.
전술한 실시예는 오로지 예시일 뿐이며, 본 명세서의 범위는 실시예로 제한되지 않는다. 특정 실시예는 상기에 개시된 실시예의 컴포넌트, 구성요소, 특징, 기능, 동작, 또는 단계의 전부, 일부를 포함하거나 전혀 포함하지 않을 수 있다.
본 발명의 내용 중에 포함되어 있다.
도 1은 서비스와 관련된 멀티미디어 파일의 업로드, 트랜스코드 및 저장을 위한 예시적인 네트워크 환경을 도시한다.
도 2는 짧은 비디오를 업로드하고 트랜스코딩하기 위한 예시적인 시스템을 도시한다.
도 3은 클라이언트 컴퓨팅 장치가 멀티미디어 파일을 업로드하기 위해 호스트 컴퓨팅 서버와 통신하는 예시적인 흐름도를 도시한다.
도 4는 트랜스코딩 서버가 멀티미디어 파일을 업로드하고, 트랜스코드하며, 저장하기 위해 클라이언트 컴퓨팅 장치와 통신하는 예시적인 판단 흐름도를 도시한다.
도 5는 예시적인 컴퓨터 시스템을 도시한다.
도 1은 서비스와 관련된 멀티미디어 파일의 업로드, 트랜스코드 및 저장을 위한 예시적인 네트워크 환경(100)을 도시한다. 네트워크 환경(100)은 네트워크(160)에 의해 서로 연결된 사용자(110), 클라이언트 컴퓨팅 장치(120), 서비스 시스템(130), 및 미디어 시스템(170)을 포함한다. 도 1은 사용자(110), 클라이언트 컴퓨팅 장치(120), 서비스 시스템(130), 미디어 시스템(170), 및 네트워크(160)의 특정 배치를 도시하지만, 본 명세서는 사용자(110), 클라이언트 컴퓨팅 장치(120), 서비스 시스템(130), 미디어 시스템(170), 및 네트워크(160)의 임의의 적절한 배치를 고려한다. 예로서 제한 없이, 클라이언트 컴퓨팅 장치(120), 서비스 시스템(130), 및 미디어 시스템(170) 중 2개 이상은 네트워크(160)를 우회하여 서로 직접 연결될 수 있다. 다른 예로서 제한 없이, 클라이언트 컴퓨팅 장치(120), 서비스 시스템(130), 및 미디어 시스템(170)은 전체적으로 또는 부분적으로 서로 물리적으로 또는 논리적으로 같은 장소에 위치할 수 있다. 또 다른 예로서 제한 없이, 미디어 시스템(170)은 서비스 시스템(130)으로부터 분리되고 독립적으로 동작하는 제3자 시스템일 수 있다. 도 1은 특정 수의 사용자(110), 클라이언트 컴퓨팅 장치(130), 서비스 시스템(130), 미디어 시스템(170) 및 네트워크(160)를 도시하지만, 본 명세서는 임의의 적절한 수의 사용자(110), 클라이언트 컴퓨팅 장치(120), 서비스 시스템(130), 미디어 시스템(170), 및 네트워크(160)를 고려한다. 예로서 제한 없이, 네트워크 환경(100)은 다수의 사용자(110), 클라이언트 컴퓨팅 장치(120), 서비스 시스템(130), 미디어 시스템(170), 및 네트워크(160)를 포함할 수 있다. 각각의 서비스 시스템(130)은 하나 이상의 호스트 컴퓨팅 서버(132)를 더 포함할 수 있고, 각각의 미디어 시스템(170)은 하나 이상의 트랜스코딩 서버(172) 및 하나 이상의 연결된 저장 시스템(174)을 더 포함할 수 있다. 도 1은 미디어 시스템(170)의 특정 실시예를 도시하지만, 본 명세서는 각각의 미디어 시스템(170)과 관련된 트랜스코딩 서버(172)와 저장 시스템(174)의 임의의 적절한 배치를 고려한다. 예로서 제한 없이, 하나 이상의 트랜스코딩 서버(172)는 전체적으로 또는 부분적으로 하나 이상의 저장 시스템(174)에 직접, 물리적으로 및 전기적으로 연결될 수 있다. 다른 예로서 제한 없이, 하나 이상의 트랜스코딩 서버(172)는 전체적으로 또는 부분적으로 하나 이상의 저장 시스템(174)과 논리적으로 같은 장소에 위치하고 통신적으로 연결될 수 있다. 또 다른 예로서 제한 없이, 트랜스코딩 서버(172)는 호스트 컴퓨팅 서버(130)와는 분리되어 독립적으로 동작할 수 있다.
특정 실시예로, 사용자(110)는 서비스 시스템(130)과 또는 서비스 시스템(130)상에서 상호작용하거나 통신하는 개인(인간 사용자), 엔티티(예컨대, 사업자, 사업체, 또는 제3자 애플리케이션), 또는 그룹(예컨대, 개인 또는 엔티티)일 수 있다. 예로서 제한 없이, 서비스 시스템(130)은 비디오, 음악 및 사진 데이터와 관련된 온라인 호스팅 및 공유 서비스를 포함할 수 있다. 특정 실시예로, 서비스 시스템(130)은 온라인 소셜 네트워크에 의해 호스팅되는 네트워크-주소화 컴퓨팅 시스템일 수 있다. 이러한 실시예에서, 서비스 시스템(130)은 데이터를 생성하고, 저장하며, 수신하고, 전송할 수 있다. 예로서 제한 없이, 데이터는 사용자-프로필 데이터, 사용자 멀티미디어 데이터, 컨셉-프로필 데이터, 소셜 그래프 정보, 위치 정보, 온라인 거래, 또는 다른 적절한 데이터일 수 있다.
각각의 서비스 시스템(130)은 직접 또는 네트워크(160)를 통해 네트워크 환경(100)의 다른 컴포넌트에 의해 액세스될 수 있다. 특정 실시예로, 각각의 서비스 시스템(130)은 예컨대, 적절한 개인정보 설정을 설정함으로써, 사용자(110)가 그들의 신원을 서비스 시스템(130)에 의해 로그되는 것을 동의하거나 거부하거나 또는 사용자 데이터를 다른 시스템(예컨대, 미디어 시스템(170))과 공유할 수 있도록 하는 인가 서버(authorization server) (또는 다른 적절한 컴포넌트(들))를 포함할 수 있다. 사용자의 개인정보 설정은 사용자와 관련된 어떤 정보가 로그될 수 있는지, 어떻게 사용자와 관련된 정보가 로그될 수 있는지, 언제 사용자와 관련된 정보가 로그될 수 있는지, 누가 사용자와 관련된 정보를 로그할 수 있는지, 사용자와 관련된 정보가 누구와 공유될 수 있는지, 및 어떤 목적을 위해 사용자와 관련된 정보가 로그되거나 공유될지를 결정할 수 있다. 인가 서버는 적절한 경우 차단, 데이터 해싱, 익명화, 또는 다른 적절한 기술을 통해 서비스 시스템(130)의 사용자의 하나 이상의 개인정보 설정을 강제하는데 사용될 수 있다.
특정 실시예로, 각각의 미디어 시스템(170)은, 하나 이상의 클라이언트 컴퓨팅 장치(120)로부터 멀티미디어 파일을 업로드하고 트랜스코딩하며, 하나 이상의 저장 시스템(174)에 트랜스코드된 멀티미디어 파일을 저장하기 위한 하나 이상의 트랜스코딩 서버(172)를 포함하는 네트워크-주소화 컴퓨팅 시스템일 수 있다. 각각의 트랜스코딩 서버(172)는 URL(Uniform Resource Locator)을 포함하는 주소 또는 적절한 경우 다른 적절한 네트워크 주소를 가질 수 있다. 예로서 제한 없이, 용어 멀티미디어 파일은 디지털 포맷으로 저장된 하나 이상의 비디오 클립, 하나 이상의 이미지, 또는 하나 이상의 오디오 클립을 의미할 수 있다. 각각의 미디어 시스템(170)은 멀티미디어 파일, 가령 예컨대, 디지털 포맷으로 저장된 디지털 비디오 클립, 디지털 이미지 또는 디지털 오디오 클립, 또는 비디오 클립, 이미지 또는 오디오 클립을 획득하고, 트랜스코딩하며, 저장할 수 있다. 각각의 미디어 시스템(170)은 직접 또는 네트워크(160)를 통해 네트워크 환경(100)의 다른 컴포넌트에 의해 액세스될 수 있다. 특정 실시예로, 각각의 사용자(110)는 서비스 시스템(130) 또는 미디어 시스템(170)을 액세스하고, 데이터를 전송하며, 데이터를 수신하기 위해 하나 이상의 클라이언트 컴퓨팅 장치(120)를 사용할 수 있다. 클라이언트 컴퓨팅 장치(120)는 서비스 시스템(130) 또는 미디어 시스템(170)을 직접, 네트워크(160)를 통해, 또는 제3자 시스템을 통해 액세스할 수 있다. 예로서 제한 없이, 클라이언트 컴퓨팅 장치(120)는 또한, 서비스 시스템(130)을 통해 미디어 시스템(170)에 액세스할 수 있다. 클라이언트 컴퓨팅 장치(120)는 임의의 적절한 컴퓨팅 장치, 가령, 예컨대, 개인용 컴퓨터, 랩톱 컴퓨터, 셀룰러 전화, 스마트폰, 디지털 카메라, 또는 태블릿 컴퓨터일 수 있다.
본 명세서는 임의의 적절한 네트워크(160)를 고려한다. 예로서 제한 없이, 네트워크(160)의 하나 이상의 부분은 애드 혹 네트워크(ad hoc network), 인트라넷, 엑스트라넷, 가상 사설 네트워크(VPN), 근거리 네트워크(LAN), 무선 LAN(WLAN), 광역 네트워크(WAN), 무선 WAN(WWAN), 대도시 네트워크(MAN), 인터넷의 일부, 공중 전화망(PSTN)의 일부, 셀룰러 전화 네트워크, 또는 2 이상의 이들의 조합을 포함할 수 있다. 네트워크(160)는 하나 이상의 네트워크(160)를 포함할 수 있다.
링크(150)는 통신 네트워크(160)에 클라이언트 컴퓨팅 장치(120), 서비스 시스템(130), 및 미디어 시스템(170)을 연결하거나 서로 연결할 수 있다. 본 명세서는 임의의 적절한 링크(150)를 고려한다. 특정 실시예에서, 하나 이상의 링크(150)는 하나 이상의 유선(가령, DSL(Digital Subscriber Line) 또는 DOCSIS(Data Over Cable Service Interface Specification)), 무선(가령, Wi-Fi 또는 WiMax(Worldwide Interoperability for Microwave Access)), 광학(가령, SONET(Synchronous Optical Network) 또는 SDH(Synchronous Digital Hierarchy)) 링크를 포함한다. 특정 실시예에서, 하나 이상의 링크(150) 각각은 애드혹 네트워크, 인트라넷, 익스트라넷, VPN, LAN, WLAN, WAN, WWAN, MAN, 인터넷의 부분, PSTN의 부분, 셀룰러 기술-기반 네트워크, 위성 통신 기술-기반 네트워크, 다른 링크(150) 또는 이런 링크(150)의 2 이상의 조합을 포함한다. 링크(150)는 네트워크 환경(100) 전체에 걸쳐 반드시 동일할 필요는 없다. 하나 이상의 제1 링크(150)는 하나 이상의 면에서, 하나 이상의 제2 링크(150)와 다를 수 있다.
도 2는 클라이언트 컴퓨팅 장치(120)로부터의 짧은 비디오를 업로드하고 트랜스코딩하기 위한 예시적인 시스템(200)을 도시한다. 특정 실시예로, 각각의 클라이언트 컴퓨팅 장치(120) (또는 클라이언트 장치(120))는 하나 이상의 통합된 카메라 또는 하나 이상의 외부 카메라에 대한 인터페이스를 포함할 수 있다. 특정 실시예로, 각각의 클라이언트 장치(120)는 하나 이상의 디지털 카메라를 포함할 수 있고, 디지털 카메라는 이미지 또는 비디오를 디지털 포맷으로 기록하거나 저장하는 장치를 의미할 수 있다. 특정 실시예로, 디지털 카메라는 이미지 센서, 가령 예컨대, 전하-결합 장치(charge-coupled device; CCD) 이미지 센서 또는 CMOS(complementary metal-oxide-semiconductor) 활성-픽셀 센서를 포함할 수 있다. 특정 실시예로, 각각의 클라이언트 장치(120)는 소리를 녹음하기 위한 하나 이상의 마이크를 포함할 수 있다. 본 명세서에서, 용어 "카메라"는 디지털 카메라를 의미할 수 있고, 용어 "비디오"는 디지털 비디오, 또는 디지털 포맷으로 기록되거나 저장된 비디오를 의미할 수 있고; 디지털 포맷은 MPEG-4(Motion Picture Experts Group 4), MPEG-2, MPEG-1, WMV(Windows Media Video), H.264 및 AVC(Advanced Video Coding)를 포함할 수 있으나, 이들로 제한되지는 않는다. 본 명세서는 임의의 적절한 물리적 형태를 취하고 임의의 적절한 카메라와 임의의 적절한 마이크를 포함하는 임의의 적절한 클라이언트 장치(120)를 고려한다.
특정 실시예로, 용어 "비디오"는 비디오 기록의 개별 섹션 또는 특정 길이를의미할 수 있다. 특정 실시예로, 비디오는 단일 녹화 이벤트, 가령 예컨대, 이후의 시간의 단일의 녹화 종료(예컨대, "중단" 버튼 누르기)가 후속되는 단일의 녹화 시작(예컨대, "녹화" 버튼을 누르기)에서 발생하는 임의의 적절한 길이의 녹화된 비디오를 의미할 수 있다. 특정 실시예로, 비디오는 임의의 적절한 조합 또는 일련의 2개 이상의 비디오 녹화 이벤트를 의미할 수 있다. 특정 실시예로, 짧은 비디오 (또는 짧은 비디오 파일 또는 짧은 멀티미디어 파일)는 약 1초, 5초, 10초, 15초, 20초, 30초, 또는 1분의 지속시간을 가질 수 있거나, 또는 임의의 적절한 지속 시간을 가질 수 있다.
특정 실시예로, 비디오 프레임은 비디오의 단일의 정지 이미지를 의미할 수 있고, 비디오는 함께 조합되어 비디오 기록을 형성하는 하나 이상의 이미지 프레임을 포함할 수 있다. 특정 실시예로, 비디오는 약 24 FPS(frames per second), 25 FPS, 30 FPS의 프레임 속도 또는 임의의 적절한 프레임 속도를 가질 수 있고, 프레임 속도는 녹화 또는 재생되는 동안 비디오의 초당 정지 이미지 또는 비디오 프레임의 개수를 의미할 수 있다. 본 명세서는 특정 비디오가 특정 지속시간과 프레임 속도를 갖고 하나 이상의 녹화 이벤트를 포함하는 것으로 기술하고 도시하지만, 본 명세서는 임의의 적절한 수의 녹화 이벤트를 포함하고 임의의 적절한 지속시간과 프레임 속도를 갖는 임의의 적절한 비디오를 고려한다.
특정 실시예로, 호스트 컴퓨팅 서버(132)는 클라이언트 장치(120)로부터 업로드 요청을 수신하고, 업로드 요청은 짧은 비디오와 관련될 수 있다. 도 2의 예에서, 클라이언트 장치(120)는 호스트 컴퓨팅 서버(132)로 단계(250A)를 통해 업로드 요청을 전송할 수 있고, 요청은 비디오를 업로드, 트랜스코드 및 저장하기 위한 요청을 포함할 수 있다. 요청의 내용은 비디오의 설명, 요청과 관련된 서비스의 타입, 짧은 비디오를 인코딩하는데 사용된 원래의 인코딩 포맷의 설명, 클라이언트 장치의 네트워크 주소, 및 업로드와 관련된 하나 이상의 정책을 포함할 수 있다. 도 2에서, 호스트 컴퓨팅 서버(132)는 업로드 요청 프로세스를 조정하거나, 관리하거나, 또는 지시하지만, 짧은 비디오의 업로드 또는 트랜스코딩을 수행하지 않을 수 있다.
특정 실시예로, 호스트 컴퓨팅 서버(132)는, 업로드 요청에 응답하여, 업로드 요청의 요소들을 분석하고, 짧은 비디오의 업로드 요청을 가장 잘 서빙할 수 있는 하나 이상의 트랜스코딩 서버(172)의 이용가능성을 확인할 수 있다. 특정 실시예로, 호스트 컴퓨팅 서버(132)는 최적의 타겟 인코딩 포맷, 타겟 및 짧은 비디오의 현재 인코딩 포맷과 관련된 알고리즘 프로세스, 및 짧은 비디오를 업로드하고 트랜스코딩하기 위한 하나 이상의 트랜스코딩 서버(172)의 타입을 결정하기 위해 요소를 분석할 수 있다. 결정은 요청의 하나 이상의 보안 양태, 업로드된 비디오의 크기, 비디오의 생성과 관련된 하나 이상의 품질 양태, 트랜스코딩을 위해 추정된 프로세싱 시간, 트랜스코딩된 비디오의 추정되는 크기, 업로드와 트랜스코드를 위한 "타임아웃" 제한, 및 저장 시스템(174)의 저장 용량을 포함하는 요소들에 의존할 수 있다.
실시예의 다른 형태에서, 호스트 컴퓨팅 서버(132)는 각각의 비디오를 트랜스코딩하기 위한 표준형 타겟 인코딩 포맷, 및 관련 알고리즘 프로세스를 이용할 수 있다. 표준형 타겟 인코딩 포맷은 클라이언트 장치(120)로부터의 비디오의 서브세트, 또는 전부를 변환하기 위해 통일되고 일관된 인코딩 포맷을 원하는 경우 이용될 수 있다. 클라이언트 장치(120)는 타겟 인코딩 포맷을 지원하지 않을 수 있거나, 또는 타겟 인코딩 포맷이 클라이언트 장치(120)에 비디오 및 다른 멀티미디어 파일을 저장하도록 사용되는 원래의 인코딩 포맷보다 더욱 잘 지원되는 포맷일 수 있다. 특정 실시예로, 타겟 인코딩 포맷은 압축 성능, 확장성(scalability), 사용의 편리함, 및 비용 효율성으로 제한되지 않지만 이러한 것들에 있어서, 클라이언트 장치(120)에 비디오 및 다른 멀티미디어 파일을 저장하는데 사용되는 원래의 인코딩 포맷보다 더 우수할 수 있다.
업로드 요청의 요소의 분석이 완료되면, 호스트 컴퓨팅 서버(132)는 이후 업로드 요청을 프로세싱하기 위해 복수의 이용가능하고 적절한 트랜스코딩 서버(172)를 식별할 수 있다. 특정 실시예로, 호스트 컴퓨팅 서버(172)는 업로드 요청을 프로세스하기 위해 복수의 이용가능하고 적절한 트랜스코딩 서버(172)를 선택할 때 부하 균형을 수행할 수 있다. 특정 실시예로, 호스트 컴퓨팅 서버(132)는, 클라이언트 장치(120)가 비디오를 업로드하도록 식별된 복수의 트랜스코딩 서버(172)로부터 트랜스코딩 서버(172)의 랜덤 서브세트를 더 선택하거나, 알고리즘에 따라 서브세트를 선택할 수 있다. 특정 실시예로, 호스트 컴퓨팅 서버(132)는 트랜스코딩 서버(172)를 식별하고 능동적으로 또는 수동적으로 선택할 수 있다. 호스트 컴퓨팅 서버(132)는, 선택한 트랜스 코딩 서버에 대한 "타임아웃" 제한이 만료된다면, 식별 및 선택의 하나의 능동 실시예에 따라 선택된 트랜스코딩 서버(172) 중 하나를 다른 하나로 교체할 수 있다. 식별 및 선택의 하나의 수동 실시예에서 호스트 컴퓨팅 서버(132)는, 클라이언트 장치(120)로부터 요청을 수신하지 않는다면, 식별되고 선택된 트랜스코딩 서버(172)를 변경하지 않을 수 있다.
특정 실시예로, 호스트 컴퓨팅 서버(132)는 업로드 요청에 응답하여, 클라이언트 장치(120)로, 단계(250B)를 통해, 응답을 전송할 수 있다. 응답은 업로드를 위한 작업 구성 정보 및 트랜스코딩 서버(172)와 관련된 주소의 리스트를 포함할 수 있고, 각각의 트랜스코딩 서버(172)는 업로드 요청을 프로세싱하기 위해 호스트 컴퓨팅 서버(132)에 의해 식별되고 선택된다. 특정 실시예로, 작업 구성 정보는 업로드를 위한 하나 이상의 정책을 정의할 수 있다. 정책은, 네트워크상의 업로드 요청에 대한 인증 및 인가, 업로드되는 비디오의 식별, 클라이언트 장치(120)의 식별, 비디오와 관련된 사용자의 식별, 비디오의 지속시간(예컨대, 15초), 비디오의 크기(예컨대, 10메가바이트), 비디오에 대한 시간제한, 비디오에 대한 크기 제한, 비디오의 포맷의 표시, 원하는 타겟 인코딩 포맷의 표시, 타겟 트랜스코딩 프로세스의 표시, 비디오와 관련된 액세스 허가로 제한되지 않지만 이들에 관한 조건, 제약, 및 설정을 기술할 수 있다.
특정 실시예로, 작업 구성 정보는 하나 이상의 트랜스코딩 서버(172)로의 액세스를 위해 클라이언트 장치(120)를 식별하고 유효화하며, 작업 구성 정보가 만료되거나 무효화된 후의 만료 시간을 확립하여, 미리-결정된 기간 후에 클라이언트 장치(120)가 트랜스코딩 서버(172)를 액세스할 수 없도록 하는 액세스 토큰을 더 포함할 수 있다. 예로서 제한 없이, 작업 구성 정보는, 호스트 컴퓨팅 서버(132)에서 클라이언트 장치(120)로 전송되고 1시간 후에 만료될 수 있다. 특정 실시예로, 응답, 또는 응답의 서브세트는 호스트 컴퓨팅 서버(132)와 클라이언트 장치(120) 사이의 공유된-키 암호화에 기반하여 암호화될 수 있다. 또 다른 실시예로, 작업 구성 정보는 호스트 컴퓨팅 서버(132), 하나 이상의 트랜스코딩 서버(172) 및 클라이언트 장치(120) 사이의 공유된-키 암호화에 기반하여 암호화될 수 있다.
특정 실시예로, 응답은, 클라이언트 장치(120)로부터 트랜스코딩 서버(172)로 비디오를 업로드하는 동안 장애가 발생한다면, 장애복구를 인가할 수 있다. 장애복구는, 사용자(110)에게 투명하게 낮은 지연시간으로 업로드를 부드럽고 빠르게 재개하는 것을 보장할 수 있다. 특정 실시예로, 현재의 작업 구성 정보가 만료되지 않았다면, 클라이언트 장치(120)는 액세스 토큰으로 동일한 트랜스 코딩 서버(172)에 접촉하고, 최근의 상태로부터 업로드를 재개하는 것을, 미리-결정된 최대 횟수만큼 시도할 수 있다. 특정 실시예로, 현재 작업 구성 정보가 만료되거나, 현재 트랜스코딩 서버(172)가 액세스를 위해 이용가능하지 않다면, 클라이언트 장치(120)는 동일한 액세스 토큰으로 작업 구성 정보로부터의 상이한 트랜스코딩 서버(172)에 접촉하고, 비디오의 시작점으로부터 업로드를 다시 시작하는 것을 시도할 수 있다. 특정 실시예로, 현재 작업 구성 정보가 만료되었고, 작업 구성 정보로부터의 모든 트랜스코딩 서버(172)가 액세스를 위해 이용가능하지 않다면, 클라이언트 장치(120)는 새로운 업로드 요청을 호스트 컴퓨팅 서버(132)로 전송할 수 있다.
특정 실시예로, 클라이언트 장치(120)는 주소들 중 하나를 선택하고, 단계(250C)를 통해, 선택된 주소와 관련된 트랜스코딩 서버(172)로 작업 구성 정보를 전송할 수 있다. 특정 실시예로, 선택된 트랜스코딩 서버(172)는, 작업 구성 정보를 수신하면, 포함된 액세스 토큰이 유효한지 여부를 결정할 수 있다. 액세스 토큰이 유효하다면, 선택된 트랜스코딩 서버(172)는 작업 구성 정보 내에 저장된 하나 이상의 정책에 따라 클라이언트 장치(120)로의 액세스를 부여하도록 진행할 수 있다. 특정 실시예로, 업로드 모듈(210)은 업로드를 버퍼링하고 네트워크 연결해제로부터 업로드를 재개하는 것을 처리하는 기존의 통신 프로토콜을 이용할 수 있다. 다른 특정 실시예로, 통신 프로토콜은 업로드 요청의 하나 이상의 요소에 의해 미리-결정될 수 있다. 예로서 제한 없이, 데이터의 업로드를 관리하는데 사용되는 통신 프로토콜은 TCP(Transmission Control Protocol), UDP(User Datagram Protocol), FTP(File Transfer Protocol), SMTP(Simple Mail Transfer Protocol), 및 HTTPS(Hypertext Transfer Protocol Secure)를 포함할 수 있다.
특정 실시예로, 클라이언트 장치(120)는 크기가 현재 네트워크 데이터 전송 속도에 기반하여 자동으로 조정되는 청크(chunk)로 비디오를 업로드할 수 있다. 클라이언트 장치(120) 및 트랜스코딩 서버(172) 사이의 이러한 데이터 업로드를 위한 청크의 동적 크기조정은, 비디오의 빠르고, 신뢰성 있고 매끄러운 업로드 및 네트워크 연결해제로부터 회복하는 동안 낮은 오버헤드 트래픽을 가능하도록 보조한다. 구체적으로, 예로서 제한 없이, 업로드와 관련된 네트워크 프로세싱 비용은, 업로드된 비디오를 전송하는데 요구되는 청크의 총 개수가 감소되기 때문에, 네트워크 데이터 전송 속도가 증가함에 따라, 감소될 수 있다. 특정 실시예로, 각각의 청크의 크기는 클라이언트 장치(120) 또는 트랜스코딩 서버(172)에 의해 결정될 수 있고, 통신 프로토콜, 현재 업로드 속도, 오버헤드 재개 트래픽의 원하는 지속시간, 네트워크 프로세싱 비용 및 링크(150)의 통신 대역폭을 포함하나, 이들로 제한되지 않는 요인들에 따를 수 있다. 예로서 제한 없이, 업로드될 다음 청크의 크기는 오버헤드 재개 트래픽의 원하는 지속시간과 현재 업로드 속도의 곱에 의해 결정될 수 있다. 예로서 제한 없이, 업로드 모듈(210)은 NGINX, Apache HTTP Server, Apache Tomcat, 및 THTTPD(Tiny-Turbo-Throttling HTTP Server)를 포함할 수 있다.
특정 실시예로, 업로드가 완료되면, 트랜스코더 모듈(220)은 짧은 비디오를 원래 인코딩 디지털 포맷으로부터, H264, HEVC(High Efficiency Video Coding), 및 H.264/MPEG-4 AVC을 포함하지만 이들로 제한되지 않는 타겟 인코딩 디지털 포맷으로 변환할 수 있다. 트랜스코딩은 보안상의 목적을 위해 클라이언트-측이 아닌 서버-측에서 수행된다. 더욱이, 트랜스코더 모듈(220)에 대한 소프트웨어 업데이트는, 새로운 소프트웨어 버전이 클라이언트 장치(120)로 다운로드되지 않을 수 있어서 서버-측으로부터 구현되는 것이 더 용이할 수 있고, 이는 기존의 클라이언트 장치(120)에 대한 지원과 클라이언트 장치(120)의 새로운 버전을 지원하는 수정을 더 용이하게 만든다. 트랜스코더 모듈(220)을 클라이언트 장치(120) 대신에 트랜스코딩 서버(172) 내에 구현함으로써, 서비스는 또한, 타겟 인코딩 포맷과 작업 구성을 더 효과적으로 제어하고 수정할 수 있다. 예로서 제한 없이, 트랜스코더 모듈(220)은 FFMPEG, Dr. DivX, 및 MEncoder를 포함할 수 있다.
특정 실시예로, 트랜스코딩 서버(172)는 트랜스코딩 프로세스가 완료되면, 단계(250D)를 통해 하나 이상의 연결된 저장 시스템(174)에 트랜스코드된 멀티미디어 파일을 저장할 수 있다. 예로서 제한 없이, 저장 시스템(174)은 하나 이상의 중복되는 하드 드라이브 및 하나 이상의 중복되는 플래시 드라이브를 포함할 수 있다.
특정 실시예로, 트랜스코딩 서버(172)는, 저장 시스템(174) 상에 트랜스코드된 비디오의 업로드, 트랜스코드, 및 저장의 완료시에 클라이언트 장치(120)로 단계(250E)를 통해 작업 응답을 전송할 수 있다. 특정 실시예로, 작업 응답은 업로드의 완료를 표시하는 하나 이상의 파라미터를 포함할 수 있다. 파라미터는, 트랜스코딩된 비디오의 식별, 클라이언트 장치(120)의 식별, 비디오와 관련된 한 명 이상의 사용자의 식별, 트랜스코딩된 비디오의 크기(예컨대, 10메가바이트), 어떤 최종 인코딩 포맷으로 비디오가 있는지의 표시, 저장된 비디오의 위치의 식별 및 비디오와 관련된 하나 이상의 보안 정책을 포함할 수 있지만, 이들로 제한되지 않는다.
특정 실시예로, 클라이언트 장치(120)는, 트랜스코딩 서버(172)로부터의 작업 응답을 수신하면, 단계(250F)를 통해, 호스트 컴퓨팅 서버(132)로 작업 응답을 포워딩할 수 있어서, 작업의 완료를 표시하고, 선택된 트랜스코딩 서버(172)가 다른 미디어 작업을 위해 이용가능하게 만든다.
도 2는 짧은 비디오를 멀티미디어 파일의 특정 예로 도시하지만, 본 명세서는 짧은 오디오 클립 또는 작은 이미지를 포함하지만 이들로 제한되지 않는 멀티미디어 파일의 임의의 다른 적절한 타입을 고려한다. 특정 실시예로, 멀티미디어 파일은 멀티미디어 비디오 클립, 멀티미디어 이미지, 디지털 비디오 클립, 비디오 클립, 또는 비디오로도 언급될 수 있다. 특정 실시예로, 멀티미디어 파일은 연속적인 이미지의 형태의 비디오, 오디오 파일의 형태의 녹음, 비디오 및 오디오의 조합, 또는 임의의 적절한 미디어의 임의의 적절한 조합을 포함할 수 있다. 디지털 카메라를 포함하는 클라이언트 장치(120)가 멀티미디어 파일을 기록하는데 사용될 수 있다. 도 2는 링크(150)를 통해, 특정 순서로 발생하는 특정 단계들(250A-F)로 클라이언트 장치(120)로부터의 멀티미디어 파일을 업로드하고 트랜스코딩하기 위한 예시적인 시스템을 기술하고 도시하지만, 본 명세서는 시스템과 관련된 임의의 적절한 단계들(250A-F)이 링크(150)를 통해 임의의 적절한 순서로 발생하는 것을 고려한다. 또한, 본 명세서는 도 2의 시스템의 특정 단계들(250A-F)을 포함하는, 클라이언트 장치(120)로부터의 짧은 비디오를 업로드하고 트랜스코딩하는 예시적인 방법을 기술하고 도시하지만, 본 명세서는, 적절한 경우 도 2의 시스템의 단계들(250A-F)의 전부, 일부를 포함하거나 전혀 포함하지 않을 수 있는 임의의 적절한 단계를 포함하는, 클라이언트 장치(120)로부터의 짧은 비디오를 업로드하고 트랜스코딩하기 위한 임의의 적절한 방법을 고려한다. 게다가, 본 명세서는 도 2의 시스템의 특정 단계(250A-F)를 수행하는 특정 컴포넌트, 장치, 또는 시스템을 기술하고 도시하지만, 본 명세서는 도 2의 시스템의 임의의 적절한 단계를 수행하는 임의의 적절한 컴포넌트, 장치, 또는 시스템의 임의의 적절한 조합을 고려한다. 예로서 제한 없이, 트랜스코딩 서버(172)는, 저장 시스템(174)에 비디오를 저장하는 것의 시작(단계 (250D)) 전에, 파일의 트랜스코딩의 완료에 후속하여 작업 응답을 클라이언트 장치(120)로 전송(단계(250E))할 수 있다.
도 3은 멀티미디어 파일을 업로드하기 위해 클라이언트 컴퓨팅 장치와 호스트 컴퓨팅 서버가 통신하는 예시적인 흐름도를 도시한다. 방법은, 호스트 컴퓨팅 서버(132)가 클라이언트 컴퓨팅 장치(120)로부터, 멀티미디어 파일을 클라이언트 컴퓨팅 장치(120)에서 서비스로 업로드하기 위한 요청을 수신하는 단계(310)에서 시작할 수 있다. 예로서 제한 없이, 용어 멀티미디어 파일은 디지털 포맷으로 저장된 하나 이상의 비디오 클립, 하나 이상의 이미지, 또는 하나 이상의 오디오 클립을 의미할 수 있다. 특정 실시예로, 멀티미디어 파일은 연속의 이미지의 형태인 비디오, 오디오 파일 형태인 녹음, 비디오 및 오디오의 조합, 또는 임의의 적절한 미디어의 임의의 적절한 조합을 포함할 수 있다. 디지털 카메라를 포함하는 클라이언트 장치(120)가 멀티미디어 파일을 기록하는데 사용될 수 있다. 요청의 내용은, 멀티미디어 파일의 타입의 설명, 멀티미디어 파일을 인코딩하는데 사용된 원래의 인코딩 포맷의 설명, 요청과 관련된 서비스의 타입, 클라이언트 장치의 네트워크 주소, 및 업로드와 관련된 하나 이상의 정책을 포함할 수 있다.
단계(320)에서, 호스트 컴퓨팅 서버(132)는 요청을 위해 하나 이상의 트랜스코딩 서버를 결정할 수 있다. 호스트 컴퓨팅 서버(132)는 클라이언트 컴퓨팅 장치(120)로부터 수신된 업로드 요청을 분석할 수 있고, 업로드 요청을 가장 잘 프로세싱할 트랜스코딩 서버(172)를 식별할 수 있다. 특정 실시예로, 호스트 컴퓨팅 서버(132)는, 멀티미디어 파일의 업로드 및 트랜스코딩을 위해, 최적의 타겟 인코딩 포맷, 멀티미디어 파일의 타겟 및 현재 인코딩 포맷과 관련된 알고리즘 프로세스, 및 트랜스코딩 서버(172)의 하나 이상의 타입을 결정하도록 업로드 요청을 분석할 수 있다. 결정은 요청의 하나 이상의 보안 양태, 멀티미디어 컨텐츠의 타입, 멀티미디어 파일의 크기, 멀티미디어 파일의 양산과 관련된 하나 이상의 품질 양태, 트랜스코딩을 위한 추정된 프로세싱 시간, 트랜스코드된 멀티미디어 파일의 추정된 크기, 업로드 및 트랜스코딩에 대한 "타임아웃" 제한, 및 저장 시스템(174)의 저장 용량을 포함하는 요소들에 따를 수 있다.
실시예의 다른 형태로, 호스트 컴퓨팅 서버(132)는 각각의 멀티미디어를 트랜스코딩하기 위한 표준형 타겟 인코딩 포맷, 및 관련 알고리즘 프로세스를 이용할 수 있다. 표준형 타겟 인코딩 포맷은 클라이언트 장치(120)로부터의 멀티미디어 파일의 서브세트, 전부 또는 타입을 변환하기 위해 통일되고 일관된 인코딩 포맷을 원하는 경우에 이용될 수 있다. 클라이언트 장치(120)는 타겟 인코딩 포맷을 지원하지 않을 수 있거나, 또는 타겟 인코딩 포맷이 클라이언트 장치(120)에 비디오 및 다른 멀티미디어 파일을 저장하도록 사용되는 원래의 인코딩 포맷보다 더욱 잘 지원되는 포맷일 수 있다. 특정 실시예로, 타겟 인코딩 포맷은 압축 성능, 확장성(scalability), 사용의 편리함, 및 비용 효율성으로 제한되지 않지만 이러한 것들에 있어서, 클라이언트 장치(120)에 멀티미디어 파일을 저장하는데 사용되는 원래의 인코딩 포맷보다 더 우수할 수 있다.
업로드 요청의 분석이 완료되면, 호스트 컴퓨팅 서버(132)는 이후 업로드 요청을 프로세스하기 위해 복수의 이용가능하고 적절한 트랜스코딩 서버(172)를 식별할 수 있다. 특정 실시예로, 호스트 컴퓨팅 서버(132)는 식별된 복수의 트랜스코딩 서버(172)로부터 트랜스코딩 서버(172)의 랜덤 서브세트를 선택하거나, 알고리즘에 따라 서브세트를 선택할 수 있다. 단계(330)에서, 호스트 컴퓨팅 서버(132)는 업로드를 위한 작업 구성 정보 및 트랜스코딩 서버(172)의 주소의 리스트를 포함하는 응답을 클라이언트 컴퓨팅 장치(120)로 전송한다. 특정 실시예로, 작업 구성 정보는 업로드를 위한 하나 이상의 정책을 정의할 수 있다. 정책은, 네트워크상의 업로드 요청에 대한 인증 및 인가, 업로드되는 멀티미디어 파일의 식별, 클라이언트 장치(120)의 식별, 멀티미디어 파일과 관련된 사용자의 식별, 멀티미디어 파일의 크기(예컨대, 10메가바이트), 멀티미디어 파일에 대한 크기 제한, 멀티미디어 파일이 어떤 인코딩 포맷으로 있는지의 표시, 원하는 타겟 인코딩 포맷의 표시, 타겟 트랜스코딩 프로세스의 표시, 멀티미디어 파일과 관련된 액세스 허가로 제한되지 않지만 이들에 관한 조건, 제약, 및 설정을 기술할 수 있다.
특정 실시예로, 작업 구성 정보는 하나 이상의 트랜스코딩 서버(172)로의 액세스를 위해 클라이언트 장치(120)를 식별하고 유효화하며, 작업 구성 정보가 만료되거나 무효가 된 후 만료 시간을 확립하여 클라이언트 장치(120)가 미리-결정된 기간 후에 트랜스코딩 서버(172)에 액세스할 수 없도록 하는 액세스 토큰을 더 포함할 수 있다. 예로서 제한 없이, 작업 구성 정보는, 호스트 컴퓨팅 서버(132)에서 클라이언트 장치(120)로 전송되고 1시간 후에 만료될 수 있다. 특정 실시예로, 응답 또는 응답의 서브세트는, 호스트 컴퓨팅 서버(132) 및 클라이언트 장치(120) 사이의 공유된-키 암호화에 기반하여 암호화될 수 있다. 또 다른 실시예로, 작업 구성 정보는 호스트 컴퓨팅 서버(132), 하나 이상의 트랜스코딩 서버(172), 및 클라이언트 장치(120) 사이의 공유된-키 암호화에 기반하여 암호화될 수 있다.
특정 실시예로, 응답은 클라이언트 장치(120)에서 트랜스코딩 서버(172)로 멀티미디어 파일이 업로드되는 동안에 장애가 발생한다면, 장애복구를 인가할 수 있다. 장애복구는 사용자(110)에게 투명하게 낮은 지연시간을 갖는 업로드의 매끄럽고 빠른 재개를 보장할 수 있다. 특정 실시예로, 현재 작업 구성 정보가 만료되지 않았다면, 클라이언트 장치(120)는, 액세스 토큰으로 동일한 트랜스코딩 서버(172)를 접촉하고 마지막 상태로부터 업로드를 재개하는 것을 미리-결정된 최대 시도 횟수만큼 시도할 수 있다. 특정 실시예로, 현재 작업 구성 정보가 만료되었거나, 현재 트랜스코딩 서버(172)가 액세스를 위해 이용가능하지 않다면, 클라이언트 장치(120)는 동일한 액세스 토큰으로, 작업 구성 정보로부터의 상이한 트랜스코딩 서버(172)를 접촉하고 멀티미디어 파일의 시작점으로부터 업로드를 다시 시작하는 것을 시도할 수 있다. 특정 실시예로, 현재 작업 구성 정보가 만료되었고, 작업 구성 정보로부터의 모든 트랜스코딩 서버(172)가 액세스를 위해 이용가능하지 않다면, 클라이언트 장치(120)는 새로운 업로드 요청을 호스트 컴퓨팅 서버(132)로 전송할 수 있다.
단계(340)에서, 호스트 컴퓨팅 서버(132)는 클라이언트 컴퓨팅 장치(120)로부터, 업로드가 성공적임을 표시하는 작업 응답을 수신하고, 이 시점에서 방법은 종료될 수 있다. 특정 실시예로, 작업 응답은 업로드의 완료를 표시하는 하나 이상의 파라미터를 포함할 수 있다. 파라미터는 트랜스코드된 멀티미디어 파일의 식별, 클라이언트 장치(120)의 식별, 멀티미디어 파일과 관련된 한 명 이상의 사용자의 식별, 트랜스코드된 멀티미디어 파일의 크기(예컨대, 10메가바이트), 어떤 최종 인코딩 포맷으로 멀티미디어 파일이 있는지의 표시, 저장된 멀티미디어 파일의 위치의 식별 및 멀티미디어 파일과 관련된 하나 이상의 보안 정책을 포함할 수 있으나, 이들로 제한되지 않는다. 특정 실시예로, 작업 응답은 또한, 다른 미디어 작업을 위해 선택된 트랜스코딩 서버(172)를 이용가능하게 만들 수 있다.
특정 실시예는 적절한 경우 도 3의 방법의 하나 이상의 단계를 반복할 수 있다. 본 명세서는 도 3의 방법의 특정 단계들이 특정 순서로 발생하는 것으로 기술하고 도시하지만, 본 명세서는 도 3의 방법의 임의의 적절한 단계가 임의의 적절한 순서로 발생하는 것을 고려한다. 더욱이, 본 명세서는, 도 3의 방법의 특정 단계들을 포함하는, 멀티미디어 파일을 업로드하도록 호스트 컴퓨팅 서버(132)가 클라이언트 컴퓨팅 장치(120)와 통신하기 위한 예시적인 방법을 기술하고 도시하지만, 본 명세서는, 적절한 경우, 도 3의 방법의 단계의 전부, 일부를 포함하거나 전혀 포함하지 않을 수 있는, 임의의 적절한 단계를 포함하는, 멀티미디어 파일을 업로드하도록 호스트 컴퓨팅 서버(132)가 클라이언트 컴퓨팅 장치(120)와 통신하기 위한 임의의 적절한 방법을 고려한다. 또한, 본 명세서는 도 3의 방법의 특정 단계를 수행하는 특정 컴포넌트, 장치, 또는 시스템을 기술하고 도시하지만, 본 명세서는 도 3의 방법의 임의의 적절한 단계를 수행하는 임의의 적절한 컴포넌트, 장치 또는 시스템의 임의의 적절한 조합을 고려한다.
도 4는 멀티미디어 파일을 업로드, 인코딩 및 저장하기 위해 트랜스코딩 서버가 클라이언트 컴퓨팅 장치와 통신하는 예시적인 판단 흐름도를 도시한다. 방법은, 트랜스코딩 서버(172)가 클라이언트 컴퓨팅 장치(120)로부터 멀티미디어 파일의 업로드를 위해 작업 구성 정보를 수신하는 단계(410)에서 시작할 수 있다. 작업 구성 정보는, 하나 이상의 트랜스코딩 서버(172)로의 액세스를 위해 클라이언트 장치(120)를 식별하고 유효화하며, 작업 구성 정보가 만료되거나 무효화된 후의 만료 시간을 확립하여, 클라이언트 장치(120)가 미리-결정된 기간 후에 트랜스코딩 서버(172)를 액세스할 수 없도록 하는 액세스 토큰을 포함할 수 있다.
단계(420)에서, 트랜스코딩 서버(172)는 액세스 토큰이 유효한지 여부를 결정한다. 액세스 토큰이 유효하지 않다면, 트랜스코딩 서버(172)는 단계(470)에 따라, 클라이언트 컴퓨팅 장치(120)로 업로드에 대한 오류 응답을 전송한다. 특정 실시예로, 오류 응답은 클라이언트 컴퓨팅 장치(120)가 멀티미디어 파일을 업로드하거나, 또는 새로운 업로드 요청을 호스트 컴퓨팅 서버(132)로 전송하기 위해 상이한 트랜스코딩 서버(172)를 접촉하도록 할 수 있다.
액세스 토큰이 유효하다면, 트랜스코딩 서버(172)는 클라이언트 컴퓨팅 장치(120)로부터 단계(430)에 따라 멀티미디어 파일을 수신한다. 특정 실시예로, 트랜스코딩 서버(172)의 업로드 모듈(210)은 업로드를 버퍼링하고 네트워크 연결해제로부터 업로드를 재개하는 것을 처리하는 기존의 통신 프로토콜을 이용할 수 있다. 다른 특정 실시예로, 통신 프로토콜은 업로드 요청의 하나 이상의 요소에 의해 미리-결정될 수 있다. 예로서 제한 없이, 데이터의 업로드를 관리하는데 사용되는 통신 프로토콜은 TCP(Transmission Control Protocol), UDP(User Datagram Protocol), FTP(File Transfer Protocol), SMTP(Simple Mail Transfer Protocol), 및 HTTPS(Hypertext Transfer Protocol Secure)를 포함할 수 있다.
특정 실시예로, 클라이언트 장치(120)는 현재 네트워크 데이터 전송 속도에 기반하여 크기가 자동으로 조정되는 청크로 멀티미디어 파일을 업로드할 수 있다. 클라이언트 장치(120) 및 트랜스코딩 서버(172) 사이의 이러한 데이터 업로드를 위한 청크의 동적 크기조정은, 멀티미디어 파일의 빠르고, 신뢰성 있고, 매끄러운 업로드 및 네트워크 연결해제로부터 회복하는 동안의 낮은 오버헤드 트래픽을 가능하게 하도록 돕는다. 구체적으로, 예로서 제한 없이, 업로드와 관련된 네트워크 프로세싱 비용은, 업로드된 멀티미디어 파일을 전송하는데 요구되는 청크의 총 개수가 감소하기 때문에, 네트워크 데이터 전송 속도가 증가함에 따라, 감소될 수 있다. 특정 실시예로, 각각의 청크의 크기는 클라이언트 장치(120) 또는 트랜스코딩 서버(172)에 의해 결정될 수 있고, 통신 프로토콜, 현재 업로드 속도, 오버헤드 재개 트래픽의 원하는 지속시간, 네트워크 프로세싱 비용 및 링크(150)의 통신 대역폭을 포함하나, 이들로 제한되지 않는 요인들에 의존할 수 있다. 예로서 제한 없이, 업로드될 다음 청크의 크기는, 오버헤드 재개 트래픽의 원하는 지속시간과 현재 업로드 속도의 곱에 의해 결정될 수 있다. 예로서 제한 없이, 업로드 모듈(210)은 NGINX, Apache HTTP Server, Apache Tomcat, 및 THTTPD(Tiny-Turbo-Throttling HTTP Server)를 포함할 수 있다.
단계(440)에서, 트랜스코딩 서버(172)는 멀티미디어 파일을 트랜스코딩한다. 특정 실시예로, 트랜스코딩 서버(172)의 트랜스코더 모듈(220)은 멀티미디어 파일을, 원래의 인코딩 디지털 포맷으로부터 멀티미디어 파일의 타입에 따르는 타겟 인코딩 디지털 포맷으로 변환할 수 있다. 파일이 비디오를 포함한다면, 타겟 인코딩 디지털 포맷은, H.264, HEVC(High Efficiency Video Coding), H.264/MPEG-4 AVC 및 독점적 포맷(proprietary format)을 포함할 수 있으나, 이들로 제한되지 않는다. 파일이 오디오 스트림을 포함한다면, 타겟 인코딩 디지털 포맷은, MPEG4(Moving Picture Experts Group), Real, MP3, AAC(Advanced Audio Coding), 및 독점적 포맷을 포함할 수 있으나, 이들로 제한되지 않는다. 파일이 하나 이상의 이미지를 포함한다면, 타겟 인코딩 디지털 포맷은, TIFF(Tagged Image File Format), JPEG(Joint Photographic Expert Group), JPEG2000, 및 독점적 포맷을 포함할 수 있으나, 이들로 제한되지 않는다. 트랜스코딩은, 보안상의 목적을 위해 클라이언트-측 대신에 서버-측에서 수행된다. 또한, 트랜스코더 모듈(220)에 대한 소프트웨어 업데이트는, 새로운 소프트웨어 버전이 클라이언트 장치(120)에 다운로드되어 있지 않았을 수 있으므로 서버-측으로부터 구현되는 것이 용이하며, 이는 기존의 클라이언트 장치(120)를 위한 지원과 클라이언트 장치(120)의 새로운 버전을 지원하는 수정을 용이하게 만든다. 클라이언트 장치(120) 대신에 트랜스코딩 서버(172) 내에 트랜스코더 모듈(220)을 구현함으로써, 서비스는 또한, 타겟 인코딩 포맷 및 작업 구성을 더 효과적으로 제어하고 수정할 수 있다. 예로서 제한 없이, 트랜스코더 모듈(220)은 FFMPEG, Dr. DivX, 및 MEncoder를 포함할 수 있다.
단계(450)에서, 트랜스코딩 서버(172)는 트랜스코딩된 멀티미디어 파일을 하나 이상의 저장 시스템(174)에 저장한다. 예로서 제한 없이, 저장 시스템(174)은 하나 이상의 중복적인 하드 드라이브, 및 하나 이상의 중복적인 플래시 드라이브를 포함할 수 있다.
단계(460)에서, 트랜스코딩 서버(172)는 클라이언트 컴퓨팅 장치(120)로 업로드의 완료를 표시하는 작업 응답을 전송하고, 이 지점에서 방법은 종료할 수 있다. 특정 실시예로, 작업 응답 또는 응답의 서브세트는 호스트 컴퓨팅 서버(132), 클라이언트 장치(120) 및 트랜스코딩 서버(172) 사이의 공유된-키 암호화에 기반하여 암호화될 수 있다. 특정 실시예로, 작업 응답은 또한, 그 자체를 다른 미디어 작업을 위해 이용가능하게 만들 수 있다.
특정 실시예는 적절한 경우 도 4의 방법의 하나 이상의 단계를 반복할 수 있다. 본 명세서는 도 4의 방법의 특정 단계가 특정 순서로 발생하는 것으로 기술하고 도시하지만, 본 명세서는 도 4의 방법의 임의의 적절한 단계가 임의의 적절한 순서로 발생하는 것을 고려한다. 또한, 본 명세서는 도 4의 방법의 특정 단계를 포함하는, 멀티미디어 파일을 업로드하고, 인코딩하며, 저장하기 위해 트랜스코딩 서버(172)가 클라이언트 컴퓨팅 장치(120)와 통신하기 위한 예시적인 방법을 기술하고 도시하지만, 본 명세서는 적절한 경우 도 4의 방법의 단계의 전부, 일부를 포함하거나 전혀 포함하지 않을 수 있는 임의의 적절한 단계를 포함하는, 멀티미디어 파일을 업로드하고, 인코딩하며, 저장하기 위해 트랜스코딩 서버(172)가 클라이언트 컴퓨팅 장치(120)와 통신하기 위한 임의의 적절한 방법을 고려한다. 또한, 본 명세서는 도 4의 방법의 특정 단계를 수행하는 특정 컴포넌트, 장치 또는 시스템을 기술하고 도시하지만, 본 명세서는 도 4의 방법의 임의의 적절한 단계를 수행하는 임의의 적절한 컴포넌트, 장치 또는 시스템의 임의의 적절한 조합을 고려한다.
도 5는 예시적인 컴퓨터 시스템(500)을 도시한다. 특정 실시예로, 하나 이상의 컴퓨터 시스템들(500)은 본 명세서에 기술되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 수행한다. 특정 실시예로, 하나 이상의 컴퓨터 시스템들(500)은 본 명세서에 기술되거나 도시된 기능을 제공한다. 특정 실시예로, 하나 이상의 컴퓨터 시스템들(500)을 실행하는 소프트웨어는 본 명세서에 기술되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 수행하거나, 본 명세서에 기술되거나 도시된 기능을 제공한다. 특정 실시예는 하나 이상의 컴퓨터 시스템들(500)의 하나 이상의 부분들을 포함한다. 본 명세서에서, 적절한 경우 컴퓨터 시스템에 대한 언급은 컴퓨팅 장치를 포함할 수 있고 그 역도 또한 동일하다. 게다가, 컴퓨터 시스템에 대한 언급은 적절한 경우 하나 이상의 컴퓨터 시스템을 포함할 수 있다.
본 명세서는 임의의 적절한 수의 컴퓨터 시스템(500)을 고려한다. 본 명세서는 임의의 적절한 물리적 형태를 취하는 컴퓨터 시스템(500)을 고려한다. 예로서 제한 없이, 컴퓨터 시스템(500)은 임베디드 컴퓨터 시스템, 시스템-온-칩(SOC), 단일-보드 컴퓨터 시스템(SBC)(예컨대, 컴퓨터-온-모듈(COM) 또는 시스템-온-모듈(SOM)), 데스크톱 컴퓨터 시스템, 랩톱 또는 노트북 컴퓨터 시스템, 상호작용형 키오스크(kiosk), 메인 프레임, 컴퓨터 시스템 메쉬(mesh), 모바일 전화, 개인 정보 단말기(PDA), 서버, 태블릿 컴퓨터 시스템 또는 이들의 2 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(500)은 하나 이상의 컴퓨터 시스템(500)들을 포함할 수 있거나; 일체형 또는 분산형일 수 있거나; 다수의 위치에 걸쳐 있거나, 다수의 기계에 걸쳐 있거나; 다수의 데이터 센터에 걸쳐 있거나; 하나 이상의 네트워크에 하나 이상의 클라우드 성분을 포함할 수 있는 클라우드에 상주할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템(500)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 실질적으로 공간적 또는 시간적 제한 없이 실행할 수 있다. 예로서 제한 없이, 하나 이상의 컴퓨터 시스템(500)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 실시간으로 또는 일괄 모드로 실행할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템(500)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 다른 시기에 또는 다른 위치에서 실행할 수 있다.
특정 실시예로, 컴퓨터 시스템(500)은 프로세서(502), 메모리(504), 저장소(506), 입력/출력(I/O) 인터페이스(508), 통신 인터페이스(510) 및 버스(512)를 포함한다. 본 명세서가 특정 배열로 특정한 수의 특정 구성요소를 갖는 특정 컴퓨터 시스템을 기술하고 도시하지만, 본 명세서는 임의의 적절한 배열로 임의의 적절한 수의 임의의 적절한 구성요소를 갖는 임의의 적절한 컴퓨터 시스템을 고려한다.
특정 실시예로, 프로세서(502)는 가령 컴퓨터 프로그램을 구성하는 명령어와 같은 명령어를 실행하기 위한 하드웨어를 포함한다. 예로서 제한 없이, 명령어를 실행하기 위해, 프로세서(502)는 내부 레지스터, 내부 캐시, 메모리(504) 또는 저장소(506)로부터 명령어를 검색(또는 페치(fetch))할 수 있고; 명령어를 디코딩하고 실행한 후; 하나 이상의 결과를 내부 레지스터, 내부 캐시, 메모리(504) 또는 저장소(506)에 기록할 수 있다. 특정 실시예로, 프로세서(502)는 데이터용, 명령어용 또는 주소용 하나 이상의 내부 캐시를 포함할 수 있다. 본 명세서는 적절한 경우 임의의 적절한 수의 임의의 적절한 내부 캐시들을 포함하는 프로세서(502)를 고려한다. 예로서 제한 없이, 프로세서(502)는 하나 이상의 명령어 캐시들, 하나 이상의 데이터 캐시들 및 하나 이상의 변환 색인 버퍼(translation lookaside buffers, TLBs)를 포함할 수 있다. 명령어 캐시에 저장된 명령어들은 메모리(504)나 저장소(506) 내 명령어들의 사본일 수 있고, 명령어 캐시는 프로세서(502)에 의한 이런 명령어들의 검색 속도를 높일 수 있다. 데이터 캐시 내의 데이터는 프로세서(502)에서 실행하는 다음 명령들에 의해 접근하거나 메모리(504)나 저장소(506)로 기록하기 위해 프로세서(502)에서 실행되는 이전 명령들의 결과; 또는 다른 적절한 데이터를 동작하는데 프로세서(502)에서 실행하는 명령어를 위한 메모리(504)나 저장소(506) 내의 데이터의 사본일 수 있다. 데이터 캐시는 프로세서(502)에 의한 판독 또는 기록 동작의 속도를 높일 수 있다. TLB들은 프로세서(502)에 의한 가상 주소 변환의 속도를 높일 수 있다. 특정 실시예로, 프로세서(502)는 데이터용, 명령어용 또는 주소용 하나 이상의 내부 레지스터를 포함할 수 있다. 본 명세서는 적절한 경우 임의의 적절한 수의 임의의 적절한 내부 레지스터들을 포함하는 프로세서(502)를 고려한다. 적절한 경우, 프로세서(502)는 하나 이상의 산술 논리 유닛(ALUs)을 포함할 수 있거나; 멀티-코어 프로세서일 수 있거나; 하나 이상이 프로세서들(502)을 포함할 수 있다. 본 명세서가 특정 프로세서를 기술하고 도시하지만, 본 명세서는 임의의 적절한 프로세서를 고려한다.
특정 실시예로, 메모리(504)는 프로세서(502)가 실행하는 명령어 또는 프로세서(502)가 운영하는 데이터를 저장하기 위한 메인 메모리를 포함한다. 예로서 제한 없이, 컴퓨터 시스템(500)은 저장소(506)나 또 다른 소스(가령, 예컨대 또 다른 컴퓨터 시스템(500))에서 메모리(504)로 명령어를 로딩할 수 있다. 이후, 프로세서(502)는 메모리(504)에서 내부 레지스터나 내부 캐시로 명령어를 로딩할 수 있다. 명령어를 실행하기 위해, 프로세서(502)는 내부 레지스터나 내부 캐시로부터 명령어를 검색하고 이들을 디코딩할 수 있다. 명령어의 실행 중 또는 실행 후, 프로세서(502)는 (중간 결과 또는 최종 결과일 수 있는) 하나 이상의 결과를 내부 레지스터나 내부 캐시로 기록할 수 있다. 이후, 프로세서(502)는 하나 이상의 이런 결과를 메모리(504)에 기록할 수 있다. 특정 실시예로, 프로세서(502)는 (저장소(506) 또는 다른 곳과는 대조적으로) 하나 이상의 내부 레지스터나 내부 캐시에서 또는 메모리(504)에서 단지 명령어만을 실행하며, (저장소(506) 또는 다른 곳과는 대조적으로) 하나 이상의 내부 레지스터나 내부 캐시에서 또는 메모리(504)에서 단지 데이터만을 운영한다. (주소 버스 및 데이터 버스를 각각 포함할 수 있는) 하나 이상의 메모리 버스는 프로세서(502)를 메모리(504)로 연결할 수 있다. 하기에 기술되는 바와 같이, 버스(512)는 하나 이상의 메모리 버스를 포함할 수 있다. 특정 실시예로, 하나 이상의 메모리 관리 유닛(MMUs)은 프로세서(502)와 메모리(504) 사이에 상주하며, 프로세서(502)에 의해 요청되는 메모리(504)로의 접근을 용이하게 한다. 특정 실시예로, 메모리(504)는 랜덤 액세스 메모리(RAM)를 포함한다. 적절한 경우, 이런 RAM은 휘발성 메모리일 수 있다. 적절한 경우, 이런 RAM은 동적 RAM(DRAM) 또는 정적 RAM(SRAM)일 수 있다. 게다가, 적절한 경우, 이런 RAM은 단일 포트형 또는 다중-포트형 RAM일 수 있다. 본 명세서는 임의의 적절한 RAM을 고려한다. 적절한 경우, 메모리(504)는 하나 이상의 메모리(504)를 포함할 수 있다. 본 명세서가 특정 메모리를 기술하고 도시하지만, 본 명세서는 임의의 적절한 메모리를 고려한다.
특정 실시예로, 저장소(506)는 데이터용 또는 명령어용 대용량 저장소를 포함한다. 예로서 제한 없이, 저장소(506)는 하드 디스크 드라이브(HDD), 플로피 디스크 드라이브, 플래시 메모리, 광디스크, 자기-광학 디스크, 자기 테이프, 범용 직렬 버스(USB) 드라이브 또는 이들의 2 이상의 조합을 포함할 수 있다. 적절한 경우, 저장소(506)는 착탈식 또는 비-착탈식(또는 고정) 매체를 포함할 수 있다. 적절한 경우, 저장소(506)는 컴퓨터 시스템(500)의 내부 또는 외부에 있을 수 있다. 특정 실시예로, 저장소(506)는 비휘발성, 고체-상태(solid-state) 메모리이다. 특정 실시예로, 저장소(506)는 읽기 전용 메모리(ROM)를 포함한다. 적절한 경우, 이런 ROM은 마스크-프로그램화된 ROM, 프로그램가능 ROM(PROM), 소거가능 PROM(EPROM), 전기적 소거가능 PROM(EEPROM), 전기적 변경가능 ROM(EAROM), 플래시 메모리 또는 이들의 2 이상의 조합일 수 있다. 본 명세서는 임의의 적절한 물리적 형태를 취하는 대용량 저장소(506)를 고려한다. 적절한 경우, 저장소(506)는 프로세서(502)와 저장소(506) 사이의 통신을 용이하게 하는 하나 이상의 저장소 제어 유닛을 포함할 수 있다. 적절한 경우, 저장소(506)는 하나 이상의 저장소(506)를 포함할 수 있다. 본 명세서가 특정 저장소를 기술하고 도시하지만, 본 명세서는 임의의 적절한 저장소를 고려한다.
특정 실시예로, I/O 인터페이스(508)는 컴퓨터 시스템(500)과 하나 이상의 I/O 장치 사이의 통신을 위한 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어 또는 이들 모두를 포함한다. 적절한 경우, 컴퓨터 시스템(500)은 하나 이상의 이들 I/O 장치를 포함할 수 있다. 하나 이상의 이들 I/O 장치는 사람과 컴퓨터 시스템(500) 사이의 통신을 가능하게 할 수 있다. 예로서 제한 없이, I/O 장치는 키보드, 키패드, 마이크로폰, 모니터, 마우스, 프린터, 스캐너, 스피커, 스틸 카메라(still camera), 스타일러스(stylus), 태블릿, 터치 스크린, 트랙볼(trackball), 비디오 카메라, 다른 적절한 I/O 장치 또는 이들의 2 이상의 조합을 포함할 수 있다. I/O 장치는 하나 이상의 센서를 포함할 수 있다. 본 명세서는 임의의 적절한 I/O 장치 및 이에 대한 적절한 I/O 인터페이스(508)를 고려한다. 적절한 경우, I/O 인터페이스(508)는 프로세서(502)가 하나 이상의 이들 I/O 장치를 구동할 수 있도록 하는 하나 이상의 장치 또는 소프트웨어 드라이버를 포함할 수 있다. 적절한 경우, I/O 인터페이스(508)는 하나 이상의 I/O 인터페이스(508)를 포함할 수 있다. 본 명세서가 특정 I/O 인터페이스를 기술하고 도시하지만, 본 명세서는 임의의 적절한 I/O 인터페이스를 고려한다.
특정 실시예로, 통신 인터페이스(510)는 컴퓨터 시스템(500)과 하나 이상의 다른 컴퓨터 시스템(500)이나 하나 이상의 네트워크 사이의 통신(가령, 예컨대 패킷-기반 통신)을 위한 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어 또는 이들 모두를 포함한다. 예로서 제한 없이, 통신 인터페이스(510)는 이더넷이나 다른 유선-기반 네트워크로 통신하기 위한 네트워크 인터페이스 제어장치(NIC)나 네트워크 어댑터 또는 가령 WI-FI 네트워크와 같이 무선 네트워크로 통신하기 위한 무선 NIC(WNIC)나 무선 어댑터를 포함할 수 있다. 본 명세서는 임의의 적절한 네트워크 및 이에 대한 임의의 적절한 통신 인터페이스(510)를 고려한다. 예로서 제한 없이, 컴퓨터 시스템(500)은 애드 혹 네트워크(ad hoc network), 개인 영역 네트워크(PAN), 근거리 네트워크(LAN), 광역 네트워크(WAN), 대도시 네트워크(MAN), 인터넷의 하나 이상의 부분 또는 2 이상의 이런 네트워크들의 조합으로 통신할 수 있다. 하나 이상의 이런 네트워크의 하나 이상의 부분은 유선 또는 무선일 수 있다. 예로서, 컴퓨터 시스템(500)은 무선 PAN(WPAN)(가령, 예컨대 BLUETOOTH WPAN), WI-FI 네트워크, WI-MAX 네트워크, 셀룰러 전화 네트워크(가령, 예컨대 GSM(Global System for Mobile Communication) 네트워크), 다른 적절한 무선 네트워크 또는 2 이상의 이런 네트워크들의 조합으로 통신할 수 있다. 적절한 경우, 컴퓨터 시스템(500)은 임의의 이들 네트워크에 대한 임의의 적절한 통신 인터페이스(510)를 포함할 수 있다. 적절한 경우, 통신 인터페이스(510)는 하나 이상의 통신 인터페이스(510)를 포함할 수 있다. 본 명세서가 특정 통신 인터페이스를 기술하고 도시하지만, 본 명세서는 임의의 적절한 통신 인터페이스를 고려한다.
특정 실시예로, 버스(512)는 컴퓨터 시스템(500)의 구성요소를 서로 연결하는 하드웨어, 소프트웨어 또는 이들 모두를 포함한다. 예로서 제한 없이, 버스(512)는 AGP(Accelerated Graphics Port)이나 다른 그래픽 버스, EISA(Enhanced Industry Standard Architecture) 버스, FSB(front-side bus), HT(HYPERTRANSPORT) 인터커넥트, ISA(Industry Standard Architecture) 버스, INFINIBAND 인터커넥트, LPC(low-pin-count) 버스, 메모리 버스, MCA(Micro Channel Architecture) 버스, PCI(Peripheral Component Interconnect) 버스, PCIe(PCI-Express) 버스, SATA(serial advanced technology attachment) 버스, VLB(Video Electronics Standard Association local) 버스, 다른 적절한 버스 또는 2 이상의 이런 버스의 조합을 포함할 수 있다. 적절한 경우, 버스(512)는 하나 이상의 버스(512)를 포함할 수 있다. 본 명세서가 특정 버스를 기술하고 도시하지만, 본 명세서는 임의의 적절한 버스나 인터커넥트를 고려한다.
본 명세서에서, 컴퓨터-판독가능한 비-일시적 저장매체 또는 저장매체들은 하나 이상의 반도체 기반 또는 다른 집적회로(ICs)(가령, 예컨대 FPGAs(field-programmable gate arrays) 또는 ASICs(application-specific ICs)), 하드 디스크 드라이브(HDDs), 하이브리드 하드 디스크(HHDs), 광학 디스크, 광학 디스크 드라이브(ODDs), 자기-광학 디스크, 자기-광학 드라이브, 플로피 디스크, 플로피 디스크 드라이브(FDDs), 자기 테이프, 고체-상태 드라이브(SSDs), RAM-드라이브, SECURE DIGITAL 카드나 드라이브, 임의의 다른 적절한 컴퓨터-판독가능한 비-일시적 저장매체 또는, 적절한 경우, 2 이상의 이들의 임의의 적절한 조합을 포함할 수 있다. 적절한 경우, 컴퓨터-판독가능한 비-일시적 저장매체는 휘발성, 비휘발성 또는 휘발성과 비휘발성의 조합일 수 있다.
본 명세서에서, "또는"은 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, 포괄적인 것이며 배타적인 것이 아니다. 따라서, 본 명세서에서 "A 또는 B"는 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, "A, B 또는 둘 모두"를 의미한다. 게다가, "및"은 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, 공동 및 별개 모두이다. 따라서, 본 명세서에서 "A 및 B"는 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, "A 및 B가 공동이든 별개이든 상관없이 모두"를 의미한다.
본 명세서의 범위는 당업자가 이해할 수 있는 본 명세서에 기술되거나 도시된 예시적인 실시예들에 대한 모든 변화, 치환, 변형, 대체 및 변경을 포함한다. 본 명세서의 범위는 본 명세서에 기술되거나 도시된 예시적인 실시예들로 국한되지 않는다. 게다가, 본 명세서는 특정 컴포넌트, 구성요소, 특징, 기능, 동작 또는 단계를 포함하는 것으로 본 명세서의 각각의 실시예들을 기술하고 도시하지만, 임의의 이런 실시예들은 당업자가 이해할 수 있는 본 명세서에 어디든 기술되거나 도시되는 임의의 컴포넌트, 구성요소, 특징, 기능, 동작 또는 단계의 임의의 조합이나 치환을 포함할 수 있다. 게다가, 첨부된 청구범위에서 특정 기능을 수행하도록 설계되거나, 배치되거나, 할 수 있거나, 구성되거나, 할 수 있게 하거나, 동작할 수 있거나, 동작하는 장치나 시스템 또는 장치나 시스템의 구성요소에 대한 언급은 장치, 시스템 또는 구성요소가 그렇게 설계되거나, 배치되거나, 할 수 있거나, 구성되거나, 가능하거나, 동작할 수 있거나 동작하는 한, 장치, 시스템, 구성요소, 그 또는 그러한 특정 기능이 활성화되었는지, 턴온 되었는지, 잠금 해제되었는지 여부를 포함한다.

Claims (20)

  1. 하나 이상의 트랜스코딩 서버에 의해, 클라이언트 컴퓨팅 장치로부터 액세스 토큰 및 타겟 인코딩 포맷을 포함하는 작업 구성 정보를 수신하는 단계;
    하나 이상의 트랜스코딩 서버에 의해, 클라이언트 컴퓨팅 장치로부터 멀티미디어 파일을 수신하는 단계;
    하나 이상의 트랜스코딩 서버에 의해, 작업 구성 정보의 액세스 토큰이 유효한지 여부를 결정하는 단계;
    하나 이상의 트랜스코딩 서버에 의해, 작업 구성 정보의 액세스 토큰이 유효한 경우 멀티미디어 파일을 타겟 인코딩 포맷으로 트랜스코딩하는 단계;
    하나 이상의 트랜스코딩 서버에 의해, 트랜스코딩된 멀티미디어 파일을 저장하는 단계; 및
    하나 이상의 트랜스코딩 서버에 의해, 멀티미디어 파일의 트랜스코딩과 트랜스코딩된 멀티미디어 파일의 저장의 성공적 완료를 표시하는 작업 응답을 클라이언트 컴퓨팅 장치로 전송하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    클라이언트 컴퓨팅 장치로부터 멀티미디어 파일을 수신하는 단계는 클라이언트 컴퓨팅 장치로부터 멀티미디어 파일의 하나 이상의 청크(chunk)를 수신하는 단계를 포함하는 방법.
  3. 제 2 항에 있어서,
    멀티미디어 파일의 하나 이상의 청크 각각은 청크 크기와 연관되고; 및
    방법은 현재 업로드 속도에 기반하여 청크 크기를 설정하는 단계를 더 포함하는 방법.
  4. 제 1 항에 있어서,
    작업 구성 정보는 멀티미디어 파일의 시간 또는 크기 제약을 명시하는 하나 이상의 업로드 정책을 포함하는 방법.
  5. 제 1 항에 있어서,
    작업 응답은 트랜스코딩 비디오의 크기와 트랜스코딩 비디오와 연관되는 하나 이상의 보안 정책을 더 표시하는 방법.
  6. 제 1 항에 있어서,
    작업 응답은 하나 이상의 트랜스코딩 서버 및 클라이언트 컴퓨팅 장치 사이의 공유된-키 암호화에 기반하여 암호화되는 방법.
  7. 제 1 항에 있어서,
    액세스 토큰은 기-결정된 지속시간 후에 만료되는 방법.
  8. 하나 이상의 컴퓨터-판독가능한 비-일시적 저장 매체로서,
    하나 이상의 트랜스코딩 서버에 의해, 클라이언트 컴퓨팅 장치로부터 액세스 토큰 및 타겟 인코딩 포맷을 포함하는 작업 구성 정보를 수신하고;
    하나 이상의 트랜스코딩 서버에 의해, 클라이언트 컴퓨팅 장치로부터 멀티미디어 파일을 수신하고;
    하나 이상의 트랜스코딩 서버에 의해, 작업 구성 정보의 액세스 토큰이 유효한지 여부를 결정하고;
    하나 이상의 트랜스코딩 서버에 의해, 작업 구성 정보의 액세스 토큰이 유효한 경우 멀티미디어 파일을 타겟 인코딩 포맷으로 트랜스코딩하고;
    하나 이상의 트랜스코딩 서버에 의해, 트랜스코딩된 멀티미디어 파일을 저장하고; 및
    하나 이상의 트랜스코딩 서버에 의해, 멀티미디어 파일의 트랜스코딩과 트랜스코딩된 멀티미디어 파일의 저장의 성공적 완료를 표시하는 작업 응답을 클라이언트 컴퓨팅 장치로 전송하도록 실행시 동작하는 소프트웨어를 포함하는 컴퓨터-판독가능한 비-일시적 저장 매체.
  9. 제 8 항에 있어서,
    클라이언트 컴퓨팅 장치로부터 멀티미디어 파일을 수신하는 것은 클라이언트 컴퓨팅 장치로부터 멀티미디어 파일의 하나 이상의 청크(chunk)를 수신하는 것을 포함하는 컴퓨터-판독가능한 비-일시적 저장 매체.
  10. 제 9 항에 있어서,
    멀티미디어 파일의 하나 이상의 청크 각각은 청크 크기와 연관되고; 및
    소프트웨어는 현재 업로드 속도에 기반하여 청크 크기를 설정하도록 실행시 더 동작하는 컴퓨터-판독가능한 비-일시적 저장 매체.
  11. 제 8 항에 있어서,
    작업 구성 정보는 멀티미디어 파일의 시간 또는 크기 제약을 명시하는 하나 이상의 업로드 정책을 포함하는 컴퓨터-판독가능한 비-일시적 저장 매체.
  12. 제 8 항에 있어서,
    작업 응답은 트랜스코딩 비디오의 크기와 트랜스코딩 비디오와 연관되는 하나 이상의 보안 정책을 더 표시하는 컴퓨터-판독가능한 비-일시적 저장 매체.
  13. 제 8 항에 있어서,
    작업 응답은 하나 이상의 트랜스코딩 서버 및 클라이언트 컴퓨팅 장치 사이의 공유된-키 암호화에 기반하여 암호화되는 컴퓨터-판독가능한 비-일시적 저장 매체.
  14. 제 8 항에 있어서,
    액세스 토큰은 기-결정된 지속시간 후에 만료되는 컴퓨터-판독가능한 비-일시적 저장 매체.
  15. 하나 이상의 트랜스코딩 서버를 포함하는 시스템으로서,
    하나 이상의 트랜스코딩 서버 각각은:
    하나 이상의 프로세서; 및
    프로세서에 결합되고 프로세서에 의해 실행가능한 명령어를 포함하는 메모리를 포함하고,
    상기 프로세서는:
    클라이언트 컴퓨팅 장치로부터 액세스 토큰 및 타겟 인코딩 포맷을 포함하는 작업 구성 정보를 수신하고;
    클라이언트 컴퓨팅 장치로부터 멀티미디어 파일을 수신하고;
    작업 구성 정보의 액세스 토큰이 유효한지 여부를 결정하고;
    작업 구성 정보의 액세스 토큰이 유효한 경우 멀티미디어 파일을 타겟 인코딩 포맷으로 트랜스코딩하고;
    트랜스코딩된 멀티미디어 파일을 저장하고; 및
    멀티미디어 파일의 트랜스코딩과 트랜스코딩된 멀티미디어 파일의 저장의 성공적 완료를 표시하는 작업 응답을 클라이언트 컴퓨팅 장치로 전송하는 명령어를 실행시 동작하는 시스템.
  16. 제 15 항에 있어서,
    클라이언트 컴퓨팅 장치로부터 멀티미디어 파일을 수신하는 것은 클라이언트 컴퓨팅 장치로부터 멀티미디어 파일의 하나 이상의 청크(chunk)를 수신하는 것을 포함하는 시스템.
  17. 제 16 항에 있어서,
    멀티미디어 파일의 하나 이상의 청크 각각은 청크 크기와 연관되고; 및
    프로세서는 현재 업로드 속도에 기반하여 청크 크기를 설정하는 명령어를 실행시 더 동작하는 시스템.
  18. 제 15 항에 있어서,
    작업 구성 정보는 멀티미디어 파일의 시간 또는 크기 제약을 명시하는 하나 이상의 업로드 정책을 포함하는 시스템.
  19. 제 15 항에 있어서,
    작업 응답은 트랜스코딩 비디오의 크기와 트랜스코딩 비디오와 연관되는 하나 이상의 보안 정책을 더 표시하는 시스템.
  20. 제 15 항에 있어서,
    작업 응답은 하나 이상의 트랜스코딩 서버 및 클라이언트 컴퓨팅 장치 사이의 공유된-키 암호화에 기반하여 암호화되는 시스템.

KR1020177035494A 2013-12-04 2013-12-13 미디어 파일의 업로드 및 트랜스코딩 KR101962717B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/097,190 2013-12-04
US14/097,190 US9661106B2 (en) 2013-12-04 2013-12-04 Uploading and transcoding media files
PCT/US2013/075031 WO2015084413A1 (en) 2013-12-04 2013-12-13 Uploading and transcoding media files

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167017149A Division KR101809165B1 (ko) 2013-12-04 2013-12-13 미디어 파일의 업로드 및 트랜스코딩

Publications (2)

Publication Number Publication Date
KR20170140425A KR20170140425A (ko) 2017-12-20
KR101962717B1 true KR101962717B1 (ko) 2019-03-27

Family

ID=53266320

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167017149A KR101809165B1 (ko) 2013-12-04 2013-12-13 미디어 파일의 업로드 및 트랜스코딩
KR1020177035494A KR101962717B1 (ko) 2013-12-04 2013-12-13 미디어 파일의 업로드 및 트랜스코딩

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167017149A KR101809165B1 (ko) 2013-12-04 2013-12-13 미디어 파일의 업로드 및 트랜스코딩

Country Status (9)

Country Link
US (3) US9661106B2 (ko)
JP (2) JP6367333B2 (ko)
KR (2) KR101809165B1 (ko)
CN (2) CN110611703B (ko)
AU (2) AU2013406732A1 (ko)
CA (2) CA2932005C (ko)
IL (2) IL245798B (ko)
MX (1) MX362620B (ko)
WO (1) WO2015084413A1 (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9154456B2 (en) 2012-04-17 2015-10-06 Trenda Innovations, Inc. Messaging system and method
BR112015022413A2 (pt) 2013-03-13 2017-07-18 Fdna Uk Ltd sistemas, métodos, e meios legíveis por computador para identificar quando um indivíduo é suscetível de ser afetado por uma condição médica
US9661106B2 (en) * 2013-12-04 2017-05-23 Facebook, Inc. Uploading and transcoding media files
KR102070924B1 (ko) * 2014-01-20 2020-01-29 한화테크윈 주식회사 영상 기록 시스템
US9807008B2 (en) * 2014-06-06 2017-10-31 Google Inc. Tournament scheduling
US9894023B2 (en) * 2014-07-15 2018-02-13 Zebrafish Labs, Inc. Image feeding server network
US10834587B2 (en) * 2014-09-22 2020-11-10 American Greetings Corporation Live greetings
US9641522B1 (en) * 2014-11-11 2017-05-02 Amazon Technologies, Inc. Token management in a managed directory service
TWI519967B (zh) * 2015-03-25 2016-02-01 財團法人工業技術研究院 雲端運算資源動態分配系統及其方法
US10116729B2 (en) 2015-10-06 2018-10-30 Verizon Digital Media Services Inc. Dynamic media transformation service in a CDN
KR102238111B1 (ko) * 2015-12-08 2021-04-09 삼성전자주식회사 디바이스의 업로드 크기를 제어하는 방법 및 장치
CN105681749A (zh) * 2016-01-12 2016-06-15 上海小蚁科技有限公司 用于预览视频的方法、装置、系统和计算机可读介质
US10250894B1 (en) 2016-06-15 2019-04-02 Gopro, Inc. Systems and methods for providing transcoded portions of a video
US10616309B2 (en) * 2016-12-30 2020-04-07 Facebook, Inc. Systems and methods for resumable uploading of data in a social networking system
CN106791925B (zh) * 2017-02-09 2020-12-15 阿里巴巴(中国)有限公司 视频生成方法及装置
US10565251B2 (en) * 2017-04-28 2020-02-18 Facebook, Inc. Media file upload awareness for online systems
US10567508B2 (en) * 2017-04-28 2020-02-18 Facebook, Inc. Media file upload awareness for online systems
US10637846B2 (en) 2017-08-30 2020-04-28 Capital One Services, Llc System and method for cloud-based analytics
US10097594B1 (en) * 2017-08-31 2018-10-09 T-Mobile Usa, Inc. Resource-managed codec selection
CN107770167A (zh) * 2017-10-17 2018-03-06 北京小米移动软件有限公司 分享多媒体数据的方法、装置及计算机可读存储介质
CN109787942A (zh) * 2017-11-14 2019-05-21 广州市动景计算机科技有限公司 多媒体文件提交及发布方法和装置
US10764396B2 (en) 2017-12-18 2020-09-01 The Directv Group, Inc. Media transcoding based on priority of media
CN108156238A (zh) * 2017-12-23 2018-06-12 贵阳朗玛信息技术股份有限公司 一种资料自动化上传的方法及装置
CN110392071B (zh) 2018-04-18 2021-06-22 网宿科技股份有限公司 流媒体资源的上传、下载方法、分发系统及流媒体服务器
CN108566553B (zh) * 2018-04-25 2020-12-04 威盛电子股份有限公司 视频墙媒体播放系统、方法及控制服务器
KR102495915B1 (ko) * 2018-04-30 2023-02-03 삼성전자 주식회사 스토리지 장치 및 상기 스토리지 장치를 포함하는 서버
CN110062278A (zh) * 2019-04-12 2019-07-26 北京字节跳动网络技术有限公司 视频数据发布方法、装置、电子设备和存储介质
US11880484B2 (en) * 2019-11-12 2024-01-23 Salesforce, Inc. Enforcing data isolation in jobs executed by a multi-tenant system on a secondary platform
US11470178B2 (en) * 2019-12-19 2022-10-11 ShinyDocs System and method for robust local cache handling
CN111225032A (zh) * 2019-12-19 2020-06-02 福建升腾资讯有限公司 一种应用服务与文件服务分离的方法、系统、设备和介质
US11570227B2 (en) * 2020-12-04 2023-01-31 Tencent America LLC Set up and distribution of immersive media to heterogenous client end-points
CN113411586A (zh) * 2021-05-20 2021-09-17 北京睿芯高通量科技有限公司 一种转码系统及其分块上传方法
CN113852842A (zh) * 2021-09-24 2021-12-28 广州市保伦电子有限公司 一种基于教育云平台的视频转码调度方法和后台服务器
CN114143308A (zh) * 2021-11-29 2022-03-04 中国平安人寿保险股份有限公司 文件上传信息处理方法、装置、计算机设备及存储介质
CN114697126A (zh) * 2022-04-12 2022-07-01 北京达佳互联信息技术有限公司 多媒体资源的发布方法、装置、电子设备及存储介质
CN115150386B (zh) * 2022-05-24 2024-03-22 上海哔哩哔哩科技有限公司 向开放平台上传视频的方法、装置、存储介质及电子设备
CN114915624B (zh) * 2022-07-13 2022-12-13 飞狐信息技术(天津)有限公司 一种文件处理方法、系统及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030004882A1 (en) 2000-11-06 2003-01-02 Holler Anne Marie Optimized server for streamed applications
US20090150517A1 (en) 2007-12-07 2009-06-11 Dan Atsmon Mutlimedia file upload
EP2663084A1 (en) 2012-05-09 2013-11-13 Mark A. Harwell Recording and publishing content on social media websites

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000048399A1 (en) 1999-02-11 2000-08-17 Loudeye Technologies, Inc. System for automated comprehensive remote servicing for media information
US6963910B1 (en) * 2000-03-03 2005-11-08 International Business Machines Corporation Graphical user interface for creating assets
US6407680B1 (en) 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US7895445B1 (en) * 2001-04-26 2011-02-22 Nokia Corporation Token-based remote data access
US7287156B2 (en) * 2001-06-29 2007-10-23 International Business Machines Corporation Methods, systems and computer program products for authentication between clients and servers using differing authentication protocols
US7028090B2 (en) * 2002-05-30 2006-04-11 International Business Machines Corporation Tokens utilized in a server system that have different access permissions at different access times and method of use
WO2003104942A2 (en) * 2002-06-07 2003-12-18 Yahoo. Inc. Method and system for controling and monitoring a web-cast
US9286214B2 (en) * 2003-06-06 2016-03-15 Arris Enterprises, Inc. Content distribution and switching amongst data streams
EP1665567A4 (en) * 2003-09-15 2010-08-25 Directv Group Inc METHOD AND SYSTEM FOR ADAPTIVELY TRANSCODING AND TRANSRATING IN A VIDEO NETWORK
US7721329B2 (en) * 2003-11-18 2010-05-18 Aol Inc. Method and apparatus for trust-based, fine-grained rate limiting of network requests
KR100612255B1 (ko) * 2005-01-11 2006-08-14 삼성전자주식회사 무선 네트워크 시스템에서의 데이터 보안장치 및 그 방법
US8190687B1 (en) 2005-03-01 2012-05-29 At&T Intellectual Property Ii, L.P. Multimedia alerting and notification service for mobile users
KR101235272B1 (ko) * 2006-04-05 2013-02-20 삼성전자주식회사 미디어 서버의 데이터 포맷 변환 및 제어 포인트의 데이터포맷 변환 요청 방법 및 장치
US8024762B2 (en) * 2006-06-13 2011-09-20 Time Warner Cable Inc. Methods and apparatus for providing virtual content over a network
CN100502369C (zh) * 2006-07-25 2009-06-17 中山大学 一种数字家庭网络媒体格式转码装置及方法
US20080052381A1 (en) * 2006-08-22 2008-02-28 Koon Wah Yu Method and system for selecting a transcoder to convert between content types
US20080155230A1 (en) * 2006-12-21 2008-06-26 General Instrument Corporation Method and System for Providing Simultaneous Transcoding of Multi-Media Data
US8060874B2 (en) * 2007-01-29 2011-11-15 Symbol Technologies, Inc. Efficient provisioning of software packages to mobile handheld devices
US7991904B2 (en) * 2007-07-10 2011-08-02 Bytemobile, Inc. Adaptive bitrate management for streaming media over packet networks
US20090019492A1 (en) 2007-07-11 2009-01-15 United Video Properties, Inc. Systems and methods for mirroring and transcoding media content
US8171167B2 (en) * 2007-11-13 2012-05-01 Vantrix Corporation Intelligent caching of media files
US8169916B1 (en) * 2007-11-23 2012-05-01 Media Melon, Inc. Multi-platform video delivery configuration
US8145779B2 (en) * 2008-04-08 2012-03-27 Microsoft Corporation Dynamic server-side media transcoding
US9473812B2 (en) * 2008-09-10 2016-10-18 Imagine Communications Corp. System and method for delivering content
US20100094728A1 (en) 2008-09-12 2010-04-15 James Denning Method and system for distributing media content and processing payments and/or voluntary data collection
WO2010063324A1 (en) 2008-12-04 2010-06-10 Telefonaktiebolaget L M Ericsson (Publ) Method for transmitting a media file to a mobile device and entity therefor
US8965920B2 (en) 2008-12-15 2015-02-24 Verizon Patent Licensing Inc. Distributing and sharing content in a network
US8156089B2 (en) * 2008-12-31 2012-04-10 Apple, Inc. Real-time or near real-time streaming with compressed playlists
US8195830B2 (en) * 2009-06-24 2012-06-05 Ricoh Company, Ltd. Efficient file transfer on web service-enabled image forming device
US20110015985A1 (en) * 2009-07-17 2011-01-20 James Curtis Universal multimedia distribution, storage, and playback systems and methods
US10063812B2 (en) * 2009-10-07 2018-08-28 DISH Technologies L.L.C. Systems and methods for media format transcoding
CN102045312B (zh) * 2009-10-21 2013-09-18 三星电子(中国)研发中心 自适应转码方法和系统
CN102055964A (zh) * 2009-11-11 2011-05-11 腾讯科技(深圳)有限公司 一种多媒体文件转码方法和转码器
US8516147B2 (en) * 2010-02-26 2013-08-20 Simula Innovation Sa Data segmentation, request and transfer method
CN102223386A (zh) * 2010-04-16 2011-10-19 华为技术有限公司 远程访问家庭网络的方法、装置及系统
US20110264768A1 (en) * 2010-04-24 2011-10-27 Walker Digital, Llc Systems and methods for facilitating transmission of content from a source to a user device
US8862733B2 (en) * 2010-07-30 2014-10-14 Verizon Patent And Licensing Inc. User-based prioritization for content transcoding
US9137163B2 (en) * 2010-08-04 2015-09-15 Kryterion, Inc. Optimized data stream upload
JP5609544B2 (ja) * 2010-10-29 2014-10-22 セイコーエプソン株式会社 画像入力システム、コンテンツサーバー、仲介サーバー、および、画像入力方法
US8930446B2 (en) * 2011-01-05 2015-01-06 Motorola Mobility Llc Altering transcoding priority
CN102685086A (zh) * 2011-04-14 2012-09-19 天脉聚源(北京)传媒科技有限公司 一种文件访问方法和系统
US8549167B2 (en) * 2011-06-21 2013-10-01 Net Power And Light, Inc. Just-in-time transcoding of application content
CN102882829A (zh) * 2011-07-11 2013-01-16 腾讯科技(深圳)有限公司 一种转码方法及系统
US9088804B2 (en) * 2011-08-25 2015-07-21 Ustream, Inc. On-demand selection of transcoding formats for multimedia broadcast streams
CN103002274B (zh) * 2011-09-16 2016-05-18 腾讯科技(深圳)有限公司 一种基于离线下载的移动多媒体实时转码播放系统及方法
JP5849976B2 (ja) * 2012-03-30 2016-02-03 カシオ計算機株式会社 ソーシャル・ネットワーク・サービスシステム及び画像表示方法
US8311382B1 (en) 2012-05-09 2012-11-13 Youtoo Technologies, LLC Recording and publishing content on social media websites
US8745267B2 (en) * 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
CN103678386B (zh) * 2012-09-18 2017-10-03 百度在线网络技术(北京)有限公司 在移动终端中进行转码的方法、系统以及装置
US9462021B2 (en) * 2012-09-24 2016-10-04 Google Technology Holdings LLC Methods and devices for efficient adaptive bitrate streaming
US9306860B2 (en) * 2012-10-18 2016-04-05 Giraffic Technologies Ltd. Congestion control method for dynamically maximizing communication link throughout
CN103237037B (zh) * 2013-05-08 2015-11-18 华迪计算机集团有限公司 基于云计算架构的媒体格式转换方法和系统
TW201445989A (zh) * 2013-05-30 2014-12-01 Hon Hai Prec Ind Co Ltd 分散式編解碼系統及方法
US8824664B1 (en) * 2013-06-13 2014-09-02 Genesys Telecommunications Laboratories, Inc. System and method for controlling lifespan of interaction requests
US20150100667A1 (en) * 2013-10-08 2015-04-09 WePow, Inc. Optimizing content delivery
US9661106B2 (en) * 2013-12-04 2017-05-23 Facebook, Inc. Uploading and transcoding media files

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030004882A1 (en) 2000-11-06 2003-01-02 Holler Anne Marie Optimized server for streamed applications
US20090150517A1 (en) 2007-12-07 2009-06-11 Dan Atsmon Mutlimedia file upload
EP2663084A1 (en) 2012-05-09 2013-11-13 Mark A. Harwell Recording and publishing content on social media websites

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Amazon Focuses On Cloud Video With Elastic Transcoder Services, Price-Busting + Available Everywhere (Anonymous, 2013.01.29.)

Also Published As

Publication number Publication date
JP6367333B2 (ja) 2018-08-01
JP2018185843A (ja) 2018-11-22
KR20160093651A (ko) 2016-08-08
US20150156281A1 (en) 2015-06-04
CA2932005C (en) 2018-04-10
CN110611703B (zh) 2022-06-14
CN105830047A (zh) 2016-08-03
US10554631B2 (en) 2020-02-04
CA2932005A1 (en) 2015-06-11
MX2016007314A (es) 2016-09-07
IL245798A0 (en) 2016-07-31
JP6561177B2 (ja) 2019-08-14
IL256825B (en) 2019-05-30
JP2017508190A (ja) 2017-03-23
US9661106B2 (en) 2017-05-23
IL245798B (en) 2018-01-31
US20170222987A1 (en) 2017-08-03
WO2015084413A1 (en) 2015-06-11
US11108745B2 (en) 2021-08-31
MX362620B (es) 2019-01-28
CN110611703A (zh) 2019-12-24
CA2995784A1 (en) 2015-06-11
AU2013406732A1 (en) 2016-07-07
IL256825A (en) 2018-03-29
KR20170140425A (ko) 2017-12-20
US20200169540A1 (en) 2020-05-28
CN105830047B (zh) 2019-09-06
KR101809165B1 (ko) 2017-12-14
AU2018220057A1 (en) 2018-09-06

Similar Documents

Publication Publication Date Title
US11108745B2 (en) Uploading and transcoding media files
KR102077556B1 (ko) 가상 인트라-프레임을 사용하여 비디오 콘텐츠를 인코딩하기 위한 시스템 및 방법
EP2882193B1 (en) Uploading and transcoding media files
US9003558B1 (en) Allowing degraded play of protected content using scalable codecs when key/license is not obtained
US10979674B2 (en) Cloud-based segregated video storage and retrieval for improved network scalability and throughput
US20150022666A1 (en) System and method for scalable video cloud services
US20200274908A1 (en) Screencast orchestration
US11601620B2 (en) Cloud-based segregated video storage and retrieval for improved network scalability and throughput
US20140123260A1 (en) Terminal equipment, server, method of controlling terminal equipment, and method of controlling server
WO2015153723A1 (en) A method and system for real-time cloud storage of video content
KR20170082882A (ko) 네트워크 비디오 기록 장치 및 이를 이용한 비디오 데이터 차단 방법
KR102050416B1 (ko) 네트워크 카메라 장치 및 이의 영상 스트리밍 제공 방법
JP2018107655A (ja) 監視カメラシステム

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant