JP6563424B2 - ストリームメディアデータ伝送方法、クライアント及びサーバ - Google Patents

ストリームメディアデータ伝送方法、クライアント及びサーバ Download PDF

Info

Publication number
JP6563424B2
JP6563424B2 JP2016569038A JP2016569038A JP6563424B2 JP 6563424 B2 JP6563424 B2 JP 6563424B2 JP 2016569038 A JP2016569038 A JP 2016569038A JP 2016569038 A JP2016569038 A JP 2016569038A JP 6563424 B2 JP6563424 B2 JP 6563424B2
Authority
JP
Japan
Prior art keywords
bit rate
server
client
segment
rate segment
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2016569038A
Other languages
English (en)
Other versions
JP2018509010A (ja
Inventor
楚雄 ▲張▼
楚雄 ▲張▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BOE Technology Group Co Ltd
Original Assignee
BOE Technology Group Co Ltd
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 BOE Technology Group Co Ltd filed Critical BOE Technology Group Co Ltd
Publication of JP2018509010A publication Critical patent/JP2018509010A/ja
Application granted granted Critical
Publication of JP6563424B2 publication Critical patent/JP6563424B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • 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/26208Content 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 the scheduling operation being performed under constraints
    • H04N21/26233Content 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 the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/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
    • 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/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/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • 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/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1845Combining techniques, e.g. code combining

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)

Description

本発明はストリームメディア技術に関し、特にストリームメディアデータ伝送装置、方法及びシステムに関する。
従来のストリームメディア技術を採用する場合に、伝送したストリームメディアデータはファイアウォール、専門的なメディアサーバによってストリームメディア技術をサポートする必要があり、且つ従来のストリームメディア技術の実現方式は複雑である。従来、インターネットによってストリームメディアデータを伝送するインターネットストリームメディア技術が出現し、従来のインターネット体系に対して追加の要求を提出しなく、メディアファイルの記憶、情報記述方式を修正することができ、従来のHTTPプロトコルによってストリームメディアデータを伝送させることができる。
動画専門家集団(Moving Pictures Experts Group、MPEG)が制定したダイナミックアダプティブストリームメディア (Dynamic Adaptive Streaming over HTTP、DASH)標準は、MPEG DASH標準と略称し、インターネットストリームメディア技術を採用してストリームメディアデータを伝送する標準化方案を提供する。
MPEG DASH標準で定義されたメディア表現記述(Media Presentation Description、MPD)の階層構造モデルを図1に示す。
当該階層構造モデルにおいて、ピリオド(Period)は一定の時間再生できるメディア内容を記述することに用いられ、隣接配列するピリオドが記述するメディア内容は時間的に連続である。1つのピリオドは複数のアダプテーションセット(Adaptation Set)を含み、各アダプテーションセットは複数のビットレートにアダプテーションするメディア内容を記述し、各ビットレートは1つの表現(Representation)に対応する。表現はメディア内容の具体的なパッケージフォーマット、ビットレート、符号化および復号化パラメータ等の情報を記述する。1つの表現は複数のセグメント(Segment)のユニフォームリソースロケータ(Uniform Resourece Locator、URL)を含み、対応したセグメントの記憶位置を指示することに用いられ、セグメントは具体的なメディア内容、即ちオーディオ、ビデオ、字幕、多重化されたオーディオ及びビデオ等を含む。
上記MPEG DASH標準に基づいて、インターネットによってストリームメディアデータを伝送する選択的な方案は、まず、WebSocket双方向接続を確立して、WebSocketテキストフレームによってMPEG DASH標準の制御情報を伝送し、WebSocketバイナリフレームによってセグメントを伝送する。
図1に示すようなフレームでクライアントにメディア内容を表示する過程は図2を参照し、図1に示すようなフレームでクライアントにメディア内容を表示する過程は、以下のステップを含む。
ステップS201において、クライアントはサーバにOpenMediaメッセージを送信する。クライアントは当該メッセージにMPDのURLアドレスを携えることによって、再生する必要があるメディアをサーバに指示する。
ステップS202において、クライアントにメディアの情報、例えば、メディアは準備ができるたか否かを知らせるように、サーバはクライアントにMediaInfoメッセージを送信する。
ステップS203において、サーバにメディアの送信を要求するように、クライアントはサーバにStartStreamメッセージを送信する。
ステップS204において、クライアントにメディアストリームの情報を知らせるように、サーバはクライアントにStreamInfoメッセージを送信する。
ステップS205において、サーバはメディアセグメントの送信を始める。
クライアントはサーバにメディアの再生を起動することを要求した後に、サーバは図2におけるステップS204によって、クライアントに送信したStreamInfoメッセージに、サーバが同じ内容であり異なるビットレートである複数の表現を送信するか否かを指示するための指示情報multipleRepresentationを携える。当該指示情報が、サーバが同じ内容であり異なるビットレートである複数の表現を送信するのを指示すると、サーバはセグメントを送信する際に、クライアントに同時に複数の同じ内容であり異なるビットレートであるセグメント、即ち前記複数の表現に含まれた同じ内容であり異なるビットレートであるセグメントを送信する。
上記過程に関するOpenMediaメッセージ、MediaInfoメッセージ、StartStreamメッセージとStreamInfoメッセージを、MPEG DASH標準についてWebSocketプロトコルにおいて拡張される、WebSocketのテキストフレームによって伝送されるメッセージと見なすことができる。
しかしながら、クライアントはサーバがまず送信したセグメントは高いビットレートのものであるか、低いビットレートのものであるかを分からない。
従来の一つの実現方式は、クライアントは1つのセグメントを受信した後に、所定の待ち時間で、より高いビットレートのセグメントを受信したか否かを判断し、より高いビットレートのセグメントを受信すると、当該より高いビットレートのセグメントを復号化して表示し、より高いビットレートのセグメントを受信していないと、前に受信したセグメントを復号化して表示することである。
サーバがまず高いビットレートのセグメントを送信する場合に対して、上記実現方式において、クライアントは高いビットレートのセグメントを受信した後に、サーバが後続送信した同じ内容であり異なるビットレートであるセグメントがより高いビットレートのセグメントであるか、より低いビットレートのセグメントであるかを分からないと、依然として上記所定の待ち時間で待ち、クライアントの復号化の遅延が増加されてしまう。
本発明が解決しようとする技術的課題は、クライアントがより高いビットレートのセグメントを待ち、復号化の遅延が長い問題を解決するためのストリームメディアデータ伝送装置、方法及びシステムを提供することである。
本発明の第1の様態によれば、サーバが同じ内容であり異なるビットレートである複数のセグメントを送信するかどうかを判断する第1の処理モジュールと、前記第1の処理モジュールにより前記サーバが同じ内容であり異なるビットレートである複数のセグメントを送信すると判断する場合に、前記サーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断する第2の処理モジュールと、を備えるクライアントを提供する。
本発明の第2の様態によれば、クライアントへ同じ内容であり異なるビットレートである複数のセグメントを送信する場合に優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを確定する処理モジュールと、高ビットレートのセグメントを優先的に送信するかどうかを指示するための第1の指示情報を前記クライアントに送信する送受信モジュールと、を備えるサーバを提供する。
本発明の第3の様態によれば、サーバが同じ内容であり異なるビットレートである複数のセグメントを送信するかどうかを判断するステップと、前記サーバが同じ内容であり異なるビットレートである複数のセグメントを送信すると、前記サーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断するステップと、を含むストリームメディアデータ伝送方法を提供する。
本発明の第4の様態によれば、クライアントへ同じ内容であり異なるビットレートである複数のセグメントを送信する場合に優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを確定するステップと、高ビットレートのセグメントを優先的に送信するかどうかを指示するための第1の指示情報を前記クライアントに送信するステップと、を含む他のストリームメディアデータ伝送方法を提供する。
本発明の第5の様態によれば、クライアント及びサーバを備えるストリームメディアデータ伝送システムを提供し、前記クライアントは、前記サーバが同じ内容であり異なるビットレートである複数のセグメントを送信するかどうかを判断し、前記サーバが同じ内容であり異なるビットレートである複数のセグメントを送信すると、前記サーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断し、前記サーバは、前記クライアントへメディアセグメントを送信する。
以上のように、本発明の実施例において、クライアントはサーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断することができ、このため、クライアントはサーバが高ビットレートのセグメントを優先的に送信すると判断する場合、サーバがより高いビットレートのセグメントを送信することを待つ必要がなく、受信されたセグメントを直接に復号化し、クライアントが復号化する遅延を短縮したことを実現する。
MPEG DASH標準で定義されたMPD階層構造のモデル図である。 図1に示すフレームでクライアントがメディア内容を表示する過程の模式的なフローチャートである。 本発明の実施例によるストリームメディアデータ伝送システムの構造模式図である。 WebSocketのフレーム構造の模式図である。 ビットレート切り替え方式の模式図である。 本発明の実施例1によるクライアントのストリームメディアデータ伝送の処理のフローチャートである。 本発明の実施例によるクライアントの第1の構造模式図である。 本発明の実施例によるクライアントの第2の構造模式図である。 本発明の実施例によるクライアントの第3の構造模式図である。 本発明の実施例によるクライアントの第4の構造模式図である。 本発明の実施例によるサーバの構造模式図である。 本発明の実施例によるストリームメディアデータ伝送方法のフローチャートである。 本発明の実施例による他のストリームメディアデータ伝送方法のフローチャートである。
本発明の実施例は、クライアントがより高いビットレートのセグメントを待ち、復号化の遅延が長い問題を解決するためのストリームメディアデータ伝送装置及び方法を提供する。
以下、本発明の実施例を図面を参照しながら詳しく説明する。まず、本発明の実施例によるストリームメディアデータ伝送システムを説明し、そして、本発明の実施例によるクライアント及びサーバをそれぞれ説明し、最後、本発明の実施例による二つのストリームメディアデータ伝送方法を説明する。
図3は本発明の実施例によるストリームメディアデータ伝送システムの構造模式図である。図3に示すように、当該システムはクライアント301及びサーバ302を含む。
クライアント301はサーバ302が同じ内容であり異なるビットレートである複数のセグメントを送信するかどうかを判断する。サーバ302が同じ内容であり異なるビットレートである複数のセグメントを送信すると判断する場合に、クライアント301は更にサーバ302が優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断する。
サーバ302はクライアント301へメディアを送信する。
図3において、簡単に模式的に示すために、一つのクライアント301及び一つのサーバ302のみを示したが、実際に、1つのサーバ302は複数のクライアント301へメディアを送信することができ、1つのクライアント301もそれぞれ複数のサーバ302へメディアの送信を要求できる。
本発明の実施例において、選択的に、クライアント301はサーバ302とWebSocket双方向接続を確立しており、確立された当該WebSocket双方向接続に基づいてストリームメディア伝送を行う。クライアント301は図2におけるステップS203により、サーバ302のメディアの送信を要求することができ、即ちクライアント301はサーバ302へStartStreamメッセージを送信して、メディアストリームを要求する。
例えば、クライアント301はサーバ302のメディアの送信を要求した後且つサーバ302がクライアント301へ各セグメントを送信する前に、サーバ302が優先的に優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断することができる。代わりに、クライアント301はサーバ302のメディアの送信の過程において、サーバ302が優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断してもよい。
具体的には、サーバ302はクライアント301へ送信されたStreamInfoメッセージにおけるmultipleRepresentationキーにより、クライアント301へサーバ302が同じ内容であり異なるビットレートである複数のセグメントを送信するかどうかを指示する。当該キーの取り値が「true」である場合、クライアント301へサーバ302が同じ内容であり異なるビットレートである複数のセグメントを送信すると指示する。
現在、StreamInfoメッセージのフォーマットを表1に示す。
Figure 0006563424
具体的には、クライアント301が、サーバ302のメディアの送信の過程においてサーバ302が優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断する場合に、クライアント301は以下の形態1又は形態2によりサーバ302が優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断する。クライアント301が、サーバ302が各セグメントを送信する前にサーバ302が優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断する場合に、クライアント301は以下形態2によりサーバ302が優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断する。
形態1、クライアント301自体で判断を実現する。
クライアント301が、サーバ302のメディアの送信を要求した後受信されたサーバ302により送信した一つ目のセグメントのビットレートが所定のビットレート上限(例えば、クライアント301は予めサーバ302がクライアント301へ送信する各セグメントの最高ビットレートを知っていると、当該最高ビットレートを所定のビットレート上限とする)であると、クライアント301はサーバ302が優先的に高ビットレートのセグメントを送信すると判断する。クライアント301がサーバ302のメディアの送信を要求した後受信されたサーバ302により送信した一つ目のセグメントのビットレートが所定のビットレート下限(例えば、クライアント301は予めサーバ302がクライアント301へ送信した各セグメントの最低ビットレートを知っていると、当該最低ビットレートを所定のビットレート下限とする)であると、クライアント301はサーバ302が優先的に低ビットレートのセグメントを送信すると判断する。
クライアント301は、サーバ302のメディアの送信を要求した後、まずサーバ302により送信した高ビットレートのセグメントを受信し、次にサーバ302により送信した低ビットレートのセグメントを受信すると、サーバ302が優先的に高ビットレートのセグメントを送信すると判断する。まずサーバ302が送信した低ビットレートのセグメントを受信し、次にサーバ302が送信した高ビットレートのセグメントを受信すると、サーバ302が優先的に低ビットレートのセグメントを送信すると判断する。
具体的には、クライアント301が、サーバ302のメディアの送信を要求した後受信されたサーバ302により送信した一つ目のセグメントのビットレートが所定のビットレート上限よりも小さくて且つ所定のビットレート下限よりも大きいと、クライアント301は次のセグメントの受信を待ち、受信された次のセグメントのビットレートが一つ目のセグメントのビットレートよりも低いと、サーバ302が優先的に高ビットレートのセグメントを送信すると判断する。受信された次のセグメントのビットレートが一つ目のセグメントのビットレートよりも高いと、サーバ302が優先的に低ビットレートのセグメントを送信すると判断する。
クライアント301自体で判断する形態はいろいろあり、以上のものは単に例示である。
形態2、クライアント301はサーバ302が送信した第1の指示情報により判断する。
当該第1の指示情報はサーバ302が高ビットレートのセグメントを優先的に送信するかどうかを指示するためのものである。選択的に、クライアント301とサーバ302がWebSocket双方向接続を確立したと、確立された当該WebSocket双方向接続に基づいてストリームメディアの伝送を行い、表1に示すStreamInfoメッセージを修正することができ、これによりStreamInfoメッセージで当該第1の指示情報を提供する。例えば、以下の表2に示すように、表1に示すStreamInfoメッセージでキー「bitratePriority」を増加し、且つ当該キー「bitratePriority」により当該第1の指示情報を提供することができる。例えば、表2において、「bitratePriority」がキー「multipleRepresentation」の後にあるが、実際に実現する際、位置が表2に示す位置に限定されず、例えば、メッセージ全体の最後にあってもよい。
表2において、「bitratePriority」の値がBooleanタイプであり、取り値が「true」であるとサーバ302が優先的に高ビットレートのセグメントを送信することを示し、取り値が「false」であるとサーバ302が優先的に低ビットレートのセグメントを送信することを示す。実際に実現する際、その他のタイプ、例えば、数値型であってもよく、取り値が1である場合サーバ302が優先的に高ビットレートのセグメントを送信することを示し、取り値が0である場合サーバ302が優先的に低ビットレートのセグメントを送信することを示す。具体的な実現形態は以上の例に限定されず、クライアント301にサーバ302が優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断させることができれば良い。
Figure 0006563424
選択的に、クライアント301が確実にセグメントを受信することを実現するために、サーバ302が優先的に高ビットレートのセグメントを送信すると判断した場合、高ビットレートのセグメントを受信し始めた後、クライアント301は更に高ビットレートのセグメントを受信し始めた後の第1の時間閾値内に当該高速率のセグメントに対する受信を完成したかどうかを判断することができる。当該第1の時間閾値内に当該高ビットレートのセグメントに対する受信を完成していないと、クライアント301は当該高ビットレートのセグメントの受信をあきらめて、低ビットレートのセグメントの受信を始めることができる。
選択的に、前記クライアント301は高ビットレートのセグメントを受信し始めた後計時を始めることができ、代わりに、サーバ302が優先的に高ビットレートのセグメントを送信すると判断した後計時を始めてもよい。
選択的に、クライアント301がサーバ302のメディアの送信を要求した後且つサーバ302がクライアント301へ各セグメントを送信する前に、サーバ302が優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断すると、クライアント301は更にサーバ302のメディアの送信を要求してから計時を始めてもよい。
選択的に、ネットワークの伝送リソースを節約し、クライアント301とサーバ302との間のセグメント伝送効率を向上させるために、クライアント301が上記第1の時間閾値内に当該高ビットレートのセグメントの受信を完成すると、クライアント301はサーバ302へ第2の指示情報を送信し、当該第2の指示情報はサーバ302に低ビットレートのセグメントを送信する必要がないことを通知するためのものである。
選択的に、クライアント301とサーバ302がWebSocket双方向接続を確立し、確立された当該WebSocket双方向接続に基づいてストリームメディア伝送を行うと、クライアント301はWebSocketフレームにおける指示情報によりセグメントの受信を完成したかどうかを判断することができる。
WebSocketのフレーム構造を図4に示す。オペコードが4ビット(bit)であり、以下、オペコードの取り値とオペコードが示す意味との間の対応関係である。
0:エンドマーカとともに、セクションフレームの中間セグメントを示す
1 :テキストフレーム
2 :バイナリフレーム
3〜7:保留
8:接続オフ
9:Ping命令
A :Pong命令
B〜F:保留
伝送するデータが大きすぎて、1つのWebSocketバイナリフレームでパッケージできないと、WebSocketプロトコルにより、伝送しようとするデータをセクション化することができる。
セクション化されないフレームについて、エンドマーカ=1 オペコード≠0
セクション化されたフレームについて:
一つ目のセクション:エンドマーカ=0,オペコード≠0
二つ〜(N−1)次目のセクション:エンドマーカ=0,オペコード=0
N次目のセクション、即ち最後1つのセクション:エンドマーカ=1,オペコード=0
クライアント301はサーバ302が送信したStreamInfoメッセージを含むテキストフレームを受信した後、サーバ302が送信するセグメントの受信を始める。1つのセグメントが大きすぎると、当該セグメントを複数のセクションに分割することができ、前記複数のセクションはそれぞれ複数のWebSocketバイナリフレームに置いて伝送され、具体的には、1つのWebSocketバイナリフレームにおいて1つのセクションを伝送する。
サーバ302は1つのセグメントを1つ又は複数のバイナリフレームにより送信する。クライアント301は、受信されたバイナリフレームのエンドマーカが「0」で、オペコードが 「0」ではない場合、現在セグメントがセクションで送信された(即ち1つのセグメントが複数のバイナリフレームによって送信される)ものであり、当該バイナリフレームは当該セグメントの第1のセクションを含み、且つ後続に更に当該セグメントの他のセクションを含むバイナリフレームを受信する必要があることを確定する。クライアント301は、受信されたバイナリフレームのエンドマーカが「0」であり、オペコードが「0」であるまで、後続のバイナリフレームの受信を引く続いて、既に当該セグメントの受信を完成したと確定する。
以上のように、クライアント301が第1の時間閾値内に高ビットレートのセグメントの受信を完成すると、クライアント301はサーバ302へ第2の指示情報を送信し、第2の指示情報はサーバ302が更に低ビットレートのセグメントを送信する必要がないことを通知するに用いられる。以下の新たなメッセージReceiveReportを定義することで、表3に示すように、当該新しく定義されたメッセージで当該第2の指示情報を送信することができる。
Figure 0006563424
選択的に、当該メッセージは以下の表4で挙げたキー値ペアを含むことができる。
Figure 0006563424
上記第1の時間閾値内に、クライアント301が高ビットレートのセグメントの受信を完成すると、クライアント301はサーバへ上記ReceiveReportメッセージを送信し、当該メッセージのReceiveStatusがTrueである。サーバ302は当該メッセージを受信した後、クライアント301へさらに低ビットレートのセグメントを送信しない。
上記第1の時間閾値内に、クライアント301が高ビットレートのセグメントの受信を完成しないと、クライアント301はサーバ302へ上記ReceiveReportメッセージを送信し、当該メッセージのReceiveStatusがFalseである。サーバ302は高ビットレートのセグメントを送信することを終止し、低ビットレートのセグメントの送信を始める。
以上、具体的にクライアント301が、サーバ302が優先的に高ビットレートのセグメントを送信することを確定する場合の処理方案を記述した。以下、クライアント301はサーバ302が優先的に低ビットレートのセグメントを送信することを確定する場合の処理方案を説明する。
サーバ302が優先的に低ビットレートのセグメントを送信すると判断すると、クライアント301は低ビットレートのセグメントを受信し始めた後、引き続いて高ビットレートのセグメントを受信する。
選択的に、クライアント301は、複数の高ビットレートのセグメントがあるかどうかを判断する。複数の高ビットレートのセグメントが存在すると、クライアント301はサーバ302との間のネットワーク帯域幅により、存在する複数の高ビットレートのセグメントから1つの高ビットレートのセグメントを選択して受信を始める。
クライアント301は高ビットレートのセグメントを受信し始めった後、当該高ビットレートのセグメントを受信し始めてから第2の時間閾値内に当該高ビットレートのセグメントの受信を完成したかどうかを判断する。クライアント301が当該高ビットレートのセグメントを受信し始めてから第2の時間閾値内に当該高ビットレートのセグメントに対する受信を完成していないと判断すると、クライアント301は受信を完成した低ビットレートのセグメントを復号化する。
選択的に、クライアント301はサーバ302が優先的に低ビットレートのセグメントを送信すると判断してから計時を始めてもよい。
選択的に、以上のように、クライアント301はサーバ302のメディアの送信を要求した後且つサーバ302がクライアント301へ各セグメントを送信する前に、サーバ302が優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断すると、クライアント301は更にサーバ302のメディアの送信を要求した後計時を始めてもよい。
当該選択可能な方案において、クライアント301はまず低ビットレートのセグメントを受信した後、受信された低ビットレートのセグメントをまだ復号化しなく、高ビットレートのセグメントの受信を待つ。クライアント301がサーバ302のメディアの送信を要求した後の第2の時間閾値内に、当該高ビットレートのセグメントに対する受信を完成すると、当該高ビットレートのセグメントを復号化し、先に受信された低ビットレートのセグメントをあきらめる。サーバ302のメディアの送信を要求した後の第2の時間閾値内に当該高ビットレートのセグメントに対する受信を完成していないと、受信を完成した低ビットレートのセグメントを復号化し、これによりセグメント受信の信頼性を保証する。
上記第1の時間閾値、第2の時間閾値は、以下の形態を含む多種の形態で確定することができる。
形態1、所定の時間長さであり、例えば、クライアント301とサーバ302との間のネットワークトポロジーにより予め配置する。
形態2、クライアント301はMPDにおけるセグメントのURLに含まれたセグメントバイト数とセグメントの属する表現のbandwidthプロパティの値とを除算して、当該セグメントの伝送に必要な時間長さを算出し、算出された当該時間長さにより第1の時間閾値及び第2の時間閾値を確定する。
形態3、セグメントの再生時間長さにより確定する。例えば、当該第1の時間閾値及び/又は第2の時間閾値をセグメントの再生時間長さ、即ちセグメントの属する表現のdurationプロパティの値に設定するか、又は当該値の半分等に設定する。
形態4、リアルタイムに取得したクライアント301とサーバ302との間のネットワーク状況(例えば、ネットワーク輻輳状況、内容取得時間長さ、復号化時間長さ、キャッシュメディアの再生可能な時間等)によりリアルタイムに調整する。
MPDに記述されたセグメントの属する表現のプロパティは以下の表5を参照することができる。
Figure 0006563424
本発明の実施例において、クライアント301は図5に示す形態によりビットレートの切り替えを行うことができる。
クライアント301はMPDにおいて現在再生しているセグメントの属する表現(明らかに記述するために、ここで「表現1」と標記する)を見付けて、表現1におけるstartNumberプロパティの値及びセグメントに対応するSegmentURL要素の配列シリアルナンバー(Nと標記する)により、現在セグメントのシリアルナンバーとしてstartNumber+Nを算出する。次に、同一のアダプター集合に属する、同じ内容を含むとともに異なるビットレートを有する、切り替え先とする表現(「表現2」と標記する)を見付けて、且つ表現2においてシリアルナンバーがstartNumber+N+1であるセグメント(セグメントN+1と標記する)を見付ける。その後、クライアント301はサーバ302へ表現2におけるセグメントN+1を要求する。
以上、本発明の実施例によるストリームメディア伝送システム及びビットレートきりええの方案を詳しく説明した。クライアントとサーバを互いに組み合わせる視点から、ストリームメディアデータ伝送の方案を説明したが、クライアントとサーバを相互に組み合わせなければならないという意味ではなく、実際に、クライアントとサーバとをそれぞれ独立に実施する場合においても、クライアント側及びサーバ側に存在する問題をそれぞれ解決しており、ただ、2つのものを組み合わせて使用する場合、より良い技術効果を取得することができる。
以下、それぞれ本発明の実施例によるクライアント、サーバ及び二つのストリームメディアデータ伝送方法を説明し、その技術問題を解決する原理は、本発明の実施例によるストリームメディアデータ伝送システムと類似するので、その実施は当該システムの実施を参照することができ、繰り返し部分を再び説明しない。
以下、本発明の実施例1によるクライアント301のストリームメディアデータ伝送の処理例を図6を参照して説明する。
ステップS600では、クライアント301がサーバ302にメディアの送信を要求する。
ステップS601では、クライアント301はサーバ302が送信したStreamInfoメッセージを受信する。
ステップS602では、クライアント301はStreamInfoメッセージにおける指示情報multipleRepresentationにより、サーバ302が複数の同じ内容であり異なるビットレートである複数のセグメントを送信するかどうかを判断する。multipleRepresentationの取り値がfalseであると、クライアント301はサーバ302が1つのビットレートのセグメントのみを送信することを確定し、次にステップS609を実行する。multipleRepresentationの取り値がtrueであると、クライアント301はサーバ302が同じ内容であり異なるビットレートである複数のセグメントを送信することを確定し、次にステップS603を実行する。
ステップS603では、クライアント301はStreamInfoメッセージにおける指示情報bitratePriorityにより、サーバ302が高ビットレートのセグメントを優先的に送信するかどうかを判断する。bitratePriorityの取り値がtrueであると、クライアント301はサーバ302が優先的に高ビットレートのセグメントを送信することを確定し、次にステップS611を実行する。bitratePriorityの取り値がfalseであると、クライアント301はサーバ302が優先的に低ビットレートのセグメントを送信することを確定し、次にステップS604を実行する。
ステップS604では、クライアント301は低ビットレートのセグメントの受信を始める。
ステップS605では、クライアント301は高ビットレートのセグメントの受信を始める。
ステップS606では、クライアント301はサーバ302にメディアの送信を要求してから第2の時間閾値内に高ビットレートのセグメントに対する受信を完成したかどうかを判断する。そうであると、ステップS615を実行する。そうではないと、ステップS607を実行する。
ステップS607では、受信が完成された低ビットレートのセグメントを復号化する。
ステップS608では、セグメントを再生する。
クライアント301がステップS602においてStreamInfoメッセージにおける指示情報multipleRepresentationにより、サーバ302が1つのビットレートのセグメントのみを送信することを確定した場合には、ステップS609では、クライアント301はサーバ302が送信したメディアセグメントを受信する。
そして、ステップS610において、受信が完成されたセグメントを復号化し、次にステップS608を実行する。
クライアント301がステップS603においてStreamInfoメッセージにおける指示情報bitratePriorityにより、サーバ302が優先的に高ビットレートのセグメントを送信すると判断した場合に、ステップS611では、クライアント301は高ビットレートのセグメントの受信を始める。
そして、ステップS612では、クライアント301はサーバ302にメディアの送信を要求してから第1の時間閾値内に高ビットレートのセグメントに対する受信を完成したかどうかを判断する。そうであると、ステップS615を実行する。そうではないとステップS613を実行する。
ステップS613では、クライアント301は高ビットレートのセグメントの受信をあきらめる。
ステップS614では、クライアント301は低ビットレートのセグメントの受信を始め、次にステップS607を実行する。
ステップS615では、クライアント301は受信が完成された高ビットレートのセグメントを復号化する。
図7Aは本発明の実施例によるクライアントの一つの構造模式図である。図7Aに示すように、当該クライアントは、第1の処理モジュール701及び第2の処理モジュール702を備える。
第1の処理モジュール701はサーバが同じ内容であり異なるビットレートである複数のセグメントを送信するかどうかを判断する。
第2の処理モジュール702は、第1の処理モジュール701によりサーバが同じ内容であり異なるビットレートである複数のセグメントを送信すると判断した場合に、サーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断する。
選択的に、図7Bに示すように、当該クライアントは、第2の処理モジュール702によりサーバが優先的に高ビットレートのセグメントを送信すると判断した場合、高ビットレートのセグメントの受信を始める第1の送受信モジュール703を更に備えてよい。
選択的に、図7Bに示すクライアントに対して、第2の処理モジュール702は更に第1の送受信モジュール703が高ビットレートのセグメントを受信の始めてから、第1の送受信モジュール703が当該高ビットレートのセグメントの受信を始めてから第1の時間閾値内に当該高ビットレートのセグメントに対する受信を完成したかどうかを判断することに用いられる。
第1の送受信モジュール703は第1の時間閾値内に当該高ビットレートのセグメントに対する受信を完成していないと、前記第2の処理モジュール702は第1の送受信モジュール703を制御して当該高ビットレートのセグメントの受信をあきらめ、且つ低ビットレートのセグメントの受信を始める。
更に、第2の処理モジュール702は更に、第1の送受信モジュール703が第1の時間閾値内に当該高ビットレートのセグメントに対する受信を完成すると、サーバへ低ビットレートのセグメントを送信する必要がないことを通知するための第2の指示情報を送信するように、第1の送受信モジュール703を制御することに用いられる。
選択的に、図7Cに示すように、当該クライアントは更に、第2の処理モジュール702が、サーバは優先的に低ビットレートのセグメントを送信すると判断した場合、低ビットレートのセグメントの受信を始め、且つ低ビットレートのセグメントを受信した後、引き続いて高ビットレートのセグメントの受信を始めるための第2の送受信モジュール704を備えてよい。
選択的に、第2の送受信モジュール704は当該低ビットレートのセグメントを受信した後、受信された当該低ビットレートのセグメントを直接に復号化することではなく、第2の処理モジュール702の制御により、受信された当該低ビットレートのセグメントを復号化するかどうかを確定する。
選択的に、図7Cに示すクライアントに対して、第2の処理モジュール702はさらに、第2の送受信モジュール704が当該高ビットレートのセグメントの受信を始めた後、第2の送受信モジュール704が当該高ビットレートのセグメントの受信を始めてから第2の時間閾値内に当該高ビットレートのセグメントに対する受信を完成したかどうかを判断することに用いられる。
第2の送受信モジュール704が第2の時間閾値内に当該高ビットレートのセグメントに対する受信を完成していないと、第2の処理モジュール702は、受信が完成された低ビットレートのセグメントを復号化するように、第2の送受信モジュール704を制御する。
更に、第2の処理モジュール702は更に、第2の送受信モジュール704が第2の時間閾値内に当該高ビットレートのセグメントに対する受信を完成していないと、当該高ビットレートのセグメントに対する受信をあきらめるように、第2の送受信モジュール704を制御することに用いられる。
選択的に、本発明の実施例によるクライアントは更に図7Dに示す構造を有することができ、第1の処理モジュール701、第2の処理モジュール702、第1の送受信モジュール703及び第2の送受信モジュール704を備え、第1の処理モジュール701と第2の処理モジュール702の処理は上記図7A〜図7Cに示すクライアントにおける同じモジュールの処理を参照できる。第1の送受信モジュール703と第2の処理モジュール702との間のインタラクションは、上記図7Bに示すクライアントにおける処理を参照でき、第2の送受信モジュール704と第2の処理モジュール702との間のインタラクションは、上記図7Cに示すクライアントにおける処理を参照でき、ここで繰り返して説明しない。
選択的に、図7A〜図7Dのいずれかに示すクライアントに対して、第2の処理モジュール702は具体的に、サーバにより送信されるサーバが高ビットレートのセグメントを優先的に送信するかどうかを指示するための第1の指示情報に基づいて、サーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断することに用いられる。
選択的に、当該第1の指示情報はStreamInfoメッセージにある。
図8は、本発明の実施例によるサーバの構造模式図である。図8に示すように、当該サーバは処理モジュール801及び送受信モジュール802を備える。
処理モジュール801は、クライアントへ同じ内容であり異なるビットレートである複数のセグメントを送信する場合優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを確定する。
送受信モジュール802は、高ビットレートのセグメントを優先的に送信するかどうかを指示するための第1の指示情報をクライアントに送信する。
選択的に、送受信モジュール802は更に、第1の指示情報をクライアントに送信した後、クライアントから送信された、クライアントへ低ビットレートのセグメントを送信する必要がないことをサーバに指示するための第2の指示情報を受信し、且つ第2の指示情報にもとづいて、クライアントへ低ビットレートのセグメントを送信することを停止することに用いられる。
図9は、本発明の実施例によるストリームメディアデータ伝送方法のフローチャートである。図9に示す前記ストリームメディアデータ伝送方法はクライアントに適用されることができる。
ステップS901では、サーバが同じ内容であり異なるビットレートである複数のセグメントを送信するかどうかを判断する。
ステップS902では、前記サーバが同じ内容であり異なるビットレートである複数のセグメントを送信すると、サーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断する。
選択的に、ステップS902でサーバが優先的に高ビットレートのセグメントを送信すると判断すれば、高ビットレートのセグメントの受信を始める。
選択的に、高ビットレートのセグメントの受信を始めた後、前記ストリームメディアデータ伝送方法は更に、当該高ビットレートのセグメントの受信を始めてから第1の時間閾値内に当該高ビットレートのセグメントに対する受信を完成したかどうかを判断するステップと、第1の時間閾値内に当該高ビットレートのセグメントに対する受信を完成していないと判断すると、当該高ビットレートのセグメントの受信をあきらめ、且つ低ビットレートのセグメントの受信を始めるステップと、を含む。
選択的に、前記ストリームメディアデータ伝送方法は更に、第1の時間閾値内に当該高ビットレートのセグメントに対する受信を完成したと判断すると、サーバへ低ビットレートのセグメントを送信する必要がないことを通知する第2の指示情報を送信するステップを含む。
選択的に、ステップS902において、サーバが優先的に低ビットレートのセグメントを送信すると判断すると、低ビットレートのセグメントを受信した後、引き続いて高ビットレートのセグメントの受信を始める。
選択的に、当該低ビットレートのセグメントを受信した後、前記ストリームメディアデータ伝送方法はさらに、受信された当該低ビットレートのセグメントを直接に復号化せず、高ビットレートのセグメントの受信状況によって受信された当該低ビットレートのセグメントを復号化するかどうかを判断するステップを含む。
選択的に、当該高ビットレートのセグメントの受信を始めた後、前記ストリームメディアデータ伝送方法は更に、当該高ビットレートのセグメントの受信を始めてから第2の時間閾値内に、当該高ビットレートのセグメントに対する受信を完成したかどうかを判断するステップと、第2の時間閾値内に当該高ビットレートのセグメントに対する受信を完成していないと、受信が完成された低ビットレートのセグメントを復号化するステップとを含む。
選択的に、前記ストリームメディアデータ伝送方法は更に、第2の時間閾値内に当該高ビットレートのセグメントに対する受信が完成されていないと、当該高ビットレートのセグメントに対する受信をあきらめるステップを含む。
選択的に、ステップS902でサーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断することは、具体的に、サーバにより送信されたサーバが高ビットレートのセグメントを優先的に送信するかどうかを指示するための第1の指示情報を受信するステップと、受信された第1の指示情報により、サーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断するステップと、を含むことができる。
選択的に、第1の指示情報は、StreamInfoメッセージにある。
図10は、本発明の実施例による他のストリームメディアデータ伝送方法のフローチャートである。図10に示すストリームメディアデータ伝送方法はサーバに適用されることができる。
ステップS1001では、クライアントへ同じ内容であり異なるビットレートである複数のセグメントを送信する場合、優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを確定する。
ステップS1002では、高ビットレートのセグメントを優先的に送信するかどうかを指示するための第1の指示情報をクライアントに送信する。
選択的に、ステップS1002において第1の指示情報をクライアントに送信した後、前記ストリームメディアデータ伝送方法は、クライアントより送信されたサーバがクライアントへ低ビットレートのセグメントを送信する必要がないことを指示するための第2の指示情報を受信し、第2の指示情報に基づいてクライアントへの低ビットレートのセグメントの送信を停止するステップを更に含む。
以上のように、本発明の実施例はストリームメディアデータ伝送装置、方法及びシステムを提供する。クライアントはサーバが同じ内容であり異なるビットレートである複数のセグメントを送信する場合優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断することができ、サーバが優先的に高ビットレートのセグメントを送信すると判断する際、サーバがより高いビットレートのセグメントを送信することを待つ必要がなくて、受信されたセグメントを直接に復号化し、クライアント復号化の遅延を短縮する。
更に、クライアントはサーバが送信した各ビットレートのセグメントに基づいてサーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断するか、又はクライアントはサーバが送信した第1の指示情報によりサーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断し、二つのクライアント判断の具体的な形態を提供した。
なお、クライアントは所定の時間閾値内に高ビットレートのセグメントに対する受信を完成することができると、サーバに低ビットレートのセグメントの送信を停止することを指示し、サーバがセグメントを送信する効率を向上させ、ネットワークの伝送リソースを節約する。
一方、クライアントは所定の時間閾値内に高ビットレートのセグメントに対する受信を完成できないと、低ビットレートのセグメントを受信して復号化することによって、ストリームメディアデータ伝送の信頼性及びメディア再生のコヒーレンスを保証し、ユーザ体験を向上させる。
当業者にとって、本発明の実施例を方法、システム、又はコンピュータプログラム製品として提供できることを理解すべきである。このため、本発明は全体ハードウェア実施例、全体ソフトウェア実施例、又はソフトウェア及びハードウェア様態の実施例を組み合わせる形式を採用できる。且つ、本発明は1つ又は複数のコンピュータ使用可能プログラムコードが含まれたコンピュータ使用可能な記憶媒体(ディスク、メモリ、CD−ROM、光記憶装置等を含むがこれらに限定されない)で実施するコンピュータプログラム製品の形式を採用できる。
本発明は、本発明の実施例による方法、設備(システム)、及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して記述した。コンピュータプログラム指令でフローチャート及び/又はブロック図における各工程及び/又はブロック、及びフローチャート及び/又はブロック図における工程及び/又はブロックとの組み合わせを実現することを理解すべきである。コンピュータ又はその他のプログラム可能なデータ処理設備のプロセッサにより実行された指令で、フローチャートの1つの工程又は複数の工程及び/又はブロック図の1つのブロック又は複数のブロックに指定された機能を実現するための装置を発生させるように、これらのコンピュータプログラム指令を共用コンピュータ、専用コンピュータ、組み込みプロセッサ又はその他のプログラム可能なデータ処理設備のプロセッサに提供することにより1つの机器を生成する。
これらのコンピュータプログラム指令はコンピュータ又はその他のプログラム可能なデータ処理設備は特定形態で作動するコンピュータ読み取り可能な記憶装置に記憶されてもよく、これにより当該コンピュータ読み取り可能な記憶装置に記憶された指令は指令装置を含む製造品を生成し、当該指令装置はフローチャートの1つの工程又は複数の工程及び/又はブロック図1つのブロック又は複数のブロックに指定された機能を実現する。
これらのコンピュータプログラム指令もコンピュータ又はその他のプログラム可能なデータ処理設備に載せられてもよく、これによりコンピュータ又はその他のプログラム可能な設備では一連の操作ステップを実行してコンピュータの実現可能な処理を生成することにより、コンピュータ又はその他のプログラム可能な設備で実行された指令はフローチャートの1つの工程又は複数の工程及び/又はブロック図の1つのブロック又は複数のブロックに指定された機能を実現するためのステップを提供する。
本発明の好ましい実施例を説明したが、当業者は一旦に基本的な創造的概念を了解すると、これらの実施例に他の変更及び修正を行うことができる。このため、付属する請求の範囲は好ましい実施例を含むとともに本発明の範囲に落ちるすべての変更及び修正と解釈すべきである。
明らかに、当業者は本発明に各種の修正及び変形を行うが本発明の精神及び範囲を逸脱しないことができる。このように、本発明のこれらの修正及び変形は本発明の請求の範囲及びその等同技術の範囲に属すると、本発明もこれらの修正及び変形を含むことを意図とする。
本出願は2015年1月16日に提出した出願番号が201510024568.1で発明名称が「ストリームメディアデータ伝送装置、方法及びシステム」の中国の優先出願の優先権を要求し、引用によりそのすべての内容をここに併合する。
301 クライアント
302 サーバ
701 第1の処理モジュール
702 第2の処理モジュール
703 第1の送受信モジュール
704 第2の送受信モジュール
801 処理モジュール
802 送受信モジュール

Claims (19)

  1. クライアントであって、
    サーバが同じ内容であり異なるビットレートである複数のセグメントを送信するかどうかを判断するための第1の処理モジュールと、
    前記第1の処理モジュールにより、前記サーバが同じ内容であり異なるビットレートである複数のセグメントを送信すると判断する場合に、前記サーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを、前記クライアント自身によって、または前記サーバによって送信される第1の指示情報に従って判断する第2の処理モジュールと、を備えるクライアント。
  2. 前記第2の処理モジュールにより前記サーバが優先的に高ビットレートのセグメントを送信すると判断する場合に、高ビットレートのセグメントの受信を始める第1の送受信モジュールを更に備える請求項1に記載のクライアント。
  3. 前記第2の処理モジュールは、更に、
    前記第1の送受信モジュールが高ビットレートのセグメントの受信を始めた後、前記第1の送受信モジュールが当該高ビットレートのセグメントの受信を始めてから第1の時間閾値内に当該高ビットレートのセグメントに対する受信を完成したかどうかを判断し、
    前記第1の送受信モジュールが前記第1の時間閾値内に当該高ビットレートのセグメントに対する受信を完成していないと、前記第1の送受信モジュールが当該高ビットレートのセグメントの受信をあきらめるように制御し、且つ低ビットレートのセグメントの受信を始める請求項2に記載のクライアント。
  4. 前記第2の処理モジュールは更に、
    前記第1の送受信モジュールが前記第1の時間閾値内に当該高ビットレートのセグメントに対する受信を完成すると、前記第1の送受信モジュールが前記サーバへ、前記サーバが低ビットレートのセグメントを送信する必要がないことを通知する第2の指示情報を送信するように制御する請求項3に記載のクライアント。
  5. 前記第2の処理モジュールにより、前記サーバが優先的に低ビットレートのセグメントを送信すると判断する場合に、低ビットレートのセグメントの受信を始め、且つ低ビットレートのセグメントを受信した後、引き続いて高ビットレートのセグメントの受信を始めるための第2の送受信モジュールを更に含む請求項1に記載のクライアント。
  6. 前記第2の送受信モジュールが当該高ビットレートのセグメントの受信を始めた後、前記第2の処理モジュールは更に、
    前記第2の送受信モジュールが当該高ビットレートのセグメントの受信を始めてから第2の時間閾値内に当該高ビットレートのセグメントに対する受信を完成したかどうかを判断し、
    前記第2の送受信モジュールが前記第2の時間閾値内に当該高ビットレートのセグメントに対する受信を完成していないと、前記第2の送受信モジュールに受信を完成した低ビットレートのセグメントを復号化させるように制御する請求項5に記載のクライアント。
  7. 前記第2の処理モジュールは、更に、前記第2の送受信モジュールが前記第2の時間閾値内に、当該高ビットレートのセグメントに対する受信を完成していないと、前記第2の送受信モジュールに当該高ビットレートのセグメントに対する受信をあきらめさせるように制御する請求項6に記載のクライアント。
  8. 前記第2の処理モジュールは具体的に、前記サーバにより送信された前記サーバが高ビットレートのセグメントを優先的に送信するかどうかを指示するための前記第1の指示情報に基づいて、前記サーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断することを特徴とする請求項1〜7のいずれかに記載のクライアント。
  9. サーバであって、
    クライアントへ同じ内容であり異なるビットレートである複数のセグメントを送信する際、優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを確定するための処理モジュールと、
    高ビットレートのセグメントを優先的に送信するかどうかを指示するための第1の指示情報を前記クライアントに送信する送受信モジュールと、を備えるサーバ。
  10. 前記送受信モジュールは、更に、
    前記第1の指示情報を前記クライアントに送信した後、前記クライアントより送信した、前記サーバが前記クライアントへ低ビットレートのセグメントを送信する必要がないことを指示する第2の指示情報を受信し、
    前記第2の指示情報により前記クライアントへの低ビットレートのセグメントの送信を停止する請求項9に記載のサーバ。
  11. クライアントによって実行されるストリームメディアデータ伝送方法であって、
    サーバが同じ内容であり異なるビットレートである複数のセグメントを送信するかどうかを判断するステップと、
    前記サーバが同じ内容であり異なるビットレートである複数のセグメントを送信すると、前記サーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを、前記クライアント自身によって、または前記サーバによって送信される第1の指示情報に従って判断するステップと、を含むストリームメディアデータ伝送方法。
  12. 前記サーバが優先的に高ビットレートのセグメントを送信すると、高ビットレートのセグメントの受信を始めるステップと、
    当該高ビットレートのセグメントの受信を始めてから第1の時間閾値内に当該高ビットレートのセグメントに対する受信を完成したかどうかを判断するステップと、
    前記第1の時間閾値内に当該高ビットレートのセグメントに対する受信を完成していないと、当該高ビットレートのセグメントの受信をあきらめ、且つ低ビットレートのセグメントの受信を始めるステップと、を含む請求項11に記載の方法。
  13. 前記第1の時間閾値内に当該高ビットレートのセグメントに対する受信を完成すると、前記サーバへ前記サーバが低ビットレートのセグメントを送信する必要がないことを通知する第2の指示情報を送信するステップを更に含む請求項12に記載の方法。
  14. 前記サーバが優先的に低ビットレートのセグメントを送信すると、低ビットレートのセグメントの受信を始め、且つ低ビットレートのセグメントを受信した後、引き続いて高ビットレートのセグメントの受信を始めるステップを更に含む請求項11に記載の方法。
  15. 当該高ビットレートのセグメントの受信を始めた後、
    当該高ビットレートのセグメントの受信を始めてから第2の時間閾値内に当該高ビットレートのセグメントに対する受信を完成したかどうかを判断するステップと、
    前記第2の時間閾値内に当該高ビットレートのセグメントに対する受信を完成していないと、受信が完成された低ビットレートのセグメントを復号化するステップとを更に含む請求項14に記載の方法。
  16. 前記第2の時間閾値内に当該高ビットレートのセグメントに対する受信を完成していな
    いと、当該高ビットレートのセグメントに対する受信をあきらめるステップを更に含む請求項15に記載の方法。
  17. 前記サーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断することは、
    前記サーバにより送信した前記サーバが高ビットレートのセグメントを優先的に送信するかどうかを指示するための前記第1の指示情報を受信するステップと、
    受信された前記第1の指示情報により、前記サーバが優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを判断するステップとを含む請求項11〜16のいずれかに記載の方法。
  18. サーバによって実行されるストリームメディアデータ伝送方法であって、
    クライアントへ同じ内容であり異なるビットレートである複数のセグメントを送信する際、優先的に高ビットレートのセグメントを送信するか、優先的に低ビットレートのセグメントを送信するかを確定するステップと、
    高ビットレートのセグメントを優先的に送信するかどうかを指示するための第1の指示情報を前記クライアントに送信するステップと、を含むストリームメディアデータ伝送方法。
  19. 前記第1の指示情報を前記クライアントに送信した後、更に、
    前記クライアントにより送信した前記サーバが前記クライアントへ低ビットレートのセグメントを送信する必要がないことを指示する第2の指示情報を受信するステップと、
    前記第2の指示情報により前記クライアントへの低ビットレートのセグメントの送信を停止するステップとを含む請求項18に記載の方法。
JP2016569038A 2015-01-16 2015-06-18 ストリームメディアデータ伝送方法、クライアント及びサーバ Active JP6563424B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510024568.1A CN104581229B (zh) 2015-01-16 2015-01-16 一种流媒体数据传输装置、方法和系统
CN201510024568.1 2015-01-16
PCT/CN2015/081737 WO2016112639A1 (zh) 2015-01-16 2015-06-18 流媒体数据传输方法、客户端和服务器

Publications (2)

Publication Number Publication Date
JP2018509010A JP2018509010A (ja) 2018-03-29
JP6563424B2 true JP6563424B2 (ja) 2019-08-21

Family

ID=53096280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016569038A Active JP6563424B2 (ja) 2015-01-16 2015-06-18 ストリームメディアデータ伝送方法、クライアント及びサーバ

Country Status (6)

Country Link
US (1) US10516712B2 (ja)
EP (1) EP3247121B1 (ja)
JP (1) JP6563424B2 (ja)
KR (1) KR101978738B1 (ja)
CN (1) CN104581229B (ja)
WO (1) WO2016112639A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104581229B (zh) 2015-01-16 2018-08-03 京东方科技集团股份有限公司 一种流媒体数据传输装置、方法和系统
CN107566855B (zh) * 2016-06-30 2020-11-10 华为技术有限公司 频道快速切换的方法、服务器和机顶盒
CN108768952A (zh) * 2018-05-03 2018-11-06 深圳市网心科技有限公司 一种流媒体传输方法、客户端、服务器和存储介质
CN111083094B (zh) * 2018-10-22 2022-06-07 中国移动通信有限公司研究院 一种流媒体的码流切换方法及装置、计算机存储介质
CN109672887B (zh) * 2019-03-06 2021-04-09 北京奇艺世纪科技有限公司 一种视频编码方法及装置
US11076188B1 (en) * 2019-12-09 2021-07-27 Twitch Interactive, Inc. Size comparison-based segment cancellation
CN111600937A (zh) * 2020-04-28 2020-08-28 上海翌旭网络科技有限公司 基于自适应码率的流协议文件传输方法及系统
US11153581B1 (en) 2020-05-19 2021-10-19 Twitch Interactive, Inc. Intra-segment video upswitching with dual decoding
CN114071241A (zh) * 2020-08-06 2022-02-18 成都鼎桥通信技术有限公司 视频播放方法、系统、电子设备及存储介质
US11770592B2 (en) 2021-06-28 2023-09-26 Synamedia Limited Intrasegment adjustment of video transmission rate
CN113473183B (zh) * 2021-06-29 2023-05-05 华夏城视网络电视股份有限公司 一种应用于融合媒体的动静态媒体流批处理方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100453505B1 (ko) 2002-04-03 2004-10-20 주식회사 케이티프리텔 무선 네트워크 클라이언트에서 스트리밍 데이터의 멀티비트 레이트 기능 제어 방법 및 그 장치
US7725557B2 (en) * 2002-06-24 2010-05-25 Microsoft Corporation Client-side caching of streaming media content
JP2007214675A (ja) 2006-02-07 2007-08-23 Hitachi Ltd デジタル放送受信装置
US8230288B2 (en) * 2006-10-18 2012-07-24 Samsung Electronics Co., Ltd. Data transmission apparatus and method for applying an appropriate coding rate
CN101227590B (zh) 2007-01-19 2013-03-06 北京风行在线技术有限公司 基于p2p协议的媒体文件点播控制方法及装置
KR100931344B1 (ko) 2007-08-31 2009-12-11 에스케이 텔레콤주식회사 Vod 스트리밍 서비스를 제공하는 방법과 그를 위한시스템, 서버 및 사용자 단말기
CN101471919B (zh) * 2007-12-29 2012-01-11 突触计算机系统(上海)有限公司 基于点对点传输协议的设备中用于下载分片的方法及装置
JP5245452B2 (ja) 2008-02-26 2013-07-24 富士通株式会社 無線基地局、端末、および上位装置
US8150992B2 (en) * 2008-06-18 2012-04-03 Google Inc. Dynamic media bit rates based on enterprise data transfer policies
JP5347441B2 (ja) 2008-11-10 2013-11-20 日本電気株式会社 動画像処理装置
CN101848490B (zh) * 2009-03-24 2015-08-05 三星电子株式会社 移动通信系统中根据数据重复重发的操作方法和装置
US8817684B2 (en) * 2010-12-17 2014-08-26 Verizon Patent And Licensing Inc. Adaptive mobile multicasting for wireless networks
CN102143384B (zh) * 2010-12-31 2013-01-16 华为技术有限公司 一种媒体文件生成方法、装置及系统
CN102801690B (zh) 2011-05-25 2015-09-30 华为技术有限公司 流媒体的处理方法、分发服务器、客户端及系统
US20120324122A1 (en) * 2011-06-20 2012-12-20 David Miles Method and apparatus for server-side adaptive streaming
US20130170561A1 (en) * 2011-07-05 2013-07-04 Nokia Corporation Method and apparatus for video coding and decoding
CN102307302B (zh) * 2011-07-06 2014-07-30 杭州华三通信技术有限公司 一种保持视频图像连续性的方法和装置
US9712891B2 (en) 2011-11-01 2017-07-18 Nokia Technologies Oy Method and apparatus for selecting an access method for delivery of media
CN104620590B (zh) 2012-09-20 2018-08-10 索尼公司 接收装置、发送/接收系统、接收方法
CN104737514B (zh) * 2012-10-23 2018-08-17 瑞典爱立信有限公司 用于分布媒体内容服务的方法和设备
CN103248962B (zh) * 2013-04-23 2016-12-28 华为技术有限公司 获取流媒体数据的方法、设备及系统
CN103747283B (zh) * 2013-12-24 2017-02-01 中国科学院声学研究所 视频分片的下载方法
CN104202618B (zh) * 2014-09-26 2019-02-15 三星电子(中国)研发中心 获取播放资源的方法、代理客户端、代理服务器和系统
CN104581229B (zh) * 2015-01-16 2018-08-03 京东方科技集团股份有限公司 一种流媒体数据传输装置、方法和系统

Also Published As

Publication number Publication date
EP3247121A1 (en) 2017-11-22
CN104581229B (zh) 2018-08-03
EP3247121B1 (en) 2024-02-14
US20160212189A1 (en) 2016-07-21
KR20160145657A (ko) 2016-12-20
US10516712B2 (en) 2019-12-24
CN104581229A (zh) 2015-04-29
EP3247121A4 (en) 2018-07-18
WO2016112639A1 (zh) 2016-07-21
JP2018509010A (ja) 2018-03-29
KR101978738B1 (ko) 2019-05-15

Similar Documents

Publication Publication Date Title
JP6563424B2 (ja) ストリームメディアデータ伝送方法、クライアント及びサーバ
JP6648223B2 (ja) メディアコンテンツをクライアントデバイスにストリーミングするための方法および装置
JP5824465B2 (ja) Httpストリーミングにおける適応のための方法と装置
CN104918072A (zh) 低延时实况视频流传输
US10320872B2 (en) Method and apparatus for transmitting and receiving media segments using adaptive streaming
CN110933517B (zh) 码率切换方法、客户端和计算机可读存储介质
JP2016502803A (ja) メディアコンテンツをクライアントデバイスにストリーミングするための方法および装置
JP7011941B2 (ja) クライアント及び受信方法
CN113748659B (zh) 接收会话的媒体数据的方法、装置和非易失性计算机可读介质
WO2011054319A1 (zh) 一种在httpstreaming系统中实现分层请求内容的方法,装置和系统
CN109587514A (zh) 一种视频播放方法、介质和相关装置
JP2005537742A (ja) マルチメディアデータのストリーミング方法
WO2016112641A1 (zh) 客户端、流媒体数据接收方法和流媒体数据传输系统
WO2011143916A1 (zh) 媒体适配的方法和装置
CN110710220B (zh) 用于流传输数据的方法和装置
KR20190048186A (ko) 적응적 스트리밍 서비스를 위한 다중 경로 기반 분할 전송 시스템 및 스트리밍 방법
JP6740110B2 (ja) データ配信システム、通信端末、及びプログラム
JP7496022B2 (ja) クライアント、サーバ、受信方法及び送信方法
JP2006285586A (ja) コンテンツ配信システム、コンテンツ配信装置、コンテンツ配信プログラムおよびコンピュータプログラム
TW201542013A (zh) 用戶終端機配置成接收多段分割之多媒體內容以取得網路資訊之方法
TW201532427A (zh) 用戶終端機配置成接收多段分割之多媒體內容以取得網路資訊之方法
KR20140126094A (ko) 멀티미디어 시스템에서 컨텐츠 재생 방법 및 장치
TW201542014A (zh) 用戶終端機配置成接收多段分割之多媒體內容以取得網路資訊之方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180615

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190529

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190701

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190724

R150 Certificate of patent or registration of utility model

Ref document number: 6563424

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250