TWI507022B - 多媒體串流的緩存輸出方法以及多媒體串流緩存模組 - Google Patents
多媒體串流的緩存輸出方法以及多媒體串流緩存模組 Download PDFInfo
- Publication number
- TWI507022B TWI507022B TW101145746A TW101145746A TWI507022B TW I507022 B TWI507022 B TW I507022B TW 101145746 A TW101145746 A TW 101145746A TW 101145746 A TW101145746 A TW 101145746A TW I507022 B TWI507022 B TW I507022B
- Authority
- TW
- Taiwan
- Prior art keywords
- time
- cache
- multimedia stream
- buffer
- idle time
- Prior art date
Links
- 239000000872 buffer Substances 0.000 title claims description 125
- 238000000034 method Methods 0.000 title claims description 27
- 238000005516 engineering process Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 11
- 230000001186 cumulative effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/44004—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本揭露係關於一種緩存輸出方法以及緩存模組,特別是一種多媒體串流的緩存輸出方法以及多媒體串流緩存模組。
多媒體串流(multimedia stream)的技術在播放前不需要先下載完整的多媒體檔案,而能夠逐漸下載部分檔案並播放已下載的部分。隨著無線或有線寬頻網路服務的普及,使用電腦或手持裝置經由網路觀看多媒體串流已成為網路的主要應用之一。為了讓多媒體串流能順暢播放,需將自網路接收之局部串流數據儲存至近端或本地端的儲存裝置,再輸出至播放器的重播緩存(playback buffer)以供解碼播放。
由於配置於手持裝置或是輕量化播放器的重播緩存通常有空間較小、空間大小未知或是空間大小無法自行設定等因素,因此常會造成緩存溢出或不足而造成播放不順、畫面跳動或停頓等問題。特別是為了追求高畫質,多媒體串流若使用高清晰度(high definition)的視訊來源,於重
播緩存空間較小的播放器便更容易因而造成之畫面跳動或停頓等播放不順暢的問題。
為了嘗試解決播放不順的問題,現有的播放器嘗試對重播緩存進行輸出控制,以配合解碼的速度去向近端或本地端的儲存裝置要求串流數據。但傳統的控制方法需要配合即時串流協定(Real Time Streaming Protocol,RTSP)以及實時傳輸控制協定(Real-time Transport Control Protocol,RTCP)等複雜的通訊協定,並需參考網路傳輸速率、串流數據大小以及剩餘儲存空間等繁雜的資訊才能實施。因此很多輕量化播放器多無法支援此一功能。
再者,緩存的輸出控制必須實作於作業系統之軟體層,且需利用系統提供的等待指令(sleep instruction)進行實作。因此現行做法無法直接依數據內容之時間戳記對硬體時鐘進行精準之控制,使得等待指令被執行以及執行結束的時間點可能會產生無法預期的誤差,難易實現精準的控制。且隨著時間經過輸出誤差亦會隨之擴大,最終導致播放不順甚至播放中斷等問題。
本揭露提供一種多媒體串流(multimedia stream)的緩存(buffer)輸出方法以及多媒體串流緩存模組,其中多媒體串流緩存模組可用以執行多媒體串流的緩存輸出方法。
多媒體串流的緩存輸出方法包括以下步驟。接收
多個多媒體串流封包,並將這些多媒體串流封包存入一第一緩存,其中第一緩存對應一緩存時間。依據一累計閒置(idle)時間以及緩存時間計算一實際剩餘時間。當實際剩餘時間大於一剩餘時間門檻值時,執行以下步驟。讀取一第一現在時間並執行一系統等待指令,以等待一預定閒置時間。讀取一第二現在時間,並依據第一現在時間以及第二現在時間計算一實際閒置時間,其中實際閒置時間與預定閒置時間不同。依據實際閒置時間累計前述累計閒置時間。依據累計閒置時間令部份的這些緩存單元輸出給一播放器的一第二緩存。
多媒體串流緩存模組包括第一緩存以及一控制器。第一緩存用以儲存多個多媒體串流封包,第一緩存對應緩存時間,且第一緩存依據時間單位分割成多個緩存單元。控制器用以執行以下步驟。接收這些多媒體串流封包,並將這些多媒體串流封包存入第一緩存。依據累計閒置時間以及緩存時間計算實際剩餘時間。當實際剩餘時間大於剩餘時間門檻值時,執行以下步驟。讀取第一現在時間並執行等待指令,以等待預定閒置時間。讀取第二現在時間,並依據第一現在時間以及第二現在時間計算實際閒置時間,其中實際閒置時間與預定閒置時間不同。依據實際閒置時間累計前述累計閒置時間。依據累計閒置時間令部分的緩存單元輸出給播放器的第二緩存。
綜上所述,多媒體串流的緩存輸出方法以及多媒
體串流緩存模組可將第一模組分割成更小的緩存單元,並計算實際閒置時間以準確控制第一緩存的輸出。且由於輸出控制不需要考慮繁雜的資訊,因此能夠搭配各種播放器以及通訊協定,而在實作上更具有彈性。
20‧‧‧電子裝置
22‧‧‧播放器
24‧‧‧第二緩存
30‧‧‧多媒體串流緩存模組
32‧‧‧控制器
33‧‧‧緩存器
34‧‧‧第一緩存
36‧‧‧緩存單元
40‧‧‧多媒體伺服器
42‧‧‧多媒體來源
50‧‧‧端對端節點
52‧‧‧多媒體來源
60‧‧‧區域網路
62‧‧‧近端節點
第1A圖係為一實施範例之多媒體串流緩存模組之方塊示意圖。
第1B圖係為一實施範例之多媒體串流緩存模組之方塊示意圖。
第1C圖係為一實施範例之多媒體串流緩存模組之方塊示意圖。
第1D圖係為一實施範例之多媒體串流緩存模組之方塊示意圖。
第2圖係為一實施範例之第一緩存之示意圖。
第3圖係為一實施範例之多媒體串流的緩存輸出方法之流程示意圖。
第4A圖到第4D圖係為一實施範例之第一緩存之輸出示意圖。
第5圖係為一實施範例之步驟S700之流程示意圖。
第6圖係為一實施範例之步驟S700之流程示意圖。
以下在實施例中詳細敘述本揭露之詳細特徵以及優點,其內容足以使任何熟習相關技藝者了解本揭露之技術內容並據以實施,且根據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本揭露相關之目的及優點。
本揭露一實施例中提供一種多媒體串流(multimedia stream)的緩存(buffer)輸出方法以及多媒體串流緩存模組。其中多媒體串流緩存模組包括一控制器以及一第一緩存,且可用以執行多媒體串流的緩存輸出方法。
請先參照「第1A圖」,其係為一實施範例之多媒體串流緩存模組之方塊示意圖。於「第1A圖」的實施範例之中,多媒體串流緩存模組30被配置於一使用者端的電子裝置20。電子裝置20例如可以是手機、筆記型電腦、平板電腦或是可攜式遊戲機等能夠連接網路的終端裝置(terminal device)。電子裝置20可包括一播放器22以播放一多媒體串流,例如可播放串流格式的音訊(audio)、視訊(video)或是高清晰度(high definition)視訊。
播放器22具有作為重播緩存(playback buffer)的一第二緩存24以暫存少部分的多媒體串流,並可即時對暫存於第二緩存24的部分進行解碼並播放。舉例而言,播放器22可以是視訊區網客戶端(VideoLAN Client,VLC)多媒體播放器、QuickTime或是Windows Media Player。
一般而言,第二緩存24的儲存空間小於第一緩存34。若播放器22是較輕量化或僅具有簡易功能,第二緩存24會更小。因此對於高清晰度視訊的多媒體串流,第二緩存24可能只能保留一兩個串流圖框(frame)。於本實施範例中,多媒體串流緩存模組30的第一緩存34以及播放器22的第二緩存24配置於相同的電子裝置20之中。
且在一實施範例中,控制器32可包括至少一處理器(processor),以執行相關控制流程。
在另一實施範例中,控制器32可以電路實作於晶片上。詳細來說,任何的實施範例均可以硬體描述語言(例如Verilog或是VHSIC硬體描述語言)以實現其電路設計,包含電路的整合以及佈局。電路可以用硬體描述語言以多種方式設計,例如積體電路的製造商可以用特殊應用積體電路(application-specific integrated circuits,ASIC)或客戶設計積體電路(customer-design integrated circuits)來實現電路。
多媒體串流可以是多媒體串流緩存模組30從一多媒體伺服器40接收。更詳細地說,多媒體伺服器40可具有硬碟、磁碟陣列(Redundant Array of Inexpensive Disk,RAID)或網路攝影機(Network camera,或IP Camera)等多媒體來源42,並以客戶端對伺服器(client-server)的技術提供多媒體串流給多媒體串流緩存模組30。
請參照「第1B圖」,其係為一實施範例之多媒體
串流緩存模組之方塊示意圖。於本實施範例中,多媒體串流緩存模組30的第一緩存34以及播放器22的第二緩存24也是配置於相同的電子裝置20之中,但多媒體串流緩存模組30以端對端技術(Peer to Peer,P2P)從一P2P節點(P2P node)50接收多媒體串流。
於P2P的技術中,多個P2P節點50可以互相傳送資料。只要至少一個P2P節點50具有一多媒體來源52,多媒體串流緩存模組30就可以直接從具有多媒體來源52的P2P節點50得到多媒體串流或是間接地從其他P2P節點50得到多媒體串流。
請參照「第1C圖」,其係為一實施範例之多媒體串流緩存模組之方塊示意圖。於本實施範例中,多媒體串流緩存模組30係配置於一區域網路(Local Area Network,LAN,又稱為內網)60的一近端節點62之中,且近端節點62與配置有播放器22的電子裝置20不同。以無線或有線的方式,位於區域網路60中的電子裝置20可透過近端節點62連接到廣域網路(Wide Area Network,WAN,又稱為外網)或網際網路(Internet)。
近端節點62可以以客戶端-伺服器的技術從多媒體伺服器40接收多媒體串流,再將多媒體串流提供給電子裝置20顯示。若電子裝置20是手機或可攜式遊戲機等體積小的裝置,其第二緩存24的儲存空間一般都很小;因此對於高
清晰度視訊的多媒體串流,第二緩存24可能只能保留一兩個串流圖框。
在一實施範例中,多媒體伺服器40也可以在區域網路60內。
請參照「第1D圖」,其係為一實施範例之多媒體串流緩存模組之方塊示意圖。於本實施範例中,多媒體串流緩存模組30配置於區域網路60的近端節點62之中,近端節點62與配置有播放器22的電子裝置20不同。且多媒體串流緩存模組30可以透過P2P技術從P2P節點50接收多媒體串流。類似於「第1C圖」的實施範例,若電子裝置20是手機或可攜式遊戲機等體積小的裝置,其第二緩存24的儲存空間一般都很小。
上述多媒體串流可透過多個多媒體串流封包被收發,且多媒體串流緩存模組30的第一緩存34可用以儲存這些多媒體串流封包。而這些多媒體串流封包的酬載(payload)就會屬於傳輸中的多媒體串流的一部分,例如可能是視訊中某個圖框的數據或音訊的部分。
根據一實施範例,多媒體串流緩存模組30可以依據多媒體串流的類型設定第一緩存34的大小,使得第一緩存34可對應一緩存時間。舉例而言,當多媒體串流是高清晰度視訊時,可將緩存時間設定為1秒的播放時間。若此高清晰度視訊一秒有24個圖框,則第一緩存34的大小就需可容
納24個高清晰度視訊的圖框。若多媒體串流的播放時間大於緩存時間,也可配置有多個第一緩存34。
請配合參照「第2圖」,其係為一實施範例之第一緩存之示意圖。多媒體串流緩存模組30可包括一緩存器33,且緩存器33包括多個第一緩存34。每一個第一緩存34都對應緩存時間,且每一個第一緩存34都可依據一時間單位再分割成多個緩存單元36。例如緩存時間可以是1秒,時間單位可以是1/16秒,則一個第一緩存34會被分割成16個緩存單元36。且每一個緩存單元36都可具有唯一(unique)的一緩存索引作為識別碼。
實際上根據緩存單元36的分割情形以及多媒體串流封包的大小,可能一個緩存單元36中正好存放有一個多媒體串流封包;但也可能一個緩存單元36中存放多個多媒體串流封包,或是用多個緩存單元36來存放單一個多媒體串流封包。
另外須注意的是,本揭露提供的多媒體串流的緩存輸出方法以及多媒體串流緩存模組30係主動進行緩存輸出控制,並主動將第一緩存34的內容逐漸輸出給第二緩存24。換句話說,並非是由播放器22依本身解碼速度向多媒體串流緩存模組30要求數據。
以下藉由「第3圖」到「第4D圖」說明本揭露提供的多媒體串流的緩存輸出方法;其中「第3圖」其係為
一實施範例之多媒體串流的緩存輸出方法之流程示意圖,「第4A圖」到「第4D圖」則為第一緩存之輸出示意圖。但所述之各數值僅為說明實施方式之用,實際上可依實際情況設定。
多媒體串流緩存模組30首先從多媒體伺服器40或是P2P節點50接收多個多媒體串流封包,並將這些多媒體串流封包存入第一緩存34(步驟S100)。多媒體串流緩存模組30可將多個多媒體串流封包存入緩存器33,並一次填滿多個第一緩存34。以下步驟S200到步驟S800係針對單一個已填滿的第一緩存34進行輸出控制,而控制器32可以據以依序控制每一個填滿的第一緩存34的輸出情況。
根據一實施範例,多媒體串流緩存模組30可對於每個已接收或接收中的多媒體串流封包建立一索引(index)資訊,以紀錄多媒體串流的暫存以及輸出情形。索引資訊中可以紀錄代表封包酬載內容在整個多媒體串流中的位置的一位址指標(pointer)、此多媒體串流封包的總長度或其酬載的長度、此多媒體串流封包的一時間戳記(timestamp)、此多媒體串流封包是否已被輸出給第二緩存24,以及此多媒體串流封包所屬的群組的一群組索引。
其中時間戳記是指酬載內容在整個多媒體串流中應被播放的時間,而非此多媒體串流封包被多媒體伺服器40或是P2P節點50發送的時間。且具有相同時間戳記的多媒體串流封包會被視為同一個群組;例如酬載內容是要在0時
01分05秒10毫秒被播放的圖框或音訊的多媒體串流封包會被視為屬於同一個群組。
接著控制器32依據一累計閒置(idle)時間以及緩存時間計算一實際剩餘時間(步驟S200),並判斷實際剩餘時間是否大於一剩餘時間門檻值(步驟S300)。其中累計閒置時間的初始值為0,且在開始對第一緩存34進行輸出控制時會被初始化為0。實際剩餘時間則等於緩存時間減去累計閒置時間的差值。如「第4A圖」所示,剛開始對第一緩存34進行輸出控制時,累計閒置時間為初始值0。假設緩存時間是1秒,剩餘時間門檻值是6/16秒;則可計算得到實際剩餘時間等於1-0=1(秒),且實際剩餘時間大於剩餘時間門檻值。
當實際剩餘時間大於剩餘時間門檻值時,控制器32執行以下步驟S400到步驟S700,以輸出部分緩存單元36中存放的多媒體串流封包。
首先控制器32讀取多媒體串流緩存模組30的一第一現在時間並執行一系統等待指令(sleep instruction),以等待一預定閒置時間(步驟S400)。預定閒置時間可以是時間單位的N倍,N為大於或等於2的正整數。系統等待指令執行結束後,控制器32讀取一第二現在時間,並依據第一現在時間以及第二現在時間計算一實際閒置時間,其中實際閒置時間與預定閒置時間不同(步驟S500)。換句話說,第一現在時間以及第二現在時間分別是系統等待指令要被執行以及剛
被執行完成的時間,且可讀取配置有多媒體串流緩存模組30的電子裝置20或近端節點62的作業系統所維護的系統時間作為第一現在時間以及第二現在時間。
控制器32可將第二現在時間減去第一現在時間的差值作為實際閒置時間。由於實際等待時難以精準地在經過預定閒置時間之後喚醒控制緩存輸出的程序(procedure),因此控制器32計算準確的實際閒置時間以精準控制第一緩存34的輸出。
得到實際閒置時間後,控制器32依據實際閒置時間累計累計閒置時間(步驟S600)。控制器32可先將實際閒置時間以時間單位為單位取頂函數(ceiling function,又稱為天花板函數)的結果再加上目前的累計閒置時間,作為到本次等待結束為止所累計的累計閒置時間。以「第4B圖」的實施範例為例,假設時間單位是1/16秒,預定閒置時間是4/16秒,實際閒置時間是17/64秒;則以1/16秒為單位將實際閒置時間取無條件進位後會得到5/16秒。且原先的累計閒置時間為初始值0,因此到本次等待結束為止所累計的累計閒置時間是5/16秒。
接著控制器32依據累計閒置時間令部份的緩存單元36輸出給播放器22的第二緩存24(步驟S700)。請配合參照「第5圖」,其係為一實施範例之步驟S700之流程示意圖。
於步驟S700中,控制器32可先讀取實際閒置時間對應的部分的緩存單元36中的多媒體串流封包的時間戳記(步驟S710)。以「第4B圖」的實施範例為例,本次等待的實際閒置時間對應緩存索引為1到5的五個緩存單元36;控制器32可將緩存索引為1到5的這5個緩存單元36中所存放的所有多媒體串流封包的檔頭(header)中,讀取這些多媒體串流封包中記載的時間戳記。
且控制器32可判斷哪些多媒體串流封包的時間戳記小於方才計算得到的累計閒置時間,再將時間戳記小於累計閒置時間的多媒體串流封包輸出給播放器22的第二緩存24(步驟S720)。因此於步驟S720中,多媒體串流緩存模組30會將暫存於緩存索引為1到5的緩存單元36中且時間戳記小於累計閒置時間的多媒體串流封包都傳送給第二緩存24。
請參照「第6圖」,其係為另一實施範例之步驟S700之流程示意圖。於本實施範例中,控制器32可以不讀取多媒體串流封包的時間戳記,而是依據一輸出比例決定要輸出哪些多媒體串流封包。
於步驟S700中,控制器32可先計算累計閒置時間與緩存時間的比例作為輸出比例(步驟S750);並依據第一緩存34中所有多媒體串流封包的個數以及輸出比例計算一預定輸出個數(步驟S760)。其中計算預定輸出個數時,也可利用頂函數將預定輸出個數取為正整數。舉例而言,假設累計
閒置時間為5/16秒,緩存時間是1秒,第一緩存34中所有多媒體串流封包的個數是48;則輸出比例是(5/16)/1=5/16,預定輸出個數則是48×(5/16)=15。
接著控制器32可依據預定輸出個數令部分的緩存單元36輸出給播放器22的第二緩存24(步驟S770)。類似於累計閒置時間,控制器32可維護一累計輸出個數,以紀錄正在進行輸出控制的此第一緩存34到目前已經輸出的多媒體串流封包的總數。累計輸出個數的初始值為0,且在開始對第一緩存34進行輸出控制時會被初始化為0。
控制器32可將預計輸出個數減去累計輸出個數的差值作為一本次輸出個數,而本次輸出個數代表這次等待結束後應該輸出的封包個數。控制器32可從還沒輸出的緩存單元36之中,輸出前面的多個多媒體串流封包,且輸出的個數為本次輸出個數。
舉例而言,假設預定輸出個數是15,累計輸出個數是0;則本次輸出個數是30-15=15。故可從緩存索引最小的緩存單元36開始選出還沒被輸出過的連續15個多媒體串流封包,並將選出的15個多媒體串流封包輸出給第二緩存24。又假設預定輸出個數是30,累計輸出個數是15;則可輸出第16到30個多媒體串流封包。
換句話說,可以依據累計閒置時間與緩存時間的比例,將存於第一緩存34之中的多媒體串流封包按比例輸
出。且進行輸出之後,控制器32可將本次輸出個數加上目前的累計輸出個數,作為到本次輸出為止所累計的累計輸出個數。
依據前述步驟S400到步驟S700的做法,控制器32可反覆執行系統等待指令與輸出,直到實際剩餘時間小於或等於剩餘時間門檻值。接續「第4A圖」以及「第4B圖」,控制器32可如「第4C圖」以及「第4D圖」所示將第一緩存34中所有的多媒體串流封包都輸出給第二緩存24。
於「第4C圖」中,假設預定閒置時間是4/16秒,實際閒置時間是19/64秒,原先的累計閒置時間是5/16。因此到本次等待結束為止所累計的累計閒置時間是10/16秒,輸出比例是10/16;且控制器32可依據時間戳記或是輸出比例將緩存索引為6到10的5個緩存單元36中的多媒體串流封包輸出給第二緩存24。
於「第4D圖」中,由於實際剩餘時間是6/16已經小於或等於剩餘時間門檻值,因此控制器32可令第一緩存34中剩下的所有緩存單元36都輸出給播放器22的第二緩存24(步驟S800)。為了避免最後剩餘少數的多媒體串流封包另外花費一次等待的時間,因此可將剩餘時間門檻值設定成大於預定閒置時間的平均值,並在實際剩餘時間小於或等於剩餘時間門檻值時一次將剩餘的所有多媒體串流封包全部輸出。
除此之外,為了更精密地進行輸出控制,對於時間單位、預定閒置時間、實際閒置時間、累計閒置時間、實際剩餘時間以及剩餘時間門檻值等參數的單位可設為毫秒(millisecond,ms)。例如用以分割緩存單元36的時間單位可設為10ms,預定閒置時間可設為20ms,剩餘時間門檻值則可設為50ms。
綜上所述,多媒體串流的緩存輸出方法以及多媒體串流緩存模組可將第一模組分割成更小的緩存單元,並計算實際閒置時間以準確控制第一緩存的輸出。且實際閒置時間的計算方式乃是依據作業系統所維護的系統時間,因此控制不會產生誤差。不論多媒體串流的輸入速度為何,都能將多媒體串流的數據持續平順地輸出給播放器。
本揭露之實施範例,進行輸出控制利用多媒體串流封包的時間戳記,或是累計閒置時間與緩存時間的比例來執行。如此一來,多媒體串流的緩存輸出方法以及多媒體串流緩存模組可適用於各種播放器以及通訊協定,即便是搭配輕量化播放器或是簡單的使用者資料協定(User Datagram Protocol,UDP)也能實作。此外,本領域具有通常知識者可對本揭露之方法流程中各步驟的順序進行適當的調整。
以上較佳具體實施範例之詳述,是希望藉此更加清楚描述本揭露之特徵與精神,並非以上述揭露的較佳具體實施範例對本揭露之範疇加以限制。相反地,其目的是希望
將各種改變及具相等性的安排涵蓋於本揭露所欲申請之專利範圍的範疇內。
Claims (18)
- 一種多媒體串流的緩存輸出方法,包括:接收多個多媒體串流封包,並將該些多媒體串流封包存入一第一緩存,其中該第一緩存對應一緩存時間,且該第一緩存依據一時間單位分割成多個緩存單元;依據一累計閒置時間以及該緩存時間計算一實際剩餘時間;以及當該實際剩餘時間大於一剩餘時間門檻值時,執行以下步驟:讀取一第一現在時間並執行一等待指令,以等待一預定閒置時間;讀取一第二現在時間,並依據該第一現在時間以及該第二現在時間計算一實際閒置時間,其中該實際閒置時間與該預定閒置時間不同;依據該實際閒置時間累計該累計閒置時間;以及依據該累計閒置時間令部分該些緩存單元輸出給一播放器的一第二緩存;其中,該累計閒置時間的初始值小於該緩存時間,且該實際剩餘時間等於該緩存時間減去該累計閒置時間的差值。
- 如請求項1所述之多媒體串流的緩存輸出方法,其中該依據該累計閒置時間令部分的該緩存單元輸出給該播放器 的該第二緩存的步驟包括:讀取該實際閒置時間對應的部分的該些緩存單元中的至少一該多媒體串流封包的一時間戳記;以及將該時間戳記小於該累計閒置時間的該多媒體串流封包輸出給該播放器的該第二緩存。
- 如請求項1所述之多媒體串流的緩存輸出方法,其中該依據該累計閒置時間令部分的該緩存單元輸出給該播放器的該第二緩存的步驟包括:計算該累計閒置時間與該緩存時間的比例作為一輸出比例;依據該第一緩存中所有該些多媒體串流封包的個數以及該輸出比例計算一預定輸出個數;以及依據該預定輸出個數令部分的該緩存單元輸出給該播放器的該第二緩存。
- 如請求項1所述之多媒體串流的緩存輸出方法,另包括:當該實際剩餘時間小於或等於該剩餘時間門檻值時,令該第一緩存中剩下的所有該些緩存單元輸出給該播放器的該第二緩存。
- 如請求項1所述之多媒體串流的緩存輸出方法,其中該多媒體串流從一多媒體伺服器接收,或是以端對端技術從一端對端節點接收。
- 如請求項1所述之多媒體串流的緩存輸出方法,其中該第 一緩存以及該播放器配置於相同的一電子裝置。
- 如請求項1所述之多媒體串流的緩存輸出方法,其中該第一緩存配置於一近端節點。
- 如請求項1所述之多媒體串流的緩存輸出方法,其中該些多媒體串流封包的酬載係屬於一高清晰度視訊。
- 如請求項1所述之多媒體串流的緩存輸出方法,其中該預定閒置時間是該時間單位的N倍,N為大於或等於2的正整數。
- 一種多媒體串流緩存模組,包括:一第一緩存,用以儲存多個多媒體串流封包,該第一緩存對應一緩存時間,且該第一緩存依據一時間單位分割成多個緩存單元;以及一控制器,用以執行以下步驟:接收該些多媒體串流封包,並將該些多媒體串流封包存入該第一緩存;依據一累計閒置時間以及該緩存時間計算一實際剩餘時間;以及當該實際剩餘時間大於一剩餘時間門檻值時,執行以下步驟:讀取一第一現在時間並執行一等待指令,以等待一預定閒置時間;讀取一第二現在時間,並依據該第一現在時 間以及該第二現在時間計算一實際閒置時間,其中該實際閒置時間與該預定閒置時間不同;依據該實際閒置時間累計該累計閒置時間;以及依據該累計閒置時間令部分的該緩存單元輸出給一播放器的一第二緩存;其中,該累計閒置時間的初始值小於該緩存時間,且該實際剩餘時間等於該緩存時間減去該累計閒置時間的差值。
- 如請求項10所述之多媒體串流緩存模組,其中於該依據該累計閒置時間令部分的該緩存單元輸出給該播放器的該第二緩存的步驟中,該控制器執行以下步驟:讀取該實際閒置時間對應的部分的該些緩存單元中的至少一該多媒體串流封包的一時間戳記;以及將該時間戳記小於該累計閒置時間的該多媒體串流封包輸出給該播放器的該第二緩存。
- 如請求項10所述之多媒體串流緩存模組,其中於該依據該累計閒置時間令部分的該緩存單元輸出給該播放器的該第二緩存的步驟中,該控制器執行以下步驟:計算該累計閒置時間與該緩存時間的比例作為一輸出比例;依據該第一緩存中所有該些多媒體串流封包的個數 以及該輸出比例計算一預定輸出個數;以及依據該預定輸出個數令部分的該緩存單元輸出給該播放器的該第二緩存。
- 如請求項10所述之多媒體串流緩存模組,其中當該實際剩餘時間小於或等於該剩餘時間門檻值時,該控制器令該第一緩存中剩下的所有該些緩存單元輸出給該播放器的該第二緩存。
- 如請求項10所述之多媒體串流緩存模組,其中該多媒體串流從一多媒體伺服器接收,或是以端對端技術從一端對端節點接收。
- 如請求項10所述之多媒體串流緩存模組,係與該播放器配置於相同的一電子裝置。
- 如請求項10所述之多媒體串流緩存模組,係配置於一近端節點。
- 如請求項10所述之多媒體串流緩存模組,其中該些多媒體串流封包的酬載係屬於一高清晰度視訊。
- 如請求項10所述之多媒體串流緩存模組,其中該預定閒置時間是該時間單位的N倍,N為大於或等於2的正整數。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101145746A TWI507022B (zh) | 2012-12-05 | 2012-12-05 | 多媒體串流的緩存輸出方法以及多媒體串流緩存模組 |
US14/026,773 US9325765B2 (en) | 2012-12-05 | 2013-09-13 | Multimedia stream buffer and output method and multimedia stream buffer module |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101145746A TWI507022B (zh) | 2012-12-05 | 2012-12-05 | 多媒體串流的緩存輸出方法以及多媒體串流緩存模組 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201424346A TW201424346A (zh) | 2014-06-16 |
TWI507022B true TWI507022B (zh) | 2015-11-01 |
Family
ID=50826630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101145746A TWI507022B (zh) | 2012-12-05 | 2012-12-05 | 多媒體串流的緩存輸出方法以及多媒體串流緩存模組 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9325765B2 (zh) |
TW (1) | TWI507022B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9572125B1 (en) * | 2014-09-03 | 2017-02-14 | Symantec Corporation | Systems and methods for locating unrecognized computing devices |
US10171532B2 (en) * | 2014-09-30 | 2019-01-01 | Citrix Systems, Inc. | Methods and systems for detection and classification of multimedia content in secured transactions |
US9756106B2 (en) | 2015-02-13 | 2017-09-05 | Citrix Systems, Inc. | Methods and systems for estimating quality of experience (QoE) parameters of secured transactions |
US10021221B2 (en) | 2015-02-24 | 2018-07-10 | Citrix Systems, Inc. | Methods and systems for detection and classification of multimedia content in secured transactions using pattern matching |
CN106851337B (zh) * | 2017-02-21 | 2019-12-24 | 聚好看科技股份有限公司 | 视频缓冲控制方法及装置 |
CN109996117B (zh) * | 2019-03-04 | 2021-08-24 | 青岛海信传媒网络技术有限公司 | 一种获取流媒体播放时长的方法和装置 |
CN114125576A (zh) * | 2021-11-29 | 2022-03-01 | 广州繁星互娱信息科技有限公司 | 多媒体资源的同步方法和装置、存储介质及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW322544B (en) * | 1997-04-26 | 1997-12-11 | Ind Tech Res Inst | Timer interrupt method for arbitrary selective media server |
US5754241A (en) * | 1994-11-18 | 1998-05-19 | Sanyo Electric Co., Ltd | Video decoder capable of controlling encoded video data |
TWI313992B (en) * | 2005-07-27 | 2009-08-21 | Mediatek Inc | Digital multimedia transfer rate controlling |
JP2010031163A (ja) * | 2008-06-27 | 2010-02-12 | Sumitomo Chemical Co Ltd | 化合物、該化合物を含む光学フィルム及び該光学フィルムの製造方法 |
TW201026064A (en) * | 2008-12-22 | 2010-07-01 | Ind Tech Res Inst | Method for audio and video control response and bandwidth adaptation based on network streaming application and server using the same |
CN101917412A (zh) * | 2010-07-28 | 2010-12-15 | 中兴通讯股份有限公司 | 一种提高流媒体连接缓冲速度的方法及客户端 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0757490A3 (en) * | 1995-08-02 | 1999-01-13 | Matsushita Electric Industrial Co., Ltd. | Video coding device and video transmission system using the same, quantization control method and average throughput calculation method used therein |
WO2002045372A2 (en) | 2000-11-29 | 2002-06-06 | British Telecommunications Public Limited Company | Transmitting and receiving real-time data |
US20030198184A1 (en) | 2001-08-31 | 2003-10-23 | Joe Huang | Method of dynamically determining real-time multimedia streaming rate over a communications networks |
US20060007943A1 (en) | 2004-07-07 | 2006-01-12 | Fellman Ronald D | Method and system for providing site independent real-time multimedia transport over packet-switched networks |
KR100631514B1 (ko) | 2004-12-16 | 2006-10-09 | 엘지전자 주식회사 | 실시간 스트리밍 서비스의 전송률 제어 방법 |
US8042140B2 (en) * | 2005-07-22 | 2011-10-18 | Kangaroo Media, Inc. | Buffering content on a handheld electronic device |
JP4421625B2 (ja) * | 2007-03-20 | 2010-02-24 | 富士通株式会社 | フロー制御方法および受信装置 |
WO2009093945A1 (en) * | 2008-01-25 | 2009-07-30 | Telefonaktiebolaget Lm Ericsson (Publ) | A simple adaptive jitter buffering algorithm for network nodes |
CN101448157A (zh) | 2008-12-30 | 2009-06-03 | 杭州华三通信技术有限公司 | 一种视频编码方法和视频编码器 |
TWI380654B (en) | 2009-02-11 | 2012-12-21 | Univ Nat Chiao Tung | The control method of transmitting streaming audio/video data and architecture thereof |
US8631455B2 (en) * | 2009-07-24 | 2014-01-14 | Netflix, Inc. | Adaptive streaming for digital content distribution |
EP2538632B1 (en) * | 2010-07-14 | 2014-04-02 | Google Inc. | Method and receiver for reliable detection of the status of an RTP packet stream |
TWI411321B (zh) | 2010-10-18 | 2013-10-01 | Univ Nat Pingtung Sci & Tech | 多媒體串流傳輸之排程控制方法 |
US9021537B2 (en) * | 2010-12-09 | 2015-04-28 | Netflix, Inc. | Pre-buffering audio streams |
-
2012
- 2012-12-05 TW TW101145746A patent/TWI507022B/zh active
-
2013
- 2013-09-13 US US14/026,773 patent/US9325765B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754241A (en) * | 1994-11-18 | 1998-05-19 | Sanyo Electric Co., Ltd | Video decoder capable of controlling encoded video data |
TW322544B (en) * | 1997-04-26 | 1997-12-11 | Ind Tech Res Inst | Timer interrupt method for arbitrary selective media server |
TWI313992B (en) * | 2005-07-27 | 2009-08-21 | Mediatek Inc | Digital multimedia transfer rate controlling |
JP2010031163A (ja) * | 2008-06-27 | 2010-02-12 | Sumitomo Chemical Co Ltd | 化合物、該化合物を含む光学フィルム及び該光学フィルムの製造方法 |
TW201026064A (en) * | 2008-12-22 | 2010-07-01 | Ind Tech Res Inst | Method for audio and video control response and bandwidth adaptation based on network streaming application and server using the same |
CN101917412A (zh) * | 2010-07-28 | 2010-12-15 | 中兴通讯股份有限公司 | 一种提高流媒体连接缓冲速度的方法及客户端 |
Also Published As
Publication number | Publication date |
---|---|
US20140156864A1 (en) | 2014-06-05 |
TW201424346A (zh) | 2014-06-16 |
US9325765B2 (en) | 2016-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI507022B (zh) | 多媒體串流的緩存輸出方法以及多媒體串流緩存模組 | |
US7870281B2 (en) | Content playback device, content playback method, computer-readable storage medium, and content playback system | |
CN106792073B (zh) | 跨设备的音视频数据同步播放的方法、播放设备及系统 | |
US8244897B2 (en) | Content reproduction apparatus, content reproduction method, and program | |
US20200296435A1 (en) | Method and apparatus for segmenting data | |
US7602812B2 (en) | Client for video stream play and method thereof | |
CN106686438B (zh) | 一种跨设备的音频图像同步播放的方法、装置及系统 | |
EP3840394A1 (en) | Video screen projection method, device, computer equipment and storage medium | |
JP2008503926A (ja) | ネットワークを介したメディアの対話型制御のための方法及びシステム | |
KR20060114080A (ko) | 멀티미디어 스트리밍 서비스 시스템 및 방법 | |
JP2008243367A (ja) | 同報通信データを記録するための方法、および、装置 | |
WO2008076537A1 (en) | Method and system for providing adaptive trick play control of streaming digital video | |
JP7431329B2 (ja) | ビデオ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム | |
US8019202B2 (en) | Content reproduction appratus, content reproduction method, and content reproduction system with varied-speed reproduction requests | |
US20130007863A1 (en) | Streaming video to cellular phones | |
CN113141522B (zh) | 资源传输方法、装置、计算机设备及存储介质 | |
WO2019149066A1 (zh) | 视频播放方法、终端设备及存储介质 | |
US20160036883A1 (en) | Systems and methods for selective transport accelerator operation | |
JP2006190213A (ja) | メディア再生装置 | |
US20140146836A1 (en) | Method for video streaming and an electronic device thereof | |
TWI523511B (zh) | Variable bit rate video panning method | |
JP6327809B2 (ja) | 受信装置、制御方法及びプログラム | |
JP2001285832A (ja) | データ受信装置,データ受信方法,データ伝送方法,およびデータ記憶媒体 | |
JP5358916B2 (ja) | コンテンツ配信装置およびコンテンツ配信方法 | |
CN118233691A (zh) | 一种多媒体文件的播放方法、装置和电子设备 |