天天看點

hi3518e移植live555實作點播1.說明2.Live555移植

文章目錄

  • 1.說明
  • 2.Live555移植
    • 2.1.源碼擷取
    • 2.2.修改配置檔案
      • 2.2.1.LOCALE_NOT_USED宏說明
    • 2.3.編譯
      • 2.3.1.生成Makefile
      • 2.3.2.編譯
    • 2.4.測試
      • 2.4.1.裝置端運作
      • 2.4.2.Vlc配置

1.說明

本文章記錄在hi3518e上移植live555,以實作将之前生成的h264裸流檔案的點播操作

2.Live555移植

2.1.源碼擷取

官方連結:http://www.live555.com/liveMedia/public/

wget http://www.live555.com/liveMedia/public/live.2019.06.28.tar.gz

tar -zxvf live.2019.06.28.tar.gz
           

2.2.修改配置檔案

修改配置檔案(config.armlinux),修改項主要有兩個,

  1. 交叉編譯工具鍊路徑修改:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/arm-hisiv300-linux-uclibcgnueabi-
  2. 增加一個宏: -DLOCALE_NOT_USED
CROSS_COMPILE?=         /opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/arm-hisiv300-linux-uclibcgnueabi-
COMPILE_OPTS =          $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DLOCALE_NOT_USED
           

2.2.1.LOCALE_NOT_USED宏說明

由于在開發闆上使用的uclibc交叉編譯工具鍊編譯,工具鍊中缺少xlocale.h這個頭檔案,而live555中liveMeida/locale.hh中調用

該頭檔案,編譯時會導緻如下錯誤:

arm-openwrt-linux-uclibcgnueabi-g++.bin: warning: environment variable 'STAGING_DIR' not defined
In file included from MPEG4GenericRTPSink.cpp:22:0:
include/Locale.hh:67:3: error: 'locale_t' does not name a type
   locale_t fLocale, fPrevLocale;
   ^
Makefile:33: recipe for target 'MPEG4GenericRTPSink.o' failed
make[1]: *** [MPEG4GenericRTPSink.o] Error 1
make[1]: Leaving directory '/home/chengqy/workspace/live555/live/liveMedia'
Makefile:34: recipe for target 'all' failed
make: *** [all] Error 2
           

通過添加宏:LOCALE_NOT_USED,可以關閉locale這個子產品,防止編譯報錯

2.3.編譯

2.3.1.生成Makefile

./genMakefiles armlinux
           

2.3.2.編譯

make
           

2.4.測試

2.4.1.裝置端運作

将生成測試程式:

live/mediaServer/live555MediaServer

拷貝到裝置上,然後運作,運作結果如下所示:

hi3518e移植live555實作點播1.說明2.Live555移植
需要注意的是,測試程式通過檔案的字尾名來識别格式

2.4.2.Vlc配置

在vlc中使用打開網絡串流的方式,url格式為:rtsp://開發闆IP/視屏檔案名稱

hi3518e移植live555實作點播1.說明2.Live555移植

配置完成後,點選播放,可以在vlc中看到之前錄取的視訊檔案

hi3518e移植live555實作點播1.說明2.Live555移植

繼續閱讀