編譯VLC for IOS,編譯vlcforios
之前接觸VLC是因為Winrt的項目,後來似乎ARM版本的始終搞不定(沒有針對於ARM-COFF的GCC編譯器),vlc for winrt的項目好久沒有更新了,自己也沒有深入研究。有一天跟同事聊,他們說android和ios都沒有一個像Media Foundation那樣的多媒體架構,我就想到了是不是可以基於VLC這套架構來開發。研究完之後我才發現,VLC真的是一個偉大的項目。
我用了大概一周的時間來研究VLC的編譯,文檔上說的很簡單,你git下來之後,運行指令碼,喝杯咖啡,就編譯好了(https://wiki.videolan.org/iOSCompile)。但賜予天朝的網路,很多依賴庫下載不下來。所以在編譯之前,必須要有給力的翻牆環境才可以。
ios這邊會有幾個分支
http://git.videolan.org/?p=vlc-ports/ios.git;a=summary 這個是帶有VLC for ios全部功能的分支,裡面有包含UI和vlc的SDK,還有其他第三方庫。
http://git.videolan.org/?p=vlc-bindings/VLCKit.git;a=summary 這個只是有vlc的sdk和一個簡單的sample
如果你不想編譯整個VLC,只是用他們的SDK,我建議從http://nightlies.videolan.org/build/ios/ 這邊下載SDK,解壓下載的檔案,引用進vlc_for_ios.xcodeproj的項目裡,直接產生就可以。
如果想編譯VLC,我建議還是先已編譯SDK 比較好,編譯SDK的文檔在這裡(https://wiki.videolan.org/VLCKit/)
首先要用git clone 代碼 git://git.videolan.org/vlc-bindings/VLCKit.git
如果你的MAC中已經安裝了autoconf等工具,這裡強烈建議把這些工具從PATH中移除再去跑指令碼,VLC會下載對應的編譯工具,如果不移除系統中的工具,會因為環境,或者版本衝突,報各種莫名其妙的錯誤。修改PATH用export就好。
然後執行./buildMobileVLCKit.sh
如果你的VPN給力的話,確實如文檔所說喝個咖啡就好了。
但是我這邊有好多包 curl下載不下來,比如freetype2等。這個時候可以通過瀏覽器下載,或者從別的地方copy過來,然後把把tar.gz檔案放到 {vlckit主目錄}/MobileVLCKit/ImportedSources/vlc/contrib/tarballs 下面。curl下載完之後會校正一下shasum的值。很奇怪的是瀏覽器下載的檔案,這個值居然和curl下載下來的不一致。
這個時候要去修改{vlckit主目錄}/MobileVLCKit/ImportedSources/vlc/contrib/src/{對應庫的名字}/SHA512SUMS 檔案。 我們先要修改下載檔案的尾碼名,我這裡的環境.tar.gz被修改成了.tar,然後再用shasum -a 512 {檔案名稱} 算出SHA的值,SHA512SUMS的值替換成我們算出來的。
還有些檔案會被改名字,比如pkg-config-lite-0.27.1-1 會被改成pkg-config-0.27.1-1。這種情況會發生在curl無法下載的情況下,如果能正常下載,請忽略。這段邏輯在(vlckit主目錄}/MobileVLCKit/ImportedSources/vlc/extras/tools/tools.mak 中描述)
接著再運行./buildMobileVLCKit.sh -n 切記要加-n的參數,這個參數是告訴指令碼禁用網路,這樣我們做的修改就不會被git給覆蓋掉。當然如果你想checkout也行,但是我覺得這種方法簡單有效。
如果你之前沒有刪除PATH,編譯到後來會有莫名其妙的錯誤。這個時候把PATH改掉後,再去編譯,有好多已經編譯好的,autoconf不會再去給你配置一遍,所以還是會報錯。這個時候你可以刪除所有代碼,重新clone一遍。再此之前,你可以嘗試刪除根目錄的aclocal.m4 和configure檔案,這樣指令碼就會再去configure一遍,或許能解決問題。
./buildMobileVLCKit.sh 是編譯真機的 -s 是編譯模擬器的 -d 是編譯debug的
我所遇到的問題大概就這些,祝大家都能編譯成功。
最後說幾句題外話,vlc確實是一個偉大的項目,我嘗試的是給vlc寫一個demux的外掛程式,個人感覺在虛擬機器裡面的效能還不錯,由於公司比較摳,自己比較屌絲,沒有真機測試。。。。但是我相信效果應該不是很差。
開源的那套編譯器速度很快,比VS快多了。同樣代碼規格的項目在VS裡面要等半天,而這套編譯器刷個微博就好了。而且VS的這套東西也不相容開源的代碼,之前編譯ffmpeg遇到的最大問題就是,VS的這套東西無法編譯GNU風格的彙編。然後呢GCC又沒有ARM-COFF的編譯器,本來這個編譯器應該是微軟提供的,就像android那樣,但是微軟沒出。。VS的C編譯器本身也有問題,有些代碼GCC能編譯過,cl卻不行。
VLC for ipad,有的話發到我的郵箱,757479441@qqcom,如有再給多點財富值
是要程式還是自己編譯啊。程式我想應該沒什麼問題吧。。
編譯的話,建議你編譯iOS SDK 4.2的MobileVLC,這個比較成熟。
給你一個教程,我就是按照教程上編譯成功的。
要編譯兩個版本:模擬器版和真機版
模擬器上按照教程上編譯就可以。
真機版需要的設定檔已經發送到你郵箱裡去了,注意查收。
舒心網路團隊為您誠摯解答。
參考資料:blog.csdn.net/...707068
VLC原始碼包怎在linux下編譯+調試
你是為了裝軟體還是為了學習?如果只是裝個軟體,為什麼不裝二進位版的呢(.deb .rpm)。自己編譯挺麻煩的。
如果非想自己編譯,一般都是(我沒編譯過VLC,編譯過其他的,感覺像VLC這麼大的軟體應該得較長時間!):先解壓下載的源碼包(tar.bz),然後從終端進入解壓後的源碼目錄,在終端輸入:一 ./configure ;二 make ;三 make install ;
一,好像是為了檢查當前系統參數,也可以在後面加環境變數參數(./configure [options])。如果沒問題便產生makefile
二,根據makefile編譯
三,編譯安裝。(二,可省略)
其實,不管是windows還是linux下載了軟體解壓後第一件事是讀readme!!!!!!!!!!!(其實你應該自己看readme和install,因為別人也不知道你下的軟體什麼情況,這兩個檔案一般都會告訴你怎樣安裝以及軟體依賴什麼包!!)
再是讀install ,這是基本素質。要養成自覺性,這在linux下尤為重要!
至於調試,比較麻煩,不過如果只是裝軟體而不改代碼的情況下,不用專門調試(難道你還要用專門工具調試?) 既然說是菜鳥,又稿這麼複雜的東西,並且搞這麼複雜的東西又不在更專業的地方提問,百度知道一般是解決日常問題的地方!!!
不過一般情況下執行上述三步時會報錯,根據它報錯情況自己想辦法解決,一般來說是依賴不能滿足!