Your SlideShare is downloading. ×
0
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
TI702_Android_MID
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

TI702_Android_MID

1,937

Published on

ppt

ppt

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,937
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Android 行動上網裝置 應用 - 多媒體影音串流播放器 班級: TI702 成員: 98971036 林聖哲     98971037 陳晁偉     98971042 連力航     98971046 郭君彥     98971053 王裕鈞     98971057 江慶峰 財團法人資訊工業策進會 半導體學院 - 嵌入式系統程式設計班
  • 2. 總覽 (1)- 序
    • 背景研究
      • MID 、市場定位、 ARM 、 android
    • 動機與目標
    • 功能描述
      • Linux kernel +Android fs-> 多媒體 AP 開發 -> 影音串流伺服器
    • 系統軟體架構
    • Android 架構
  • 3. 總覽 (2)- 研究內容
    • 伺服器與應用程式開發
      • VLC 影音串流伺服器
      • Android 應用程式開發
      • 遭遇問題與研究
    • Porting 與整合修改
      • Diff kernel
      • 驅動移植
      • 文件修改
      • 問題與解決
  • 4. 總覽 (3)-porting- 成果與展望
      • ARM9 (Mini 2440)+android work
        • Kernel
          • 基本驅動 ( 顯示、音效、 RTC 、 touch) ok
          • 周邊驅動 (USB 、 SD 卡、 DM9000) ok
        • Android FileSystem
          • 使用別人修改好的 遺憾
          • 因 Android 官方版本只支援 arm v5 以上版本,
          • 我們所使用的開發板是 arm v4 ,無法全部自已修改
      • 心得與期望
        • 希望更多時間與機會深入 Android 的 FS
        • 想嘗試 porting 在不同平台上 ( 成本考量我們使用的開發板跑不太動 android 系統 )
  • 5. 總覽 (4)-AP- 成果與展望
      • Android 多媒體播放器
        • 可播放影片 ok
        • 可透過 HTTP 協定播放串流影音 ok
      • 影音串流播放
        • 自行轉檔做出 Android 可串流播放的影片 ok
        • 透過 VLC 串流伺服器播放 遺憾
          • VLC 串流伺服器無法在連線進入時,優先 送出 moov atom 封包,使應用程式端播放
          • 器無法播放串流影音
      • 心得與期望
        • 加強播放器的 UI 讓使用者可從儲存裝置中選擇要播放的影片檔,或者輸入網址播放串流影音
        • 研究 VLC 的程式碼,解決 VLC 串流伺服器的問題
        • 期望進一步能做到使用 MID+Android 做到安全監控系統
  • 6. 背景研究
  • 7. 行動上網裝置 (MID)
    • 英特爾發展平台
      • Menlow
      • Moorestown
    • 發展歷史 2009
      • 02/16 - 英特爾宣布擴大 MID 與 LG 合作
      • 06/23 - 英特爾宣佈與 Nokia 結盟
  • 8. 市場定位
    • 非小筆電、智慧型手機
    • 強調口袋規格
    • 市場表現
      • Forward Concepts 估計行動網路裝置的出貨量將自 2008 年 30.5 萬台成長到 2012 年的 4000 萬台,達到 120 億美元的營收規模。 ④
  • 9. ARM 架構的行動裝置
    • ABI Research 預測: 行動裝置 ARM 架構將勝出 ⑤
    • ARM 執行長:
    還有勝算! 行動運算市場 … ⑦
  • 10. Android 熱潮
    • 由開發者社群所帶來的概念
    • 強力推手 Google
    • Android + ARM 组合在 Computex 2009 上大放異彩 不可限量
  • 11. 動機與目標
    • 上網不受侷限
      • 攜帶輕便
      • 隨時上網
      • 操作便利
    • Android
      • 市場熱潮
      • 行動裝置的優勢
      • 客制化
  • 12. 功能描述
    • Android 軟硬體整合
    • 應用程式開發
      • 前端 - Android
        • 多媒體影音播放器 ( 支援影音串流 )
      • 後端 - 伺服器
        • 影音串流伺服器
  • 13. 系統硬體架構 Internet Android 行動上網裝置 影音串流伺服器 x86 PC FriendlyARM Mini2440 ARM9 S3C2400
  • 14. 伺服器軟體套件需求
    • OS: Ubuntu 9.04
    • VLC Media Player and Server
      • (Open-Source and Cross-Platform)
  • 15. Android 檔案系統軟體架構
  • 16. VLC 影音串流伺服器設定
  • 17. 為何使用影音串流伺服器
    • 應用程式端的環境有限制
      • 支援較少的影音編碼
      • 硬體效能不高
    • 影音串流伺服器
      • 轉換各種編碼至特定的編碼輸出
      • 壓縮影像品質使播放影片的效能需求降低
  • 18. Android 支援的影音編碼
    • Video Coder
      • H.263 、 H.264 、 MPEG-4
    • Audio Coder
      • AAC 、 MP3 、 MIDI 、 Ogg 、 WAV 、 AMR
    • 影音串流編碼選擇
      • H.264 with AAC
  • 19. VLC 選擇串流功能
  • 20. 加入要串流的影音檔案
  • 21. 串流協定和影音編碼設定
  • 22. 影像參數設定
  • 23. 音效參數設定
  • 24. 播放測試
  • 25. 輸入串流主機 IP
  • 26.  
  • 27. Android 應用程式開發
  • 28. 開發環境
    • Android 1.5 SDK Release 3
      • Development tools
      • Android Platforms Emulator
    • Eclipse with ADT Plugin
      • Software Development IDE
      • Android Development Tools Plugin
  • 29. Android Resource
    • Android Developers
      • http://developer.android.com/
      • Tutorial Documents
      • API Package & Class Reference
    • SDK include API Demos
  • 30. VideoPlay.java
  • 31. Application UI
  • 32. VideoDM.java
  • 33.  
  • 34. 應用程式開發遭遇問題
  • 35. 播放器測試直接播放檔案
  • 36. OK
  • 37. 播放器測試播放串流影音
  • 38. 透過網路連線觀察
  • 39. 沒有反應
  • 40. 應用程式遭遇問題研究
  • 41. 透過 HTTP 串流直接播放影片
  • 42. Work!!
  • 43. 問題還沒解決 可 可 Youtube 下載的影像檔 不行 可 自己轉檔的 影像檔 透過 HTTP 串流播放 檔案方式直接播放
  • 44. moov atom
    • Android Media Framework
      • moov atom is needed for HTTP progressive streaming
    • Solution
      • the moov atom has been placed after mdat atom at the end of the file. moves the moov atom to the begin of the file so it can be played out as soon as it buffered enough data.
  • 45. 轉出 Android 可串流播放的影片
    • OS: Ubuntu 9.04
    • Tools
      • ffmpeg (media converter)
      • libx264 (h264 codec library)
      • libfaac0 (aac codec library)
      • MP4Box (mp4 container multiplexer, include in gpac package)
  • 46. 先轉成 Android 支援的編碼和格式
    • ffmpeg -i ../TS4.flv -s 128x96 -aspect 1.2222 -vcodec libx264 -b 64k -bt 64k -r 12 -acodec libfaac -ac 1 -ar 44100 -ab 128k -y TS4.mp4
  • 47. 處理 moov atom
    • strings TS4.mp4 | grep -n "mdat|moov“
      • 4:?a+mdat
      • 47781:moov
    • 將 moov atom 移到 mdat atom 前面
      • MP4Box -hint TS4.mp4
    • strings TS4.mp4 | grep -n "mdat|moov"
      • 3:moov
      • 116:Dhumdat
  • 48. 未解決的部份
    • 影音串流伺服器
      • 如何讓 Android 播放器連接上伺服器時,伺服器必須優先送出帶有 moov atom 資料的封包
  • 49. 核心移植過程和問題
  • 50. porting
    • 比對 kernel 差異
      • 版本 :2.6.27
      • 工具 :winMerge
    • 整合修改
    • 問題與解決
  • 51. Kernel + Google download Linux kernel -android Drivers/android/ Hardware dependent Mini2440 patch Get platform patch Android+mini2440 Linux kernel Mini2440 Linux kernel www.kernel.org Linux kernel diff
  • 52. diff
  • 53.  
  • 54. 驅動移植
    • LCD 驅動移植
    • RTC 驅動移植
    • 網卡 DM9000 驅動移植
    • Touch 驅動移植
    • USB Host 驅動移植
    • SD 卡驅動移植
    • Uda1341 驅動移植
  • 55. 整合修改
    • 修改文件
    • kernel.git/arch/arm/mach-s3c2440/mach-s3c2440.c
      • 修改背光 附錄 A
      • 修改時鐘 附錄 B
      • 修改顯示 附錄 C
      • smdk2440_lcd_cfg_initdata 設置
      • (NEC3.5 英寸, 320x240)
  • 56. 遇到的問題
    • LCD 的問題
      • 成功移植 kernel 且正常開機,執行 android 看不到 LCD 畫面
      • 解決 : Double Framebuffer 的關係
    • Touch 的不精準
      • Touch driver 在新版與舊版 linux kernel 之間有很大差異
      • 解決 : 捨棄一開始的目標版本 kernel 2.6.25+fs 1.0
      • 改用 kernel 2.6.27+fs 1.5
  • 57. 附錄 A
    • 修改背光
    • 修改文件 kernel.git/arch/arm/mach-s3c2440/mach-s3c2440.c
    • (這裡的修改方式為較簡單正規方式是增加一個管理背光的驅動。)
    • static void __init smdk2440_machine_init(void)
    • {
    • s3c24xx_fb_set_platdata(&smdk2440_fb_info);
    • platform_add_devices();
    • s3c2410_gpio_cfgpin(S3C2410_GPG4,S3C2410_GPG4_OUTP); // 添加
    • s3c2410_gpio_setpin(S3C2410_GPG4,1); // 添加
    • smdk_machine_init();
    • }
  • 58. 附錄 B
    • 修改時鐘
    • 修改文件 kernel.git/arch/arm/mach-s3c2440/mach-s3c2440.c
    • static void __init smdk2440_map_io(void)
    • {
    • 。。。。。。
    • s3c24xx_init_clocks(12000000); // 修改,原來是 s3c24xx_init_clocks(16934400);
    • 。。。。。。
    • }
  • 59. 附錄 C(1)
    • 修改顯示
    • 修改文件 kernel.git/arch/arm/mach-s3c2440/mach-s3c2440.c
    • static struct s3c2410fb_display smdk2440_lcd_cfg __initdata ={
    • 。。。。。。
    • .pixclock = 100000, // 修改 ,原來為 166667
    • 。。。。。。
    • .right_margin = 37, // 修改 ,原來為 8
    • .hsync_len = 6, // 修改 ,原來為 4
    • .upper_margin =2, // 修改 ,原來為 8
    • .lower_margin = 6, // 修改 ,原來為 7
    • .vsync_len =2, // 修改 ,原來為 4
    • }
  • 60. 附錄 C(2)
    • static struct s3c2410fb_mach_info smdk2440_fb_info __initdata ={ 。。。。。。
    • .default_display =0
    • //add start
    • .gpccon = 0xaa955699,
    • .gpccon_mask = 0xffc003cc,
    • .gpcup = 0x0000ffff,
    • .gpcup_mask = 0xffffffff,
    • .gpdcon = 0xaa95aaa1,
    • .gpdcon_mask = 0xffc0fff0,
    • .gpdup = 0x0000faff,
    • .gpdup_mask = 0xffffffff,
    • // add end
    • .lpcsel = 0xf82, // 修改 ,原来为 ((0xCE6) &~7) | 1<<4,
    • };
  • 61. 謝謝指教!

×