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

正文內(nèi)容

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

  

【正文】 Linux 支持的文件系統(tǒng)很多,論文采用的是 yaffs2 文件作為根文件系統(tǒng) 。s3c_device_lcd, amp。 //構(gòu)建 lcd 配置結(jié)構(gòu)體 mini2440_fb_info static struct s3c2410fb_mach_info mini2440_fb_info __initdata = { .displays = amp。s3c_device_lcd, amp。由于MPlayer 是個(gè)開源軟件,內(nèi)置了多種解碼器,可以播放很多主流音視頻文件,被稱為嵌入式 linux 中最好的播放工具。選擇不同的按鈕進(jìn)入不同的播放模式,上面 角有個(gè) 多 選項(xiàng)卡, 選項(xiàng)卡里有 play 和localplay 不同的播放選項(xiàng)以及幫助信息 選項(xiàng) 。 ()。 //定義本地播放指針按鈕 MyButton* B__paly。 ()。 //主界面多選按鈕 QPopupMenu *file=new QPopupMenu。 menusetGeometry(QRect(0,0,268,10))。 //構(gòu)造網(wǎng)絡(luò)播放按鈕名字、坐標(biāo)及背景圖片 B__play=new MyButton(this,B__play)。 29 connect(B__paly,SIGNAL(clicked()),this,SLOT( _play_clicked()))。 開發(fā)了 加載 引導(dǎo) 程序,移植 了 內(nèi)核及設(shè)計(jì)了播放器主界面 。隨著嵌 入式產(chǎn)品的發(fā)展,視頻壓縮算法的進(jìn)步,嵌入式 Linux 視頻點(diǎn)播系統(tǒng)必然會(huì)有廣闊的發(fā)展空間。在后續(xù)的開發(fā)中,可以從以下幾個(gè)方面展開工作: ( 1)、設(shè)計(jì)基于 GPRS 網(wǎng)絡(luò)的視頻點(diǎn)播,實(shí)現(xiàn)用戶隨時(shí)隨地觀看視頻。 系統(tǒng)播放 將設(shè)計(jì)好的視頻 播放器 交叉編譯后 移植到 ARM平臺(tái)嵌入式系統(tǒng)中,啟動(dòng)開發(fā)板,進(jìn)入主界面,主界面會(huì)有網(wǎng)絡(luò)播放和本地播放選擇按鈕。 B__playsetPaletteBackgroundPixmap(QPixmap::fromMimeSource(images/))。 B_local_playsetMinimumSize(QSize(47,47))。 fileinsertItem(Local play,this,SLOT(local_play_clicked()))。 } } 調(diào)用函數(shù) 實(shí)現(xiàn) 主界面 的顯示 Main_vod:: Main_vod ( QWidget* parent, const char* name, bool modal, WFlags fl ) : QDialog( parent, name, modal, fl ) { //設(shè)置顯示窗體名字、大小及背景圖片 setName(Main_vod)。 網(wǎng)絡(luò)播放和本地播放的函數(shù)定義如下: //網(wǎng)絡(luò)播放 //本地播放 void Main_vod::_play_clicked() void Main_vod::local_play_clicked() { { close()。 播放窗口按鍵 間 通信通過 signal 和slot 來接收信號(hào), QT信號(hào)槽機(jī)制 signal 和 slot 機(jī)制真正實(shí)現(xiàn)了封裝的概念,這里 signal 和 slot 在聲明后 通過 connect( )函數(shù)來進(jìn)行調(diào)用。 其中 QWidget類是所有用戶界面對(duì)象的基類 , 圖形用戶界面應(yīng)用程序的控制流 就是 該 類 負(fù)責(zé) 。 由于交叉編譯出來的應(yīng)用程序具有良好的可移植性,很多使用 Linux 開發(fā)的 Qt 應(yīng)用程序可以很方便 地移植到相應(yīng)的嵌入式系統(tǒng)上去。 注意, 上面驅(qū)動(dòng) 修改 好之后, 每一步都要執(zhí)行 make menuconfig 在菜單選項(xiàng)中選中相應(yīng)的配置項(xiàng),這樣在編譯時(shí)修改的代碼才會(huì)起效。 vi +obj$(CONFIG_TOUCHSCREEN_S3C2410) += 22 移植 SD 卡驅(qū)動(dòng) 由于 已經(jīng)自帶了 S3C2440 芯片的 SD 卡驅(qū)動(dòng), 所以 只需在初始化代碼中加入 SD 平臺(tái)設(shè)備結(jié)構(gòu)就可以 。 移植 LCD 顯示驅(qū)動(dòng) 由于 內(nèi)核已經(jīng)支持 S3C2440 的 LCD 控制器驅(qū)動(dòng), LCD 工作中 最關(guān)鍵的就是 取決于 時(shí)鐘頻率 (Clock frequency)參數(shù) 的設(shè)置, 內(nèi)核是通過一個(gè)稱為“ pixclock”的參數(shù)來 調(diào)節(jié)。 static struct platform_device mini2440_device_eth = { .name = dm9000, .id = 1, .num_resources = ARRAY_SIZE(mini2440_dm9k_resource), .resource = mini2440_dm9k_resource, .dev = { .platform_data = amp。s3c_device_i2c0, amp。 18 移植 Nand 驅(qū)動(dòng) 并修改 分區(qū)信息 雖然比較新的內(nèi)核 在 文件中 自帶了 部分 Nand Flash驅(qū)動(dòng), 但是系統(tǒng)默認(rèn)的分區(qū)不是 該 項(xiàng)目 所需的。 17 建立 目標(biāo)平臺(tái) 指定 平臺(tái) 交叉編譯變量 cd vi Makefile ARCH ?= $(SUBARCH) CROSS_COMPILE ?= +ARCH ?= arm +CROSS_COMPILE ?= armlinux 這里面的 ARCH ?= arm 是指定目標(biāo)平臺(tái)為 arm 平臺(tái) , CROSS_COMPILE ?= armlinux是指定交叉編譯器是 。第二階段修改初始化代碼 ,主要是 mini2440 平臺(tái)初始化。 設(shè)置 CPU 為 SVC 關(guān)閉看門狗 /禁所有中斷 /設(shè)置 cpu 頻率 復(fù)制 stage2 可執(zhí)行 映像 到 SDRAM 中 設(shè)置堆棧指針 跳轉(zhuǎn) stage2 c 入口 Stage2: 加載內(nèi)核和根文件 設(shè)置內(nèi)核的啟動(dòng)參數(shù)。 而stage2 則一般 用 C 語(yǔ)言來實(shí)現(xiàn),這樣 做 不僅可以實(shí)現(xiàn)更加 復(fù)雜的功能,而且具有 良好的可讀性和 移植性。 在嵌入式 Linux 中 BootLoader 的重要性 由于 BootLoader 需要直接操作硬件, 所以 想在嵌入式世界建立一個(gè)通用的引導(dǎo) 加載 程序是很困難的,因?yàn)橐话悴煌挠布脚_(tái)不同的操作系統(tǒng)所需的加載引導(dǎo)程序不同。 所建立的 mini2440 工作目錄如 51所示。 9 圖 42 嵌入式流媒體播放系統(tǒng) 體系結(jié)構(gòu) 實(shí)現(xiàn)模式: C/S模型 嵌入式視頻點(diǎn)播系統(tǒng)要實(shí)現(xiàn)本地播放和網(wǎng)絡(luò)播放的功能,本地播放是讀取 U盤 中預(yù)先存在的視頻文件進(jìn)行播放。 本文是以 mini2440 為開發(fā)板,論文的主要工作集中于系統(tǒng)的移植和應(yīng)用程序的開發(fā)。 本文的目標(biāo)就是在 X86 平臺(tái)上交叉編譯,產(chǎn)生可以在 ARM 開發(fā)板上運(yùn)行的二進(jìn)制文件。 RTCP 是 RTP 的 實(shí)時(shí)傳輸 控制協(xié)議,它用于監(jiān)視網(wǎng)絡(luò)的服務(wù)質(zhì)量和在正在進(jìn)行的與會(huì)者會(huì)話中傳遞信息。 要 實(shí)現(xiàn) RTSP 的 視頻播放 控 制功能,不但要有協(xié)議還要有專門的客戶端播放程序和視頻服務(wù)器 [05]。 傳統(tǒng)的視頻播放中主要采用順序傳輸方式,使用這種方式用戶一般只能觀看自己已經(jīng)下載的視頻,缺乏靈活性。 因此在 MPEG4數(shù)字電視、動(dòng)態(tài)圖像和移動(dòng)通信等領(lǐng)域得到了普遍應(yīng)用。 AVI 支持 256 色和 RLE 壓縮, AVI 對(duì)視頻文件采用有損壓縮方式。 所以 要實(shí)現(xiàn)視頻點(diǎn)播的功能必須對(duì)這些要傳輸?shù)囊曨l數(shù)據(jù)進(jìn)行壓縮和解壓縮 。同時(shí)嵌入式技術(shù)發(fā)展迅速, 隨著嵌入式產(chǎn)品 快速 地 更新?lián)Q代 ,系統(tǒng)還要有 良好的 擴(kuò)展性。 論文 介紹了 RTSP 流媒體協(xié)議的體系結(jié)構(gòu)和工作原理。 論文主要做了 uboot 移植 、 kernel 移植、以及播放器主界面 設(shè)計(jì)的 工作。 在遠(yuǎn)程醫(yī)療,酒店 VOD,遠(yuǎn)程實(shí)時(shí)視頻會(huì)議 上 得到了越來越廣泛的應(yīng)用 ,并且智能化成為其發(fā)展一大趨勢(shì)。 用戶 可以按照自己的需求點(diǎn)播視頻,即播即放,并且可以實(shí)現(xiàn)暫停、快進(jìn)、后退等操作,這種系統(tǒng) 播放等待時(shí)間小 并且支持多種流媒體視頻格式。AVI 文件主要參數(shù)有影像參數(shù)、伴音參數(shù)和壓縮參數(shù)。 MPEG4標(biāo)準(zhǔn)具有通用的訪問性,適用于無(wú)線和有線網(wǎng)絡(luò)以及固態(tài)存儲(chǔ),支持各種帶寬的傳輸信道和接收端。而現(xiàn)在很流行的嵌入式視頻點(diǎn)播系統(tǒng)可以實(shí)現(xiàn)即播即放,極大地減少了等待時(shí)間,并且在播放時(shí)用戶還可以進(jìn)行相關(guān)的交互式操作。 協(xié)議 簇 的層次結(jié)構(gòu)如圖 21 所示。 RTP協(xié)議 通常 是用 UDP協(xié)議來封裝 的, 所以只提供實(shí)時(shí)的數(shù)據(jù)傳輸,但是不保證傳輸?shù)目煽啃浴?典型的 嵌入式 Linux 開發(fā)使用 如圖所示的宿主機(jī) /目標(biāo)板開發(fā)模式。 服務(wù)器主要實(shí)現(xiàn)數(shù)據(jù)流的發(fā)送 ,使用戶可以觀看自己點(diǎn)播的視頻文件。 圖 41嵌入式最小系統(tǒng)構(gòu)成 GUI 圖形用戶界面 、通信協(xié)議棧和 音視頻解碼器 mppalyer 三個(gè) 主要 模塊 集 成在一起就構(gòu)成了論文的嵌入式用戶應(yīng)用程序 。 圖 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ì)。下載模式主要是針對(duì)嵌入式開發(fā)人員的 ,因?yàn)榍度胧揭浦策^程中的各種調(diào)試基本都是這種模式來實(shí)現(xiàn)的,下載模式可以通過串口、 NFS、 TFTP 等方式實(shí)現(xiàn)。stage1 完成初始化 硬件的工作 ,為 stage2 準(zhǔn)備 足夠的 內(nèi)存空間,并將 stage2可執(zhí)行映像 復(fù)制到內(nèi)存中,設(shè)置堆棧,然后轉(zhuǎn)調(diào)到 stage2 的 C入口。 所以移植所要做的就是針 S3C2440 和 SBC2410 的不同,以及 SBC2410 和 mini2440 開發(fā)板的外設(shè)不同作相應(yīng)的修改,并增加新的功能。以上測(cè)試通 過后,說明編譯環(huán)境和基本的開發(fā)板 代碼創(chuàng) 16 建都沒有問題。本系統(tǒng)中,嵌入式 Linux 內(nèi)核選擇 。 編譯測(cè)試 cd make mini2440_defconfig //使用 Linux 官方自帶的 mini2440 配置 make zImage //編譯內(nèi)核,生成 的內(nèi)核映像 zImage 位于 arch/arm/boot 編譯通過,以上測(cè)試通過后,說明編譯環(huán)境和基本的開發(fā)板的代碼創(chuàng)建都沒有問題。 //平臺(tái)設(shè)備結(jié)構(gòu)體數(shù)組, 把 nand flash 設(shè)備 添加到目標(biāo)平臺(tái)設(shè)備集 中 static struct platform_device *mini2440_devices[] __initdata = { amp。 進(jìn)入 yaffs2 源代碼目錄執(zhí)行 如下操作 : cd yaffs2 ./ c /opt/FriendlyARM/mini2440/ 再 進(jìn)入 , 看到 如果 已經(jīng)多了一個(gè) yaffs2 目錄 ,說明 yaffs2 補(bǔ)丁已經(jīng)成功打上。s3c_device_iis, amp。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,}。mini2440_device_eth, amp。在交叉編譯時(shí)如果不使用默認(rèn)的庫(kù)文件,需要 進(jìn)行 相關(guān) 庫(kù)移植 , 以達(dá)到音視頻解碼的功能, 屬于做根文件系統(tǒng)模塊 。 主界面如下圖所示。 //打開第一個(gè)界 面 .................... } 主 界面 窗體 Main_vod 是繼承 QDialog 類。 //定義網(wǎng)絡(luò)播放指針按鈕 public slots: 27 virtual void _play_clicked()。 ()。 QFont f(Helvetica,10)。 menuinsertItem(File,file)。 B__playsetGeometry(QRect(171,113,47,47))。 Main_vod::~ M
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1