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

正文內(nèi)容

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

2023-03-09 09:57:15 本頁面
 

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