[發明專利]一種基于媒體服務器實現音頻合成的方法及設備無效
| 申請號: | 200910189123.3 | 申請日: | 2009-12-21 |
| 公開(公告)號: | CN102104580A | 公開(公告)日: | 2011-06-22 |
| 發明(設計)人: | 王叢華 | 申請(專利權)人: | 康佳集團股份有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06;G10L13/00 |
| 代理公司: | 廣州三環專利代理有限公司 44202 | 代理人: | 郝傳鑫;潘中毅 |
| 地址: | 518053 廣*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 媒體 服務器 實現 音頻 合成 方法 設備 | ||
技術領域
本發明涉及網絡電視領域,尤其涉及一種基于媒體服務器實現音頻合成的方法及設備。
背景技術
網絡電視業務(即IPTV業務)在國內外發展迅速,已經逐漸成為固定網絡運營商提高其每用戶平均收入的殺手锏業務之一。通過IPTV平臺,普通用戶可以進行視頻點播、收看實時電視節目以及進行可視電話等,隨著電視多媒體的技術發展,網絡電視以及網絡電視中的在線卡拉OK等功能也越來越受到人們的喜愛。在線卡拉OK功能的發展,不但要實現卡拉OK的基本功能,還要能夠根據演唱者的演唱的水平在演唱者演唱的時候實時的添加一些掌聲、尖叫聲等激勵音來營造良好的卡拉OK氛圍,將多路音頻合成輸出。
目前大多數網絡電視產品都構筑在LINUX平臺下,網絡電視軟件的音頻應用處理模塊的底層調用運營支撐系統(Open?Sound?System,OSS)應用程序編程接口(Application?Programming?Interface,API)輸出音頻,由于應用程序調用OSS設備具有獨占性,一旦一個應用程序打開音頻設備(/dev/dsp)其他設備都無法同時打開該設備輸出音頻,無法滿足卡拉OK多路音頻輸出的要求。
發明內容
鑒于上述現有技術所存在的問題,本發明實施例提供了一種基于媒體服務器實現音頻合成的方法,包括:
應用進程與媒體服務器建立網絡連接;
在建立所述網絡連接之后,所述媒體服務器接收所述應用進程發送的多路媒體數據流;
所述媒體服務器對所述多路媒體數據流進行合成運算,并將所述合成的多路媒體數據流輸出。
相應地,所述多路媒體數據流為特效音頻數據流。
相應地,所述應用進程與媒體服務器建立網絡連接步驟之前包括:
所述媒體服務器預先創建套接字、數據接收隊列和合成隊列。
相應地,所述在建立所述網絡連接之后,所述媒體服務器接收所述應用進程發送的多路媒體數據流步驟還包括:
所述媒體服務器將接收到的多路媒體數據流存儲在所述數據接收隊列中。
相應地,所述媒體服務器對所述多路媒體數據流進行合成運算具體為:
遍歷所述數據接收隊列中的每一個元素的鏈表頭;
當所述鏈表頭不為空時,從所述數據接收隊列中讀取媒體數據;
將所述讀取的媒體數據與所述合成隊列中的媒體數據進行合成運算,并保存在所述合成隊列中。
相應地,所述將所述讀取的媒體數據與合成隊列中的媒體數據進行合成運算,并保存在所述合成隊列中步驟具體為:
判斷所述讀取的媒體數據的位數;
當所述媒體數據的位數為8位采樣數據時,將所述數據接收隊列中的每一個字節與所述合成隊列中的每一個字節分別相加并減去0x80,并保存在所述合成隊列中;
當所述媒體數據的位數為16位采樣數據時,將所述數據接收隊列中的每兩個字節與所述合成隊列中的每兩個字節分別相加,并保存在所述合成隊列中。
相應地,所述將所述數據接收隊列中的每兩個字節與所述合成隊列中的每兩個字節分別相加步驟還包括:
判斷所述數據接收隊列中的每兩個字節與所述合成隊列中的每兩個字節分別相加的結果是否溢出;
當所述相加的結果大于32767時,將所述相加的結果更改為0x7FFF并保存在所述合成隊列中;
當所述相加的結果小于-32768時,將所述相加的結果更改為0x8000并保存在所述合成隊列中。
相應地,本發明實施例還提供了一種基于媒體服務器實現音頻合成的設備,包括:
通信單元,用于應用進程與媒體服務器建立網絡連接;
接收單元,用于在建立所述網絡連接之后,所述媒體服務器接收所述應用進程發送的多路媒體數據流;
合成單元,用于所述媒體服務器對所述多路媒體數據流進行合成運算,并將所述合成的多路媒體數據流輸出。
相應地,所述設備還包括:
設置單元,用于所述媒體服務器預先設置套接字、數據接收隊列和合成隊列;
存儲單元,用于將所述接收單元接收到的多路媒體數據流存儲在所述數據接收隊列中。
相應地,所述合成單元包括:
遍歷單元,用于遍歷所述數據接收隊列中的每一個元素的鏈表頭;
讀取單元,用于當所述鏈表頭不為空時,從所述數據接收隊列中讀取媒體數據;
合成子單元,用于將所述讀取單元讀取的媒體數據與所述合成隊列中的媒體數據進行合成運算,并保存在所述合成隊列中。
相應地,所述合成子單元包括:
第一判斷單元,用于判斷所述讀取單元讀取的媒體數據的位數;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于康佳集團股份有限公司,未經康佳集團股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910189123.3/2.html,轉載請聲明來源鉆瓜專利網。





