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

正文內(nèi)容

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

2025-03-30 09:57 上一頁面

下一頁面
 

【正文】 PEG4 MPEG4是一種包含音頻和圖像的壓縮技術(shù),對(duì)圖像的壓縮算法提供的壓縮比可達(dá)到 200:1。可以利用很窄的帶寬通過幀的重建技術(shù)壓縮和傳輸數(shù)據(jù),從 而能以最少的數(shù)據(jù)獲得最佳的圖像質(zhì)量。流是對(duì)在網(wǎng)絡(luò)上所傳輸?shù)慕?jīng)過一定編碼的多媒體信息的一種描述 [04]。 這種觀看方式 大大地滿足了用戶的需求?,F(xiàn) 對(duì)于傳統(tǒng)的 順序傳輸方式 視頻播放,實(shí)時(shí)流 傳輸更能滿足用戶需求,逐漸成為視頻點(diǎn)播 的主流 方式 。 圖 21 RTSP協(xié)議棧 RTSP RTSP 協(xié)議 屬于應(yīng)用層協(xié)議 , 是一個(gè)多媒體播放控制協(xié)議, 以 C/S 方式工作 。 如圖 22所示 。 所以視頻播放時(shí)會(huì)出現(xiàn)視頻模糊,視頻質(zhì)量不佳的現(xiàn)象。 RTCP 是 通過 周期性地向會(huì)話的所有參加者進(jìn)行通信 來實(shí)現(xiàn)這樣的功能的 , 根據(jù)會(huì)話者的數(shù)量來調(diào)整發(fā)包率 。開發(fā)模型如圖 24 所示 。所以在 移植時(shí) 系統(tǒng)需要加入 對(duì)網(wǎng)卡、觸摸屏等的支持。 嵌入式流媒體客戶端 需要具備的基本功能如下 : 1) 提供有好的 播放界面和交互式界面; 1) 能讀取視頻文件,實(shí)現(xiàn)實(shí)時(shí)解碼及音視頻同步實(shí)時(shí) 播放 ; 2) 可以播放 U盤中 本地視頻文件; 3) 可以撥號(hào)連接服務(wù)器,讀取服務(wù)器視頻文件 ; 4) 能夠 實(shí)現(xiàn)交互操作 ,實(shí)現(xiàn)對(duì)流媒體 播放 的 暫停、快進(jìn) 、快退 等功能 ; 嵌入式流媒體 服務(wù)器端 需要具備的基本功能如下 [07]: 1)能夠提供種類豐富的視頻文件 :如 AVI, RMVB 等; 2)以流式協(xié)議將視頻文件發(fā)送給客戶端,使用戶可以觀看其點(diǎn)播的視頻文件 ; 3)實(shí)現(xiàn)和客戶端的同步交互式操作,比如實(shí)現(xiàn)同步的暫停、快進(jìn)等操作 。 經(jīng)過 嵌入式 uboot 的移植、 armlinux 內(nèi)核的配置與編譯以及嵌入式根文件系統(tǒng)的創(chuàng)建,基于 ARM 處理器平臺(tái)的最小 嵌入式 系統(tǒng) 就完成了 。 與 前面的最小 嵌入式系統(tǒng)結(jié)合一起 就構(gòu)成了視頻點(diǎn)播系統(tǒng) 體系 。 C/S 工作模型如圖 43所示。 嵌入式系統(tǒng)開發(fā)環(huán)境的 搭建 建立工作目錄 mkdir p /opt/FriendltARM/mini2440 //mini2440 工作目錄 mkdie p /tmp/linux //各種所需源文件都拷貝到該目錄下 建立交叉編譯環(huán)境 cd /opt/FriendltARM/mini2440 解壓 安裝 編譯器 tar xvzf /tmp/linux/ – C / 添加系統(tǒng)環(huán)境變量如下 gedit /root/.bashrc export PATH=$PATH: /opt/FriendlyARM/toolschain/ 解壓安裝 內(nèi)核源代碼 tar xvzf /tmp/linux/ 解壓安裝嵌入式圖形系統(tǒng) armqtopia 和 x86qtopia 源代碼 tar xvzf /tmp/linux/ tar xvzf /tmp/linux/ 解壓安裝嵌入式圖形系統(tǒng) tar xvzf /tmp/linux/ 解壓安裝 源代碼 tar xvzf /tmp/linux/ 解壓安裝 Linux 示例程序 tar xvzf /tmp/linux/ 解壓安裝 uboot 工作目錄 12 tar xvzf /tmp/linux/ 創(chuàng)建 bootloader 工作 目錄,里 有 vivi 和 uboot 源代碼 tar xvzf /tmp/linux/ – C / 改變工作目錄后會(huì) 被安裝到 /usr/sbin 目錄下, 自動(dòng) 生成 mkyaffs2image 和 mkyaffs2image128M。 其作用 類似于 PC 中的 BIOS,BootLoader 就是在 13 操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。 在下載模式下, uboot為用戶提供一個(gè)命令行接口,通過接口可以使用 uboot 提供的一些命令進(jìn)行相應(yīng)操作 。 Uboot 就是支持多平臺(tái)多操作系統(tǒng)的 優(yōu)秀 引導(dǎo) 加載 程序,這也 是Uboot 的優(yōu)勢 。 Stage2 一般包括以下幾個(gè) 步驟,初始化本階段要用到的硬件設(shè)備,將 制作好的 內(nèi)核映像和根文件系統(tǒng)從 Flash 讀到 RAM 中,調(diào)用內(nèi)核 , 跳轉(zhuǎn)到 MEMSTART+0x8000地址處,一般是 使用 x030008000 地址。 兩個(gè)階段的引導(dǎo)的主要流程如下所示。S3C2440 和 S3C2410 的區(qū)別主要是 S3C2440 的主頻更高 , 其他 內(nèi)部 寄存器基本都 是兼容 的。 約定:代碼中 +和 號(hào)表示增刪 vi Makefile +CROSS_COMPILE = armnonelinuxgnueabi +mini2440_config : unconfig + $(MKCONFIG) $(:_config=) arm arm920t mini2440 andywsg s3c24x0 在 /board 中建立 mini2440 目錄和文件 在 /board 目錄中建立開發(fā)板 mini2440 的目錄,并復(fù)制 sbc2410x 的文件到此,做適當(dāng)修改。下面所做 工作就是針對(duì) mini2440 進(jìn)行修改,以滿足項(xiàng)目需求 。 第四階段修改編譯配置文件,在所有有編譯條件的地方加入對(duì) mini2440 的編譯 支持 ,這樣前面修改的代碼才會(huì)在編譯時(shí)編譯進(jìn)來。 本身已經(jīng)提供了對(duì) mini2440 的部分支持。 修定 開發(fā)板 時(shí)鐘源頻率 在 ( 就是 剛剛通過復(fù)制 得到的 )static void __init smdk2440_map_io(void)函數(shù)中,把原來 的 16934400(代表原 SMDK2440 目標(biāo)板上的晶振是 )改為 mini2440 開發(fā)板上實(shí)際使用的 12021000(代表 mini2440 開發(fā)板上的晶振 12MHz)。 下載到內(nèi)核, 從串口可以看到 可以啟動(dòng) 信息 ,但是大部分的定制的驅(qū)動(dòng)還沒有添加,根文件系統(tǒng)也沒有制作。 cd vi arch/arm/machs3c2440/ //編輯平臺(tái)初始化文件 //創(chuàng)建 MTD 分區(qū)表 static struct mtd_partition mini2440_default_nand_part[] = { [0] = {.name = supervivi, //bootloader 分區(qū),對(duì)應(yīng) 設(shè)備塊 /dev/mtdblock0 .size = 0x00040000, //大小 256k .offset = 0,}, //起始地址 0x00000000 [1] = { .name = param, // supervivi 的參數(shù)區(qū),對(duì)應(yīng) 塊設(shè)備 /dev/mtdblock1 .offset = 0x00040000, .size = 0x00020210,}, //大小 128K [2] = { .name = Kernel, //內(nèi)核 分區(qū),大小為 5M,對(duì)應(yīng) /dev/mtdblock2 .offset = 0x00060000, .size = 0x00500000,}, //大小 5M [3] = { .name = root, //根 文件系統(tǒng)分區(qū),對(duì)應(yīng) /dev/mtdblock3 .offset = 0x00560000, .size = 1024 * 1024 * 1024, }, [4] = { .name = nand, //表示 整片的 nand flash .offset = 0x00000000, .size = 1024 * 1024 * 1024, }}。s3c_device_usb, amp。s3c_device_nand, 。 移植 DM9000 網(wǎng)卡驅(qū)動(dòng) 網(wǎng)卡 是 一 個(gè) 平 臺(tái) 設(shè) 備 , 在 目 標(biāo) 平 臺(tái) 初 始 化 代 碼 中/arch/arm/machs3c2440/ 填寫 相應(yīng)的結(jié)構(gòu)表 , 具體添加 如下: 添加網(wǎng)卡設(shè)備 的資源設(shè)置, 才能夠 和 DM9000 網(wǎng)卡驅(qū)動(dòng)接口 配合 使用 : static struct resource mini2440_dm9k_resource[] = { //片選信息 [0] = { .start = MACH_MINI2440_DM9K_BASE, .end = MACH_MINI2440_DM9K_BASE + 3, .flags = IORESOURCE_MEM}, [1] = { .start = MACH_MINI2440_DM9K_BASE + 4, 20 .end = MACH_MINI2440_DM9K_BASE + 7, .flags = IORESOURCE_MEM}, [2] = { .start = IRQ_EINT7, .end = IRQ_EINT7, //說明 中斷管腳接在 EINT7,上升沿觸發(fā)中斷 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,}}。 把上面做好的網(wǎng)卡平臺(tái)添加設(shè)備設(shè)備集中 static struct platform_device *mini2440_devices[] __initdata = { amp。s3c_device_nand, amp。 cd vi arch/arm/machs3c2440/ mini2440 開發(fā)板 使用的是 統(tǒng)寶 , 把友善之臂已經(jīng)移植好的代碼加入,統(tǒng)寶 的配置和參數(shù)設(shè)置 如下。 添加觸摸屏驅(qū)動(dòng) 由于 內(nèi)核 沒有包含支持 S3C2440 的觸摸屏驅(qū)動(dòng),因此 需要 添加 設(shè)計(jì) 一個(gè) 觸摸屏 驅(qū)動(dòng) 文件,放置 于 linuxsrc/drivers/input/touchscreen 目錄下,增 加 一 個(gè) 友 善 之 臂 提 供 的 文 件 。 并把 SD 卡結(jié)構(gòu)設(shè)備添加到目標(biāo)平臺(tái)設(shè)備集中 static struct platform_device *mini2440_devices[] __initdata = { amp。s3c_device_nand, amp。結(jié)果 如圖 54 所示 。 播放器 主界面 設(shè)計(jì) Qt/Embedded 是著名的圖形庫 Qt 開發(fā)商 Trolltech 專門面向嵌入式系統(tǒng)開發(fā)的 Qt 版本??蛻舳塑浖譃椋阂曨l信息接收顯示模塊和視頻播放模塊, 每個(gè)模塊對(duì)應(yīng)一個(gè)窗體。 圖 57 播放器主界面界面 圖形用戶界面( GUI)模塊主要負(fù)責(zé)用戶和系統(tǒng)的交互,本系統(tǒng)中 GUI 模塊本地播放 網(wǎng)絡(luò)播放 接受 信息 信息顯示 數(shù)據(jù)接收 解碼 播放 客戶操作 26 的開發(fā)主要由 Qt/Embedded 工具完成 [13]。 代碼的啟動(dòng)是從主函數(shù) main()開始的 ,在這里啟動(dòng)第一個(gè)界面即播放器的主界面。 QDialog 類是對(duì)話框窗口的基 類 ,對(duì)話框窗口是主要用于短期任務(wù)以及和用戶進(jìn)行簡要通訊的頂級(jí)窗口。// 構(gòu)造一個(gè)父對(duì)象為 parent、名稱為 name 的對(duì)話 框 , 非模式 show()顯示,產(chǎn)生一個(gè)沒有邊際的窗體 ~ Main_vod ()。//網(wǎng)絡(luò)播放 virtual void local_play_clicked()。 Net_play n_Vod。 ()。 setMaximumSize(QSize(268,200))。 setFont(f)。 QMenuBar *menu。 //構(gòu)造本地播放按鈕名字、坐標(biāo)及背景圖片 B_local_play=new MyButton(this,B_local_play)。 B_local_playsetPaletteBackgroundPixmap(QPixmap::fromMimeSource(images/))。 B__playsetMinimumSize(QSize(47,47))。 //播放窗口按鍵通信通過 signal 和 slot 來接收信號(hào), signal 和 slot 機(jī)制真正實(shí)現(xiàn)了封裝 ,通過 connect( )函數(shù)來進(jìn)行調(diào)用。 主 界面如下所示: 圖 58 播放器主界面 30 6 系統(tǒng)的集成與 調(diào)試 系統(tǒng) 采用 mini2440 開發(fā)板, 它采用 Samsung S3C2440 為微處理器, 同時(shí)具有豐富的硬件接口資源。點(diǎn)擊 本地播放 可以打開本地視頻文件播 放,該播放器同時(shí)支持播放、暫停、快進(jìn)、快退、音量控制等功能,該客戶端采用了 MPlayer 的視頻解碼及 S3C2440 內(nèi)置的 硬件編解碼器, 能支持目前主流的 avi 視頻格式, 播放效果如下所示。系統(tǒng)集成后基本 實(shí)現(xiàn)了視頻點(diǎn)播的功能,但是在播放高清視頻以及音視頻解碼同步方面有點(diǎn)小問題,有待于優(yōu)化。 ( 3)、 播放更多格式的視頻,提供更多的人性化用戶界面選
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1