嵌入式視訊隨選應用程式之開發(fā)與實作_第1頁
嵌入式視訊隨選應用程式之開發(fā)與實作_第2頁
嵌入式視訊隨選應用程式之開發(fā)與實作_第3頁
嵌入式視訊隨選應用程式之開發(fā)與實作_第4頁
嵌入式視訊隨選應用程式之開發(fā)與實作_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Ji-Shien Teng1 Ji-Shien Teng2OutlineJi-Shien Teng3Video On Demandv VOD ( Video On Demand ) 隨選視訊系統,乃是將各種媒隨選視訊系統,乃是將各種媒體體以數位化方式儲存於伺服資料庫中。以數位化方式儲存於伺服資料庫中。v 互動性多媒體電腦網路系統。互動性多媒體電腦網路系統。v 是一種由使用者主導的是一種由使用者主導的 視訊選擇系統。視訊選擇系統。 Ji-Shien Teng4 v 隨選視訊系統依架構不同可以分成三類:隨選視訊系統依架構不同可以分成三類: Ji-Shien Teng5v 目的目的: :Ji-Shi

2、en Teng6v 系統架構系統架構: :視訊隨選伺服器視訊隨選伺服器(The VOD server)傳輸網路傳輸網路(The transport network)使用者端使用者端(The end user)Ji-Shien Teng7使用者端(使用者端(The end user): :v 使用使用Intel StrongARM 處理器之嵌入式開發(fā)平臺處理器之嵌入式開發(fā)平臺。v 以以Embedded Linux 作業(yè)系統為主作業(yè)系統為主,使用使用Qt/Embedded 設計設計GUI介面介面。v 移植開放程式碼移植開放程式碼VideoLAN Client (VLC) video streami

3、ng的應用軟體作為主要的影音播放核心的應用軟體作為主要的影音播放核心。 v 透過透過平臺上平臺上PCMCIA Slot ,採用採用Wireless CF Card 實現實現無線網路功能無線網路功能Ji-Shien Teng8v 使用者端規(guī)格使用者端規(guī)格SystemIntel StrongARM 200M Hz , Flash 32M , SDRAM 32M , 320 x240 Touch PanelWireless CF CardSENAO SL-2511CFOS. Embedded LinuxCODECVideoLan Client (VLC)Video OutputSimple Dire

4、ctMedia Layer (SDL)AudioMPEG Audio Decoder (MAD)GUI Qt/Embedded 2.3.7Ji-Shien Teng9StrongARM 開發(fā)板外觀開發(fā)板外觀TFT LCDStrongARMAudio outRS-232USBPowerKeysFlash MemoryPCMCIA SlotSDRAMWirelessCF CardExpansion SlotIrDAJi-Shien Teng10伺服端伺服端(Server):(Server):v 採用採用 Redhat Linux 9.0 為作業(yè)系統,架構為為作業(yè)系統,架構為 TCP/IP clie

5、nt-server 型態(tài)並透過型態(tài)並透過 socket 程式撰寫,負責接收客程式撰寫,負責接收客戶端傳送過來的訊息作為互動機制。戶端傳送過來的訊息作為互動機制。v 在視訊編解碼與傳輸的功能部分,採用在視訊編解碼與傳輸的功能部分,採用VLCVLC程式。程式。v 資料管理部分則採用資料管理部分則採用MySQLMySQL資料庫。資料庫。Ji-Shien Teng11v VODVOD伺服器規(guī)格伺服器規(guī)格System Wireless AP OS. Codec Database TypeFormat Ji-Shien Teng12傳輸網路傳輸網路(The transport network):Ji-Sh

6、ien Teng13功能介紹功能介紹: :v 視訊隨選視訊隨選(Video On Demand, VOD)功能功能 RTP 即時傳輸協定與即時傳輸協定與UDP 使用者資料段協定。使用者資料段協定。Ji-Shien Teng14v 網路電視功能網路電視功能(Multicasting)不同頻道的區(qū)分方式是採用經由不同通訊埠作傳遞輸出。不同頻道的區(qū)分方式是採用經由不同通訊埠作傳遞輸出。v 其他應用功能其他應用功能Ji-Shien Teng15v 伺服器功能伺服器功能使用權限認證及負責管理客戶端的資料。使用權限認證及負責管理客戶端的資料。如如: :帳號、密碼。帳號、密碼。Ji-Shien Teng16

7、Ji-Shien Teng17 v 嵌入式系統早期主要應用於軍事及航空域,之後慢慢嵌入式系統早期主要應用於軍事及航空域,之後慢慢被應用於工業(yè)控制、自動化方面,近來漸漸進入消被應用於工業(yè)控制、自動化方面,近來漸漸進入消費性電子產品的域。費性電子產品的域。v 一種電腦軟體與硬體的綜合體,並且特別強調一種電腦軟體與硬體的綜合體,並且特別強調 量身定做的原則量身定做的原則 - 客制化客制化(Customize) 。 以應用爲中心以應用爲中心,僅將所需要的功能的嵌入至系統中僅將所需要的功能的嵌入至系統中v 對於可靠性、成本、電嚴格要求的專用計算機系統。對於可靠性、成本、電嚴格要求的專用計算機系統。v 常

8、見的嵌入式系統產品有手機、常見的嵌入式系統產品有手機、PDAPDA、機上盒、機上盒(Set-Top-(Set-Top-Box, STB)Box, STB)以及各種網路設備等以及各種網路設備等。Ji-Shien Teng18 v 在嵌入式系統中,硬體的部分是由在嵌入式系統中,硬體的部分是由MPUMPU和和ASICASIC所組成,所組成,而軟體部分則是由作業(yè)系統與應用程式所組成而軟體部分則是由作業(yè)系統與應用程式所組成。v 主要考量的觀點有以下幾項:主要考量的觀點有以下幾項:Ji-Shien Teng19Embedded Linuxv 我們所採用的作業(yè)系統是我們所採用的作業(yè)系統是Embedded L

9、inux,因為,因為LinuxLinux除了上述的優(yōu)點以外,還有其他優(yōu)點:除了上述的優(yōu)點以外,還有其他優(yōu)點: v 將將LinuxLinux作業(yè)系統進行縮減與修改的動作,使之能在嵌作業(yè)系統進行縮減與修改的動作,使之能在嵌入式系統上運行的一種作業(yè)系統入式系統上運行的一種作業(yè)系統。Ji-Shien Teng20圖圖2.4 嵌入式嵌入式Linux內部系統架構內部系統架構Ji-Shien Teng21 v 在系統上需要有三個主要軟體元件在系統上需要有三個主要軟體元件 - 。v 當系統當系統Powers up或或Reset時時,有下列的動作發(fā)生有下列的動作發(fā)生: :初始化系統初始化系統Memory與與Pr

10、ocessor的的Registers初始化初始化Interrupt controller與與install預設的預設的Interrupt handler初始化系統在開機時期所需的初始化系統在開機時期所需的peripheral devicesJi-Shien Teng22Boot image裡一段程式碼裡一段程式碼讀取讀取 kernel image載入至載入至 SDRAM解壓縮解壓縮進入進入 kernel起始點開始執(zhí)行起始點開始執(zhí)行 start_kernel()各種不同各種不同 objects 與與 services - Task objects ,Timer services , Memory

11、-Management servicesLoad 系統上裝置驅動程式初始化相關硬體設備系統上裝置驅動程式初始化相關硬體設備掛載掛載filesystem 並並Starting 作業(yè)系統與作業(yè)系統與 initial tasksJi-Shien Teng23Ji-Shien Teng24 Ji-Shien Teng25Ji-Shien Teng26 v 在在GNU跨平臺開發(fā)工具中,支援跨平臺開發(fā)工具中,支援ARM的的cross-compiler開發(fā)開發(fā)工具所需的元件部份如下:工具所需的元件部份如下: : : v /gnu/ 下載下載GNU工具鏈工具鏈(ToolChai

12、n)的各的各 項元件項元件Ji-Shien Teng27v 嵌入式系統平臺主機嵌入式系統平臺主機/ /目標板開發(fā)規(guī)劃的類型根據製造商目標板開發(fā)規(guī)劃的類型根據製造商 所採用的方式不同所採用的方式不同 常見分為常見分為: : v 連結式規(guī)劃連結式規(guī)劃 (Linked setup)Ji-Shien Teng28*Bootlodar*Kernel* filesystem主機主機/目標板採用連結規(guī)劃目標板採用連結規(guī)劃Ji-Shien Teng29v 連結式的另一種做法是連結式的另一種做法是以遠端元件來簡化目標板的開以遠端元件來簡化目標板的開發(fā)工作發(fā)工作 v Ethernet 連結目的是用來下載可執(zhí)行檔、

13、核心、根檔案連結目的是用來下載可執(zhí)行檔、核心、根檔案 系統,以及其他可得利於主機與目標板間快速資料傳輸系統,以及其他可得利於主機與目標板間快速資料傳輸的大型項目。的大型項目。v RS-232連結目的用於主機對目標板的命令下達與除錯。連結目的用於主機對目標板的命令下達與除錯。Ji-Shien Teng30v 可抽換儲存裝置規(guī)劃可抽換儲存裝置規(guī)劃*Bootlodar* Kernel* filesystemJi-Shien Teng31系統開發(fā)架構圖系統開發(fā)架構圖 Ji-Shien Teng32Outline Ji-Shien Teng33v 一般而言,嵌入式系統不會有多餘的記憶體或儲存空間一般而言

14、,嵌入式系統不會有多餘的記憶體或儲存空間 專門用來做編譯之用,所以需要由其他平臺來產生嵌入專門用來做編譯之用,所以需要由其他平臺來產生嵌入 式系統的執(zhí)行檔,然後再載入到目標板上執(zhí)行。式系統的執(zhí)行檔,然後再載入到目標板上執(zhí)行。v 對任何目標板進行應用程式的對任何目標板進行應用程式的cross-complier需要各種需要各種 的的 binary utilities - toolchain 。Ji-Shien Teng34 元件名稱元件名稱 說說 明明binutils2.10 對對binarybinary檔做特殊處理的工具程式檔做特殊處理的工具程式 gcc-2.95.2.tar.gz gcc-2.

15、95.2-diff-991022.gz C/C+ compiler,負責將程式碼編譯成,負責將程式碼編譯成ARMARM的組合語言碼的組合語言碼 glibc-2.1.3.tar.gz glibc-linuxthreads-2.1.3.tar.gz glibc-crypt-2.1.tar.gz 標準標準C C 程式庫程式庫 執(zhí)行緒支援執(zhí)行緒支援加密功能加密功能linux-2.4.0-test11.tar.gzpatch-2.4.0-test-rmk1.gz目標板核心目標板核心 與修正檔與修正檔 Ji-Shien Teng35v 建立跨平臺開發(fā)工具的程序可分成五大建立跨平臺開發(fā)工具的程序可分成五大步

16、驟步驟: :v 在每個部份大都會執(zhí)行以下動作在每個部份大都會執(zhí)行以下動作: :Ji-Shien Teng36$ tar xvzf linux-2.4.0-test11.tar.gz$ zcat patch-2.4.0-test1-rmk1.gz -p1$ cd linux-2.4.18 $ make menuconfig $ make dep $ cd /usr/local/arm/arm-linux $ mkdir include $ cd include $ cd /project/linux-2.4.18 /$ cp r include/linux/ /usr/local/arm/arm

17、-linux /include$ cp -r include/asm-arm/ /usr/local/arm/arm-linux /include/asm $ cp -r include/asm-generic/ /usr/local/arm/arm-linux /include Ji-Shien Teng37$ tar -zxf binutils-2.10.gz$ cd binutils-2.10$ ./configure -target=arm-linux -prefix=/usr/local/arm-linux $ make all$ make install Ji-Shien Teng

18、38$ tar -zxvf gcc-2.95.2.tar.gz $ cd gcc-2.95.2 $ zcat ./gcc-2.95.2-diff-991022.gz | patch -p1$ ./configure -target=arm-linux -prefix=/usr/local/arm/ -disable-threads -with-newlib -enable-languages=c $ make all $ make install Ji-Shien Teng39$ tar zxvf glibc-2.1.3.tar.gz $ cd glibc-2.1.3 $ tar zxvf .

19、/glibc-linuxthreads-2.1.3.tar.gz $ tar zxvf ./glibc-crypt-2.1.tar.gz $ export CC = arm-linux-gcc $ ./configure -target=arm-linux -prefix=/usr/local/arm/arm-linux/ - enable- add-ons -with-headers =/usr/local/arm/arm-linux/include $ make cross-compiling=yes $ make installJi-Shien Teng40$ cd /project/g

20、cc-2.85.2 $ ./configure -target=arm-linux -prefix=/usr/local/arm -enable-languages=c,c+ $ make all $ make install Ji-Shien Teng41 目目 錄錄 內內 容容 bin 跨平臺開發(fā)工具跨平臺開發(fā)工具 arm-linux 目標版專屬的檔案目標版專屬的檔案 info gccgcc的的infoinfo文件檔文件檔 include 提供跨平臺開發(fā)工具的標頭檔提供跨平臺開發(fā)工具的標頭檔 lib 跨平臺開發(fā)工具的程式庫跨平臺開發(fā)工具的程式庫 man 跨平臺開發(fā)工具的線上說明文件跨平臺開

21、發(fā)工具的線上說明文件 share 開發(fā)工具與函式庫所共享的檔案開發(fā)工具與函式庫所共享的檔案 * PATH=/usr/local/armJi-Shien Teng42OutlineJi-Shien Teng43系統上有主要四個程式部份系統上有主要四個程式部份: :Ji-Shien Teng44v 系統網路程式設計系統網路程式設計 Ji-Shien Teng45客戶端程式流程客戶端程式流程 Ji-Shien Teng46伺服器端程式流程伺服器端程式流程 Ji-Shien Teng47 GUI視窗程式設計視窗程式設計 - v 以以Qt Qt 為主體衍生為專為嵌入式系統的開發(fā)套件為主體衍生為專為嵌入式

22、系統的開發(fā)套件 , QNetworkProtocol v 使用使用Qt/EmbeddedQt/Embedded的模擬器的模擬器qvfbqvfb Ji-Shien Teng48Qt/X11 & Qt/Embedded Qt/X11 & Qt/Embedded 差異圖差異圖 Ji-Shien Teng49v 當當Qt/Embedded Qt/Embedded 函式庫建立完成之後,可以開始設計函式庫建立完成之後,可以開始設計 GUIGUI介面,介面,步驟如下步驟如下:Ji-Shien Teng50 Qt Qt 程式對應關係程式對應關係 Ji-Shien Teng51 qvfbqvfb 模擬結果模擬結

23、果 Ji-Shien Teng52v 資料庫程式資料庫程式發(fā)出詢問發(fā)出詢問 抓取資料抓取資料 處理資料處理資料 進行事後清理工作進行事後清理工作 Ji-Shien Teng53v 資料庫管理 資料庫管理資料庫管理 Ji-Shien Teng54影音串流傳送接收影音串流傳送接收: :v 這部分是採用這部分是採用VLCVLC軟體套件作為主要的播放核心。軟體套件作為主要的播放核心。外掛模組外掛模組 : : v 採用採用SDL(Simple DirectMedia Layer)的函式庫外掛於的函式庫外掛於VLCVLC中,支援平臺中所需影像輸出格式。中,支援平臺中所需影像輸出格式。v 在聲音方面使用在聲

24、音方面使用MAD(MPEG Audio Decoder),將聲音將聲音解碼的部分透過解碼的部分透過 MAD MAD 的函式庫計算。的函式庫計算。Ji-Shien Teng55VideoLAN多媒體傳送之規(guī)劃多媒體傳送之規(guī)劃Ji-Shien Teng56 v SDL影像輸出是透過影像輸出是透過Qt/Embedded以及以及qtopia的的driver控制控制Framebuffer。v 需要修改的需要修改的filefile有下列三個:有下列三個:Ji-Shien Teng57Configure ./configure -target=arm-linux -prefix=/usr/local/arm

25、/-disable-esd-shared -disable-arts-shared -disable-arts -disable-nas -disable-diskaudio -disable-mintaudio -disable-video-ps2gs -disable-atari-ldg -disable-joystick -disable-video-dummy -disable-alsa -disable-cdrom -disable-video-x11 -disable-nasm -disable-video-photon -enable-video-qtopia .-L/SDL/l

26、ib -Wl,-rpath,/SDL/lib -lSDLmain -lSDL -L/qtopia/lib -L/qte/lib/ -lqpe -lqte lpthreadv 建構建構(configure)結束之後,在結束之後,在SDLSDL的目錄下會產生的目錄下會產生Makefile 編譯後,最後會產生出編譯後,最後會產生出arm-linux-sdl-config 描述檔描述檔(script) 以及函式庫以及函式庫(SDL-lib)(SDL-lib)。Ji-Shien Teng58Configure v 使用使用mad-0.14.2b版本來進行移植,只要設定我們所要支版本來進行移植,只要設定我

27、們所要支援的功能,調整編譯的參數,即可將函式庫提供給援的功能,調整編譯的參數,即可將函式庫提供給VideoLAN Client呼叫。呼叫。 ./configure -target=arm-linux -disable-mp2 -prefix=/usr/local/arm/makemake installJi-Shien Teng59Configure v 使用的版本為使用的版本為vlc-0.5.2版,把不適合我們系統的功能版,把不適合我們系統的功能移除掉,否則使用預設的參數會使編譯無法通過。移除掉,否則使用預設的參數會使編譯無法通過。./configure -target=arm-linux

28、-prefix=/usr/local/arm/ -disable-dvd -disable-dvdread -disable-freetype -disable-dvbpsi -disable-vcd -enable-vorbis -disable-plugins -enable-sout -disable-directx -disable-waveout -disable-macosx -enable-sdl -with-sdl-config-path=/sdl/bin -disable-fb -disable-xvideo -disable-gtk -enable-mad -with-ma

29、d-tree=/project/mad/ -disable-ffmpeg -disable-dvdplay -disable-ogg -disable-mkv -disable-a52 -disable-slp -disable-libmpeg2 -disable-x11 -disable-wxwindows -enable-qtJi-Shien Teng60修改修改MakefileMakefileCFLAGS_aout_sdl = -I/puppy/include/ -DQT_QWS_IPAQ DQWSCFLAGS_vout_sdl = -I/puppy/include/ -DQT_QWS_

30、IPAQ DQWS CPPFLAGS_qt = -I/temp/qt-2.3.4/include DQT_QWS_IPAQ QWS LDFLAGS_aout_sdl = -L/puppy/lib Wl , -rpath , /puppy/lib lSDLmain lSDL L/temp/qtopia-free-1.7.0/lib L/temp/qt- 2.3.4/lib/ -lqpe lqte lpthread ljpegLDFLAGS_qt = -L/temp/qt-2.3.4/lib lqte ljpeg L/temp/qtopia-free-1.7.0/lib lqpe lpthreadLDFLAGS_vout_sdl = -L/puppy/lib Wl , -rpath , /puppy/lib lSDLmain lSDL L/temp/qtopia-free-1.7.0/lib L/temp/qt-2.3.4/lib/ -lqpe lqte lpthread ljpegJi-Shien Teng61網路

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論