海思rtsp服務器是针对海思设备推出的一款服务器軟件,主要用于进行rtsp摄像头的测试,确保有完整的文档内容和视频文件,支持自动修正源码并编译。适用于海思的Hi3518E,Hi3516E等设备,需要的朋友可以来本站下载!

使用教程
本程序爲通過rtsp測試攝像頭程序,可以用來測試硬件。我將他移植到海思的Hi3516EV100的平台上,下文有詳細的移植說明,如果是其它平台,可參考移植。本rtsp部分代碼,不建議用在正式上産品上。因爲rtsp服務部分代碼,很不完善。設備裏如果需要使用建議使用live555開源程序。但本測試程序僅用來測試硬件,以及視頻SDK的使用還是有價值的。
移植方法:
海思sdk提供的sample_venc能將攝像頭數據存成h264文件。位于SDK的這個目錄:
Hi3516EV100_SDK_V1.0.3.0/mpp/sample/venc/。
爲了實現將視頻做成rtsp,實現實時觀看。參考這個例子做如下修改:
將本目錄複制一個,改名爲my_rtsp_test,在Makefile裏也將生成的可執行文件也修改爲my_rtsp_test。
去掉sample_venc.c裏的main函數,因在main.c裏已有了,如下圖:
原始的測試程序sample_venc,運行時有多種選項,其中按6能將采集h264存成文件。找到按6後所對應的函數:SAMPLE_VENC_LOW_DELAY,這個函數在我們改寫的main裏用來啓動視頻生成h264。
是哪裏存的h264文件的呢?經分析源碼,發現sample_venc.c裏調用SAMPLE_COMM_VENC_StartGetStream去實現的接收h264並存成文件的。
這個函數在sample_comm_venc.c裏,並開了線程去接收視頻數據並存成文件。
我們要實現rtsp,就需將上圖中存到文件的地方改成,發給rtsp模塊。由于這個文件在common目錄,Makefile在將所有common都加進去了,那個文件也不好直接去改,因爲其它測試程序也需要它。
怎麽辦呢,我采用的辦法是將sample_comm_venc.c複制到my_rtsp_test目錄並把文件名改爲原名稱後加1。將SAMPLE_COMM_VENC_GetVencStreamProc函數裏存文件的地方,將它改成使用函數,HisiPutH264DataToBuffer(&stStream)發給rtsp模塊。如圖:
在main.c文件里,将线程执行函数改为sample_venc.c里对应的执行函数(原始的测试程序sample_venc,运行时采集h264对应的函数,上文中有说明,函数名为:SAMPLE_VENC_LOW_DELAY )。
然後在my_rtsp_test目錄時編譯。編譯報錯重複函數定義,是因爲複制出來與原來的那份一樣。解決辦法爲,將COMM_OBJ裏的那個文件去掉,方法如下:
然後重新make,成功。
程序運行之後,按c,然後用VLC訪問:
rtsp://192.168.10.80:554/test.264
