你可以理一下思路,記錄一下大體會涉及到的技術點。
MP4 主要是涉及到linux系統,GUI和player,系統通訊。
一:linux移植:
1. toolchain
2. linux的編譯
3. 系統基本能運行起來
二:GUI:
可選的包括:
microwindows, GTK+directfb等
我用的是microwindows的nano-x方式的,自己需要擴充一下它的windows management功能。
1. GUI編譯
2. GUI UI設計
3. GUI與player的通訊 (可以用socket或proc pipe,也可以用soap如upnp[我使 用的],還可以用dbus[gnome現在都用dbus了,不錯的東西])
三:player:
可以參考的包括VLC, FFMPEG,gstreamer
VLC的架構非常好,值得參考。
你可以根據你的系統來做簡化,支援較少的媒體檔案格式。
gstreamer是一個新的開放式的架構
1. player結構,最好是設計成分層結構,讓各種具體的player,如wmv, mpeg1,mpeg2,有一個抽象的基類,然後由其來分發到具體類中去處理,VLC中有類 似的做法的。
2.如果是簡單的做法可以移植FFMPEG,然後用發送命令控制的方式來實現,但缺點 太多,是下策了。
3. gstreamer目前比較流行,結構非常好,但我還沒去應用過。
有一個個人的blog,你可以多翻翻,它裡面有不少有價值的東西,我也經常看的:
http://blog.csdn.net/absurd
上面player中的第2點,就能在上面的blog找到。
四:整體體繫結構的東西:
可以參考
http://www.gnome.org/mobile/
裡面的一張圖,包括底層的dbus/glib, 有gstreamer,gconf, 這個圖的內容就比 較大了,但結構確實很不錯的。
如果你用dbus,那麼通訊問題基本就迎刃而解了。
GTK+是一套很成熟的庫了,你也是可以應用一下的,總體來說功能要比 microwindows強很多的。但體積要大些了。
player如果自己寫一個的話,是需要花些時間的。現成的可移植的,也不一定好處 理,需要你自己研究了。我們是自己寫的player,花了不少的精力的。
上面的內容也只是一個介紹而已。希望對你有些協助。