freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于rtp的linux實(shí)時(shí)語音通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(留存版)

2025-04-27 10:16上一頁面

下一頁面
  

【正文】 嘉應(yīng)學(xué)院畢業(yè)論文 (設(shè)計(jì) ) 19 { int r = 0。 } } } ,我們?cè)偬砑右粋€(gè)播放函數(shù),當(dāng)接收到音頻數(shù)據(jù)時(shí),向音頻設(shè)備寫入數(shù)據(jù),這個(gè)函數(shù)在 class COrtpClient 中: void COrtpClient::play_wav(char *pBuffer) { int rc = 0。mixer, 0)) 0) { std::cerr snd_mi。 count = r。 //計(jì)算周期長(zhǎng)度 snd_pcm_hw_params_free(hw_params)。 if (snd_pcm_hw_params_set_buffer_time_near(handle, hw_params, amp。 break 。 ,參數(shù)設(shè)置不當(dāng)將會(huì)導(dǎo)致音頻設(shè)備無法正常工作。} private: uint32_t sample_rate。 //音頻播放 void read_wav_header(int fd)。它可以驅(qū)動(dòng)很多聲卡并且可以用在很多 UNIX 系統(tǒng)中。采集卡的位客觀地反映了數(shù)字聲音信號(hào)對(duì)輸入聲音信號(hào)描述的準(zhǔn)確程度。 下面圖 : 實(shí)時(shí)語音通信模塊實(shí)現(xiàn)過程 見下圖 : 圖 基本框架流程圖 本系統(tǒng)核心模塊是語音通話模塊的實(shí)現(xiàn),下面是語音通話模塊的流程圖: 嘉應(yīng)學(xué)院畢業(yè)論文 (設(shè)計(jì) ) 12 語音通話模塊的流程圖 第四章 linux 音頻編程 音頻編程簡(jiǎn)介 音頻信號(hào)是一種連續(xù)變化的模擬信號(hào),但計(jì)算機(jī)只能處理和記錄二 進(jìn)制的數(shù)字信號(hào),由自然音源得到的音頻信號(hào)必須經(jīng)過一定的變換,成為數(shù)字音頻信號(hào)之后,才能送到計(jì)算機(jī)中作進(jìn)一步的處理。 “轉(zhuǎn)換器”( Translators)也是一種 RTP 層的中繼設(shè)備,當(dāng)某些與會(huì)者不能通過多播( multicast)方式直接連接到會(huì)與,比如它們處在不讓任何 IP 包通過的應(yīng)用級(jí)防火墻之后,這時(shí)就需要用到“轉(zhuǎn)換器” 。為嘉應(yīng)學(xué)院畢業(yè)論文 (設(shè)計(jì) ) 7 了克服這些不利因素, RTP 包頭攜帶時(shí)間戳和序列號(hào),這樣接收方就可以重建源產(chǎn)生的計(jì)時(shí)信息,語音報(bào)文可以按照 20 毫秒的間隔連續(xù)回放了。 在 IP網(wǎng)絡(luò)上, RTP 協(xié)議一般是運(yùn)行在 UDP 之上。但是 UDP 傳輸?shù)牟豢煽繋韥G包、亂序等問題,所以如果在應(yīng)用層采用合適的封裝方式并增加一些有利于媒體播放的信息進(jìn)行傳輸,可以使得接收端在一定程度上彌補(bǔ)傳輸帶來的損失,這就是引入 RTP的原因。 TCP 協(xié)議是面向連接的協(xié)議,它的重傳機(jī)制和擁塞控制機(jī)制都是不適合用于實(shí)時(shí)多媒體傳輸?shù)摹? 在國(guó)內(nèi),清華電子工程系網(wǎng)絡(luò)研究所多媒體通信課題組也在這方面做了大量的研究,并開發(fā)出了 Coolaudio、 CoolVideo、 CoolMeeting 等一系列軟件。 第三章:介紹了 linux 下基于 RTP 的實(shí)時(shí)語音通信系統(tǒng)實(shí)現(xiàn)的基本原理和總體架構(gòu)。 使用可行性 ..................................... 錯(cuò)誤 !未定義書簽。 B/S 結(jié)構(gòu)的特點(diǎn) ................................. 錯(cuò)誤 !未定義書簽。 術(shù)語定義 ....................................... 錯(cuò)誤 !未定義書簽。 本文結(jié)合 RTP/RTCP 高實(shí)時(shí)性的特點(diǎn),主要針對(duì)局域網(wǎng),提出了音頻數(shù)據(jù)采用G729a 壓縮,傳輸數(shù)據(jù)采用 ortp 庫,在 linux 平臺(tái)下開發(fā)的實(shí)時(shí)語音通信系統(tǒng)。 存在不足的分析 ................................. 錯(cuò) 誤 !未定義書簽。 平臺(tái)的搭建與優(yōu)點(diǎn) ............................... 錯(cuò)誤 !未定義書簽。例如,一個(gè)多媒體會(huì)議系統(tǒng),我們總是希望發(fā)言者的發(fā)言能夠盡早讓收聽者收聽到,也就是說時(shí)延盡量短;另外一個(gè)就是我們希望在收聽者收聽語音信息時(shí),一句話平滑的,即中間沒有斷點(diǎn),也就是等時(shí)性。 1992 年 3月, IETF( Inter Engineering Task Force)在 San Diego 召開的會(huì)議是分組網(wǎng)上第一次大規(guī)模的音頻多播應(yīng)用。為保證數(shù)據(jù)的可靠傳輸,在傳輸層使用 TCP 協(xié)議,當(dāng)接收端檢測(cè)到數(shù)據(jù)包丟失或錯(cuò)誤時(shí),要求發(fā)送端重新發(fā)送,但這 樣不可避免地引起傳輸延時(shí)和占用網(wǎng)絡(luò)帶寬。 RTP 的引入 基于上一節(jié)的分析,我們可以清楚的認(rèn)識(shí)到 TCP 協(xié)議是不適合用來進(jìn)行傳輸實(shí)時(shí)多媒體數(shù)據(jù)的,因此考慮選擇 UDP作為 RTP 的傳輸層協(xié)議。 RTP 和 RTCP 配合使用,能以有效的反饋和最小的開銷使傳輸效率最佳化,所以特別適合傳輸實(shí)時(shí)數(shù)據(jù)。一個(gè)端口用于 RTP傳輸音頻數(shù)據(jù),另一個(gè)端口用于傳輸 RTCP 控制包。盡管采用獨(dú)立的 RTP 會(huì)話,同源的音頻和視頻可以根據(jù) RTCP 的時(shí)間信息進(jìn)行同步回放。目前 Linux 已經(jīng)得到了越來越多的應(yīng)用。這個(gè)數(shù)值越大,解析度就越高,錄制和回放的聲音就越真實(shí)。后來 Hannu 跑去開發(fā) Open Sound System(也就是上面所說的 OSS/Full)。 ALSA 音頻編程 ALSA 庫的安裝 在 linux 終端下執(zhí)行: $ sudo aptget install libasound2dev 安裝完畢! 音頻數(shù)據(jù)的采集和播放的實(shí)現(xiàn) 一個(gè)典型的音頻程序應(yīng)該具有以下結(jié)構(gòu) : ( 1)打開音頻設(shè)備 ( 2)為設(shè)備設(shè)置參數(shù)(主要參數(shù)有三個(gè):采樣率、采樣位數(shù)、通道數(shù)) ( 3)向音頻設(shè)備讀 /寫音頻數(shù)據(jù) ( 4)關(guān)閉設(shè)備 Alsa 庫為我們實(shí)現(xiàn)這些操作提供了豐富的接口,我們利用 Alsa 接口把語音的采集和播放封裝成一個(gè)類 class CWavPlayer,下面是 class CWavPlayer 的部分代碼: class CWavPlayer { 嘉應(yīng)學(xué)院畢業(yè)論文 (設(shè)計(jì) ) 15 public: CWavPlayer(uint32_t sample_rate = 8000, uint16_t bit_per_sample = 16, uint16_t channels = 2)。operator=(CWavPlayer amp。 if ((rc = snd_pcm_open(amp。 snd_pcm_hw_params_malloc(amp。 if (snd_pcm_hw_params_get_buffer_time_max(hw_params, amp。 snd_pcm_hw_params_get_format(hw_params, amp。 snd_pcm_prepare(handle)。 } 嘉應(yīng)學(xué)院畢業(yè)論文 (設(shè)計(jì) ) 21 } } 音量調(diào)整相關(guān)操作 初始 化麥克風(fēng)及本機(jī)音量調(diào)節(jié)器相關(guān)代碼: void CWavPlayer::set_pcm_mixer() { snd_mixer_t *mixer。 /* EPIPE means underrun */ //perror(underrun occurred\n)。amp。 snd_pcm_hw_params_get_period_size(hw_params, amp。 snd_pcm_hw_params_set_rate_near(handle, hw_params, amp。 交錯(cuò)模式 (interleaved):是一種音頻數(shù)據(jù)的記錄方式,在交錯(cuò)模式下,數(shù)據(jù)以連續(xù)嘉應(yīng)學(xué)院畢業(yè)論文 (設(shè)計(jì) ) 17 楨的形式存放,即首先記錄完楨 1的左聲道樣本和右聲道樣本(假設(shè)為立體聲格式),再開始楨 2的記錄。 //周期 WAVHeader_t *wav。 //print the params of wav struct void set_pcm_params()。與此相反 OSS/Free 驅(qū)動(dòng)在內(nèi)核層次調(diào)用,需要指定設(shè)備名和調(diào)用 ioctl。 出于對(duì)安全性方面的考慮, Linux 下的應(yīng)用程序無法直接對(duì)聲卡這類硬件設(shè)備進(jìn)行操作,而是必須通過內(nèi)核提供的驅(qū)動(dòng)程序才能完成。采樣嘉應(yīng)學(xué)院畢業(yè)論文 (設(shè)計(jì) ) 13 頻率的選擇應(yīng)該遵循奈奎斯特( Harry Nyquist)采樣理論:如果對(duì)某一模擬信號(hào)進(jìn)行采樣,則采樣后可還原的最高信號(hào)頻率只有采樣頻率的一半,或者說只要采樣頻率高于輸入信號(hào)最高頻率的兩倍,就能從采樣信號(hào)系列重構(gòu)原始信號(hào)。 第三章 實(shí)時(shí)語音通信系統(tǒng)簡(jiǎn)介 系統(tǒng)平臺(tái) 本系統(tǒng)是在 linux 下實(shí)現(xiàn)的,選 用 Ubuntu 作為軟件的實(shí)現(xiàn)平臺(tái), vim 作為編寫工具,編程語言采用 C++。一個(gè)與會(huì)者離開會(huì)議時(shí)要發(fā)送 RTCP BYE 報(bào)文,以通知其它的參與者自己離開了。如果底層網(wǎng)絡(luò)支持多點(diǎn)傳播的話, RTP 還支持使用多點(diǎn)傳播向多個(gè)目的 端點(diǎn)發(fā)送數(shù)據(jù)。它是 IETF 提出的一個(gè)標(biāo)準(zhǔn),對(duì)應(yīng)的 RFC 文檔為 RFC3550( RFC1889 為其過期版 本)。另一方面,音頻、視頻在特定的編碼方式下,產(chǎn)生的編碼數(shù)量是不可能突然改變的,例如,標(biāo)準(zhǔn)的 PCM音頻需要 64Kb/s,加上一些額外控制信息,它不能再低于這個(gè)帶寬要求的網(wǎng)絡(luò)上傳輸。 實(shí)時(shí)多媒體數(shù)據(jù)傳輸?shù)奶攸c(diǎn) 實(shí)現(xiàn)多媒體數(shù)據(jù)傳輸?shù)暮诵氖锹?、文、圖等多媒體信息的傳輸技術(shù),它的一個(gè)顯著特點(diǎn)是數(shù)據(jù)量大,并且許多應(yīng)用對(duì)實(shí)時(shí)性都有比較高的要求,例如,一個(gè)多媒體會(huì)議系統(tǒng),我們總是希望發(fā)言者的發(fā)言能夠盡早讓收聽者收聽到,也就是說時(shí)延盡量短 ;另外一個(gè)就是我們希望在收聽者收聽語音信息時(shí),一句話平滑的,即中間沒有斷點(diǎn),也就是等時(shí)性。隨著IPv6, RSVP,RTP/RTCP 一系列協(xié)議的出現(xiàn),在 Inter 上實(shí)現(xiàn)多媒體通信成為可能。 數(shù)據(jù)需求 ....................................... 錯(cuò)誤 !未定義書簽。 Ajax 技術(shù) [12] .................................... 錯(cuò)誤 !未定義書簽。 提出的意義 ..................................... 錯(cuò)誤 !未定義書簽。 當(dāng)前 Inter 中流動(dòng)的“比特”所代表的內(nèi)容已從原來的數(shù)據(jù)逐漸向?qū)崟r(shí)多媒體數(shù)據(jù)演變,它們的特點(diǎn)是對(duì)實(shí)時(shí)性要求非常高。 網(wǎng)絡(luò)多媒體教學(xué)系統(tǒng)概述 ............................................ 2 通用網(wǎng)絡(luò)多媒體教學(xué)平臺(tái)基本概念 ................. 錯(cuò)誤 !未定義書簽。 簡(jiǎn)介 [9] ....................................... 錯(cuò)誤 !未定義書簽。 環(huán)境設(shè)備需求 ................................... 錯(cuò)誤 !未定義書簽。 第七章:總結(jié)與展望。但是總的來說,國(guó)內(nèi)的研究 水平要遠(yuǎn)遠(yuǎn)落后于國(guó)外。 ( 2) .TCP 的重傳機(jī)制 在 TCP/IP 協(xié)議中,當(dāng)發(fā)送方收不到接收方發(fā)來的確認(rèn),并超過一定的時(shí)間,就認(rèn)定該數(shù)據(jù)已丟失,這時(shí)它將重傳丟失的數(shù)據(jù)包。通常 RTP 算法并不作為一個(gè)獨(dú)立的網(wǎng)絡(luò)層來實(shí)現(xiàn),而是作為應(yīng)用程序代碼的一部分。因此,在實(shí)際應(yīng)用中, RTP/RTCP/UDP 用于音頻、視頻媒體,而 TCP用于數(shù)據(jù)和控制信令的傳輸。因此每個(gè)與會(huì)者的應(yīng)用程序都周期性地廣播含有自己名字的 RTCP 接收?qǐng)?bào)告。轉(zhuǎn)換器的一個(gè)應(yīng)用例子是嘉應(yīng)學(xué)院畢業(yè)論文 (設(shè)計(jì) ) 8 連接一些只能使用 IP/UDP 的主機(jī)和只能使用 STII 主機(jī),或者對(duì)單個(gè)信源的視頻流進(jìn)行逐包的編碼翻譯,而不作重新同步或混合。 數(shù)字音頻涉及到的概念非常多,對(duì)于在 Linux 下進(jìn)行音頻編程的程序員來說,最重要的是理解聲音數(shù)字化的兩個(gè)關(guān)鍵步驟:采樣和量化。采樣位數(shù)越高,信號(hào)的動(dòng)態(tài)范圍越大,數(shù)字化后的音頻信號(hào)就越可能接近原始信號(hào),但所需要的存貯空間也越大。它包含內(nèi)核驅(qū)動(dòng)集合, API 庫和工具對(duì)Linux 聲音進(jìn)行支持。 //打開音頻設(shè)備 void wav_record(uint16_t dtimes, int fd)。 //周期長(zhǎng)度( bytes) 嘉應(yīng)學(xué)院畢業(yè)論文 (設(shè)計(jì) ) 16 uint32_t bit_per_frame。 ( 3)楨 (frame):楨記錄了一個(gè)聲音單元,其長(zhǎng)度為樣本長(zhǎng)度與通道數(shù)的乘積 。 break 。period_time, 0) 0) { std::cerr Error snd_pcm_hw_params_set_period_time_near/n。 size_t result = 0。 snd_pcm_uframes_t period_size = ()。 int result。 exit(1)。 //獲取采樣位數(shù) bit_per_frame = bit_per_sample * channels。 } if (buffer_time 500000) buffer_ti
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1