JP4955571B2 - ストリーミングメディアをバッファリングする方法及び装置 - Google Patents

ストリーミングメディアをバッファリングする方法及び装置 Download PDF

Info

Publication number
JP4955571B2
JP4955571B2 JP2007547151A JP2007547151A JP4955571B2 JP 4955571 B2 JP4955571 B2 JP 4955571B2 JP 2007547151 A JP2007547151 A JP 2007547151A JP 2007547151 A JP2007547151 A JP 2007547151A JP 4955571 B2 JP4955571 B2 JP 4955571B2
Authority
JP
Japan
Prior art keywords
buffer
streaming media
chunk
playback
chunks
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
JP2007547151A
Other languages
English (en)
Other versions
JP2008526057A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Publication of JP2008526057A publication Critical patent/JP2008526057A/ja
Application granted granted Critical
Publication of JP4955571B2 publication Critical patent/JP4955571B2/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/266Stopping or restarting the source, e.g. X-on or X-off
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • 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
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
    • 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/439Processing of audio elementary streams
    • H04N21/4392Processing of audio elementary streams involving audio buffer management
    • 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/44004Processing 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 video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests

Landscapes

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

Description

本発明はメディア通信技術分野に関し、特に、ストリーミングメディアをバッファリングする方法及び装置に関する。
現在、ストリーミングメディアが既にネットワークで広く使用され、人々は、ストリーミングメディアを通じてネットワークでリアルタイムに番組を見たり聞いたりすることができる。ストリーミングメディアによっては、閲覧者がストリーミングメディアファイル全体のダウンロードが完了するまで待たされることなく、ストリーミングメディアファイルをダウンロードしながら当該ファイルを再生することが許可されることにより、使用者のダウンロード時間が大きく節約されている。ストリーミングメディア技術は、ストリーミングメディアのダウンロード及び再生を実現するプロセスにおいて、具体的にストリーミングメディアの収集と、圧縮と、伝送と、バッファリングと再生などの多種の技術に関する。本発明は、ストリーミングメディアのバッファリング技術に関するものである。
従来の技術において、ストリーミングメディアプレーヤーはネットワークからストリーミングメディアをダウンロードし、当該ストリーミングメディアをそれ自身の再生バッファにバッファリングし、当該再生バッファを通じて、ダウンロードしたストリーミングメディアを再生する。このプロセスは、ネットワーク状況によって決定されるストリーミングメディアのダウンロード速度と、ストリーミングメディアプレーヤー自身によって決定されるストリーミングメディアのローカル再生速度との2つの速度に関する。ストリーミングメディアの再生速度がネットワーク状況と関係がないため、ストリーミングメディアのダウンロード速度と再生速度との間に差異がある。具体的に、下記のような2つの場合が含まれる。
1、ストリーミングメディアのダウンロード速度が再生速度より速い。
この場合では、再生バッファ内のストリーミングメディアがまだ再生されていないが、新たにダウンロードされたストリーミングメディアが既に再生バッファに到達することになる。従って、再生バッファ内のまだ再生されていないストリーミングメディアの一部が新たにダウンロードされたストリーミングメディアにより上書きされ、これによって、ストリーミングメディアのロスが発生し、再生エラーとなる。
2、ストリーミングメディアのダウンロード速度が再生速度より遅い。
この場合では、再生バッファにバッファリングされた全部のストリーミングメディアの再生が既に完了したが、新たなストリーミングメディアがまだ再生バッファに到達していないことになる。従って、ストリーミングメディアの再生の不連続をもたらし、再生の品質に影響を及ぼす。
ストリーミングメディアのダウンロード速度及び再生速度が、それぞれ異なる要素によって決定されるため、この2つの速度を等しくすることは不可能である。これにより、上記の速度の不一致による問題も生じる。
本発明は、上記問題点に鑑みてなされたものであって、ダウンロード速度及び再生速度が一致しない場合において、ストリーミングメディアのダウンロード及び再生をそれぞれ制御することによって、速度の不一致により発生する再生バッファ内のストリーミングメディアの上書き及びストリーミングメディアの再生の不連続の問題を回避する、ストリーミングメディアをバッファリングする方法及び装置を提供することを主な目的とする。
上記目的を達成するため、本発明はストリーミングメディアをバッファリングする方法を提供し、当該方法は、
バッファにフリーバッファチャンクがある場合において、ストリーミングメディアをダウンロードし、前記ストリーミングメディアを前記フリーバッファチャンクにバッファリングするステップと、
バッファリングされているストリーミングメディアの量が、ストリーミングメディアを連続再生する要求を満足できる場合において、バッファチャンクにバッファリングされているストリーミングメディアを再生し、前記バッファチャンクを解放してフリーバッファチャンクにするステップとを含む。
ストリーミングメディアをバッファリングする装置であって、
ダウンロードされたストリーミングメディアをバッファリングするバッファリングモジュールと、
前記バッファリングモジュールにフリーバッファチャンクがある場合、ストリーミングメディアをダウンロードし、ダウンロードしたストリーミングメディアをフリーバッファチャンクにバッファリングするダウンロードモジュールと、
前記バッファリングモジュールにおいて、現在バッファリングされているストリーミングメディアの量が、ストリーミングメディアを連続再生する要求を満足できる場合、バッファリングモジュール内のストリーミングメディアを再生し、前記ストリーミングメディアがバッファリングされているバッファチャンクを解放してフリーバッファチャンクにする再生モジュールとを含む。
上記からわかるように、本発明において、現在ダウンロードしているストリーミングメディアをバッファリングするためのフリーバッファチャンクが再生バッファに現在ないか否かをリアルタイムに判断することを通じて、現在、ダウンロード速度が再生速度より大きいことによりストリーミングメディアが上書きされる問題をもたらすか否かを判断し、且つ当該問題をもたらすと判断する場合、現在のストリーミングメディアのダウンロードを一時停止し、これによって、ストリーミングメディアが上書きされる問題を回避する。本発明において、現在、再生バッファにバッファリングされているストリーミングメディアのバッファリングした後の再生時刻が、再生速度に従って当該ストリーミングメディアを再生すべき時刻より遅いか否かをリアルタイムに判断することを通じて、現在、再生速度がダウンロード速度より大きいことが、再生の不連続の問題をもたらすか否かを判断し、且つ当該問題をもたらすと判断する場合、現在のストリーミングメディアに対する再生を一時停止し、これによって、ストリーミングメディアの再生の不連続の問題を回避する。従って、ストリーミングメディアのバッファリングと再生プロセスにおいてエラーが発生しないことが確保でき、且つストリーミングメディアの再生品質が確保できる。
本発明はストリーミングメディアをバッファリングする方法及び装置を提供して、ストリーミングメディアのダウンロード及び再生の速度を制御し、これによって、速度の不一致による再生バッファ内のストリーミングメディアの上書きの問題とストリーミングメディアの再生の不連続の問題とを回避する。
本発明の核心的発明構想は、再生バッファが、ダウンロード速度に従ってストリーミングメディアをダウンロードし、ダウンロードしたストリーミングメディアをフリーバッファチャンクにバッファリングし、再生速度に従ってバッファリングしたストリーミングメディアを再生し、且つ前記ストリーミングメディアを再生した後、再生したストリーミングメディアが保存されているバッファチャンクを解放してフリーバッファチャンクにする。当該方法には、上記動作を行うとともに下記の判断をリアルタイムに実行することが更に含まれる。
現在ダウンロードされているストリーミングメディアをバッファリングするためのフリーバッファチャンクが再生バッファに現在ないか否かをリアルタイムに判断し、フリーバッファチャンクがない場合、現在のストリーミングメディアをダウンロードするステップの実行を停止し、本ステップに戻って判断を継続し、フリーバッファチャンクがある場合、前記ストリーミングメディアをダウンロードし、ダウンロードしたストリーミングメディアをフリーバッファチャンクにバッファリングするステップを実行する。
再生バッファに現在バッファリングされているストリーミングメディアのバッファリングした後の再生時刻が、再生速度に従って当該ストリーミングメディアを再生すべき時刻より遅いか否かをリアルタイムに判断し、遅い場合、現在のストリーミングメディアを再生するステップの実行を停止し、本ステップに戻って判断を継続し、遅くない場合、前記ストリーミングメディアを再生するステップ及びバッファチャンクを解放してフリーバッファチャンクにするステップを実行する。
以下に、まず本発明によって提供される方法について詳しく説明する。
本発明の実施形態におけるバッファは、例えばストリーミングメディアプレーヤー内の再生バッファなどの多種のバッファであってもよい。本発明の実施形態において、バッファチャンクを使用してストリーミングメディアをバッファリングするため、本発明の実現には下記のステップの実行が必要である。
再生バッファにおけるストリーミングメディアの受信側において、下記のステップを実行する。
ステップaで、再生バッファはダウンロード速度に従って、ネットワークを通じて1つのチャンクのストリーミングメディアをダウンロードする。
ステップbで、現在、再生バッファにフリーバッファチャンクがまだあるか否かを判断し、フリーバッファチャンクがある場合、再生バッファから1つのフリーバッファチャンクを取り出し、フリーバッファチャンクがない場合、再生バッファは、ネットワークを通じてストリーミングメディアチャンクをダウンロードすることを停止し、本ステップに戻り、再生バッファにフリーバッファチャンクが出現するまで、繰り返す。
ステップcで、ステップaにおける前記ストリーミングメディアをステップbにおいて取り出したフリーバッファチャンクに保存し、且つストリーミングメディアが保存されている当該バッファチャンクを再生バッファに返す。そして、ステップaに戻り、ストリーミングメディアのダウンロードが完了するまで、繰り返す。
再生バッファにおけるストリーミングメディアの再生側において、下記のステップを実行する。
ステップAで、再生バッファにおいてストリーミングメディアが保存されているバッファチャンク数が、ストリーミングメディアが再生バッファにバッファリングされている必要がある時間に対応するバッファチャンク数以上であるか否かを判断する。以上である場合、ステップBを実行する。以上でない場合、再生バッファは、バッファチャンクの再生を停止し、本ステップに戻り、再生バッファにおいてストリーミングメディアが保存されているバッファチャンク数が、ストリーミングメディアが再生バッファにバッファリングされている必要がある時間に対応するバッファチャンク数以上となるまで、繰り返す。
ステップBで、再生速度に従って、再生バッファから順番にストリーミングメディアが保存されている1つのバッファチャンクを取り出し且つ再生し、再生した後、前記再生したストリーミングメディアが保存されているフリーバッファチャンクを再生バッファに返す。そして、ステップAに戻り、ストリーミングメディアの再生が完了するまで、繰り返す。
以下、本発明について、具体的な実施形態と図面を参照して詳しく説明する。
具体的に説明する前に、まず、本発明の実施形態に関する幾つかの変数について説明する。
再生バッファのバッファチャンクの総数ChunkNumは、ストリーミングメディアプレーヤーにおいてストリーミングメディアをバッファリングするためのバッファチャンクの総数を表す。
バッファチャンク時間長ChunkDurationは、各ストリーミングメディアが1つのバッファチャンクにバッファリングされている時間を表す。
バッファ全時間長BufferTimeは、各ストリーミングメディアが再生バッファにバッファリングされている全時間長を表す。ストリーミングメディアが再生バッファにバッファリングされている時間が当該バッファ全時間長に達した場合にのみ、当該ストリーミングメディアを再生バッファから実際に再生することが許可される。
上記3つの変数は実際のテスト(test)において調整して最適値を選択することができる。製品の実際のテストにおいて、ChunkNumを10とし、ChunkDurationを2秒とし、BufferTimeを6秒とするように選択することができ、実際の要求に基づいて、以上の3つの変数のそれぞれに他の値を選択してもよい。それが本発明の実現に影響を及ぼさない。
本発明の実施形態において、ダウンロード速度及び再生速度に対する制御を実現するため、再生バッファにフリーバッファキューとメディアバッファキューとを導入する。そのうち、フリーバッファキューは再生バッファにおいてストリーミングメディアによって占用されていない全部のフリーバッファチャンクを管理し、メディアバッファキューは再生バッファにおいてストリーミングメディアによって占用されており且つ実際的な再生を待っている全部のバッファチャンクを管理する。この2つのバッファキューに対して、ストリーミングメディアのファーストインファーストアウト(FIFO:First−In First−Out)の原則に従って、各自の操作をそれぞれ設計する。
そのうち、フリーバッファキューに対する操作は、フリーバッファチャンクの取り出し(GetFreeBuffer)操作と、フリーバッファチャンクの保存(PutFreeBuffer)操作とを含む。
フリーバッファチャンクの取り出し操作において、フリーバッファキューから1つのバッファチャンクを取り出すとともに、フリーバッファキューの現在バッファチャンク数を1減算する。当該操作を実行するとき、フリーバッファキューにフリーバッファチャンクがなければ、当該操作はナル(null)を返す。
フリーバッファチャンクの保存操作において、再生バッファ内の1つのフリーバッファチャンクをフリーバッファキューに返すとともに、フリーバッファキューの現在バッファチャンク数を1加算する。
メディアバッファキューに対する操作は、メディアバッファチャンクの取り出し(GetMediaBuffer)操作と、メディアバッファチャンクの保存(PutMediaBuffer)操作とを含む。
メディアバッファチャンクの取り出し操作において、メディアバッファキューからストリーミングメディアが保存されている1つのバッファチャンクを、当該バッファチャンク内のストリーミングメディアが再生バッファから実際的に再生されることができるように取り出すとともに、メディアバッファキューの現在バッファチャンク数を1減算する。当該操作を実行するとき、メディアバッファキューにバッファチャンクがなければ、当該操作はナルを返す。
メディアバッファチャンクの保存操作において、ストリーミングメディアが保存されている1つのバッファチャンクを、実際に当該ストリーミングメディアが再生されることを待つようにメディアバッファキューに保存するとともに、メディアバッファキューの現在バッファチャンク数を1加算する。
ここで、ストリーミングメディアをバッファリングする前に、再生バッファ内の全部のバッファチャンクがフリーバッファキューに保存されており、つまり、フリーバッファキューのバッファチャンク数がChunkNumと等しく、メディアバッファキューのバッファチャンク数が0と等しい。
上記のように設定した後、本発明において、下記のステップを通じて上記の本発明の実施形態の各ステップを実現することができる。
1、図1を参照して、再生バッファにおけるストリーミングメディアの受信側において、下記のステップを実行する。
ステップ101で、ストリーミングメディアのダウンロードが既に完了したか否かを判断し、完了した場合、本プロセスを終了し、完了していない場合、ステップ102を実行する。
ステップ102で、再生バッファがネットワークから1つのチャンクのストリーミングメディアをダウンロードする。ここで、本発明の実施形態において、便利に実現するために、ネットワークからダウンロードされたストリーミングメディアを受信し且つバッファリングするための1つのダウンロードバッファが設置されている。当該ダウンロードバッファはネットワークを通じてストリーミングサーバからストリーミングメディアを取得し、再生バッファはまた当該ダウンロードバッファからストリーミングメディアを得る。ここで、前記ダウンロードバッファに対して以下のように制限する、即ち、ネットワークからダウンロードされたストリーミングメディアを用いて、再生バッファによって取り出されていないストリーミングメディアを上書きしてはいけない。当該制限及び後続の具体的なプロセスにより、ダウンロード速度に対する制御を図る。
本発明の他の実施形態において、再生バッファは直接にネットワークを通じてストリーミングサーバからストリーミングメディアチャンクを取得することもできる。それが本発明の実現に影響を及ぼさない。
ステップ103〜ステップ104で、フリーバッファキューに対してフリーバッファチャンクの取り出し操作を実行し、当該操作の戻り値がナルであるか否かを判断する。ナルである場合、フリーバッファキューに現在フリーバッファチャンクがないことを表し、相応的に、再生バッファ内の各バッファチャンクに現在全部ストリーミングメディアが保存されていることを表し、現在ネットワークから取得されたストリーミングメディアによって再生バッファ内のまだ再生されていないストリーミングメディアが上書きされることを回避するため、ステップ105を実行する。ナルでない場合、再生バッファに、受信されたストリーミングメディアを保存できるフリーバッファチャンクがまだあることを表し、ステップ106を実行する。
ステップ105で、再生バッファがネットワークからストリーミングメディアのダウンロードを停止する。そして、ステップ103に戻り、フリーバッファキューに対して実行したフリーバッファチャンクの取り出し操作の戻り値がナル以外となるまで、繰り返す。
ここで、本発明の実施形態において、再生バッファがダウンロードバッファからストリーミングメディアを取得することを停止し、上記ダウンロードバッファに対する制限に基づいて、再生バッファがダウンロードバッファからストリーミングメディアを取得することを停止した後、ダウンロードバッファは、その中のストリーミングメディアがまだ取り出されておらず且つ新たにダウンロードしたストリーミングメディアによって上書きされるべきではないため、ネットワークを通じてストリーミングサーバからストリーミングメディアをダウンロードすることを停止し、これによって、ダウンロード速度を制御する目的に達することができる。
本発明の他の実施形態において、再生バッファは直接にネットワークを通じてストリーミングサーバからストリーミングメディアのダウンロードを停止することもでき、これによって、ダウンロード速度を制御する。この方式を採用しても本発明の実現に影響を及ぼさない。
ステップ106〜ステップ107で、ステップ102においてダウンロードされたストリーミングメディアをステップ103において取り出されたフリーバッファチャンクに保存し、そして、メディアバッファキューに対してメディアバッファチャンクの保存操作を実行することで、当該ストリーミングメディアが保存されているバッファチャンクを再生バッファのメディアバッファキューに返す。そして、ステップ101に戻り、ストリーミングメディアのダウンロードが完了するまで、繰り返す。
2、図2を参照して、再生バッファにおけるストリーミングメディアの再生側において、下記のステップを実行する。
ステップ201で、再生バッファはストリーミングメディアの再生が既に完了したか否かを判断し、完了した場合、本プロセスを終了し、完了していない場合、ステップ202を実行する。
ステップ202で、再生バッファは、メディアバッファキュー内のバッファチャンク数が、ストリーミングメディアが再生バッファにバッファリングされている必要がある時間に対応するバッファチャンク数以上であるか否かを判断する。以上である場合、ステップ203を実行する。以上でない場合、再生バッファはバッファチャンクに保存されているストリーミングメディアを再生することを停止し、そして、本ステップに戻り、メディアバッファキュー内のバッファチャンク数が、ストリーミングメディアが再生バッファにバッファリングされている必要がある時間に対応するバッファチャンク数以上となるまで、繰り返す。
ここで、当該方法において、ストリーミングメディアをバッファリングする前に、前記ストリーミングメディアが再生バッファにバッファリングされている必要がある時間に対応するバッファチャンク数を予め算出する。当該バッファチャンク数はBufferTime/ChunkDurationと等しい。
ステップ203で、再生バッファは再生速度に従って、その中のメディアバッファキューに対してメディアバッファチャンクの取り出し操作を実行する。
ステップ204〜ステップ205で、ストリーミングメディアの再生を実現するように、メディアバッファキューから取り出されたバッファチャンクにおけるストリーミングメディアを再生し、そして、フリーバッファキューに対してフリーバッファチャンクの保存操作を実行し、再生した後、前記再生したストリーミングメディアが保存されているフリーバッファチャンクを再生バッファのフリーバッファキューに返し、ステップ201に戻り、ストリーミングメディアの再生が完了するまで、繰り返す。
以下、本発明によって提供される装置について、図面を参照して詳しく説明する。
図3を参照して、本発明によって提供される装置は、ストリーミングメディアをダウンロードするダウンロードモジュール301と、ダウンロードされたストリーミングメディアを再生する再生モジュール302と、ダウンロードされたストリーミングメディアをバッファリングするバッファリングモジュール303とを含む。
ストリーミングメディアのダウンロード及び再生のプロセスにおいて、ダウンロードモジュール301は、バッファリングモジュール303にフリーバッファチャンクがあるか否かを判断し、且つフリーバッファチャンクがない場合、ストリーミングメディアのダウンロードを停止する。
再生モジュール302は、バッファリングモジュール303に現在バッファリングされているストリーミングメディアの量が、ストリーミングメディアを連続再生する要求を満足できるか否かを判断し、満足できる場合、バッファリングモジュール303内のストリーミングメディアを再生し、且つ当該ストリーミングメディアが保存されているバッファチャンクを解放してフリーバッファチャンクにし、満足できない場合、ストリーミングメディアの再生を停止する。
図4を参照して、本発明の実施形態において、バッファリングモジュール303は、バッファリングモジュール303内のフリーバッファチャンクを管理するフリーバッファキューと、バッファリングモジュール303内の既にストリーミングメディアによって占用されているバッファチャンクを管理するメディアバッファキューとを含む。
ダウンロードモジュール301は、ストリーミングメディアをダウンロードするプロセスにおいて、ダウンロードしたストリーミングメディアをバッファリングするための1つのバッファチャンクをフリーバッファキューから取り出すように、前記フリーバッファキューに対してフリーバッファチャンクの取り出し操作を実行し、ストリーミングメディアをバッファリングする操作を実行するとともに、ストリーミングメディアがバッファリングされているバッファチャンクをメディアバッファチャンクとしてメディアバッファキューに入れるように、メディアバッファキューに対してメディアバッファチャンクの保存操作を実行する。当該操作を実行するとき、フリーバッファキューにフリーバッファチャンクがなければ、当該操作はナルを返し、ダウンロードモジュール301は当該返された結果に基づいてバッファリングモジュール303に現在フリーバッファチャンクがないことを判断できる。
再生モジュール302は、ストリーミングメディアを再生するプロセスにおいて、メディアバッファキューにおいてストリーミングメディアがバッファリングされているバッファチャンク数が、ストリーミングメディアを連続再生する要求を満足できるか否かを判断する。満足できる場合、当該再生モジュール302は前記フリーバッファキューに対してメディアバッファチャンクの取り出し操作を実行し、取り出したメディアバッファチャンク内のストリーミングメディアを再生し且つ当該メディアバッファチャンクを解放してフリーバッファチャンクにする。満足できない場合、再生モジュール302は再生を停止する。ストリーミングメディアの再生を実行するとともに、再生モジュール302は、解放して得たフリーバッファチャンクをフリーバッファキューに返すように、フリーバッファキューに対してフリーバッファチャンクの保存操作を実行する。
図4に示す本発明の実施形態において、ダウンロードモジュールは、ダウンロードサブモジュールと、メディアの取り出しサブモジュールとを含む。
ダウンロードサブモジュールは、ストリーミングメディアをダウンロードし、且つダウンロードしたストリーミングメディアを当該サブモジュールのダウンロードバッファにバッファリングする。
メディアの取り出しサブモジュールは、前記ダウンロードバッファからストリーミングメディアを取得して当該ストリーミングメディアを前記バッファリングモジュールにバッファリングし、且つバッファリングモジュールにフリーバッファチャンクがあるか否かを判断し、フリーバッファチャンクがない場合、ストリーミングメディアのダウンロードを停止する。本発明の好ましい実施形態において、ダウンロードサブモジュール内のダウンロードバッファに対して予め設定し、ネットワークからダウンロードしたストリーミングメディアを用いてメディアの取り出しサブモジュールによって取り出されていないストリーミングメディアを上書きしてはいけないと規定する。これによって、ダウンロードモジュールは、バッファリングモジュールにフリーバッファチャンクがない場合において、ストリーミングメディアのダウンロードを自動的に停止することができる。本発明の他の実施形態において、他の方式を採用してストリーミングメディアのダウンロードの停止に対する制御を実現してもよい。それが本発明の実現に影響を及ぼさない。
上記説明されたものは、本発明の好ましい実施形態にすぎず、本発明の保護範囲を限定するものではない。本発明の精神と原則内で行われる種々の修正、均等切替、改善などは全て本発明の保護範囲内に含まれるべきである。
本発明の実施形態において、再生バッファにおけるストリーミングメディアの受信側で実行されるステップのフローチャートである。 本発明の実施形態において、再生バッファにおけるストリーミングメディアの再生側で実行されるステップのフローチャートである。 本発明によって提供される装置を示す図である。 本発明の実施形態において提供される装置を示す図である。
符号の説明
301 ダウンロードモジュール
302 再生モジュール
303 バッファリングモジュール

Claims (12)

  1. ストリーミングメディアをバッファリングする方法であって、
    バッファにフリーバッファチャンクがある場合において、ストリーミングメディアをダウンロードし、前記ストリーミングメディアを前記フリーバッファチャンクにバッファリングするステップと、
    バッファにおいてストリーミングメディアがバッファリングされているバッファチャンク数が、ストリーミングメディアがバッファにバッファリングされている必要がある時間に対応する所定のバッファチャンク数以上である場合において、バッファチャンクにバッファリングされているストリーミングメディアを再生し、前記バッファチャンクを解放してフリーバッファチャンクにするステップと、
    を含むことを特徴とする方法。
  2. フリーバッファチャンクがない場合において、ストリーミングメディアのダウンロードを停止し、
    バッファにおいてストリーミングメディアがバッファリングされているバッファチャンクの数が、前記所定のバッファチャンク数よりも小さい場合において、ストリーミングメディアの再生を停止することを更に含む、
    ことを特徴とする請求項1に記載の方法。
  3. 前記バッファは、全部のフリーバッファチャンクを管理するフリーバッファキューと、ストリーミングメディアがバッファリングされている全部のバッファチャンクを管理するメディアバッファキューとを含む、
    ことを特徴とする請求項2に記載の方法。
  4. 前記ストリーミングメディアのダウンロード及びダウンロードの停止は、
    前記フリーバッファキューからフリーバッファチャンクを取り出し、前記取り出し操作に対する戻り値がヌルである場合、ストリーミングメディアのダウンロードを停止し、前記取り出し操作に対する戻り値がヌルでない場合、ストリーミングメディアをダウンロードすることを含む、
    ことを特徴とする請求項に記載の方法。
  5. 前記ストリーミングメディアを前記フリーバッファチャンクにバッファリングした後、メディアバッファキューに対してバッファチャンクの保存操作を実行することにより、前記ストリーミングメディアがバッファリングされているバッファチャンクをメディアバッファキューに返すことを更に含む、
    ことを特徴とする請求項に記載の方法。
  6. 前記ストリーミングメディアの再生及び再生の停止は、
    バッファリングされているストリーミングメディアの量が、ストリーミングメディアを連続再生する要求を満足できる場合、メディアバッファキューからバッファチャンクを取り出し、当該バッファチャンクにおけるストリーミングメディアを再生し、
    バッファリングされているストリーミングメディアの量が、ストリーミングメディアを連続再生する要求を満足できない場合、ストリーミングメディアの再生を停止することを含む、
    ことを特徴とする請求項に記載の方法。
  7. バッファチャンクにおけるストリーミングメディアを再生した後、フリーバッファキューに対してフリーバッファチャンクの保存操作を実行することにより、前記再生したストリーミングメディアがバッファリングされているフリーバッファチャンクをフリーバッファキューに返すことを更に含む、
    ことを特徴とする請求項に記載の方法。
  8. ストリーミングメディアが再生前にバッファリングされている必要がある全時間長をバッファチャンク時間長で予め除算し、除算結果を前記所定のバッファチャンク数とすることを更に含む、
    ことを特徴とする請求項に記載の方法。
  9. ストリーミングメディアをバッファリングする装置であって、
    ダウンロードされたストリーミングメディアをバッファリングするバッファリングモジュールと、
    前記バッファリングモジュールにフリーバッファチャンクがある場合、ストリーミングメディアをダウンロードし、ダウンロードしたストリーミングメディアをフリーバッファチャンクにバッファリングするダウンロードモジュールと、
    バッファにおいてストリーミングメディアがバッファリングされているバッファチャンク数が、ストリーミングメディアがバッファにバッファリングされている必要がある時間に対応する所定のバッファチャンク数以上である場合、バッファリングモジュール内のストリーミングメディアを再生し、前記ストリーミングメディアがバッファリングされているバッファチャンクを解放してフリーバッファチャンクにする再生モジュールと、
    を含むことを特徴とする装置。
  10. 前記バッファリングモジュールは、
    前記バッファリングモジュール内のフリーバッファチャンクを管理するフリーバッファキューと、
    前記バッファリングモジュール内の、ストリーミングメディアがバッファリングされているバッファチャンクを管理するメディアバッファキューと、
    を含むことを特徴とする請求項に記載の装置。
  11. 前記ダウンロードモジュールは、更に、前記バッファリングモジュールにフリーバッファチャンクがない場合、ストリーミングメディアのダウンロードを停止し、
    バッファにおいてストリーミングメディアがバッファリングされているバッファチャンク数が、前記所定のバッファチャンク数よりも小さい場合、ストリーミングメディアの再生を停止する、
    ことを特徴とする請求項に記載の装置。
  12. 前記ダウンロードモジュールは、
    ストリーミングメディアをダウンロードし、ダウンロードしたストリーミングメディアを当該サブモジュールのダウンロードバッファにバッファリングするダウンロードサブモジュールと、
    前記ダウンロードバッファからストリーミングメディアを取得し、前記バッファリングモジュールにフリーバッファチャンクがある場合、前記ストリーミングメディアを前記バッファリングモジュールにバッファリングし、前記バッファリングモジュールにフリーバッファチャンクがない場合、ストリーミングメディアのダウンロードを停止するメディアの取り出しサブモジュールと、
    を更に含むことを特徴とする請求項10に記載の装置。
JP2007547151A 2004-12-24 2005-12-23 ストリーミングメディアをバッファリングする方法及び装置 Active JP4955571B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNB2004101028513A CN100393068C (zh) 2004-12-24 2004-12-24 一种缓存流媒体数据的方法
CN200410102851.3 2004-12-24
PCT/CN2005/002301 WO2006066513A1 (fr) 2004-12-24 2005-12-23 Procede et appareil destines a mettre en memoire tampon des flux de donnees multimedia

Publications (2)

Publication Number Publication Date
JP2008526057A JP2008526057A (ja) 2008-07-17
JP4955571B2 true JP4955571B2 (ja) 2012-06-20

Family

ID=36601394

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007547151A Active JP4955571B2 (ja) 2004-12-24 2005-12-23 ストリーミングメディアをバッファリングする方法及び装置

Country Status (6)

Country Link
US (1) US20070283035A1 (ja)
EP (1) EP1833253A4 (ja)
JP (1) JP4955571B2 (ja)
KR (1) KR100874696B1 (ja)
CN (1) CN100393068C (ja)
WO (1) WO2006066513A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141368B (zh) * 2006-09-05 2010-05-12 硅谷数模半导体(北京)有限公司 用于控制流媒体数据回放处理速率的方法和装置
CN101155132B (zh) * 2006-09-27 2012-07-04 中兴通讯股份有限公司 一种间接实时流量控制***及其方法
CN100593928C (zh) * 2006-09-30 2010-03-10 中国科学院计算技术研究所 一种基于数据特征的流媒体内容下载方法
CN101282348B (zh) * 2007-04-06 2011-03-30 上海晨兴电子科技有限公司 运用http协议实现流媒体功能的方法
JP2009044416A (ja) * 2007-08-08 2009-02-26 Sony Corp コンテンツ再生装置、コンテンツ再生方法、プログラム、およびコンテンツ再生システム
CN101127989A (zh) * 2007-09-11 2008-02-20 中兴通讯股份有限公司 一种支持手机超文本传输流媒体业务的方法
US8775566B2 (en) * 2008-06-21 2014-07-08 Microsoft Corporation File format for media distribution and presentation
US8176193B2 (en) 2009-06-17 2012-05-08 Microsoft Corporation Dynamic media asset delivery
CN102117271B (zh) * 2009-12-31 2013-06-19 Tcl集团股份有限公司 一种播放封装错位音视频文件的方法及装置
CN102170459A (zh) * 2010-12-22 2011-08-31 青岛海信宽带多媒体技术有限公司 播放器网络资源下载与播放的实现方法及播放器
CN102761523A (zh) * 2011-04-27 2012-10-31 宏碁股份有限公司 网络串流内容播放方法及***
CN103108257B (zh) * 2011-11-10 2016-03-30 中国科学院声学研究所 一种用于嵌入式终端改善流媒体播放质量的方法及***
CN103391468B (zh) * 2012-05-08 2016-12-14 安凯(广州)微电子技术有限公司 一种基于移动终端的网络视频数据的缓冲控制方法及***
US8745259B2 (en) 2012-08-02 2014-06-03 Ujam Inc. Interactive media streaming
CN103023754A (zh) * 2012-12-06 2013-04-03 苏州阔地网络科技有限公司 一种网页上数据流控制的方法及***
CN103051955B (zh) * 2012-12-21 2016-08-03 华为技术有限公司 流媒体播放方法及装置
CN103916414B (zh) * 2012-12-31 2017-09-05 华为技术有限公司 传输速率配置方法、终端设备、服务器及***
CN103096133B (zh) * 2013-01-11 2016-08-24 乐视网信息技术(北京)股份有限公司 一种数据的获取方法及装置
RU2016121189A (ru) * 2013-11-25 2018-01-09 Лэ Ши Чжи Синь Электроник Технолоджи (Тяньцзинь) Лимитэд Способ воспроизведения видео, устройство и интеллектуальный терминал
CN105338022B (zh) * 2014-07-07 2019-04-23 深圳市云帆世纪科技有限公司 基于p2p的数据传输方法及***
CN105245940A (zh) * 2015-10-08 2016-01-13 北京时医康科技发展有限公司 一种窄带宽在线播放高清视频的方法及播放器
CN105450873A (zh) * 2015-12-08 2016-03-30 深圳天珑无线科技有限公司 一种温度控制方法和终端设备
CN110895515A (zh) * 2018-09-12 2020-03-20 中兴通讯股份有限公司 内存缓存管理方法、多媒体服务器及计算机存储介质
CN113079394A (zh) * 2021-03-27 2021-07-06 深圳市研强物联技术有限公司 Asr平台语音助手实现流媒体播放的方法、***及终端

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758076A (en) * 1995-07-19 1998-05-26 International Business Machines Corporation Multimedia server system having rate adjustable data retrieval based on buffer capacity
US5931922A (en) * 1996-07-01 1999-08-03 Sun Microsystems, Inc. Media server system for preventing FIFO buffer underflow during multiple channel startup by waiting until buffer receives plurality of data blocks before enabling buffer to transmit received data
US6665751B1 (en) * 1999-04-17 2003-12-16 International Business Machines Corporation Streaming media player varying a play speed from an original to a maximum allowable slowdown proportionally in accordance with a buffer state
EP1131930B1 (en) * 1999-09-27 2007-01-17 Koninklijke Philips Electronics N.V. Partitioning of file for emulating streaming
US6423892B1 (en) * 2001-01-29 2002-07-23 Koninklijke Philips Electronics N.V. Method, wireless MP3 player and system for downloading MP3 files from the internet
US20020120747A1 (en) * 2001-02-23 2002-08-29 Frerichs David J. System and method for maintaining constant buffering time in internet streaming media delivery
US20020194609A1 (en) * 2001-06-18 2002-12-19 Tran Thanh T. Video client with dynamically allocable video buffer for efficiently streaming video
US6792449B2 (en) * 2001-06-28 2004-09-14 Microsoft Corporation Startup methods and apparatuses for use in streaming content
US20030005455A1 (en) * 2001-06-29 2003-01-02 Bowers J. Rob Aggregation of streaming media to improve network performance
US7047308B2 (en) * 2001-08-31 2006-05-16 Sharp Laboratories Of America, Inc. System and method for simultaneous media playout
US20030221014A1 (en) * 2002-05-24 2003-11-27 David Kosiba Method for guaranteed delivery of multimedia content based on terminal capabilities
CN1210956C (zh) * 2002-06-19 2005-07-13 华为技术有限公司 视讯会议流媒体实时接收存储方法
US7548585B2 (en) * 2003-02-10 2009-06-16 At&T Intellectual Property I, L.P. Audio stream adaptive frequency scheme
KR20060026010A (ko) * 2003-04-17 2006-03-22 톰슨 라이센싱 데이터 요청 및 전송 장치, 및 프로세스
US9612965B2 (en) * 2003-06-24 2017-04-04 Hewlett-Packard Development Company, L.P. Method and system for servicing streaming media

Also Published As

Publication number Publication date
KR100874696B1 (ko) 2008-12-18
KR20070092750A (ko) 2007-09-13
CN1798097A (zh) 2006-07-05
WO2006066513A1 (fr) 2006-06-29
EP1833253A4 (en) 2009-07-01
CN100393068C (zh) 2008-06-04
EP1833253A1 (en) 2007-09-12
US20070283035A1 (en) 2007-12-06
JP2008526057A (ja) 2008-07-17

Similar Documents

Publication Publication Date Title
JP4955571B2 (ja) ストリーミングメディアをバッファリングする方法及び装置
JP5894220B2 (ja) プログレッシブ再生を含む映像分配システム
US8046811B2 (en) Scheduled retrieval, storage and access of media data
JP2009543439A (ja) パフォーマンス意識のあるピアツーピアのコンテンツオンデマンド・サービスのための対話的再生装置のサポート
JPWO2007139073A1 (ja) コンテンツ再生装置
CN112333476B (zh) 一种视频加载方法及装置
CN103414959B (zh) 一种加快网络视频播放速度的方法和装置
CN111432285A (zh) 一种视频拼接播放的***、方法及设备
EP1968318A1 (en) Distributing apparatus and reproducer
JP2000259468A (ja) ファイルシステムにおけるバッファキャッシュ方法および装置
EP1703519A2 (en) Reproducing apparatus and method
JP2000165844A (ja) 連続メディア・ストリーム再生システムおよびその方法
CN105976825A (zh) 音乐分享装置及方法
JP2007188573A (ja) 再生装置および再生方法
JP2003208398A (ja) データ入出力装置、データ入出力方法、プログラム、および媒体
KR101269052B1 (ko) 가상 콘텐츠 파일을 이용하는 콘텐츠 재생시스템 및 그 방법
JPH1139242A (ja) ゲームコンテンツのリモートアクセス方式
JPH0568106A (ja) 音声自動受信システムの通話録音方式
JP2002094551A (ja) 情報提供方法
CN110739009A (zh) 媒体资源板播放通告音方法及装置、计算机设备、存储介质
TW200950526A (en) Method for playing streaming data, electronic device for performing the same and information storage media for storing the same
CN116828251A (zh) 用于切换音轨的方法、装置及计算机可读介质
CN116938914A (zh) 一种远程桌面声音同步方法、装置、设备及存储介质
CN117241088A (zh) 一种视频播放方法、装置及设备
KR20210076727A (ko) 콘텐츠 재생을 위한 장치 및 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110104

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110404

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110506

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120315

R150 Certificate of patent or registration of utility model

Ref document number: 4955571

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250