如何將testRTSPClient從live555程式碼中分離出來,並建議第一個eclipse工程
live555提供了強大的rtsp視訊處理程式,更可喜的是在testProgs資料夾裡提供了好多外部呼叫的測試程式。在開發自己的應用程式時,我們希望根據需要將testProgs某個程式分離出來,而把live555只編譯成共享庫就不再動它。最好能夠將基於live555寫的程式碼放在一個eclipse工程檔案裡,管理使用就方便多了。現在就介紹一下如何將testRTSPClient分離出來,然後介紹如何建立eclipse工程。
一、將live555編譯成共享庫
下載live555原始碼檔案,我下載的是live.2016.06.26.tar.gz,將其解壓到Ubuntu系統下,然後執行下面的命令生成Makefile檔案:
./genMakefiles linux-with-shared-libraries
然後執行 Make 和 Make install命令,完成編譯和安裝。
編譯後的lib庫在/usr/local/lib下,如下圖所示:
接下來,執行testProgs下的testRTSPClient程式,例如接收海康攝像機的視訊,命令為“./testRTSPClient rtsp://admin:[email protected]:554/h264/ch01/main/av_stream ”,正常啟動的時候,能夠看到控制檯不斷顯示接收到的視訊和音訊的基本資訊。
這裡執行testRTSPClient,它呼叫的還是本地的連結庫而不是/usr/local/lib下的庫。為了方便測試,我們將testRTSPClient複製到/home/Desktop資料夾下,此時再執行該程式會提示找不到庫。解決該檔案有兩種方法,一種是設定PATH全域性變數,方法請參考我的另一個關於設定環境變數的部落格
然後再執行testRTSPClient就可以了。#!/bin/bash cp /usr/local/lib/libliveMedia.so.52 /usr/lib cp /usr/local/lib/libgroupsock.so.8 /usr/lib cp /usr/local/lib/libBasicUsageEnvironment.so.1 /usr/lib cp /usr/local/lib/libUsageEnvironment.so.3 /usr/lib
二、在eclipse中執行testRTSPClient程式
在Ubuntu裡安裝eclipse。然後新建一個CPP工程,我的名稱為RTSPDecode。右擊該工程,選擇“屬性”,首先制定include標頭檔案位置,參考下面的配置:需要說明的一點是為什麼不能只寫一個“/usr/local/include”,而必須將四個都加進來。你隨便開啟一個live裡面的頭部引用,都是直接寫的檔名,沒有指定路徑,例如#include "groupsock_version.hh",但是標頭檔案是分佈在liveMedia等四個資料夾裡的。如果這裡不將四個子目錄加進來,在編譯的時候就會出現找不到有檔案的錯誤。
然後設定共享庫名稱,方法請參考下面截圖,注意庫名稱的寫法,不要錯了。因為我們將庫的連結複製到/usr/lib下了,所以這裡不用設定庫的搜尋路徑了。
然後建立兩個檔案rtspdecode.h和rtspdecode.cpp。
環境配置好之後,剩下的工作就很簡單了,其實將testRTSPClient.cpp的內容全部複製到rtspdecode.cpp中編譯就可以運行了。作者為了便於我們學習,將所有的內容都放在這一個檔案裡了,為了規範,可以將標頭檔案引用、類等放在rtspdecode.h中。編譯成功後,接受海康攝像機視訊,控制檯輸出為:
以後我們將在這個檔案進一步封裝,使其能夠接受、解碼並顯示。後續部落格正在更新中。
OK!
相關推薦
如何將testRTSPClient從live555程式碼中分離出來,並建議第一個eclipse工程
live555提供了強大的rtsp視訊處理程式,更可喜的是在testProgs資料夾裡提供了好多外部呼叫的測試程式。在開發自己的應用程式時,我們希望根據需要將testProgs某個程式分離出來,而把l
postman實現從response headers中獲取cookie,並將其設置為環境變量
png header 參數 ESS 數組 字段 分割 src 圖片 1.最近在學習postman的使用方法,為了保證後續模塊操作,必須在登錄時獲取的session值,並將其設置為環境變量,session的位置處於response headers裏面返回的set-cookie
[學習筆記] 在Eclipse中使用Hibernate,並建立第一個Demo工程,資料庫為Oracle XE
前文參考:Oracle 11g xe 在windows安裝 在Eclipse中使用Hibernate 安裝 Hibernate Tools 外掛 https://tools.jboss.org/downloads/ Add the following URL to your Eclipse 4.13 (2
《編寫可維護的JavaScript》讀書筆記之程式設計實踐-將配置資料從程式碼中分離
將配置資料從程式碼中分離出來 任何時候修改原始碼都會有引入 bug 的風險,且只修改一些資料的值也會帶來一些不必要的風險。精心設計的應用應當將關鍵資料從主要的原始碼中抽離出來,因為資料是不應當影響指令的正常執行。 什麼是配置資料 配置資料是應用中寫死(har
java入門練習題(三):讀入一組整數(不超過20個),當用戶輸入0時,表示輸入結束;然後程式將從這組整數中,把第二大的整數找出來,並把它打印出來。
程式意義:讀入一組整數(不超過20個),當用戶輸入0時,表示輸入結束;然後程式將從這組整數中,把第二大的整數找出來,並把它打印出來。 說明:(1)0表示輸入結束,它本身並不計入這組整數中。 (2)在這組整數中,既有整數又有負數;
《已測試通過》輸入兩個整數 n 和 m,從數列1,2,3.......n 中隨意取幾個數,使其和等於m ,要求將其中所有的可能組合列出來,並且按每個組合的字典序排列輸出,每行輸出一種組合
參考網上很多,瑪德都不測試的嗎?就貼出來了?浪費時間。網際網路精神在哪!!! import java.util.ArrayList; import java.util.Comparator; import java.util.LinkedList; import java.util.Scanne
Qml實用技巧:將樣式style從物件中獨立出來,可使多個按鈕載入同一個樣式
需求 多個按鈕使用同一個樣式 原理 寫成元件形式(在或不在當前檔案中),需要樣式時,Button載入style即可 程式碼 Item { Rectangle {
android out目錄從原始碼中分離出來
Android系統編譯成功後的程式碼預設放在原始碼目錄下的out目錄中,我們需要將out目錄分離出來,可以在環境變數中新增 OUT_DIR_COMMON_BASE="/androidsource/out",如果你的工作目錄中存在 /work/android_branch1,
Android 讓你的 Room 搭上 RxJava 的順風車 從重複的程式碼中解脫出來
什麼是 Room ? 谷歌為了幫助開發者解決 Android 架構設計問題,在 Google I/O 2017 釋出一套幫助開發者解決 Android 架構設計的方案:Android Architecture Components,而我們的 Room 正是這套方案的兩大模組之一。 定義:資料庫解決方案 組
從ASM程式碼中分析MFC與ATL在COM元件開發中的差異和優劣
主要是通過C++中的模板和多重繼承的語言特性,從ASM彙編層面,來分析MFC與ATL的差異和優劣。 MFC程式碼部分 MFC中,一個COM類可以包含多個介面,每個介面物件都是一個COM類的成員變數。 例如IWelcome,IMath介面物件就是
從網頁程式碼中查詢所需內容
2018年11月09日 17:40:52 huavhuahua 閱讀數:6 個人分類: 爬蟲
android 開啟一個任意檔案,從環信中抽取出來的
android 開啟一個任意檔案,從環信中抽取出來的 1.使用方法 File file = new File(Environment.getExternalStorageDirectory(), "/4873641464161346955.jpg");
記錄從quicklink原始碼中發散出來的知識點
最近Google Chrome lab的一個開源專案quicklink很火,號稱可以極大提升頁面的載入速度,社群中也有很多使用該專案來做頁面載入優化的嘗試,但quicklink專案本身的實現其實極為簡潔,原始碼總共不過百行而已,其思路也不復雜,就是通過在瀏覽器空閒階段預載入view-port內的外部資源連結
如何將JSP中的java程式碼中的值,傳入JS程式碼中去
經過大半天的研究摸索,終於弄明白怎麼把JSP中的java程式碼中的值,傳入JS程式碼中去。 由於自己才剛剛開始接觸javaWEB 開發,今天在那兒做使用者登入功能,使用者在未登入時顯示“登入”連結,登入後在原來“登入”的地方,改變為使用者的暱稱!由於自己一點經驗也沒有,以為就一個session就夠了,在
《WebGL程式設計指南》---從示例程式碼中學習WebGL之初識【1】
寫在前面 筆者希望學習WebGL很久了,但是鑑於種種的事一直沒有開展,恰好研究生複試過了,在這空檔時間段內想學一門新技術,於是想到了WebGL,經前同事推薦,果斷買了《WebGL程式設計指南》這本書,於是,我的學習之旅就開始了。對於程式設計人員來說,案例程式碼是最好的教科書
iOS storyboard 實現動畫,不用將檢視拖到程式碼中
實現思路 通過改變Constraint.constant的值來改變檢視的位置 實現步驟 在storyboard中設定好佈局 將要修改的Constraint連線成屬性到程
將語句中的單詞扣出來,並排序的wordSearch類
這是第一種有排序的情況下,大寫字母會先排序結果感覺會要不到自己想要的結果 package com.wordSearch.cc; import java.io.BufferedReader; impo
第一個lucene程式,把一個資訊寫入到索引庫中、根據關鍵詞把物件從索引庫中提取出來、lucene讀寫過程分析
新建一個Java Project :LuceneTest 準備lucene的jar包,要加入的jar包至少有:1)lucene-core-3.1.0.jar (核心包) 2)lucene-analyzers-3.1.0.jar (分詞器) 3)lucene-h
[App Store Connect幫助]八、維護您的 App(2)將 App 從 App Store 中移除
一個 -c 範圍 p s store 恢復 右上角 src head 如果您不想繼續向顧客提供您的 App,您可以將其從 App Store 中移除,這樣會移除該 App 的所有版本。擁有該 App 先前版本的用戶將無法更新 App,但只要您的合約有效,用戶便仍可下載最新的
python3 簡單實現從csv文件中讀取內容,並對內容進行分類統計
tmp spa writer ict 打開文件 while 類型 spl blog 新手python剛剛上路,在實際工作中遇到如題所示的問題,嘗試使用python3簡單實現如下,歡迎高手前來優化import csv #打開文件,用with打開可以不用去特意關閉file了