題記:本篇部落格是根據http://blog.csdn.net/nieyongs/article/details/17919325,的基礎上,對於其環境的搭建做一闡述,記之防止遺忘。首先感謝博主,能夠將自己調試的原碼分享,但是下載的代碼是不能啟動並執行,缺少庫的支撐。下面就將環境的搭建包括庫函數的引用及標頭檔,做一說明。
1 庫檔案。
a:首先要先安裝ffmpeg和x264編碼。網上有很很多教程,但是我忘了用哪個了,建議多找及篇講的比較細的。注意一般安裝完ffmpeg後會放在./usr/local/ffmpeg/中。在這裡面既有庫檔案也有標頭檔。另外x.264也要卸載然後編譯(make)安裝,網上應該都有教程。
b:安裝完ffmpeg後,需要在eclipse的工程設定中設定相應的庫檔案路徑。設定結果如下,注意在Libraries(-l)裡面的關於Live555的幾個順序不要弄錯,因為是相互依賴的關係,順序不對的話程式處錯誤。我的關於ffmpeg的庫是動態庫放在./usr/local/ffmpeg/lib裡面,關於其他的Live555和x.264的靜態庫放在了./usr/local/lib,如果不理解關於靜態庫和動態庫請察看
eclipse靜態庫的編寫。http://www.haogongju.net/art/2728386
eclipse動態庫的編寫http://blog.163.com/baosongliang@126/blog/static/19493570201372954930401/
c:然後再編譯的時候遇到一些問題,舉例一下我遇到的問題及解決方案:
問題1:x264和FFMPEG 編譯後遇到的一些問題:UINT64_C。可以參照http://blog.csdn.net/topurce/article/details/7258143
http://www.cnblogs.com/dyllove98/archive/2013/06/07/3125111.html
問題2:如下描述
解決方案:
$ gedit /etc/ld.so.conf,編輯然後在這裡面加上一下幾句代碼
include /etc/ld.so.conf.d/*.conf
/usr/local/ffmpeg/lib
/usr/local/lib
然後千萬不要忘了# ldconfig 用這個命令生效。可參考:http://blog.csdn.net/ming470612141/article/details/3348063
http://www.cnblogs.com/dyllove98/archive/2013/06/07/3125111.html
問題3:如右圖
說明x264沒有編譯和安裝好,進入x264的目錄,參照圖http://blog.csdn.net/commshare/article/details/18453963 用命令 ./configure --enable-static --disable-opencl --disable-asm 重新再編譯安裝一邊後產生新的靜態庫函數,libx264.a,用命令cp -r ./home/frank/x264/libx264.a ./usr/local/lib/ 複製到相應目錄即可。然後run下:
運行成功,然後再區域網路內可以通。
注意以上檔案需要在超級使用者的前提下,為了方便採用命令sudo -i,即可變成超級使用者
2 標頭檔。程式中有很多引用標頭檔,並且程式是通過標頭檔來引用庫函數。需要在./usr/local/include中分別將相關的.h檔案加進來。live包含四個庫的所有標頭檔。
接下來的任務就是將代碼看懂,然後再這個代碼的基礎上,去實現海思hi3518c平台上採集視頻用Live555傳輸
3 之前已經調試好了,今天調試的時候又出現一個問題
直接上圖:
按照網上的方法:在相應的Debug目錄下 make clean 但是還是不行
最後又把/usr/local/lib下的libliveMedia.a刪除掉,然後又複製一個過來,就可以了