[發明專利]發送流媒體數據的方法和裝置無效
| 申請號: | 200910164895.1 | 申請日: | 2009-08-19 |
| 公開(公告)號: | CN101631128A | 公開(公告)日: | 2010-01-20 |
| 發明(設計)人: | 夏洪升;王魏強;丁向軍 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 | 代理人: | 黃志華 |
| 地址: | 518057廣東省深圳市南山*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 發送 流媒體 數據 方法 裝置 | ||
技術領域
本發明涉及計算機網絡技術領域,特別地涉及一種發送流媒體數據的方法和裝置。
背景技術
在基于Linux操作系統的流媒體服務器應用中,需要將大量的流媒體數據從磁盤上傳遞到網絡上。當流媒體數據從磁盤上到網絡上傳輸時,需要根據媒體的格式控制發包的間隔。
流媒體數據從磁盤上到網絡上傳輸由媒體服務器執行,主要包括如下3個步驟:(1)將流媒體數據從磁盤空間讀入用戶數據緩存中;(2)將用戶數據緩存中存放的流媒體數據打包成實時傳輸協議RTP(Real-time?Transport?Protocol)數據包然后發到用戶發送緩存中;(3)將用戶發送緩存中存放的RTP數據包通過用戶數據報協議UDP(User?Datagram?Protocol)網絡套接字向用戶的終端設備發送。網絡側的服務器可以向多個終端發送流媒體數據,即形成多通道的傳輸,每個通道對應一個終端。
在Linux操作系統中,用戶進程通過調用直接輸入輸出接口系統調用,可以用來讀取磁盤數據,該系統調用將磁盤數據通過直接內存訪問DMA(DirectMemory?Access)機制直接寫入到用戶緩存中;通過調用UDP網絡套接字相關系統調用接口,可以用來發送RTP數據包,該系統調用將RTP數據包從用戶空間復制到內核空間,進行相應的封裝,通過DMA機制映射到網卡的發送緩沖區,網卡將該RTP數據包發送出去。
在現有技術的這種方式下,對于每一路媒體流,都需要使用網絡套接字,用戶進程將媒體數據打包成RTP數據包后,調用UDP數據包發送接口,將數據包發送出去。
在目前的技術下,對于上述步驟中的第(2)步,是用一個定時器系統調用或延時系統調用的方式來控制媒體包發往用戶發送緩存,延時系統調用或者定時器系統調用本身的精確性會影響到發送流媒體數據包的時間間隔的精確性,特別是在系統負荷較重的情況下延時系統調用或者定時器系統調用的時間精確性較差;在多通道傳輸的情況下,每個通道都使用一個定時器系統調用或延時系統調用,若通道數量較多則會導致通道所使用的定時器系統調用或延時系統調用發生調用延遲。這些都會使上述第(3)步中向用戶的終端設備發送流媒體數據的時間精確性受到影響,從而導致媒體服務器的服務質量下降。
發明內容
本發明的主要目的是提供一種發送流媒體數據的方法和裝置,;本發明的另一目的是解決多通道傳輸的情況下定時器系統調用或延時系統調用發生調用延遲而導致媒體服務器服務質量下降的問題。
為解決上述問題,本發明提供如下的技術方案:
一種發送流媒體數據的方法,包括:
從流媒體文件中讀取數據然后打包得到多個數據包,以及設置每個數據包的轉存時刻;
每隔預設的時間間隔檢查當前是否有數據包的轉存時刻到達,以及在確認當前有數據包的轉存時刻到達后將該數據包轉存到發送接口,由發送接口發送該數據包。
根據上述方法:
所述設置每個數據包的轉存時刻,包括:將數據包按照打包的先后順序保存在時間隊列中,記錄每個數據包在時間隊列中的位置;所述預設的時間間隔包括時間隊列相鄰位置的時間間隔;所述每隔預設的時間間隔檢查當前是否有數據包的轉存時刻到達,包括:根據時間先后次序逐一檢查時間隊列中各位置上是否有數據包。
所述將數據包按照打包的先后順序保存在時間隊列中,包括:針對多個通道中的每個通道,按照該通道的數據打包的先后順序將該通道的數據包保存在時間隊列中;所述確認當前有數據包的轉存時刻到達后將該數據包轉存到發送接口,包括:確認當前有多個通道的數據包的轉存時刻到達,然后同時將這些多個通道的數據包轉存到發送接口。
一種發送流媒體數據的裝置,包括打包模塊、轉存模塊和發送模塊,其中,
打包模塊,用于從流媒體文件中讀取數據然后打包得到多個數據包;
轉存模塊,用于設置每個數據包的轉存時刻,每隔預設的時間間隔檢查當前是否有數據包的轉存時刻到達,以及在確認當前有數據包的轉存時刻到達后將該數據包轉存到發送模塊;
發送模塊,用于發送來自于轉存模塊的數據包。
根據上述裝置:
所述轉存模塊包括:時間隊列單元,用于按照預設的時間間隔設置時間隊列的各個位置,以及將數據包按照打包的先后順序保存在時間隊列中,記錄每個數據包在時間隊列中的位置;檢查單元,用于根據時間先后次序逐一檢查時間隊列中各位置上是否有數據包;轉存單元,用于在檢查單元確認時間隊列中的位置上有數據包后,將該數據包轉存到發送模塊。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910164895.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:制刷機
- 下一篇:降低設備待機能耗的方法和具有低待機能耗的設備
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





