KR101954012B1 - 비디오 스트림의 데이터를 프로세싱하기 위한 방법, 단말, 및 시스템 - Google Patents

비디오 스트림의 데이터를 프로세싱하기 위한 방법, 단말, 및 시스템 Download PDF

Info

Publication number
KR101954012B1
KR101954012B1 KR1020177030326A KR20177030326A KR101954012B1 KR 101954012 B1 KR101954012 B1 KR 101954012B1 KR 1020177030326 A KR1020177030326 A KR 1020177030326A KR 20177030326 A KR20177030326 A KR 20177030326A KR 101954012 B1 KR101954012 B1 KR 101954012B1
Authority
KR
South Korea
Prior art keywords
video stream
video
resolution
lower resolution
source information
Prior art date
Application number
KR1020177030326A
Other languages
English (en)
Other versions
KR20170130512A (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 KR20170130512A publication Critical patent/KR20170130512A/ko
Application granted granted Critical
Publication of KR101954012B1 publication Critical patent/KR101954012B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440263Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
    • H04L65/608
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4425Monitoring of client processing errors or hardware failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

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

Abstract

비디오 스트림을 위한 데이터 프로세싱 방법은: 멀티해상도 비디오 스트림들의 제공 정보를 취득하는 단계; 제공 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 타겟 비디오 스트림을 플레이하는 단계; 및 네트워크 에러 또는 디코딩 에러가 플레잉 동안에 발생할 경우, 플레이되고 있는 비디오를, 플레이하기 위한 낮은 해상도를 가지는 비디오 스트림으로 스위칭하는 단계를 포함한다. 본 발명의 실시예들은 또한, 비디오 스트림을 위한 대응하는 데이터 프로세싱 디바이스 및 시스템을 제공한다.

Description

비디오 스트림의 데이터를 프로세싱하기 위한 방법, 단말, 및 시스템
본 발명은 통신 기술들의 분야에 관한 것으로, 특히, 비디오 스트림의 데이터를 프로세싱하기 위한 방법, 장치, 및 시스템에 관한 것이다.
언제 어디서나 멀티-미디어 액세스의 요구가 증가함에 따라, 비디오 프로그램들을 시청할 때에 다수의 사용자가 실시간으로 선명하고 매끄러운 비디오 소스들을 시청하는 것이 바람직한 옵션이 되었다.
보편적인 라이브 비디오 브로드캐스트 기술들(live video broadcast technologies)은 HTTP 라이브 스트리밍(HTTP Live Streaming)(HLS)과, 실시간 스트리밍 프로토콜(Real Time Streaming Protocol)(RTSP)/실시간 전송 프로토콜(Real-time Transport Protocol)(RTP)에 기초한 실시간 스트리밍 미디어 프로토콜을 주로 포함한다. 현재, 대부분의 메인스트림 라이브 비디오 웹사이트들은 이동 단말들을 위한 HLS 라이브 소스들을 제공하고, 그러므로, 이것은 이동 단말들의 비디오 플레잉 애플리케이션들(video playing applications)이 HLS 프로토콜을 지원하는 것을 요구한다. 현재의 비디오 플레이어들은 다수의 해상도들을 가지는 HLS 비디오 소스들을 플레이할 때, 디폴트 설정 또는 사용자 설정에 따라 해상도들 중의 하나를 가지는 비디오 스트림을 일반적으로 직접적으로 선택한다.
종래 기술을 연구하고 실시하는 프로세스 동안, 본 개시내용의 발명자는 현존하는 해결책에서, 비디오 스트림은 해상도가 브로드캐스팅을 위하여 직접적으로 선택되는 설정을 가지는 반면, 선택된 해상도는 현재의 브로드캐스팅 환경을 위하여 적당하지 않을 수도 있다는 것을 발견한다. 그러므로, 라이브 비디오의 브로드캐스팅 품질은 대폭 영향을 받을 수 있다. 예를 들어, 이미지들은 매우 선명하지만 빈번하게 정지될 수도 있거나, 비디오가 매끄럽게 플레이되지만 이미지들은 매우 흐리다.
본 발명의 실시예들은 비디오 스트림의 데이터를 프로세싱하기 위한 방법, 장치, 및 시스템을 제공하고, 현재의 플레잉 상황에 따라 해상도를 신축적으로 조절할 수 있음으로써, 라이브 비디오의 플레잉 품질을 대폭 개선시킬 수 있다.
본 개시내용의 실시예는 비디오 스트림 데이터를 프로세싱하기 위한 방법을 제공하고, 상기 방법은:
다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득하는 단계;
비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 타겟 비디오 스트림을 플레이하는 단계;
네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우에 더 낮은 해상도의 비디오 스트림으로 스위칭하는 단계; 및 더 낮은 해상도의 비디오 스트림을 플레이하는 단계를 포함한다.
본 개시내용의 또 다른 실시예는 비디오 스트림 데이터를 프로세싱하기 위한 장치를 제공하고, 상기 장치는:
다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득하도록 구성된 정보 취득 유닛;
비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 타겟 비디오 스트림을 플레이하도록 구성된 프로세싱 유닛; 및
네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우에 플레이하기 위한 더 낮은 해상도의 비디오 스트림으로 스위칭하여 더 낮은 해상도의 비디오 스트림을 플레이하도록 구성된 스위칭 유닛을 포함한다.
본 개시내용의 또 다른 실시예는 본 발명의 실시예들에서 제공된 비디오 스트림의 데이터를 프로세싱하기 위한 임의의 장치를 포함하는, 비디오 스트림의 데이터를 프로세싱하기 위한 시스템을 제공한다.
본 개시내용의 또 다른 실시예는 저장 매체를 제공하고, 여기서, 저장 매체는 프로세서 실행가능 명령을 저장하고, 프로세서 실행가능 명령은 다음의 동작들을 수행하기 위하여 이용된다:
다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득하는 동작;
비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 타겟 비디오 스트림을 플레이하는 동작;
네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우에 더 낮은 해상도의 비디오 스트림으로 스위칭하는 동작; 및 더 낮은 해상도의 비디오 스트림을 플레이하는 동작.
본 발명의 실시예들에서는, 다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보가 취득되고; 최고 해상도를 가지는 비디오 스트림은 비디오 소스 정보에 따라 타겟 비디오 스트림으로서 선택되고, 타겟 비디오 스트림이 플레이되고; 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우, 플레이된 비디오는 플레이하기 위한 더 낮은 해상도의 비디오 스트림으로 스위칭된다. 이러한 방법으로, 현재의 플레잉 스테이터스(status)에 따라 비디오 해상도를 자동으로 조절하는 목적으로, 라이브 비디오의 플레잉은 현재의 플레잉 환경에서 최적의 상태에 도달할 수 있음으로써, 라이브 비디오의 플레잉 품질을 대폭 개선시킬 수 있다.
본 발명의 실시예들에서의 기술적 해결책들을 더욱 명확하게 설명하기 위하여, 다음은 실시예들을 설명하기 위하여 요구된 첨부 도면들을 간략하게 설명한다. 분명히, 다음의 설명에서의 첨부 도면들은 본 발명의 일부 실시예들을 단지 도시하고, 본 기술 분야의 통상의 기술자는 창조적인 노력들 없이 이 첨부 도면들로부터 다른 도면들을 여전히 유도할 수 있다.
도 1은 본 발명의 실시예에 따른, 비디오 스트림의 데이터를 프로세싱하기 위한 방법의 플로우차트이고;
도 2는 본 발명의 실시예에 따른, 비디오 스트림의 데이터를 프로세싱하기 위한 방법의 또 다른 플로우차트이고;
도 3은 본 발명의 실시예에 따른, 비디오 스트림의 데이터를 프로세싱하기 위한 장치의 개략적인 구조도이고; 그리고
도 4는 본 발명의 실시예에 따른, 이동 단말의 개략적인 구조도이다.
다음은 본 발명의 실시예들에서의 첨부 도면들을 참조하여 본 발명의 실시예들에서의 기술적 해결책들을 명확하게 그리고 완전하게 설명한다. 분명히, 설명된 실시예들은 본 발명의 실시예들의 전부가 아니라, 단지 일부이다. 창조적인 노력들 없이 본 발명의 실시예들에 기초하여 본 기술 분야의 통상의 기술자에 의해 획득된 모든 다른 실시예들은 본 발명의 보호 범위 내에 속할 것이다.
본 발명의 실시예들은 이하에서 별도로 설명될, 비디오 스트림의 데이터를 프로세싱하기 위한 방법, 장치, 및 시스템을 제공한다.
실시예 1
이 실시예에서, 설명은 비디오 스트림의 데이터를 프로세싱하기 위한 장치의 관점으로부터 행해진다. 비디오 스트림의 데이터를 프로세싱하기 위한 장치는 구체적으로 이동 단말 내에 통합될 수도 있고, 이동 단말은 구체적으로, 이동 전화 또는 태블릿 컴퓨터와 같은 디바이스일 수 있다.
비디오 스트림의 데이터를 프로세싱하기 위한 방법은: 다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득하고; 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 타겟 비디오 스트림을 플레이하는 것; 및 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우에, 플레이된 비디오를 플레이하기 위한 더 낮은 해상도의 비디오 스트림으로 스위칭하는 것을 포함한다.
도 1에서 도시된 바와 같이, 비디오 스트림의 데이터를 프로세싱하기 위한 방법의 특정 절차는 다음과 같을 수 있다.
101: 다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득함.
다수의 해상도들을 가지는 비디오 스트림들은 멀티-해상도(multi-resolution) 비디오 소스에 의해 제공될 수도 있고, 멀티-해상도 비디오 소스는 비디오 소스가 표준 화질, 고화질(high definition), 울트라 화질(ultra definition), 및 초고화질(ultra high definition)과 같은 다수의 타입들의 해상도를 가지는 비디오 스트림들을 제공한다는 것을 나타낸다. HLS 비디오 스트림 매체 프로토콜에서, 멀티-해상도 비디오 소스는, 다수의 상이한 m3u8 인덱스 파일들이 m3u8 인덱스 파일에서 네스팅(nesting)되고, 각각의 인덱스 파일이 상이한 비디오 해상도들에 대응한다는 것을 나타낸다.
비디오 소스 정보는 해상도 정보와 같은 정보, 및 해상도들에 대응하는 비디오 스트림들의 링크 어드레스들을 포함한다. 예를 들어, 해상도들이 오름차순으로, 평활(smooth), 표준 화질, 고화질, 초고화질과 같은 몇몇 레벨들로 분류될 경우, 이 경우에, 비디오 소스 정보는 "평활", "표준 화질", "고화질", 및 "초고화질"과 같은 해상도 정보를 포함할 수도 있고, "평활"에 대응하는 비디오 스트림의 링크 어드레스, "표준 화질"에 대응하는 비디오 스트림의 링크 어드레스, "고화질"에 대응하는 비디오 스트림의 링크 어드레스, "초고화질"에 대응하는 비디오 스트림의 링크 어드레스 등을 포함할 수 있다.
102: 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 타겟 비디오 스트림을 플레이함. 예를 들어, 단계는 구체적으로 다음과 같을 수 있다.
(1) 축약하여 플레이어로서 지칭된 비디오 플레이어를 생성함.
플레이어는 디지털 신호 형태로 저장된 비디오 스트림을 플레이할 수 있는 소프트웨어를 나타낸다.
(2) 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택함.
예를 들어, 해상도 정보가 "평활", "표준 화질", "고화질", 및 "초고화질"을 포함할 경우, 여기서, "초고화질"의 해상도가 가장 높고, 이 경우에, "초고화질"에 대응하는 비디오가 타겟 비디오로서 선택될 수 있다.
또 다른 예에 대하여, 해상도 정보가 "평활", "표준 화질", 및 "고화질"을 포함할 경우, 여기서, "고화질"의 해상도가 가장 높고, 이 경우에, "고화질"에 대응하는 비디오가 타겟 비디오로서 선택될 수 있다.
나머지는 유추에 의해 추론될 수 있다.
(3) 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 비디오 데이터를 취득함.
예를 들어, 구체적으로, 대응하는 m3u8 인덱스 파일은 타겟 비디오의 링크 어드레스에 따라 다운로드될 수도 있고, 그 다음으로, 대응하는 비디오 데이터는 m3u8 인덱스 파일에 따라 취득될 수 있다.
비디오 데이터는 비디오 스트림을 포함할 수도 있고, 비디오 스트림을 플레이하기 위하여 필요한 환경 정보(즉, 플레잉 환경 정보), 예를 들어, 필요한 대역폭, 소프트웨어 릴리즈(software release), 및/또는 이동 단말에 관한 하드웨어 요건과 같은 비디오 스트림의 대응하는 정보를 더 포함할 수 있다.
(4) 비디오를 플레이하기 위하여, 비디오 데이터에 따라 플레이어의 디코더를 생성함.
예를 들어, 구체적으로, 플레이어의 디코더는 비디오 데이터의 플레잉 환경 정보에 따라 생성될 수도 있고, 그 다음으로, 비디오 스트림은 디코더를 이용함으로써 디코딩되고, 디코딩된 비디오 스트림은 플레이어를 이용함으로써 플레이된다.
디코더는 디지털 비디오 스트림을 디코딩할 수 있는 프로그램 또는 디바이스를 나타내고, 하드웨어 디코더 및 소프트웨어 디코더를 포함한다. 하드웨어 디코더는 이동 전화의 디코딩 칩을 이용함으로써 디코딩을 수행하고; 소프트웨어 디코더는 소프트웨어 프로그램을 이용함으로써 디코딩을 수행하고; 그리고 하드웨어 디코더가 이용될 경우, 디코더를 생성하는 것은 하드웨어 디코더를 설정(초기화)하는 것을 나타내거나; 또는 소프트웨어 디코더가 이용될 경우, 디코더를 생성하는 것은 소프트웨어 디코더를 생성하고 설정하는 것을 나타낸다.
103: 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우에, 플레이된 비디오를 플레이하기 위한 더 낮은 해상도의 비디오 스트림으로 스위칭함. 예를 들어, 구체적으로, 단계는 다음과 같을 수 있다.
(1) 플레이어 자원 및 디코더를 해제함.
플레이어 자원은 플레이어 엔진 및 파서(parser)와 같은 자원들을 포함한다.
(2) 비디오 소스 정보에 따라, 더 낮은 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 비디오 데이터를 취득하는 단계(즉, 단계(102)에서의 단계 (2))를 실행하기 위하여 복귀함.
예를 들어, 원래 선택된 해상도가 "초고화질"인 것을 예로서 이용하면, 이 경우, 더 낮은 해상도를 가지는 비디오 스트림은 비디오 소스 정보에 따라 선택될 수도 있고, 즉, "고화질" 비디오 스트림이 타겟 비디오 스트림으로서 이용된 후, 대응하는 비디오 데이터는 "고화질" 비디오 스트림의 링크 어드레스에 따라 취득된다. 그 다음으로, 플레이어의 디코더는 비디오를 플레이하기 위하여, 비디오 데이터에 따라 생성된다. 나중에, 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우, 더 낮은 해상도를 가지는 비디오 스트림은 비디오 소스 정보에 따라 선택되고, 예를 들어, 선택된 비디오 스트림이 성공적으로 플레이될 수 있을 때까지, "표준 화질" 비디오 스트림이 타겟 비디오 스트림으로서 이용되는 등과 같다. 즉, 플레이어는 최고 해상도를 가지는 "초고화질" 비디오 스트림을 플레이하도록 먼저 시도하고, 이동 단말이 비디오 스트림을 정상적으로 플레이할 수 없을 경우, 이동 단말이 비디오를 정상적으로 플레이할 수 있을 때까지, 플레이어는 "울트라 화질" 비디오 스트림, "고화질" 비디오 스트림, "표준 화질" 비디오 스트림 등을 플레이하도록 시도하는 것을 계속한다.
임의적으로, 더 낮은 해상도를 가지는 비디오가 취득될 수 있는 것을 보장하고, 실행된 절차의 유효성에 영향을 주는 것을 회피하기 위하여, 플레이어 자원 및 디코더를 해제하기 전에, 더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부가 추가로 결정될 수도 있고, 긍정일 경우, 플레이어 자원 및 디코더를 해제하는 단계가 수행된다. 즉, "플레이어 자원 및 디코더를 해제하는" 단계 전에, 방법은 다음을 더 포함할 수 있다.
더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하고, 긍정일 경우, 플레이어 자원 및 디코더를 해제하는 단계를 수행하거나; 또는 부정일 경우, 에러 프롬프트(error prompt)를 전송하여, 예를 들어, 이동 단말의 스크린 상에, 비디오 라이브 브로드캐스트에서 에러가 있다는 프롬프트 정보를 디스플레이하는 것.
더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하기 위한 다수의 방법들, 예를 들어, 비디오 소스 정보에 따라, 더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하는 것; 또는 m3u8 인덱스 파일이 다운로드되었을 경우, m3u8 인덱스 파일에서 더 낮은 해상도를 가지는 네스팅된 비디오 스트림이 있는지 여부를 결정하는 것이 있을 수 있다.
이 실시예에서, 다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보가 취득되고; 최고 해상도를 가지는 비디오 스트림은 비디오 소스 정보에 따라 타겟 비디오 스트림으로서 선택되고, 타겟 비디오 스트림이 플레이되고; 그리고 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우, 현재의 플레잉 스테이터스에 따라 비디오 해상도를 자동으로 조절하는 목적을 달성하기 위하여, 플레이된 비디오가 플레이하기 위한 더 낮은 해상도의 비디오 스트림으로 스위칭되어, 라이브 비디오의 플레잉이 현재의 플레잉 환경에서 최적의 상태에 도달할 수 있음으로써, 라이브 비디오의 플레잉 품질을 대폭 개선시킬 수 있다는 것이 상기로부터 알게 될 수 있다.
실시예 2
실시예 1에서 설명된 방법에 따르면, 다음은 예들을 이용함으로써 상세한 설명을 추가로 행한다.
이 실시예에서, 비디오 스트림의 데이터를 프로세싱하기 위한 장치가 이동 단말 내에 구체적으로 통합되는 예를 이용함으로써 설명이 행해진다.
도 2에서 도시된 바와 같이, 비디오 스트림의 데이터를 프로세싱하기 위한 방법의 특정 절차는 다음과 같을 수도 있다:
201: 이동 단말은 다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득한다.
비디오 소스 정보는 해상도 정보와 같은 정보, 및 해상도들에 대응하는 비디오 스트림들의 링크 어드레스들을 포함한다. 예를 들어, 해상도들이 오름차순으로, 평활, 표준 화질, 고화질, 초고화질과 같은 몇몇 레벨들로 분류될 경우, 이 경우에, 비디오 소스 정보는 "평활", "표준 화질", "고화질", 및 "초고화질"과 같은 해상도 정보를 포함할 수도 있고, "평활"에 대응하는 비디오 스트림의 링크 어드레스, "표준 화질"에 대응하는 비디오 스트림의 링크 어드레스, "고화질"에 대응하는 비디오 스트림의 링크 어드레스, "초고화질"에 대응하는 비디오 스트림의 링크 어드레스 등을 포함할 수 있다.
202: 이동 단말은 비디오 플레이어를 생성한다.
예를 들어, 구체적으로, 플레이어에서의 기능적인 모듈들이 생성될 수도 있고, 플레이어의 사용자 인터페이스(user interface)(UI)가 생성될 수 있다. 플레이어의 UI는 다수의 부분들: 비디오 이미지를 디스플레이하는 영역, 사용자 동작가능한 제어 바 영역, 및 플레잉 에러 프롬프트를 디스플레이하기 위한 영역을 포함하는, 비디오 플레이어에서의 사용자 가시적 인터페이스를 나타낸다.
203: 이동 단말은 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택한다.
예를 들어, 해상도 정보가 "평활", "표준 화질", "고화질", 및 "초고화질"을 포함할 경우, 여기서, "초고화질"의 해상도가 가장 높고, 이 경우에, "초고화질"에 대응하는 비디오는 타겟 비디오로서 선택될 수 있다.
또 다른 예에 대하여, 해상도 정보가 "평활", "표준 화질", 및 "고화질"을 포함할 경우, 여기서, "고화질"의 해상도가 가장 높고, 이 경우에, "고화질"에 대응하는 비디오는 타겟 비디오로서 선택될 수 있다.
나머지는 유추에 의해 추론될 수 있다.
204: 이동 단말은 타겟 비디오의 링크 어드레스에 따라 대응하는 m3u8 인덱스 파일을 다운로드한다.
205: 이동 단말은 m3u8 인덱스 파일에 따라, 선택된 해상도에 대응하는 비디오 데이터를 취득한다.
비디오 데이터는 비디오 스트림, 및 비디오 스트림을 플레이하기 위하여 필요한 환경 정보(즉, 플레잉 환경 정보), 예를 들어, 필요한 대역폭, 소프트웨어 릴리즈, 및/또는 이동 단말에 관한 하드웨어 요건과 같은 비디오 스트림의 대응하는 정보를 포함할 수 있다.
206: 이동 단말은 비디오를 플레이하기 위하여, 비디오 데이터에 따라 플레이어의 디코더를 생성한다.
예를 들어, 구체적으로, 플레이어의 디코더는 비디오 데이터의 플레잉 환경 정보에 따라 생성될 수도 있고, 그 다음으로, 비디오 스트림은 디코더를 이용함으로써 디코딩되고, 디코딩된 비디오 스트림은 플레이어를 이용함으로써 플레이된다.
플레잉 프로세스 동안, 오디오-비디오 동기화가 고려된다는 것을 전제로 하여, 플레이어는 오디오 및 비디오를 별도로 디코딩할 수도 있고, 그 다음으로, 디코딩된 비디오 이미지를 이동 전화의 스크린으로 출력할 수도 있고, 디코딩된 오디오 데이터를 이동 전화의 라우드스피커로 출력할 수도 있고; 세부사항들은 본원에서 다시 설명되지 않는다.
207: 이동 단말은 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생하는지 여부를 결정하고, 긍정일 경우, 단계(208)를 수행하거나; 또는 그렇지 않을 경우, 플레잉이 종료될 때까지 플레이하는 것을 계속한다.
208: 이동 단말은 더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하고, 긍정일 경우, 단계(210)를 수행하거나; 또는 그렇지 않을 경우, 단계(209)를 수행하는 것을 계속한다.
예를 들어, 이동 단말은 구체적으로, 다운로드된 m3u8 인덱스 파일에서 더 낮은 해상도를 가지는 네스팅된 비디오 스트림이 있는지 여부를 결정할 수도 있고, 긍정일 경우, 단계(210)를 수행하거나; 또는 그렇지 않을 경우, 단계(209)를 수행한다.
209: 이동 단말은 에러 프롬프트를 전송하여, 예를 들어, 이동 단말의 스크린 상에, 비디오 라이브 브로드캐스트에서 에러가 있다는 프롬프트 정보를 디스플레이하고, 플레잉은 종료된다.
210: 이동 단말은 플레이어 엔진 및 파서와 같은 플레이어 자원을 해제하고, 디코더를 해제한다.
211: 이동 단말은 비디오 소스 정보에 따라, 더 낮은 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, m3u8 인덱스 파일에 따라, 선택된 해상도에 대응하는 비디오 데이터를 취득하는 단계를 수행하기 위하여 복귀하고, 즉, 단계(205)를 수행하기 위하여 복귀한다.
예를 들어, 원래 선택된 비디오 스트림이 "초고화질"의 해상도를 가지는 비디오 스트림일 경우, 이 경우에, "고화질"의 해상도를 가지는 비디오 스트림과 같은, 더 낮은 해상도를 가지는 비디오 스트림은 타겟 비디오 스트림으로서 선택될 수 있다.
또 다른 예에 대하여, 원래 선택된 비디오 스트림이 "고화질"의 해상도를 가지는 비디오 스트림일 경우, 이 경우에, "표준 화질"의 해상도를 가지는 비디오 스트림과 같은, 더 낮은 해상도를 가지는 비디오 스트림은 타겟 비디오 스트림으로서 선택될 수 있다.
나머지는 유추에 의해 추론될 수 있다.
이 실시예에서는, 다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보가 취득되고; 최고 해상도를 가지는 비디오 스트림은 비디오 소스 정보에 따라 타겟 비디오 스트림으로서 선택되고, 타겟 비디오 스트림이 플레이되고; 그리고 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우, 플레이된 비디오는 플레이하기 위한 더 낮은 해상도를 가지는 비디오 스트림으로 스위칭된다는 것이 상기로부터 알게 될 수 있다. 즉, 이 해결책에서, 플레이어는 최고 해상도를 가지는 비디오 스트림을 플레이하도록 먼저 시도할 수도 있고, 그리고 이동 단말이 비디오 스트림을 정상적으로 플레이할 수 없을 경우, 그 다음으로, 현재의 플레잉 스테이터스에 따라 비디오 해상도를 자동으로 조절하는 목적을 달성하기 위하여, 이동 단말이 라이브 비디오를 정상적으로 플레이할 수 있을 때까지, 플레이어는 더 낮은 해상도들을 가지는 비디오 스트림들을 오름차순으로 플레이하도록 시도하는 것을 계속하여, 라이브 비디오의 플레잉이 현재의 플레잉 환경에서 최적의 상태에 도달할 수 있음으로써, 라이브 비디오의 플레잉 품질을 대폭 개선시킬 수 있다.
실시예 3
상기한 방법을 더욱 양호하게 구현하기 위하여, 본 발명의 이 실시예는 비디오 스트림 데이터를 프로세싱하기 위한 장치를 추가로 제공한다. 도 3에서 도시된 바와 같이, 비디오 스트림 데이터를 프로세싱하기 위한 장치는 정보 취득 유닛(301), 프로세싱 유닛(302), 및 스위칭 유닛(303)을 포함할 수 있다.
정보 취득 유닛(301)은 다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득하도록 구성된다.
비디오 소스 정보는 해상도 정보와 같은 정보, 및 해상도들에 대응하는 비디오 스트림들의 링크 어드레스들을 포함한다. 예를 들어, 해상도들이 오름차순으로, 평활, 표준 화질, 고화질, 초고화질과 같은 몇몇 레벨들로 분류될 경우, 이 경우에, 비디오 소스 정보는 "평활", "표준 화질", "고화질", 및 "초고화질"과 같은 해상도 정보를 포함할 수도 있고, "평활"에 대응하는 비디오 스트림의 링크 어드레스, "표준 화질"에 대응하는 비디오 스트림의 링크 어드레스, "고화질"에 대응하는 비디오 스트림의 링크 어드레스, "초고화질"에 대응하는 비디오 스트림의 링크 어드레스 등을 포함할 수 있다.
프로세싱 유닛(302)은 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 타겟 비디오 스트림을 플레이하도록 구성된다.
스위칭 유닛(303)은 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우에, 플레이된 비디오를 플레이하기 위한 더 낮은 해상도의 비디오 스트림으로 스위칭하도록 구성된다.
예를 들어, 프로세싱 유닛(302)은 생성 서브유닛, 취득 서브유닛, 및 플레잉 서브유닛을 포함할 수 있다.
생성 서브유닛은 플레이어를 생성하고, 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하도록 구성된다.
예를 들어, 해상도 정보가 "평활", "표준 화질", "고화질", 및 "초고화질"을 포함할 경우, 여기서, "초고화질"의 해상도가 가장 높고, 이 경우에, "초고화질"에 대응하는 비디오는 타겟 비디오로서 선택될 수 있다.
또 다른 예에 대하여, 해상도 정보가 "평활", "표준 화질", 및 "고화질"을 포함할 경우, 여기서, "고화질"의 해상도가 가장 높고, 이 경우에, "고화질"에 대응하는 비디오는 타겟 비디오로서 선택될 수 있다.
나머지는 유추에 의해 추론될 수 있다.
데이터 취득 서브유닛은 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 비디오 데이터를 취득하도록 구성된다.
예를 들어, 데이터 취득 서브유닛은 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 m3u8 인덱스 파일을 다운로드하고, m3u8 인덱스 파일에 따라 대응하는 비디오 데이터를 취득하도록 구체적으로 구성될 수 있다.
비디오 데이터는 비디오 스트림을 포함할 수도 있고, 비디오 스트림을 플레이하기 위하여 필요한 환경 정보(즉, 플레잉 환경 정보), 예를 들어, 필요한 대역폭, 소프트웨어 릴리즈, 및/또는 이동 단말에 관한 하드웨어 요건과 같은 비디오 스트림의 대응하는 정보를 더 포함할 수 있다.
플레잉 서브유닛은 비디오를 플레이하기 위하여, 비디오 데이터에 따라 플레이어의 디코더를 생성하도록 구성된다.
예를 들어, 플레잉 서브유닛은 비디오 데이터의 플레잉 환경 정보에 따라 플레이어의 디코더를 생성하고, 그 다음으로, 디코더를 이용함으로써 비디오 스트림을 디코딩하고, 플레이어를 이용함으로써 디코딩된 비디오 스트림을 플레이하도록 구체적으로 구성될 수 있다.
스위칭 유닛은 플레이어 자원 및 디코더를 해제하고, 더 낮은 해상도를 가지는 비디오 스트림을 선택하고, 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 비디오 데이터를 취득하는 동작을 실행하도록 데이터 취득 서브유닛을 트리거링하도록 구체적으로 구성된다.
예를 들어, 원래 선택된 비디오 스트림이 "초고화질"의 해상도를 가지는 비디오 스트림일 경우, 이 경우에, "고화질"의 해상도를 가지는 비디오 스트림은 타겟 비디오 스트림으로서 선택될 수 있다.
임의적으로, 더 낮은 해상도를 가지는 비디오가 취득될 수 있는 것을 보장하고, 수행된 절차의 유효성에 영향을 주는 것을 회피하기 위하여, 플레이어 자원 및 디코더를 해제하기 전에, 더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부가 추가로 결정될 수도 있고, 긍정일 경우, 플레이어 자원 및 디코더를 해제하는 단계가 수행된다.
스위칭 유닛(303)은 더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하고, 긍정일 경우, 플레이어 자원 및 디코더를 해제하는 단계를 수행하거나; 또는 그렇지 않을 경우, 에러 프롬프트를 전송하여, 예를 들어, 이동 단말의 스크린 상에, 비디오 라이브 브로드캐스트에서 에러가 있다는 프롬프트 정보를 디스플레이하도록 추가로 구성될 수 있다.
더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하기 위한 다수의 방법들, 예를 들어, 비디오 소스 정보에 따라, 더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하는 것; 또는 m3u8 인덱스 파일이 다운로드되었을 경우, m3u8 인덱스 파일에서 더 낮은 해상도를 가지는 네스팅된 비디오 스트림이 있는지 여부를 결정하는 것이 있을 수 있다.
특정 구현 동안, 상기한 유닛들은 독립적인 엔티티들로서 구현될 수도 있거나, 무작위적 조합을 통해 하나 이상의 엔티티들로서 구현될 수 있다. 상기한 유닛들의 특정 구현을 위하여, 상기 방법 실시예들을 참조하고, 세부사항들은 본원에서 다시 설명되지 않는다.
비디오 스트림의 데이터를 프로세싱하기 위한 장치는 구체적으로 이동 단말 내에 통합될 수도 있고, 이동 단말은 구체적으로, 이동 전화 또는 태블릿 컴퓨터와 같은 디바이스일 수 있다.
이 실시예의 비디오 스트림의 데이터를 프로세싱하기 위한 장치에서, 정보 취득 유닛(301)은 다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득할 수도 있고; 플레잉 유닛(302)은 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 타겟 비디오 스트림을 플레이하고; 그리고 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우, 스위칭 유닛(303)은 현재의 플레잉 스테이터스에 따라 비디오 해상도를 자동으로 조절하는 목적을 달성하기 위하여, 플레이된 비디오를 플레이하기 위한 더 낮은 해상도의 비디오 스트림으로 스위칭하여, 라이브 비디오의 플레잉이 현재의 플레잉 환경에서 최적의 상태에 도달할 수 있음으로써, 라이브 비디오의 플레잉 품질을 대폭 개선시킬 수 있다는 것이 상기로부터 알게 될 수 있다.
실시예 4
대응하게도, 본 발명의 이 실시예는, 본 발명의 실시예들에 의해 제공된 비디오 스트림의 데이터를 프로세싱하기 위한 임의의 장치를 포함하는, 비디오 스트림의 데이터를 프로세싱하기 위한 시스템을 추가로 제공한다. 세부사항들에 대하여 실시예 3을 참조한다. 비디오 스트림의 데이터를 프로세싱하기 위한 장치는 구체적으로 이동 단말 내에 통합될 수도 있고, 이동 단말은 구체적으로, 이동 전화 또는 태블릿 컴퓨터와 같은 디바이스일 수 있다.
비디오 스트림의 데이터를 프로세싱하기 위한 장치가 구체적으로 이동 단말 내에 통합될 수도 있는 예를 이용하면, 세부사항들은 구체적으로 다음과 같을 수 있다.
이동 단말은 다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득하고; 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 타겟 비디오 스트림을 플레이하고; 그리고 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우, 플레이된 비디오를 플레이하기 위한 더 낮은 해상도의 비디오 스트림으로 스위칭하도록 구성된다.
비디오 소스 정보는 해상도 정보와 같은 정보, 및 해상도들에 대응하는 비디오 스트림들의 링크 어드레스들을 포함한다.
예를 들어, 이동 단말은 다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득하고; 플레이어를 생성하고; 비디오 소스 정보에 따라 최고 해상도를 가지는 비디오 스트림을 선택하고; 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 비디오 데이터를 취득하고; 그 다음으로, 비디오를 플레이하기 위하여 비디오 데이터에 따라 플레이어의 디코더를 생성하고; 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우, 플레이어 자원 및 디코더를 해제하고; 비디오 소스 정보에 따라, 더 낮은 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고; 그리고 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 비디오 데이터를 취득하는 동작을 수행하기 위하여 복귀하도록 구체적으로 구성될 수 있다.
임의적으로, 더 낮은 해상도를 가지는 비디오가 취득될 수 있는 것을 보장하고, 수행된 절차의 유효성에 영향을 주는 것을 회피하기 위하여, 플레이어 자원 및 디코더를 해제하기 전에, 더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부가 추가로 결정될 수도 있고, 긍정일 경우, 플레이어 자원 및 디코더를 해제하는 동작이 수행된다.
더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하기 위한 다수의 방법들, 예를 들어, 비디오 소스 정보에 따라, 더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하는 것; 또는 m3u8 인덱스 파일이 다운로드되었을 경우, m3u8 인덱스 파일에서 더 낮은 해상도를 가지는 네스팅된 비디오 스트림이 있는지 여부를 결정하는 것이 있을 수 있다.
게다가, 비디오 스트림의 데이터를 프로세싱하기 위한 시스템은 다음과 같이 서버와 같은 다른 디바이스들을 더 포함할 수 있다.
서버는 이동 단말을 위한 다수의 해상도들을 가지는 비디오 스트림들을 제공하도록 구성된다.
상기한 동작들의 특정 구현을 위한 상기 실시예들을 참조하고, 세부사항들은 본원에서 다시 설명되지 않는다.
비디오 스트림의 데이터를 프로세싱하기 위한 시스템은 본 발명의 실시예들에서 제공된 비디오 스트림의 데이터를 프로세싱하기 위한 임의의 장치를 포함할 수도 있고, 그러므로, 본 발명의 실시예들에서 제공된 비디오 스트림의 데이터를 프로세싱하기 위한 임의의 장치를 이용함으로써 구현될 수 있는 유익한 효과들을 달성할 수 있다. 특정 내용에 대한 상기한 실시예들을 참조하고, 세부사항들은 본원에서 다시 설명되지 않는다.
실시예 5
대응하게도, 본 발명의 이 실시예는 이동 단말을 추가로 제공한다. 도 4에서 도시된 바와 같이, 이동 단말은 무선 주파수(radio frequency)(RF) 회로(401), 하나 이상의 컴퓨터 판독가능 저장 매체들을 포함하는 메모리(402), 입력 유닛(403), 디스플레이 유닛(404), 센서(405), 오디오 회로(406), 무선 충실도(wireless fidelity)(WiFi) 모듈(407), 하나 이상의 프로세싱 코어들을 포함하는 프로세서(408), 및 전력 공급 장치(409)와 같은 컴포넌트들을 포함할 수 있다. 본 기술 분야의 통상의 기술자는, 도 4에서 도시된 이동 단말 구조가 이동 단말을 제한하지 않고, 도면들에서의 것들보다 더 많거나 더 적은 컴포넌트들, 또는 일부 컴포넌트들의 조합, 또는 상이한 컴포넌트 전개를 포함할 수도 있다는 것을 이해할 수 있다.
RF 회로(401)는 정보 수신 및 전송 프로세스 또는 호출 프로세스 동안에 신호들을 수신하고 전송하도록 구성될 수 있다. 특히, RF 회로(401)는 기지국으로부터 다운링크 정보를 수신하고, 그 다음으로, 다운링크 정보를, 프로세싱하기 위한 하나 이상의 프로세서들(680)로 전달하고, 관련된 업링크 데이터를 기지국으로 전송한다. 일반적으로, RF 회로(401)는 안테나, 적어도 하나의 증폭기, 튜너, 하나 이상의 발진기들, 가입자 식별 모듈(subscriber identity module)(SIM) 카드, 트랜시버, 커플러, 저잡음 증폭기(low noise amplifier)(LNA), 듀플렉서 등을 포함하지만, 이것으로 제한되지는 않는다. 게다가, RF 회로(401)는 또한, 무선 통신에 의해 네트워크 및 또 다른 디바이스와 통신할 수 있다. 무선 통신은, 이동 통신을 위한 글로벌 시스템(global system for mobile communication)(GSM), 일반 패킷 무선 서비스(general packet radio service)(GPRS), 코드 분할 다중 액세스(code division multiple access)(CDMA), 광대역 코드 분할 다중 액세스(wideband code division multiple access)(WCDMA), 롱텀 에볼루션(long term evolution)(LTE), 이메일(email), 단문 메시징 서비스(short messaging service)(SMS) 등을 포함하지만, 이것으로 제한되지 않는 임의의 통신 표준 또는 프로토콜을 이용할 수 있다.
메모리(402)는 소프트웨어 프로그램 및 모듈을 저장하도록 구성될 수도 있고, 프로세서(408)는 다양한 기능적인 애플리케이션들 및 데이터 프로세싱을 수행하기 위하여, 메모리(402) 내에 저장되는 소프트웨어 프로그램 및 모듈을 작동시킨다. 메모리(402)는 프로그램 저장 영역 및 데이터 저장 영역을 주로 포함할 수 있다. 프로그램 저장 영역은 오퍼레이팅 시스템, (오디오 플레이백 기능 및 이미지 디스플레이 기능과 같은) 적어도 하나의 기능에 의해 필요하게 된 애플리케이션 프로그램들을 저장할 수 있다. 데이터 저장 영역은 이동 단말의 이용에 따라 생성된 (오디오 데이터 및 주소록과 같은) 데이터를 저장할 수 있다. 게다가, 메모리(402)는 고속 랜덤 액세스 메모리를 포함할 수도 있고, 적어도 하나의 자기 디스크 저장 디바이스, 플래시 메모리, 또는 또 다른 휘발성 솔리드-스테이트(solid-state) 저장 디바이스와 같은 비-휘발성 메모리를 더 포함할 수 있다. 대응하게도, 메모리(402)는 메모리(402)에 대한 프로세서(408) 및 입력 유닛(403)의 액세스를 제공하기 위하여, 메모리 제어기를 더 포함할 수 있다.
입력 유닛(403)은 입력 숫자 또는 문자 정보를 수신하고, 사용자 설정 및 기능 제어에 관련된 키보드, 마우스, 조이스틱, 광학, 또는 트랙볼 신호 입력을 생성하도록 구성될 수 있다. 구체적으로, 특정 실시예에서, 입력 유닛(403)은 터치-감지 표면 및 또 다른 입력 디바이스를 포함할 수 있다. 터치 스크린 또는 터치 패널로서 또한 지칭될 수도 있는 터치-감지 표면은 (손가락 또는 스타일러스와 같은 임의의 적당한 객체 또는 액세서리를 이용함으로써 터치-감지 표면 상에서의, 또는 그 근처에서의 사용자의 동작과 같은) 터치-감지 표면 상에서의, 또는 그 근처에서의 사용자의 터치 동작을 수집할 수도 있고, 사전설정된 프로그램에 따라 대응하는 접속 장치를 구동할 수 있다. 임의적으로, 터치-감지 표면은 2개의 부분: 터치 검출 장치 및 터치 제어기를 포함할 수 있다. 터치 검출 장치는 사용자의 터치 위치를 검출하고, 터치 동작에 의해 생성된 신호를 검출하고, 신호를 터치 제어기로 전송한다. 터치 제어기는 터치 검출 장치로부터 터치 정보를 수신하고, 터치 정보를 터치 포인트 좌표들로 변환하고, 터치 포인트 좌표들을 프로세서(408)로 전송한다. 또한, 터치 제어기는 프로세서(408)로부터 전송된 커맨드를 수신할 수 있고 실행할 수 있다. 게다가, 터치-감지 표면은 저항, 용량성, 적외선, 또는 표면 음파 타입 터치-감지 표면일 수 있다. 터치-감지 표면에 추가하여, 입력 유닛(403)은 또 다른 입력 디바이스를 더 포함할 수 있다. 구체적으로, 또 다른 입력 디바이스(132)는 물리적 키보드, (음량 제어 키 또는 스위치 키와 같은) 기능 키, 트랙볼, 마우스, 및 조이스틱 중의 하나 이상을 포함할 수도 있지만, 이것으로 제한되지 않는다.
디스플레이 유닛(404)은 사용자에 의해 입력된 정보 또는 사용자를 위하여 제공된 정보, 및 이동 단말의 다양한 그래픽 사용자 인터페이스들을 디스플레이하도록 구성될 수 있다. 그래픽 사용자 인터페이스들은 그래프, 텍스트, 아이콘, 비디오, 또는 그 임의의 조합에 의해 형성될 수 있다. 디스플레이 유닛(404)은 디스플레이 패널을 포함할 수 있다. 임의적으로, 디스플레이 패널은 액정 디스플레이(liquid crystal display)(LCD), 유기 발광 다이오드(organic light-emitting diode)(OLED) 등을 이용함으로써 구성될 수 있다. 또한, 터치-감지 표면은 디스플레이 패널을 커버할 수 있다. 터치-감지 표면 상에서, 또는 그 근처에서 터치 동작을 검출한 후, 터치-감지 표면은 터치 이벤트의 타입을 결정하기 위하여, 터치 동작을 프로세서(408)로 전송한다. 그 다음으로, 프로세서(408)는 터치 이벤트의 타입에 따라 디스플레이 패널 상에서 대응하는 시각적 출력을 제공한다. 도 4에서는, 터치-감지 표면 및 디스플레이 패널이 입력 및 출력 기능들을 구현하기 위하여 2개의 별도의 부분으로서 이용되지만, 일부 실시예들에서, 터치-감지 표면 및 디스플레이 패널은 입력 및 출력 기능들을 구현하기 위하여 통합될 수 있다.
이동 단말은 광학 센서, 모션 센서, 및 다른 센서들과 같은 적어도 하나의 센서(405)를 더 포함할 수 있다. 구체적으로, 광학 센서는 주변 광 센서 및 근접 센서를 포함할 수 있다. 주변 광 센서는 주변 광의 밝기에 따라 디스플레이 패널의 휘도를 조절할 수 있다. 근접 센서는 이동 단말이 귀로 이동될 때에 디스플레이 패널 및/또는 백라이트를 스위칭 오프 할 수 있다. 하나의 타입의 모션 센서로서, 중력 가속도 센서는 다양한 방향들에서(일반적으로 3개의 축 상에서) 가속도들의 크기를 검출할 수 있고, 정적일 때에 가속도의 크기 및 방향을 검출할 수도 있고, 이동 전화의 자세(예를 들어, 풍경 방위와 인물 방위 사이의 스위칭, 관련된 게임, 및 자력계 자세 교정)를 인식하는 애플리케이션, (보수계(pedometer) 및 노크(knock)와 같은) 진동 인식에 관련된 기능 등에 적용될 수 있다. 이동 단말에서 구성될 수도 있는 자이로스코프(gyroscope), 기압계, 습도계, 온도계, 적외선 센서와 같은 다른 센서들은 본원에서 추가로 설명되지 않는다.
오디오 회로(406), 라우드스피커, 및 마이크로폰은 사용자와 이동 단말 사이의 오디오 인터페이스들을 제공할 수 있다. 오디오 회로(406)는 수신된 오디오 데이터를 전기 신호로 변환할 수도 있고, 전기 신호를 라우드스피커로 송신할 수 있다. 라우드스피커는 전기 신호를 출력을 위한 사운드 신호로 변환한다. 다른 한편으로, 마이크로폰은 수집된 사운드 신호를 전기 신호로 변환한다. 오디오 회로(406)는 전기 신호를 수신하고 전기 신호를 오디오 데이터로 변환하고, 오디오 데이터를, 프로세싱을 위하여 프로세서(408)로 출력한다. 그 다음으로, 프로세서(408)는 RF 회로(401)를 이용함으로써, 오디오 데이터를 예를 들어, 또 다른 이동 단말로 전송하거나, 오디오 데이터를 추가의 프로세싱을 위하여 메모리(402)로 출력한다. 오디오 회로(406)는 주변기기 이어폰과 이동 단말 사이의 통신을 제공하기 위하여, 이어플러그 잭(earplug jack)을 더 포함할 수 있다.
WiFi는 단거리 무선 송신 기술이다. 이동 단말은 WiFi 모듈(407)을 이용함으로써, 사용자가 이-메일들을 수신하고 전송하고, 웹페이지를 브라우징하고, 스트리밍 매체들을 액세스하는 등을 도울 수도 있고, 이것은 사용자를 위한 무선 광대역 인터넷 액세스를 제공한다. 도 4는 WiFi 모듈(407)을 도시하지만, WiFi 모듈(407)은 이동 단말의 필요한 컴포넌트가 아니고, 요구될 때, WiFi 모듈(407)은 본 개시내용의 핵심의 범위가 변경되지 않기만 하면, 생략될 수도 있다는 것이 이해될 수 있다.
프로세서(408)는 이동 단말의 제어 센터이고, 다양한 인터페이스들 및 라인들을 이용함으로써 이동 전화의 다양한 부분들에 접속된다. 메모리(402) 내에 저장된 소프트웨어 프로그램 및/또는 모듈을 작동시키거나 실행함으로써, 그리고 메모리(402) 내에 저장된 데이터를 호출함으로써, 프로세서(408)는 이동 단말의 다양한 기능들 및 데이터 프로세싱을 수행함으로써, 이동 전화에 대한 전체적인 모니터링을 수행한다. 임의적으로, 프로세서(408)는 하나 이상의 프로세싱 코어들을 포함할 수 있다. 바람직하게는, 프로세서(408)가 애플리케이션 프로세서 및 모뎀을 통합할 수 있다. 애플리케이션 프로세서는 오퍼레이팅 시스템, 사용자 인터페이스, 애플리케이션 프로그램 등을 주로 프로세싱한다. 모뎀은 무선 통신을 주로 프로세싱한다. 상기한 모뎀은 프로세서(408) 내로 통합되지 않을 수도 있다는 것이 이해될 수 있다.
이동 단말은 전력을 컴포넌트들에 공급하기 위한 (배터리와 같은) 전력 공급 장치(409)를 더 포함한다. 바람직하게, 전력 공급 장치는 전력 공급 장치 관리 시스템을 이용함으로써 프로세서(408)에 논리적으로 접속될 수도 있음으로써, 전력 관리 시스템을 이용함으로써 충전, 방전, 및 전력 소비 관리와 같은 기능들을 구현할 수 있다. 전력 공급 장치(409)는 하나 이상의 직류 또는 교류 전력 공급 장치들, 재충전 시스템, 전력 고장 검출 회로, 전력 공급 변환기 또는 인버터, 전력 공급 상태 표시기, 및 임의의 다른 컴포넌트들을 더 포함할 수 있다.
도면에서 도시되지 않았지만, 이동 단말은 본원에서 추가로 설명되지 않는 카메라, 블루투스 모듈 등을 더 포함할 수 있다. 구체적으로, 이 실시예에서, 이동 단말에서의 프로세서(408)는 다음의 명령에 따라, 하나 이상의 애플리케이션 프로그램들의 프로세스들에 대응하는 실행가능 파일들을 메모리(402) 내로 로딩할 수도 있고, 프로세서(408)는 다음을 포함하는 다양한 기능을 구현하도록, 메모리(402) 내에 저장된 애플리케이션 프로그램을 작동시킨다:
다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득하고; 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 타겟 비디오 스트림을 플레이하는 것; 및 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우에, 플레이된 비디오를 플레이하기 위한 더 낮은 해상도의 비디오 스트림으로 스위칭하는 것.
비디오 소스 정보는 해상도 정보와 같은 정보, 및 해상도들에 대응하는 비디오 스트림들의 링크 어드레스들을 포함한다.
"비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 타겟 비디오 스트림을 플레이하는" 단계는 구체적으로 다음을 포함할 수도 있다:
플레이어를 생성하고; 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고; 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 비디오 데이터를 취득하고; 그 다음으로, 비디오를 플레이하기 위하여, 비디오 데이터에 따라 플레이어의 디코더를 생성하는 것.
"플레이된 비디오를, 플레이하기 위한 낮은 해상도를 가지는 비디오 스트림으로 스위칭하는" 단계는 구체적으로 다음을 포함할 수도 있다:
플레이어 자원 및 디코더를 해제하고, 비디오 소스 정보에 따라, 더 낮은 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 비디오 데이터를 취득하는 동작을 수행하기 위하여 복귀하는 것.
임의적으로, 더 낮은 해상도를 가지는 비디오가 취득될 수 있는 것을 보장하고, 수행된 절차의 유효성이 영향을 받는 것을 회피하기 위하여, 플레이어 자원 및 디코더를 해제하기 전에, 더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부가 추가로 결정될 수도 있고, 긍정일 경우, 플레이어 자원 및 디코더를 해제하는 동작이 수행된다.
더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하기 위한 다수의 방법들, 예를 들어, 비디오 소스 정보에 따라, 더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하는 것; 또는 m3u8 인덱스 파일이 다운로드될 경우, m3u8 인덱스 파일에서 하나의 레벨에 대한 더 낮은 네스팅된 비디오 스트림이 있는지 여부를 결정하는 것이 있을 수 있다.
상기한 특정 동작들에 대한 상기한 실시예들을 참조하고, 세부사항들은 본원에서 다시 설명되지 않는다.
이 실시예의 이동 단말은 다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득할 수 있고; 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택할 수 있고, 타겟 비디오 스트림을 플레이할 수 있고; 그리고 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우, 현재의 플레잉 상황에 따라 비디오 해상도를 자동으로 조절하는 목적을 달성하기 위하여, 플레이된 비디오를 플레이하기 위한 더 낮은 해상도의 비디오 스트림으로 스위칭할 수도 있어서, 라이브 비디오의 플레잉이 현재의 플레잉 환경에서 최상의 스테이터스에 도달할 수 있음으로써, 라이브 비디오의 플레잉 품질을 대폭 개선시킬 수 있다는 것이 상기로부터 알게 될 수 있다.
본 기술 분야의 통상의 기술자는 상기한 실시예들의 단계들의 전부 또는 일부가 하드웨어를 이용함으로써 구현될 수도 있거나, 관련된 하드웨어에 명령하는 프로그램에 의해 구현될 수도 있다는 것을 이해할 수 있다. 프로그램은 컴퓨터 판독가능 저장 매체 내에 저장될 수 있다. 저장 매체는 판독전용 메모리(ROM, Read Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 자기 디스크, 광학 디스크 등일 수 있다.
본 발명의 실시예들에서 제공된 비디오 스트림의 데이터를 프로세싱하기 위한 방법, 장치, 및 시스템은 위에서 상세하게 설명되어 있다. 본 발명의 원리 및 구현은 특정 예들을 통해 본원에서 설명되어 있다. 본 발명의 실시예들에 대한 설명은 본 발명의 방법 및 핵심 사상들을 이해하는 것을 돕기 위하여 단지 제공된다. 게다가, 본 기술 분야의 통상의 기술자들은 본 발명의 사상들에 따라 특정 구현들 및 애플리케이션 범위들의 측면에서 본 발명에 대한 변형들 및 수정들을 행할 수 있다. 그러므로, 명세서의 내용은 본 발명에 대한 제한으로서 해석되지 않을 것이다.

Claims (13)

  1. 비디오 스트림 데이터를 프로세싱하기 위한 방법으로서,
    단말에 의해, 다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득하는 단계;
    상기 단말에 의해, 상기 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 상기 타겟 비디오 스트림을 플레이(play)하는 단계;
    상기 단말에 의해, 네트워크 에러 또는 디코딩 에러가 플레잉 프로세스(playing process)에서 발생할 경우, 더 낮은 해상도의 비디오 스트림으로 스위칭하는 단계; 및
    상기 단말에 의해, 상기 더 낮은 해상도의 비디오 스트림을 플레이하는 단계
    를 포함하고,
    상기 비디오 소스 정보가 해상도 정보 및 상기 해상도들에 대응하는 비디오 스트림들의 링크 어드레스들을 포함할 경우, 상기 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 상기 타겟 비디오 스트림을 플레이하는 단계는:
    플레이어를 생성하고, 상기 비디오 소스 정보에 따라, 상기 최고 해상도를 가지는 상기 비디오 스트림을 상기 타겟 비디오 스트림으로서 선택하는 단계;
    상기 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 비디오 데이터를 취득하는 단계; 및
    상기 대응하는 비디오 데이터에 따라 상기 플레이어의 디코더를 생성하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 플레이하기 위한 더 낮은 해상도의 비디오 스트림으로 스위칭하는 단계는:
    플레이어 자원 및 상기 디코더를 해제(releasing)하는 단계; 및
    상기 비디오 소스 정보에 따라, 상기 더 낮은 해상도를 가지는 상기 비디오 스트림을 상기 타겟 비디오 스트림으로서 선택하고, 상기 타겟 비디오 스트림의 상기 링크 어드레스에 따라 상기 대응하는 비디오 데이터를 취득하는 단계로 복귀하는 단계를 포함하는, 방법.
  3. 제2항에 있어서, 플레이어 자원 및 상기 디코더를 해제하기 전에,
    더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하는 단계; 및
    상기 더 낮은 해상도를 가지는 상기 비디오 스트림이 있을 경우, 상기 플레이어 자원 및 상기 디코더를 해제하는 단계; 또는
    상기 더 낮은 해상도를 가지는 비디오 스트림이 없을 경우, 에러 프롬프트(error prompt)를 전송하는 단계를 더 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 비디오 데이터를 취득하는 단계는:
    상기 타겟 비디오 스트림의 상기 링크 어드레스에 따라 대응하는 m3u8 인덱스 파일을 다운로드하는 단계; 및
    상기 m3u8 인덱스 파일에 따라 상기 대응하는 비디오 데이터를 취득하는 단계를 포함하는, 방법.
  5. 비디오 스트림 데이터를 프로세싱하기 위한 단말로서,
    프로세서 및 상기 프로세서에 의해 실행되는 복수의 프로그램 유닛을 저장하는 메모리를 포함하고, 상기 복수의 프로그램 유닛은:
    다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득하도록 구성된 정보 취득 유닛;
    상기 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 상기 타겟 비디오 스트림을 플레이하도록 구성된 프로세싱 유닛; 및
    네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우에 더 낮은 해상도의 비디오 스트림으로 스위칭하고, 상기 더 낮은 해상도의 비디오 스트림을 디스플레이하도록 구성된 스위칭 유닛
    을 포함하고,
    상기 비디오 소스 정보는 해상도 정보, 및 상기 해상도들에 대응하는 비디오 스트림들의 링크 어드레스들을 포함하고, 상기 프로세싱 유닛은 생성 서브유닛, 취득 서브유닛, 및 플레잉 서브유닛을 포함하고;
    상기 생성 서브유닛은 플레이어를 생성하고, 상기 비디오 소스 정보에 따라, 상기 최고 해상도를 가지는 상기 비디오 스트림을 상기 타겟 비디오 스트림으로서 선택하도록 구성되고;
    상기 취득 서브유닛은 상기 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 비디오 데이터를 취득하도록 구성되고;
    상기 플레잉 서브유닛은 상기 대응하는 비디오 데이터에 따라 상기 플레이어의 디코더를 생성하도록 구성되는, 단말.
  6. 제5항에 있어서,
    상기 스위칭 유닛은 플레이어 자원 및 상기 디코더를 해제하고, 상기 더 낮은 해상도를 가지는 상기 비디오 스트림을 선택하고, 상기 타겟 비디오 스트림의 상기 링크 어드레스에 따라 상기 대응하는 비디오 데이터를 취득하는 동작을 실행하도록 상기 취득 서브유닛을 트리거링하도록 구체적으로 구성되는, 단말.
  7. 제6항에 있어서,
    상기 스위칭 유닛은 더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하고, 상기 더 낮은 해상도를 가지는 상기 비디오 스트림이 있을 경우, 플레이어 자원 및 상기 디코더를 해제하는 동작을 실행하거나; 또는 상기 더 낮은 해상도를 가지는 비디오 스트림이 없을 경우, 에러 프롬프트를 전송하도록 추가로 구성되는, 단말.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서,
    상기 취득 서브유닛은 상기 타겟 비디오 스트림의 상기 링크 어드레스에 따라 대응하는 m3u8 인덱스 파일을 다운로드하고, 상기 m3u8 인덱스 파일에 따라 대응하는 비디오 데이터를 취득하도록 구체적으로 구성되는, 단말.
  9. 제5항 내지 제7항 중 어느 한 항에 따른 비디오 스트림 데이터를 프로세싱하기 위한 단말을 포함하는, 비디오 스트림 데이터를 프로세싱하기 위한 시스템.
  10. 컴퓨터-판독가능 저장 매체로서, 상기 저장 매체는:
    다수의 해상도들을 가지는 비디오 스트림들의 비디오 소스 정보를 취득하고;
    상기 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 상기 타겟 비디오 스트림을 플레이하고;
    네트워크 에러 또는 디코딩 에러가 플레잉 프로세스에서 발생할 경우, 플레이하기 위한 더 낮은 해상도의 비디오 스트림으로 스위칭하고, 상기 더 낮은 해상도의 비디오 스트림을 플레이하도록, 프로세서에 의해 실행가능한 명령들을 저장하고,
    상기 비디오 소스 정보가 해상도 정보 및 상기 해상도들에 대응하는 비디오 스트림들의 링크 어드레스들을 포함할 경우, 상기 비디오 소스 정보에 따라, 최고 해상도를 가지는 비디오 스트림을 타겟 비디오 스트림으로서 선택하고, 상기 타겟 비디오 스트림을 플레이하는 것은:
    플레이어를 생성하고, 상기 비디오 소스 정보에 따라, 상기 최고 해상도를 가지는 상기 비디오 스트림을 상기 타겟 비디오 스트림으로서 선택하는 것;
    상기 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 비디오 데이터를 취득하는 것; 및
    상기 대응하는 비디오 데이터에 따라 상기 플레이어의 디코더를 생성하는 것을 포함하는, 컴퓨터-판독가능 저장 매체.
  11. 제10항에 있어서, 플레이하기 위한 더 낮은 해상도의 비디오 스트림으로 스위칭하는 것은:
    플레이어 자원 및 상기 디코더를 해제하는 것; 및
    상기 비디오 소스 정보에 따라, 상기 더 낮은 해상도를 가지는 상기 비디오 스트림을 상기 타겟 비디오 스트림으로서 선택하고, 상기 타겟 비디오 스트림의 상기 링크 어드레스에 따라 상기 대응하는 비디오 데이터를 취득하는 것으로 복귀하는 것을 포함하는, 컴퓨터-판독가능 저장 매체.
  12. 제11항에 있어서, 플레이어 자원 및 상기 디코더를 해제하는 것은,
    더 낮은 해상도를 가지는 비디오 스트림이 있는지 여부를 결정하는 것; 및
    상기 더 낮은 해상도를 가지는 상기 비디오 스트림이 있을 경우, 상기 플레이어 자원 및 상기 디코더를 해제하는 것; 또는
    상기 더 낮은 해상도를 가지는 비디오 스트림이 없을 경우, 에러 프롬프트를 전송하는 것을 더 포함하는, 컴퓨터-판독가능 저장 매체.
  13. 제12항에 있어서, 상기 타겟 비디오 스트림의 링크 어드레스에 따라 대응하는 비디오 데이터를 취득하는 것은:
    상기 타겟 비디오 스트림의 상기 링크 어드레스에 따라 대응하는 m3u8 인덱스 파일을 다운로드하는 것; 및
    상기 m3u8 인덱스 파일에 따라 상기 대응하는 비디오 데이터를 취득하는 것을 포함하는, 컴퓨터-판독가능 저장 매체.
KR1020177030326A 2015-04-15 2016-03-29 비디오 스트림의 데이터를 프로세싱하기 위한 방법, 단말, 및 시스템 KR101954012B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510176628.1A CN106162316A (zh) 2015-04-15 2015-04-15 一种视频流的数据处理方法、装置和系统
CN201510176628.1 2015-04-15
PCT/CN2016/077717 WO2016165556A1 (zh) 2015-04-15 2016-03-29 一种视频流的数据处理方法、装置和系统

Publications (2)

Publication Number Publication Date
KR20170130512A KR20170130512A (ko) 2017-11-28
KR101954012B1 true KR101954012B1 (ko) 2019-03-04

Family

ID=57125779

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177030326A KR101954012B1 (ko) 2015-04-15 2016-03-29 비디오 스트림의 데이터를 프로세싱하기 위한 방법, 단말, 및 시스템

Country Status (5)

Country Link
US (1) US20170302990A1 (ko)
JP (1) JP6877808B2 (ko)
KR (1) KR101954012B1 (ko)
CN (1) CN106162316A (ko)
WO (1) WO2016165556A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022055256A1 (ko) * 2020-09-08 2022-03-17 삼성전자 주식회사 전자 장치 및 그 동작 방법

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11049219B2 (en) * 2017-06-06 2021-06-29 Gopro, Inc. Methods and apparatus for multi-encoder processing of high resolution content
CN108055554A (zh) * 2017-12-14 2018-05-18 深圳Tcl数字技术有限公司 视频播放方法、电视、服务器及计算机可读存储介质
CN110572712B (zh) * 2018-06-05 2021-11-02 杭州海康威视数字技术股份有限公司 一种解码方法和装置
WO2020061731A1 (zh) * 2018-09-25 2020-04-02 深圳市欢太科技有限公司 资源处理方法、电子设备和计算机可读存储介质
CN109688465B (zh) 2018-11-27 2020-12-29 Oppo广东移动通信有限公司 视频增强控制方法、装置以及电子设备
CN109996116B (zh) * 2019-03-27 2021-07-16 深圳创维-Rgb电子有限公司 提升视频分辨率的方法、终端及可读存储介质
CN112118487B (zh) * 2019-06-21 2022-01-28 腾讯科技(深圳)有限公司 一种视频播放控制方法、装置、设备、及介质
US11228781B2 (en) 2019-06-26 2022-01-18 Gopro, Inc. Methods and apparatus for maximizing codec bandwidth in video applications
CN110290430A (zh) * 2019-07-31 2019-09-27 腾讯科技(深圳)有限公司 视频播放方法、装置、设备及存储介质
US11481863B2 (en) 2019-10-23 2022-10-25 Gopro, Inc. Methods and apparatus for hardware accelerated image processing for spherical projections
CN110753266A (zh) * 2019-10-23 2020-02-04 深圳市酷开网络科技有限公司 视频清晰度的调整方法、装置和存储介质
CN112995738A (zh) * 2019-12-13 2021-06-18 南京酷派软件技术有限公司 视频播放方法、装置、存储介质和电子设备
CN111866433B (zh) * 2020-07-31 2021-06-29 腾讯科技(深圳)有限公司 视频源切换方法、播放方法、装置、设备和存储介质
CN112468874B (zh) * 2020-11-26 2023-01-10 北京天融信网络安全技术有限公司 一种视频播放方法、终端设备及系统
CN113422995B (zh) * 2021-02-04 2023-06-23 郑州大学 基于ai模型的视频处理方法、便携式电子装置
CN113038278B (zh) * 2021-03-22 2023-07-07 王昊 一种数据处理方法、设备及存储介质
CN113596585A (zh) * 2021-08-16 2021-11-02 杭州华橙软件技术有限公司 视频处理方法和装置、存储介质及电子设备
CN113891111B (zh) * 2021-09-29 2023-11-21 北京拙河科技有限公司 十亿像素视频的直播方法、装置、介质及设备
CN114071190B (zh) * 2021-11-16 2023-10-31 北京百度网讯科技有限公司 云应用视频流处理方法、相关装置及计算机程序产品
CN115209222B (zh) * 2022-06-15 2024-02-09 深圳市锐明技术股份有限公司 一种视频播放方法、装置、电子设备及可读存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3631079B2 (ja) * 2000-01-27 2005-03-23 三洋電機株式会社 放送受信装置及びディジタル放送方法
JP4306747B2 (ja) * 2001-12-26 2009-08-05 株式会社日立製作所 映像処理装置及びテレビジョン受像機
KR100781512B1 (ko) * 2005-08-24 2007-12-03 삼성전자주식회사 임베디드 디바이스에서 재생 가능한 멀티미디어 파일을선별하여 재생하는 장치 및 방법
JP2007274445A (ja) * 2006-03-31 2007-10-18 Matsushita Electric Ind Co Ltd デジタル放送受信端末
JP4852146B2 (ja) * 2007-04-13 2012-01-11 パイオニア株式会社 受信装置、受信方法、受信プログラムおよびコンピュータに読み取り可能な記録媒体
WO2009032214A2 (en) * 2007-08-29 2009-03-12 The Regents Of The University Of California Network and device aware video scaling system, method, software, and device
US8249142B2 (en) * 2008-04-24 2012-08-21 Motorola Mobility Llc Method and apparatus for encoding and decoding video using redundant encoding and decoding techniques
US8578272B2 (en) * 2008-12-31 2013-11-05 Apple Inc. Real-time or near real-time streaming
KR20110059429A (ko) * 2009-11-27 2011-06-02 주식회사 아이티컨트롤 아이폰을 위한 분산 미디어 스트리밍 방법과 장치 및 그 시스템
CN102761736A (zh) * 2011-04-29 2012-10-31 腾讯科技(深圳)有限公司 视频解码方法和装置
US8856283B2 (en) * 2011-06-03 2014-10-07 Apple Inc. Playlists for real-time or near real-time streaming
CN102307302B (zh) * 2011-07-06 2014-07-30 杭州华三通信技术有限公司 一种保持视频图像连续性的方法和装置
EP2566172A1 (en) * 2011-09-02 2013-03-06 Thomson Licensing Method and apparatus for adaptive transcoding of multimedia stream
CN103051937A (zh) * 2011-10-12 2013-04-17 腾讯科技(深圳)有限公司 一种视频播控方法及装置
TWI516104B (zh) * 2012-09-04 2016-01-01 緯創資通股份有限公司 網路影片播放的方法及其電子裝置
CN103220585B (zh) * 2012-11-26 2016-04-20 佛山络威网络技术有限公司 一种支持QoS的网络视频传输方法
CN103812853A (zh) * 2013-07-05 2014-05-21 上海帕科软件科技有限公司 网络拥堵视频自适应系统
CN103517143A (zh) * 2013-08-29 2014-01-15 小米科技有限责任公司 网络视频的播放方法、装置及终端设备
CN103491427A (zh) * 2013-09-11 2014-01-01 天脉聚源(北京)传媒科技有限公司 一种视频的处理方法和装置
CN103763618A (zh) * 2013-12-27 2014-04-30 乐视网信息技术(北京)股份有限公司 一种清晰度切换方法及电子设备
CN104010232B (zh) * 2014-05-23 2017-12-12 惠州Tcl移动通信有限公司 一种智能播放在线视频的方法、系统、播放器及移动终端
US10021434B2 (en) * 2014-05-30 2018-07-10 Apple Inc. Movie package file format
US9503714B2 (en) * 2014-12-29 2016-11-22 Echostar Technologies L.L.C. Programming disruption diagnostics

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022055256A1 (ko) * 2020-09-08 2022-03-17 삼성전자 주식회사 전자 장치 및 그 동작 방법

Also Published As

Publication number Publication date
CN106162316A (zh) 2016-11-23
WO2016165556A1 (zh) 2016-10-20
JP6877808B2 (ja) 2021-05-26
JP2018512814A (ja) 2018-05-17
KR20170130512A (ko) 2017-11-28
US20170302990A1 (en) 2017-10-19

Similar Documents

Publication Publication Date Title
KR101954012B1 (ko) 비디오 스트림의 데이터를 프로세싱하기 위한 방법, 단말, 및 시스템
US10165309B2 (en) Method and apparatus for live broadcast of streaming media
CN110139139B (zh) 一种业务处理方法、终端、服务器及存储介质
JP7043562B2 (ja) インタラクティブ情報を獲得するための方法、端末、サーバ、およびシステム
US10643666B2 (en) Video play method and device, and computer storage medium
CN106412681B (zh) 弹幕视频直播方法及装置
KR101977526B1 (ko) 화상 스플라이싱 방법, 단말, 및 시스템
CN103391473B (zh) 一种提供及获取音视频的方法和装置
US20160105418A1 (en) Method, system, device, and terminal for network initialization of multimedia playback device
US20150304701A1 (en) Play control method and device
US20200336875A1 (en) Scenario-based sound effect control method and electronic device
WO2019076250A1 (zh) 推送消息的管理方法及相关产品
CN108564539B (zh) 一种显示图像的方法和装置
US10136115B2 (en) Video shooting method and apparatus
CN107622234B (zh) 一种显示萌脸礼物的方法和装置
CN103458064A (zh) 一种传输多媒体信息的地址信息的方法、装置及终端设备
CN110401691B (zh) 一种资源下载控制方法、装置及终端
CN107623788B (zh) 应用启动速度的提高方法、装置及计算机可读存储介质
CN105159655B (zh) 行为事件的播放方法和装置
CN107391732B (zh) 应用程序的功能引导方法、装置及终端设备
WO2015117550A1 (en) Method and apparatus for acquiring reverberated wet sound
CN110996003B (zh) 一种拍照定位方法、装置及移动终端
US10853412B2 (en) Scenario-based sound effect control method and electronic device
CN106982177B (zh) 升级控制方法、装置及终端
CN106358070B (zh) 多媒体文件上传方法及装置

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