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

正文內(nèi)容

基于linux的嵌入式流媒體點(diǎn)播系統(tǒng)畢業(yè)論文-wenkub

2023-03-09 09:57:15 本頁(yè)面
 

【正文】 式。而現(xiàn)在很流行的嵌入式視頻點(diǎn)播系統(tǒng)可以實(shí)現(xiàn)即播即放,極大地減少了等待時(shí)間,并且在播放時(shí)用戶還可以進(jìn)行相關(guān)的交互式操作。實(shí)時(shí)流傳輸允許用戶在進(jìn)行視頻觀看時(shí)進(jìn)行相關(guān)的交互式操作, 支持 4 隨機(jī)訪問, 比如前進(jìn)、后退等。 協(xié)議 簇 的層次結(jié)構(gòu)如圖 21 所示。 RTSP 在進(jìn)行控制信息交互式是保證交付質(zhì)量的 TCP 連接, 但 在進(jìn)行數(shù)據(jù)流傳輸時(shí) 和反饋調(diào)整 使用 UDP 連接,會(huì)導(dǎo)致分組丟失。 RTP協(xié)議 通常 是用 UDP協(xié)議來封裝 的, 所以只提供實(shí)時(shí)的數(shù)據(jù)傳輸,但是不保證傳輸?shù)目煽啃浴?通過質(zhì)量反饋來進(jìn)行流量的擁塞控制,利 用這些反饋信息進(jìn)行傳輸速度的 相應(yīng) 調(diào)整。 典型的 嵌入式 Linux 開發(fā)使用 如圖所示的宿主機(jī) /目標(biāo)板開發(fā)模式。 這 需要在 PC 機(jī)上建立一個(gè)用于 ARM 目標(biāo)板的交叉編譯環(huán)境 ,本機(jī)使用 交叉編譯器 配置如下: 名 稱 嵌入式 linux 點(diǎn)播系統(tǒng)開發(fā) CPU AMD 2445 內(nèi) 存 2G 虛擬機(jī) Server2021 下 VMWEAR Linux 系統(tǒng) Fedora 交叉編譯器 表 21 x86 主機(jī)配置 宿主機(jī) 目標(biāo)板 網(wǎng)絡(luò) /串口 /JTAG 7 3 系統(tǒng) 的需求說明 功能 需求 首先系統(tǒng)是基于 mini2440 開發(fā)板進(jìn)行設(shè)計(jì)的, 所以 在 uboot、 kerne 移植時(shí)要進(jìn)行定制, 包括 mini2440 板級(jí)的定制和和針對(duì) VOD 需求的定制。 服務(wù)器主要實(shí)現(xiàn)數(shù)據(jù)流的發(fā)送 ,使用戶可以觀看自己點(diǎn)播的視頻文件。 系統(tǒng)總體劃分 通常 嵌入式 Linux 視頻點(diǎn)播 系統(tǒng)從軟件的角度看通??梢苑譃樗膫€(gè)層次,即引導(dǎo)加載程 序,嵌入式 LinuX 內(nèi)核,文件系統(tǒng)以及用戶應(yīng)用程序 [08]。 圖 41嵌入式最小系統(tǒng)構(gòu)成 GUI 圖形用戶界面 、通信協(xié)議棧和 音視頻解碼器 mppalyer 三個(gè) 主要 模塊 集 成在一起就構(gòu)成了論文的嵌入式用戶應(yīng)用程序 。網(wǎng)絡(luò)播放時(shí)在播放時(shí)連接服務(wù)器,連接成功后,讀取服務(wù)器的視頻資源,更新網(wǎng)絡(luò)播放列表 ,點(diǎn)擊相應(yīng)的視頻文件后, QT視頻播放 客戶端會(huì)調(diào)用 開 源軟件 mplayer 進(jìn)行音視頻解碼將視頻顯示在播放器播放窗口, 并且在播放的狀態(tài)下 支持隨機(jī)訪問,可以進(jìn)行暫停、快進(jìn)、快退等交互式操作 。 圖 44服務(wù)器工作流程 開始 監(jiān)聽 TCP 端口 等待客戶連接 請(qǐng)求連接 接受連接 創(chuàng)建新連接 接受客戶消息 關(guān)閉連接 執(zhí)行客戶消息 響應(yīng)客戶消息 結(jié)束 N N VOD Server Client RTSP 控制信息( TCP) RTP 音、視頻( UDP) RTCP 分組 (UDP) HTTP 點(diǎn)播請(qǐng)求 11 5 系統(tǒng)的詳細(xì)設(shè)計(jì) 及實(shí)現(xiàn) 該部分介紹了系統(tǒng)的實(shí)施細(xì)節(jié),包括嵌入式系統(tǒng)開發(fā)環(huán)境的搭建, uboot、kernel 移植以及視頻播放主界面的設(shè)計(jì)。 圖 51 虛擬機(jī)下工作目錄 嵌入式 linux 的 uboot移植 bootloader 介紹 嵌入式 系統(tǒng)的引導(dǎo)加載程序是系統(tǒng)必不可少的一部分,引導(dǎo)加載程序是系統(tǒng)加電后運(yùn)行的第一段軟件代碼 。下載模式主要是針對(duì)嵌入式開發(fā)人員的 ,因?yàn)榍度胧揭浦策^程中的各種調(diào)試基本都是這種模式來實(shí)現(xiàn)的,下載模式可以通過串口、 NFS、 TFTP 等方式實(shí)現(xiàn)。所能做的就是讓一種加載引導(dǎo)程序支持盡量多的平臺(tái),賦予它良好的移植性。stage1 完成初始化 硬件的工作 ,為 stage2 準(zhǔn)備 足夠的 內(nèi)存空間,并將 stage2可執(zhí)行映像 復(fù)制到內(nèi)存中,設(shè)置堆棧,然后轉(zhuǎn)調(diào)到 stage2 的 C入口。 啟動(dòng)代碼中 C 語(yǔ)言的主函數(shù)是 在 lib_arm/中的 start_armboot。 所以移植所要做的就是針 S3C2440 和 SBC2410 的不同,以及 SBC2410 和 mini2440 開發(fā)板的外設(shè)不同作相應(yīng)的修改,并增加新的功能。 調(diào)用內(nèi)核 Stage1: 檢測(cè) 內(nèi)存映射 15 建立開發(fā)板文件并 測(cè)試編譯環(huán)境 修改頂層 Makefile 目的:定義交叉編譯工具鏈和開發(fā)板配置選項(xiàng)。以上測(cè)試通 過后,說明編譯環(huán)境和基本的開發(fā)板 代碼創(chuàng) 16 建都沒有問題。第三階段是初始化外設(shè),包括 LCD、網(wǎng)卡和 YAFFS2 文件 系統(tǒng) 支持等。本系統(tǒng)中,嵌入式 Linux 內(nèi)核選擇 。 添加 自己的 開發(fā)板信息 cd rm rf arch/arm/machs3c2440/ cp arf arch/arm/machs3c2440/ arch/arm/machs3c2440/mach vi arch/arm/machs3c2440/ 把 MACHINE_START(S3C2440, SMDK2440) , 修改成 MACHINE_START(MINI2440, FriendlyARM Mini2440 development board)。 編譯測(cè)試 cd make mini2440_defconfig //使用 Linux 官方自帶的 mini2440 配置 make zImage //編譯內(nèi)核,生成 的內(nèi)核映像 zImage 位于 arch/arm/boot 編譯通過,以上測(cè)試通過后,說明編譯環(huán)境和基本的開發(fā)板的代碼創(chuàng)建都沒有問題。 為了 適合系統(tǒng)自帶的 Nand Flash 驅(qū)動(dòng)接口, 在 Nand Flash 的結(jié)構(gòu)信息 中 還要 添 加 相 關(guān)信 息 , 參考/arch/arm/plat24xx/ 上結(jié)構(gòu)信息, 在 添加如下信息 。 //平臺(tái)設(shè)備結(jié)構(gòu)體數(shù)組, 把 nand flash 設(shè)備 添加到目標(biāo)平臺(tái)設(shè)備集 中 static struct platform_device *mini2440_devices[] __initdata = { amp。s3c_device_iis, amp。 進(jìn)入 yaffs2 源代碼目錄執(zhí)行 如下操作 : cd yaffs2 ./ c /opt/FriendlyARM/mini2440/ 再 進(jìn)入 , 看到 如果 已經(jīng)多了一個(gè) yaffs2 目錄 ,說明 yaffs2 補(bǔ)丁已經(jīng)成功打上。mini2440_dm9k_pdata,},}。s3c_device_iis, amp。 這里實(shí)際設(shè)置 數(shù)值 為 170000,單位是 ps(picoseconds)。mini2440_lcd_cfg, .num_displays = 1, .default_display = 0, .gpccon = 0xaa955699, .gpccon_mask = 0xffc003cc, .gpcup_mask = 0xffffffff, .gpdcon = 0xaa95aaa1, .gpdcon_mask = 0xffc0fff0, .gpdup = 0x0000faff, .gpdup_mask = 0xffffffff, .lpcsel = 0xf82,}。 在 nand flash 平臺(tái)結(jié)構(gòu)后面添加如下代碼: vi arch/arm/machs3c2440/ 在 平臺(tái) 初始化代碼 文件中 添加 SD 卡設(shè)備結(jié)構(gòu)所需的頭文件 include linux/mmc/ include plat/ //創(chuàng)建 s3c2440 的 SD 控制器的平臺(tái)數(shù)據(jù) static struct s3c24xx_mci_pdata mini2440_mmc_cfg = { .gpio_detect = S3C2410_GPG(8),// 中斷管腳是 開發(fā)板上接的是 GPG8 .gpio_wprotect = S3C2410_GPH(8), .set_power = NULL, .ocr_avail = MMC_VDD_32_33|MMC_VDD_33_34,}。mini2440_device_eth, amp。 最后 在 頂層目錄執(zhí)行 make zImage 編譯 ,會(huì)在 arch/arm/boot 目錄下產(chǎn)生新的 zImage。在交叉編譯時(shí)如果不使用默認(rèn)的庫(kù)文件,需要 進(jìn)行 相關(guān) 庫(kù)移植 , 以達(dá)到音視頻解碼的功能, 屬于做根文件系統(tǒng)模塊 。 根據(jù) VOD 客戶端應(yīng)用程序的功能, VOD 客戶端應(yīng)用程序可以劃分為兩大模塊 ,如圖 56 所示 圖 56 客戶端總體構(gòu)架 整個(gè)客戶端軟件基于 Qt Embedded 程 序框架開發(fā)。 主界面如下圖所示。圖形用戶 主 界面 主要 實(shí) 現(xiàn) 視頻播放的選擇 和對(duì)用戶交互式操作的控制 。 //打開第一個(gè)界 面 .................... } 主 界面 窗體 Main_vod 是繼承 QDialog 類。 Main_vod 類定義如下: class Main_vod : public QDialog { Q_OBJECT //只有加入 Q_OBJECT 宏 才能使用 QT 中的 signal 和 slot 機(jī)制 public: Main_vod ( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = Qt::WStyle_Customize | Qt::WStyle_NoBorder )。 //定義網(wǎng)絡(luò)播放指針按鈕 public slots: 27 virtual void _play_clicked()。 close()。 ()。 setMinimumSize(QSize(268,200))。 QFont f(Helvetica,10)。 28 fileinsertItem(Net play,this,SLOT(_play_clicked()))。 menuinsertItem(File,file)。 B_local_playsetMaximumSize(QSize(47,47))。 B__playsetGeometry(QRect(171,113,47,47))。 B__playsetPixmap(QPixmap::fromMimeSource(images/))。 Main_vod::~ Main_vod { // 自己 沒必要?jiǎng)h除 widgets, Qt 會(huì)為我們自動(dòng)處理 對(duì)象及其所有子對(duì)象 } ????????????????? } 在播在播放器的編寫過程中用 到兩個(gè)非常重要的類, Qproces 和 Qthread,其 在播放器相應(yīng)的功能操作都是通過進(jìn)程或線程間的通信完成的 ,屬于播放模塊 。 該播放器首先通過ARM 開發(fā)板觸摸屏點(diǎn)擊 中間的網(wǎng)絡(luò) 按鍵連接到多媒體服務(wù)器端,在建立好連接后,客戶端與服務(wù)端就可以進(jìn)行點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸,播放列表里就會(huì)接收到服務(wù)端的視頻資源列表,選擇列表文件進(jìn)行在線視頻播放。 為了支持后期的應(yīng)用程序開發(fā),在嵌入式系統(tǒng)移植時(shí)特別加入了網(wǎng)卡、觸摸屏和 LCD顯示等驅(qū)動(dòng)。 ( 2)、增加對(duì) HTTP/MMS 等協(xié)議的解析,使播放器可以支持瀏覽器訪問和瀏覽器播放。 33 致謝 首先感謝 胡祝華 老師 的指導(dǎo) 與幫助,在論文的書寫中遇到很多錯(cuò)誤,多謝老師耐心的批閱,在項(xiàng)目的實(shí)施過程中遇到很多技術(shù)行問題。 總之,論文對(duì)嵌入式 Linux 視頻點(diǎn)播進(jìn)行了有益的探索 ,并實(shí)現(xiàn)基本上達(dá)到預(yù)期的效果。 展望 從整體效果上看,整個(gè) Linux 視頻點(diǎn)播系統(tǒng)還有很多地方有待改進(jìn)和細(xì)化。 31 圖 61 系統(tǒng)播放效果圖 32 7 總結(jié) 論文 采用 mini2440 開發(fā)板, 使用 代表未來主流發(fā)展趨勢(shì)的嵌入式 Linux 作為平臺(tái),使用 QT 設(shè)計(jì)播放器客戶端 主界面 , 開發(fā) 實(shí)現(xiàn)了基于 S3C2440 的嵌入式linux 流媒體點(diǎn)播系統(tǒng)。 通過 USB 下載工具 把 UBOOT 燒寫到 nandflash 的0x00000000 地址 , 接著 燒寫 內(nèi)核,最后將 制作好的文件系統(tǒng)下載 到開發(fā)板。 connect(B_local_play,SIGNAL(clicked()),this,SLOT( local_play_clicked()))。 B__playsetMaximumSize(QSize(47,47))。 B_local_playsetPixmap(QPixmap::fromMimeSource(images/))。 B_local_playsetGeometry(QRect(43,113,47,47))。 menu=new QMenuBar(this)。 filesetFont(f)。 setPaletteBackgroundPixmap(QPixmap::fr
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1